@unclick/mcp-server 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abn-tool.d.ts +3 -0
- package/dist/abn-tool.d.ts.map +1 -0
- package/dist/abn-tool.js +89 -0
- package/dist/abn-tool.js.map +1 -0
- package/dist/abuseipdb-tool.d.ts +4 -0
- package/dist/abuseipdb-tool.d.ts.map +1 -0
- package/dist/abuseipdb-tool.js +129 -0
- package/dist/abuseipdb-tool.js.map +1 -0
- package/dist/alphavantage-tool.d.ts +7 -0
- package/dist/alphavantage-tool.d.ts.map +1 -0
- package/dist/alphavantage-tool.js +208 -0
- package/dist/alphavantage-tool.js.map +1 -0
- package/dist/amber-tool.d.ts +4 -0
- package/dist/amber-tool.d.ts.map +1 -0
- package/dist/amber-tool.js +114 -0
- package/dist/amber-tool.js.map +1 -0
- package/dist/australiapost-tool.d.ts +4 -0
- package/dist/australiapost-tool.d.ts.map +1 -0
- package/dist/australiapost-tool.js +130 -0
- package/dist/australiapost-tool.js.map +1 -0
- package/dist/bandsintown-tool.d.ts +4 -0
- package/dist/bandsintown-tool.d.ts.map +1 -0
- package/dist/bandsintown-tool.js +76 -0
- package/dist/bandsintown-tool.js.map +1 -0
- package/dist/bungie-tool.d.ts +5 -0
- package/dist/bungie-tool.d.ts.map +1 -0
- package/dist/bungie-tool.js +138 -0
- package/dist/bungie-tool.js.map +1 -0
- package/dist/calculator-tool.d.ts +6 -0
- package/dist/calculator-tool.d.ts.map +1 -0
- package/dist/calculator-tool.js +196 -0
- package/dist/calculator-tool.js.map +1 -0
- package/dist/carboninterface-tool.d.ts +5 -0
- package/dist/carboninterface-tool.d.ts.map +1 -0
- package/dist/carboninterface-tool.js +143 -0
- package/dist/carboninterface-tool.js.map +1 -0
- package/dist/chessdotcom-tool.d.ts +6 -0
- package/dist/chessdotcom-tool.d.ts.map +1 -0
- package/dist/chessdotcom-tool.js +183 -0
- package/dist/chessdotcom-tool.js.map +1 -0
- package/dist/client.js +1 -1
- package/dist/clockify-tool.d.ts +2 -0
- package/dist/clockify-tool.d.ts.map +1 -0
- package/dist/clockify-tool.js +155 -0
- package/dist/clockify-tool.js.map +1 -0
- package/dist/coingecko-tool.d.ts +7 -0
- package/dist/coingecko-tool.d.ts.map +1 -0
- package/dist/coingecko-tool.js +176 -0
- package/dist/coingecko-tool.js.map +1 -0
- package/dist/coinmarketcap-tool.d.ts +6 -0
- package/dist/coinmarketcap-tool.d.ts.map +1 -0
- package/dist/coinmarketcap-tool.js +168 -0
- package/dist/coinmarketcap-tool.js.map +1 -0
- package/dist/color-tool.d.ts +6 -0
- package/dist/color-tool.d.ts.map +1 -0
- package/dist/color-tool.js +391 -0
- package/dist/color-tool.js.map +1 -0
- package/dist/connectors/bluesky.d.ts +3 -0
- package/dist/connectors/bluesky.d.ts.map +1 -0
- package/dist/connectors/bluesky.js +26 -0
- package/dist/connectors/bluesky.js.map +1 -0
- package/dist/connectors/discogs.d.ts +3 -0
- package/dist/connectors/discogs.d.ts.map +1 -0
- package/dist/connectors/discogs.js +18 -0
- package/dist/connectors/discogs.js.map +1 -0
- package/dist/connectors/discord.d.ts +3 -0
- package/dist/connectors/discord.d.ts.map +1 -0
- package/dist/connectors/discord.js +18 -0
- package/dist/connectors/discord.js.map +1 -0
- package/dist/connectors/guardian.d.ts +3 -0
- package/dist/connectors/guardian.d.ts.map +1 -0
- package/dist/connectors/guardian.js +18 -0
- package/dist/connectors/guardian.js.map +1 -0
- package/dist/connectors/index.d.ts +39 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +23 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/lastfm.d.ts +3 -0
- package/dist/connectors/lastfm.d.ts.map +1 -0
- package/dist/connectors/lastfm.js +18 -0
- package/dist/connectors/lastfm.js.map +1 -0
- package/dist/connectors/mastodon.d.ts +3 -0
- package/dist/connectors/mastodon.d.ts.map +1 -0
- package/dist/connectors/mastodon.js +26 -0
- package/dist/connectors/mastodon.js.map +1 -0
- package/dist/connectors/newsapi.d.ts +3 -0
- package/dist/connectors/newsapi.d.ts.map +1 -0
- package/dist/connectors/newsapi.js +18 -0
- package/dist/connectors/newsapi.js.map +1 -0
- package/dist/connectors/ptv.d.ts +3 -0
- package/dist/connectors/ptv.d.ts.map +1 -0
- package/dist/connectors/ptv.js +26 -0
- package/dist/connectors/ptv.js.map +1 -0
- package/dist/connectors/reddit.d.ts +3 -0
- package/dist/connectors/reddit.d.ts.map +1 -0
- package/dist/connectors/reddit.js +28 -0
- package/dist/connectors/reddit.js.map +1 -0
- package/dist/connectors/seatgeek.d.ts +3 -0
- package/dist/connectors/seatgeek.d.ts.map +1 -0
- package/dist/connectors/seatgeek.js +18 -0
- package/dist/connectors/seatgeek.js.map +1 -0
- package/dist/connectors/shopify.d.ts +3 -0
- package/dist/connectors/shopify.d.ts.map +1 -0
- package/dist/connectors/shopify.js +38 -0
- package/dist/connectors/shopify.js.map +1 -0
- package/dist/connectors/slack.d.ts +3 -0
- package/dist/connectors/slack.d.ts.map +1 -0
- package/dist/connectors/slack.js +18 -0
- package/dist/connectors/slack.js.map +1 -0
- package/dist/connectors/telegram.d.ts +3 -0
- package/dist/connectors/telegram.d.ts.map +1 -0
- package/dist/connectors/telegram.js +18 -0
- package/dist/connectors/telegram.js.map +1 -0
- package/dist/connectors/ticketmaster.d.ts +3 -0
- package/dist/connectors/ticketmaster.d.ts.map +1 -0
- package/dist/connectors/ticketmaster.js +18 -0
- package/dist/connectors/ticketmaster.js.map +1 -0
- package/dist/connectors/twitch.d.ts +3 -0
- package/dist/connectors/twitch.d.ts.map +1 -0
- package/dist/connectors/twitch.js +26 -0
- package/dist/connectors/twitch.js.map +1 -0
- package/dist/connectors/xero.d.ts +3 -0
- package/dist/connectors/xero.d.ts.map +1 -0
- package/dist/connectors/xero.js +36 -0
- package/dist/connectors/xero.js.map +1 -0
- package/dist/connectors/yelp.d.ts +3 -0
- package/dist/connectors/yelp.d.ts.map +1 -0
- package/dist/connectors/yelp.js +18 -0
- package/dist/connectors/yelp.js.map +1 -0
- package/dist/datetime-tool.d.ts +8 -0
- package/dist/datetime-tool.d.ts.map +1 -0
- package/dist/datetime-tool.js +263 -0
- package/dist/datetime-tool.js.map +1 -0
- package/dist/deezer-tool.d.ts +7 -0
- package/dist/deezer-tool.d.ts.map +1 -0
- package/dist/deezer-tool.js +142 -0
- package/dist/deezer-tool.js.map +1 -0
- package/dist/discogs-tool.d.ts +7 -0
- package/dist/discogs-tool.d.ts.map +1 -0
- package/dist/discogs-tool.js +138 -0
- package/dist/discogs-tool.js.map +1 -0
- package/dist/domain-tool.d.ts +4 -0
- package/dist/domain-tool.d.ts.map +1 -0
- package/dist/domain-tool.js +155 -0
- package/dist/domain-tool.js.map +1 -0
- package/dist/ebird-tool.d.ts +5 -0
- package/dist/ebird-tool.d.ts.map +1 -0
- package/dist/ebird-tool.js +128 -0
- package/dist/ebird-tool.js.map +1 -0
- package/dist/email-tool.d.ts +8 -0
- package/dist/email-tool.d.ts.map +1 -0
- package/dist/email-tool.js +376 -0
- package/dist/email-tool.js.map +1 -0
- package/dist/espn-tool.d.ts +8 -0
- package/dist/espn-tool.d.ts.map +1 -0
- package/dist/espn-tool.js +147 -0
- package/dist/espn-tool.js.map +1 -0
- package/dist/eventbrite-tool.d.ts +7 -0
- package/dist/eventbrite-tool.d.ts.map +1 -0
- package/dist/eventbrite-tool.js +134 -0
- package/dist/eventbrite-tool.js.map +1 -0
- package/dist/feedly-tool.d.ts +2 -0
- package/dist/feedly-tool.d.ts.map +1 -0
- package/dist/feedly-tool.js +152 -0
- package/dist/feedly-tool.js.map +1 -0
- package/dist/foursquare-tool.d.ts +6 -0
- package/dist/foursquare-tool.d.ts.map +1 -0
- package/dist/foursquare-tool.js +102 -0
- package/dist/foursquare-tool.js.map +1 -0
- package/dist/fpl-tool.d.ts +8 -0
- package/dist/fpl-tool.d.ts.map +1 -0
- package/dist/fpl-tool.js +195 -0
- package/dist/fpl-tool.js.map +1 -0
- package/dist/genius-tool.d.ts +5 -0
- package/dist/genius-tool.d.ts.map +1 -0
- package/dist/genius-tool.js +62 -0
- package/dist/genius-tool.js.map +1 -0
- package/dist/guardian-tool.d.ts +6 -0
- package/dist/guardian-tool.d.ts.map +1 -0
- package/dist/guardian-tool.js +124 -0
- package/dist/guardian-tool.js.map +1 -0
- package/dist/hackernews-tool.d.ts +8 -0
- package/dist/hackernews-tool.d.ts.map +1 -0
- package/dist/hackernews-tool.js +96 -0
- package/dist/hackernews-tool.js.map +1 -0
- package/dist/haveibeenpwned-tool.d.ts +4 -0
- package/dist/haveibeenpwned-tool.d.ts.map +1 -0
- package/dist/haveibeenpwned-tool.js +162 -0
- package/dist/haveibeenpwned-tool.js.map +1 -0
- package/dist/hunter-tool.d.ts +4 -0
- package/dist/hunter-tool.d.ts.map +1 -0
- package/dist/hunter-tool.js +148 -0
- package/dist/hunter-tool.js.map +1 -0
- package/dist/instapaper-tool.d.ts +2 -0
- package/dist/instapaper-tool.d.ts.map +1 -0
- package/dist/instapaper-tool.js +257 -0
- package/dist/instapaper-tool.js.map +1 -0
- package/dist/ipapi-tool.d.ts +3 -0
- package/dist/ipapi-tool.d.ts.map +1 -0
- package/dist/ipapi-tool.js +78 -0
- package/dist/ipapi-tool.js.map +1 -0
- package/dist/ipaustralia-tool.d.ts +4 -0
- package/dist/ipaustralia-tool.d.ts.map +1 -0
- package/dist/ipaustralia-tool.js +138 -0
- package/dist/ipaustralia-tool.js.map +1 -0
- package/dist/lastfm-tool.d.ts +8 -0
- package/dist/lastfm-tool.d.ts.map +1 -0
- package/dist/lastfm-tool.js +169 -0
- package/dist/lastfm-tool.js.map +1 -0
- package/dist/lego-tool.d.ts +8 -0
- package/dist/lego-tool.d.ts.map +1 -0
- package/dist/lego-tool.js +235 -0
- package/dist/lego-tool.js.map +1 -0
- package/dist/lichess-tool.d.ts +6 -0
- package/dist/lichess-tool.d.ts.map +1 -0
- package/dist/lichess-tool.js +211 -0
- package/dist/lichess-tool.js.map +1 -0
- package/dist/meal-tool.d.ts +8 -0
- package/dist/meal-tool.d.ts.map +1 -0
- package/dist/meal-tool.js +143 -0
- package/dist/meal-tool.js.map +1 -0
- package/dist/monica-tool.d.ts +2 -0
- package/dist/monica-tool.d.ts.map +1 -0
- package/dist/monica-tool.js +160 -0
- package/dist/monica-tool.js.map +1 -0
- package/dist/musicbrainz-tool.d.ts +6 -0
- package/dist/musicbrainz-tool.d.ts.map +1 -0
- package/dist/musicbrainz-tool.js +65 -0
- package/dist/musicbrainz-tool.js.map +1 -0
- package/dist/nasa-tool.d.ts +6 -0
- package/dist/nasa-tool.d.ts.map +1 -0
- package/dist/nasa-tool.js +158 -0
- package/dist/nasa-tool.js.map +1 -0
- package/dist/newsapi-tool.d.ts +4 -0
- package/dist/newsapi-tool.d.ts.map +1 -0
- package/dist/newsapi-tool.js +108 -0
- package/dist/newsapi-tool.js.map +1 -0
- package/dist/notion-tool.d.ts +2 -0
- package/dist/notion-tool.d.ts.map +1 -0
- package/dist/notion-tool.js +167 -0
- package/dist/notion-tool.js.map +1 -0
- package/dist/numbers-tool.d.ts +3 -0
- package/dist/numbers-tool.d.ts.map +1 -0
- package/dist/numbers-tool.js +47 -0
- package/dist/numbers-tool.js.map +1 -0
- package/dist/nvd-tool.d.ts +4 -0
- package/dist/nvd-tool.d.ts.map +1 -0
- package/dist/nvd-tool.js +150 -0
- package/dist/nvd-tool.js.map +1 -0
- package/dist/omdb-tool.d.ts +4 -0
- package/dist/omdb-tool.d.ts.map +1 -0
- package/dist/omdb-tool.js +62 -0
- package/dist/omdb-tool.js.map +1 -0
- package/dist/openaq-tool.d.ts +5 -0
- package/dist/openaq-tool.d.ts.map +1 -0
- package/dist/openaq-tool.js +141 -0
- package/dist/openaq-tool.js.map +1 -0
- package/dist/openexchangerates-tool.d.ts +5 -0
- package/dist/openexchangerates-tool.d.ts.map +1 -0
- package/dist/openexchangerates-tool.js +101 -0
- package/dist/openexchangerates-tool.js.map +1 -0
- package/dist/openf1-tool.d.ts +9 -0
- package/dist/openf1-tool.d.ts.map +1 -0
- package/dist/openf1-tool.js +194 -0
- package/dist/openf1-tool.js.map +1 -0
- package/dist/openfoodfacts-tool.d.ts +5 -0
- package/dist/openfoodfacts-tool.d.ts.map +1 -0
- package/dist/openfoodfacts-tool.js +106 -0
- package/dist/openfoodfacts-tool.js.map +1 -0
- package/dist/openlibrary-tool.d.ts +7 -0
- package/dist/openlibrary-tool.d.ts.map +1 -0
- package/dist/openlibrary-tool.js +67 -0
- package/dist/openlibrary-tool.js.map +1 -0
- package/dist/openmeteo-tool.d.ts +4 -0
- package/dist/openmeteo-tool.d.ts.map +1 -0
- package/dist/openmeteo-tool.js +160 -0
- package/dist/openmeteo-tool.js.map +1 -0
- package/dist/pandascore-tool.d.ts +6 -0
- package/dist/pandascore-tool.d.ts.map +1 -0
- package/dist/pandascore-tool.js +239 -0
- package/dist/pandascore-tool.js.map +1 -0
- package/dist/podcastindex-tool.d.ts +7 -0
- package/dist/podcastindex-tool.d.ts.map +1 -0
- package/dist/podcastindex-tool.js +98 -0
- package/dist/podcastindex-tool.js.map +1 -0
- package/dist/ptv-tool.d.ts +6 -0
- package/dist/ptv-tool.d.ts.map +1 -0
- package/dist/ptv-tool.js +95 -0
- package/dist/ptv-tool.js.map +1 -0
- package/dist/radiobrowser-tool.d.ts +7 -0
- package/dist/radiobrowser-tool.d.ts.map +1 -0
- package/dist/radiobrowser-tool.js +125 -0
- package/dist/radiobrowser-tool.js.map +1 -0
- package/dist/raindrop-tool.d.ts +2 -0
- package/dist/raindrop-tool.d.ts.map +1 -0
- package/dist/raindrop-tool.js +137 -0
- package/dist/raindrop-tool.js.map +1 -0
- package/dist/random-tool.d.ts +9 -0
- package/dist/random-tool.d.ts.map +1 -0
- package/dist/random-tool.js +198 -0
- package/dist/random-tool.js.map +1 -0
- package/dist/rawg-tool.d.ts +7 -0
- package/dist/rawg-tool.d.ts.map +1 -0
- package/dist/rawg-tool.js +172 -0
- package/dist/rawg-tool.js.map +1 -0
- package/dist/readwise-tool.d.ts +2 -0
- package/dist/readwise-tool.d.ts.map +1 -0
- package/dist/readwise-tool.js +133 -0
- package/dist/readwise-tool.js.map +1 -0
- package/dist/resend-tool.d.ts +4 -0
- package/dist/resend-tool.d.ts.map +1 -0
- package/dist/resend-tool.js +133 -0
- package/dist/resend-tool.js.map +1 -0
- package/dist/restcountries-tool.d.ts +7 -0
- package/dist/restcountries-tool.d.ts.map +1 -0
- package/dist/restcountries-tool.js +141 -0
- package/dist/restcountries-tool.js.map +1 -0
- package/dist/riot-tool.d.ts +6 -0
- package/dist/riot-tool.d.ts.map +1 -0
- package/dist/riot-tool.js +166 -0
- package/dist/riot-tool.js.map +1 -0
- package/dist/seatgeek-tool.d.ts +7 -0
- package/dist/seatgeek-tool.d.ts.map +1 -0
- package/dist/seatgeek-tool.js +144 -0
- package/dist/seatgeek-tool.js.map +1 -0
- package/dist/sendle-tool.d.ts +4 -0
- package/dist/sendle-tool.d.ts.map +1 -0
- package/dist/sendle-tool.js +146 -0
- package/dist/sendle-tool.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +114 -1825
- package/dist/server.js.map +1 -1
- package/dist/setlistfm-tool.d.ts +5 -0
- package/dist/setlistfm-tool.d.ts.map +1 -0
- package/dist/setlistfm-tool.js +89 -0
- package/dist/setlistfm-tool.js.map +1 -0
- package/dist/shodan-tool.d.ts +4 -0
- package/dist/shodan-tool.d.ts.map +1 -0
- package/dist/shodan-tool.js +139 -0
- package/dist/shodan-tool.js.map +1 -0
- package/dist/sleeper-tool.d.ts +7 -0
- package/dist/sleeper-tool.d.ts.map +1 -0
- package/dist/sleeper-tool.js +147 -0
- package/dist/sleeper-tool.js.map +1 -0
- package/dist/splitwise-tool.d.ts +2 -0
- package/dist/splitwise-tool.d.ts.map +1 -0
- package/dist/splitwise-tool.js +133 -0
- package/dist/splitwise-tool.js.map +1 -0
- package/dist/supercell-tool.d.ts +8 -0
- package/dist/supercell-tool.d.ts.map +1 -0
- package/dist/supercell-tool.js +258 -0
- package/dist/supercell-tool.js.map +1 -0
- package/dist/tab-tool.d.ts +4 -0
- package/dist/tab-tool.d.ts.map +1 -0
- package/dist/tab-tool.js +128 -0
- package/dist/tab-tool.js.map +1 -0
- package/dist/text-tool.d.ts +8 -0
- package/dist/text-tool.d.ts.map +1 -0
- package/dist/text-tool.js +190 -0
- package/dist/text-tool.js.map +1 -0
- package/dist/thelott-tool.d.ts +3 -0
- package/dist/thelott-tool.d.ts.map +1 -0
- package/dist/thelott-tool.js +93 -0
- package/dist/thelott-tool.js.map +1 -0
- package/dist/ticketmaster-tool.d.ts +6 -0
- package/dist/ticketmaster-tool.d.ts.map +1 -0
- package/dist/ticketmaster-tool.js +140 -0
- package/dist/ticketmaster-tool.js.map +1 -0
- package/dist/tmdb-tool.d.ts +9 -0
- package/dist/tmdb-tool.d.ts.map +1 -0
- package/dist/tmdb-tool.js +204 -0
- package/dist/tmdb-tool.js.map +1 -0
- package/dist/toggl-tool.d.ts +5 -0
- package/dist/toggl-tool.d.ts.map +1 -0
- package/dist/toggl-tool.js +203 -0
- package/dist/toggl-tool.js.map +1 -0
- package/dist/toilets-tool.d.ts +3 -0
- package/dist/toilets-tool.d.ts.map +1 -0
- package/dist/toilets-tool.js +260 -0
- package/dist/toilets-tool.js.map +1 -0
- package/dist/tomorrowio-tool.d.ts +4 -0
- package/dist/tomorrowio-tool.d.ts.map +1 -0
- package/dist/tomorrowio-tool.js +114 -0
- package/dist/tomorrowio-tool.js.map +1 -0
- package/dist/tool-wiring.d.ts +7370 -0
- package/dist/tool-wiring.d.ts.map +1 -0
- package/dist/tool-wiring.js +6068 -0
- package/dist/tool-wiring.js.map +1 -0
- package/dist/trivia-tool.d.ts +3 -0
- package/dist/trivia-tool.d.ts.map +1 -0
- package/dist/trivia-tool.js +91 -0
- package/dist/trivia-tool.js.map +1 -0
- package/dist/trove-tool.d.ts +4 -0
- package/dist/trove-tool.d.ts.map +1 -0
- package/dist/trove-tool.js +121 -0
- package/dist/trove-tool.js.map +1 -0
- package/dist/twitch-tool.d.ts +8 -0
- package/dist/twitch-tool.d.ts.map +1 -0
- package/dist/twitch-tool.js +188 -0
- package/dist/twitch-tool.js.map +1 -0
- package/dist/unit-converter-tool.d.ts +8 -0
- package/dist/unit-converter-tool.d.ts.map +1 -0
- package/dist/unit-converter-tool.js +176 -0
- package/dist/unit-converter-tool.js.map +1 -0
- package/dist/untappd-tool.d.ts +6 -0
- package/dist/untappd-tool.d.ts.map +1 -0
- package/dist/untappd-tool.js +193 -0
- package/dist/untappd-tool.js.map +1 -0
- package/dist/urlscan-tool.d.ts +4 -0
- package/dist/urlscan-tool.d.ts.map +1 -0
- package/dist/urlscan-tool.js +154 -0
- package/dist/urlscan-tool.js.map +1 -0
- package/dist/usgs-tool.d.ts +5 -0
- package/dist/usgs-tool.d.ts.map +1 -0
- package/dist/usgs-tool.js +140 -0
- package/dist/usgs-tool.js.map +1 -0
- package/dist/vault-bridge.d.ts +16 -0
- package/dist/vault-bridge.d.ts.map +1 -0
- package/dist/vault-bridge.js +139 -0
- package/dist/vault-bridge.js.map +1 -0
- package/dist/vercel-tool.d.ts +6 -0
- package/dist/vercel-tool.d.ts.map +1 -0
- package/dist/vercel-tool.js +202 -0
- package/dist/vercel-tool.js.map +1 -0
- package/dist/virustotal-tool.d.ts +5 -0
- package/dist/virustotal-tool.d.ts.map +1 -0
- package/dist/virustotal-tool.js +154 -0
- package/dist/virustotal-tool.js.map +1 -0
- package/dist/willyweather-tool.d.ts +4 -0
- package/dist/willyweather-tool.d.ts.map +1 -0
- package/dist/willyweather-tool.js +128 -0
- package/dist/willyweather-tool.js.map +1 -0
- package/dist/wise-tool.d.ts +5 -0
- package/dist/wise-tool.d.ts.map +1 -0
- package/dist/wise-tool.js +129 -0
- package/dist/wise-tool.js.map +1 -0
- package/dist/xero-tool.d.ts.map +1 -1
- package/dist/xero-tool.js +40 -35
- package/dist/xero-tool.js.map +1 -1
- package/dist/yelp-tool.d.ts +6 -0
- package/dist/yelp-tool.d.ts.map +1 -0
- package/dist/yelp-tool.js +150 -0
- package/dist/yelp-tool.js.map +1 -0
- package/package.json +5 -1
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
// ─── Universal Email Tool ─────────────────────────────────────────────────────
|
|
2
|
+
// Sending via Nodemailer (SMTP) + reading/managing via node-imap (IMAP).
|
|
3
|
+
// Credentials fall back to SMTP_USER/SMTP_PASS and IMAP_USER/IMAP_PASS env vars.
|
|
4
|
+
import nodemailer from "nodemailer";
|
|
5
|
+
import Imap from "imap";
|
|
6
|
+
// ─── SMTP helpers ─────────────────────────────────────────────────────────────
|
|
7
|
+
function getSmtpArgs(args) {
|
|
8
|
+
const smtp_host = String(args.smtp_host ?? process.env.SMTP_HOST ?? "").trim();
|
|
9
|
+
const smtp_user = String(args.smtp_user ?? process.env.SMTP_USER ?? "").trim();
|
|
10
|
+
const smtp_pass = String(args.smtp_pass ?? process.env.SMTP_PASS ?? "").trim();
|
|
11
|
+
const smtp_port = Number(args.smtp_port ?? process.env.SMTP_PORT ?? 587);
|
|
12
|
+
if (!smtp_host)
|
|
13
|
+
throw new Error("smtp_host is required (or set SMTP_HOST env).");
|
|
14
|
+
if (!smtp_user)
|
|
15
|
+
throw new Error("smtp_user is required (or set SMTP_USER env).");
|
|
16
|
+
if (!smtp_pass)
|
|
17
|
+
throw new Error("smtp_pass is required (or set SMTP_PASS env).");
|
|
18
|
+
return { smtp_host, smtp_port, smtp_user, smtp_pass };
|
|
19
|
+
}
|
|
20
|
+
// ─── IMAP helpers ─────────────────────────────────────────────────────────────
|
|
21
|
+
function getImapArgs(args) {
|
|
22
|
+
const imap_host = String(args.imap_host ?? process.env.IMAP_HOST ?? "").trim();
|
|
23
|
+
const imap_user = String(args.imap_user ?? process.env.IMAP_USER ?? "").trim();
|
|
24
|
+
const imap_pass = String(args.imap_pass ?? process.env.IMAP_PASS ?? "").trim();
|
|
25
|
+
const imap_port = Number(args.imap_port ?? process.env.IMAP_PORT ?? 993);
|
|
26
|
+
const imap_tls = args.imap_tls !== false; // default true
|
|
27
|
+
if (!imap_host)
|
|
28
|
+
throw new Error("imap_host is required (or set IMAP_HOST env).");
|
|
29
|
+
if (!imap_user)
|
|
30
|
+
throw new Error("imap_user is required (or set IMAP_USER env).");
|
|
31
|
+
if (!imap_pass)
|
|
32
|
+
throw new Error("imap_pass is required (or set IMAP_PASS env).");
|
|
33
|
+
return { imap_host, imap_user, imap_pass, imap_port, imap_tls };
|
|
34
|
+
}
|
|
35
|
+
function makeImap(cfg) {
|
|
36
|
+
return new Imap({
|
|
37
|
+
user: cfg.imap_user,
|
|
38
|
+
password: cfg.imap_pass,
|
|
39
|
+
host: cfg.imap_host,
|
|
40
|
+
port: cfg.imap_port ?? 993,
|
|
41
|
+
tls: cfg.imap_tls ?? true,
|
|
42
|
+
tlsOptions: { rejectUnauthorized: false },
|
|
43
|
+
authTimeout: 10000,
|
|
44
|
+
connTimeout: 15000,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function imapConnect(imap) {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
imap.once("ready", () => resolve());
|
|
50
|
+
imap.once("error", (err) => reject(err));
|
|
51
|
+
imap.once("end", () => reject(new Error("IMAP connection ended unexpectedly.")));
|
|
52
|
+
imap.connect();
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function imapOpenBox(imap, folder, readOnly = false) {
|
|
56
|
+
return new Promise((resolve, reject) => {
|
|
57
|
+
imap.openBox(folder, readOnly, (err, box) => {
|
|
58
|
+
if (err)
|
|
59
|
+
reject(err);
|
|
60
|
+
else
|
|
61
|
+
resolve(box);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function imapFetchMessages(imap, source, opts) {
|
|
66
|
+
return new Promise((resolve, reject) => {
|
|
67
|
+
const messages = [];
|
|
68
|
+
let fetch;
|
|
69
|
+
try {
|
|
70
|
+
fetch = imap.fetch(source, opts);
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
return reject(err);
|
|
74
|
+
}
|
|
75
|
+
fetch.on("message", (msg, seqno) => {
|
|
76
|
+
const message = { uid: seqno };
|
|
77
|
+
const bodyChunks = [];
|
|
78
|
+
msg.on("body", (stream) => {
|
|
79
|
+
stream.on("data", (chunk) => bodyChunks.push(chunk));
|
|
80
|
+
stream.on("end", () => {
|
|
81
|
+
const raw = Buffer.concat(bodyChunks).toString("utf8");
|
|
82
|
+
// Extract key headers from raw message
|
|
83
|
+
const getHeader = (name) => {
|
|
84
|
+
const match = raw.match(new RegExp(`^${name}:\\s*(.+)`, "im"));
|
|
85
|
+
return match ? match[1].trim() : "";
|
|
86
|
+
};
|
|
87
|
+
message.subject = message.subject || getHeader("Subject");
|
|
88
|
+
message.from = message.from || getHeader("From");
|
|
89
|
+
message.to = message.to || getHeader("To");
|
|
90
|
+
message.date = message.date || getHeader("Date");
|
|
91
|
+
// Include a snippet of the body (strip headers)
|
|
92
|
+
const bodyStart = raw.indexOf("\r\n\r\n");
|
|
93
|
+
if (bodyStart !== -1) {
|
|
94
|
+
message.body = raw.slice(bodyStart + 4, bodyStart + 500).trim() || undefined;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
msg.once("attributes", (attrs) => {
|
|
99
|
+
message.uid = attrs.uid ?? seqno;
|
|
100
|
+
message.flags = (attrs.flags ?? []);
|
|
101
|
+
// Also parse date/subject from envelope if available
|
|
102
|
+
const env = attrs.envelope;
|
|
103
|
+
if (env) {
|
|
104
|
+
message.subject = message.subject || String(env.subject ?? "");
|
|
105
|
+
message.date = message.date || String(env.date ?? "");
|
|
106
|
+
const fromArr = env.from;
|
|
107
|
+
if (fromArr?.[0]) {
|
|
108
|
+
message.from = message.from ||
|
|
109
|
+
`${fromArr[0].name ?? ""} <${fromArr[0].mailbox}@${fromArr[0].host}>`.trim();
|
|
110
|
+
}
|
|
111
|
+
const toArr = env.to;
|
|
112
|
+
if (toArr?.[0]) {
|
|
113
|
+
message.to = message.to ||
|
|
114
|
+
`${toArr[0].name ?? ""} <${toArr[0].mailbox}@${toArr[0].host}>`.trim();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
msg.once("end", () => {
|
|
119
|
+
messages.push(message);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
fetch.once("error", reject);
|
|
123
|
+
fetch.once("end", () => resolve(messages));
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function imapSearch(imap, criteria) {
|
|
127
|
+
return new Promise((resolve, reject) => {
|
|
128
|
+
imap.search(criteria, (err, results) => {
|
|
129
|
+
if (err)
|
|
130
|
+
reject(err);
|
|
131
|
+
else
|
|
132
|
+
resolve(results ?? []);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
function imapAddFlags(imap, uid, flags) {
|
|
137
|
+
return new Promise((resolve, reject) => {
|
|
138
|
+
imap.addFlags(String(uid), flags, (err) => {
|
|
139
|
+
if (err)
|
|
140
|
+
reject(err);
|
|
141
|
+
else
|
|
142
|
+
resolve();
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
function imapMove(imap, uid, dest) {
|
|
147
|
+
return new Promise((resolve, reject) => {
|
|
148
|
+
imap.move(String(uid), dest, (err) => {
|
|
149
|
+
if (err)
|
|
150
|
+
reject(err);
|
|
151
|
+
else
|
|
152
|
+
resolve();
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
// ─── Operations ──────────────────────────────────────────────────────────────
|
|
157
|
+
export async function sendEmail(args) {
|
|
158
|
+
const { smtp_host, smtp_port, smtp_user, smtp_pass } = getSmtpArgs(args);
|
|
159
|
+
const from = String(args.from ?? smtp_user).trim();
|
|
160
|
+
const to = Array.isArray(args.to) ? args.to.map(String) : [String(args.to ?? "")];
|
|
161
|
+
const subject = String(args.subject ?? "").trim();
|
|
162
|
+
const body = String(args.body ?? "").trim();
|
|
163
|
+
const isHtml = args.html === true || /<[a-z][\s\S]*>/i.test(body);
|
|
164
|
+
if (!to[0])
|
|
165
|
+
throw new Error("to is required (array of email addresses).");
|
|
166
|
+
if (!subject)
|
|
167
|
+
throw new Error("subject is required.");
|
|
168
|
+
if (!body)
|
|
169
|
+
throw new Error("body is required.");
|
|
170
|
+
const transporter = nodemailer.createTransport({
|
|
171
|
+
host: smtp_host,
|
|
172
|
+
port: smtp_port,
|
|
173
|
+
secure: smtp_port === 465,
|
|
174
|
+
auth: { user: smtp_user, pass: smtp_pass },
|
|
175
|
+
});
|
|
176
|
+
const mailOptions = {
|
|
177
|
+
from,
|
|
178
|
+
to: to.join(", "),
|
|
179
|
+
subject,
|
|
180
|
+
...(isHtml ? { html: body } : { text: body }),
|
|
181
|
+
};
|
|
182
|
+
if (args.cc) {
|
|
183
|
+
mailOptions.cc = Array.isArray(args.cc)
|
|
184
|
+
? args.cc.map(String).join(", ")
|
|
185
|
+
: String(args.cc);
|
|
186
|
+
}
|
|
187
|
+
if (args.bcc) {
|
|
188
|
+
mailOptions.bcc = Array.isArray(args.bcc)
|
|
189
|
+
? args.bcc.map(String).join(", ")
|
|
190
|
+
: String(args.bcc);
|
|
191
|
+
}
|
|
192
|
+
const info = await transporter.sendMail(mailOptions);
|
|
193
|
+
return {
|
|
194
|
+
success: true,
|
|
195
|
+
message_id: info.messageId,
|
|
196
|
+
accepted: info.accepted,
|
|
197
|
+
rejected: info.rejected,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
export async function readInbox(args) {
|
|
201
|
+
const cfg = getImapArgs(args);
|
|
202
|
+
const folder = String(args.folder ?? "INBOX");
|
|
203
|
+
const limit = Math.min(50, Math.max(1, Number(args.limit ?? 10)));
|
|
204
|
+
const unreadOnly = args.unread_only === true;
|
|
205
|
+
const imap = makeImap(cfg);
|
|
206
|
+
await imapConnect(imap);
|
|
207
|
+
try {
|
|
208
|
+
await imapOpenBox(imap, folder, true);
|
|
209
|
+
const criteria = unreadOnly ? ["UNSEEN"] : ["ALL"];
|
|
210
|
+
const uids = await imapSearch(imap, criteria);
|
|
211
|
+
if (uids.length === 0) {
|
|
212
|
+
return { folder, total: 0, messages: [] };
|
|
213
|
+
}
|
|
214
|
+
const recent = uids.slice(-limit);
|
|
215
|
+
const messages = await imapFetchMessages(imap, recent, {
|
|
216
|
+
bodies: "HEADER.FIELDS (FROM TO SUBJECT DATE)",
|
|
217
|
+
envelope: true,
|
|
218
|
+
struct: false,
|
|
219
|
+
});
|
|
220
|
+
return {
|
|
221
|
+
folder,
|
|
222
|
+
total: uids.length,
|
|
223
|
+
fetched: messages.length,
|
|
224
|
+
messages: messages.reverse(),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
finally {
|
|
228
|
+
imap.end();
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
export async function searchEmail(args) {
|
|
232
|
+
const cfg = getImapArgs(args);
|
|
233
|
+
const folder = String(args.folder ?? "INBOX");
|
|
234
|
+
const query = String(args.query ?? "").trim();
|
|
235
|
+
if (!query)
|
|
236
|
+
throw new Error("query is required.");
|
|
237
|
+
const criteria = [];
|
|
238
|
+
// Support subject: or from: prefixes, otherwise search subject
|
|
239
|
+
if (query.toLowerCase().startsWith("from:")) {
|
|
240
|
+
criteria.push(["FROM", query.slice(5).trim()]);
|
|
241
|
+
}
|
|
242
|
+
else if (query.toLowerCase().startsWith("subject:")) {
|
|
243
|
+
criteria.push(["SUBJECT", query.slice(8).trim()]);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
criteria.push(["SUBJECT", query]);
|
|
247
|
+
}
|
|
248
|
+
if (args.since_date) {
|
|
249
|
+
criteria.push(["SINCE", new Date(String(args.since_date))]);
|
|
250
|
+
}
|
|
251
|
+
const imap = makeImap(cfg);
|
|
252
|
+
await imapConnect(imap);
|
|
253
|
+
try {
|
|
254
|
+
await imapOpenBox(imap, folder, true);
|
|
255
|
+
const uids = await imapSearch(imap, criteria.length > 0 ? criteria : [["ALL"]]);
|
|
256
|
+
if (uids.length === 0) {
|
|
257
|
+
return { query, folder, total: 0, messages: [] };
|
|
258
|
+
}
|
|
259
|
+
const messages = await imapFetchMessages(imap, uids.slice(-20), {
|
|
260
|
+
bodies: "HEADER.FIELDS (FROM TO SUBJECT DATE)",
|
|
261
|
+
envelope: true,
|
|
262
|
+
struct: false,
|
|
263
|
+
});
|
|
264
|
+
return {
|
|
265
|
+
query,
|
|
266
|
+
folder,
|
|
267
|
+
total: uids.length,
|
|
268
|
+
messages: messages.reverse(),
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
finally {
|
|
272
|
+
imap.end();
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
export async function getEmail(args) {
|
|
276
|
+
const cfg = getImapArgs(args);
|
|
277
|
+
const uid = Number(args.uid);
|
|
278
|
+
if (!uid)
|
|
279
|
+
throw new Error("uid is required.");
|
|
280
|
+
const folder = String(args.folder ?? "INBOX");
|
|
281
|
+
const imap = makeImap(cfg);
|
|
282
|
+
await imapConnect(imap);
|
|
283
|
+
try {
|
|
284
|
+
await imapOpenBox(imap, folder, true);
|
|
285
|
+
const messages = await imapFetchMessages(imap, [uid], {
|
|
286
|
+
bodies: "",
|
|
287
|
+
envelope: true,
|
|
288
|
+
struct: false,
|
|
289
|
+
});
|
|
290
|
+
if (messages.length === 0) {
|
|
291
|
+
return { error: `Email with UID ${uid} not found.` };
|
|
292
|
+
}
|
|
293
|
+
return messages[0];
|
|
294
|
+
}
|
|
295
|
+
finally {
|
|
296
|
+
imap.end();
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
export async function markRead(args) {
|
|
300
|
+
const cfg = getImapArgs(args);
|
|
301
|
+
const uid = Number(args.uid);
|
|
302
|
+
if (!uid)
|
|
303
|
+
throw new Error("uid is required.");
|
|
304
|
+
const folder = String(args.folder ?? "INBOX");
|
|
305
|
+
const imap = makeImap(cfg);
|
|
306
|
+
await imapConnect(imap);
|
|
307
|
+
try {
|
|
308
|
+
await imapOpenBox(imap, folder, false);
|
|
309
|
+
await imapAddFlags(imap, uid, ["\\Seen"]);
|
|
310
|
+
return { success: true, uid, message: `Email ${uid} marked as read.` };
|
|
311
|
+
}
|
|
312
|
+
finally {
|
|
313
|
+
imap.end();
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
export async function deleteEmail(args) {
|
|
317
|
+
if (args.must_confirm !== true) {
|
|
318
|
+
throw new Error("Destructive action: pass must_confirm=true to confirm email deletion.");
|
|
319
|
+
}
|
|
320
|
+
const cfg = getImapArgs(args);
|
|
321
|
+
const uid = Number(args.uid);
|
|
322
|
+
if (!uid)
|
|
323
|
+
throw new Error("uid is required.");
|
|
324
|
+
const folder = String(args.folder ?? "INBOX");
|
|
325
|
+
const imap = makeImap(cfg);
|
|
326
|
+
await imapConnect(imap);
|
|
327
|
+
try {
|
|
328
|
+
await imapOpenBox(imap, folder, false);
|
|
329
|
+
// Try to move to Trash; fall back to flagging as deleted
|
|
330
|
+
const trashFolders = ["Trash", "[Gmail]/Trash", "INBOX.Trash", "Deleted Items"];
|
|
331
|
+
let moved = false;
|
|
332
|
+
for (const trash of trashFolders) {
|
|
333
|
+
try {
|
|
334
|
+
await imapMove(imap, uid, trash);
|
|
335
|
+
moved = true;
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
338
|
+
catch {
|
|
339
|
+
// Try next candidate
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
if (!moved) {
|
|
343
|
+
await imapAddFlags(imap, uid, ["\\Deleted"]);
|
|
344
|
+
await new Promise((resolve, reject) => {
|
|
345
|
+
imap.expunge((err) => (err ? reject(err) : resolve()));
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
return {
|
|
349
|
+
success: true,
|
|
350
|
+
uid,
|
|
351
|
+
message: moved
|
|
352
|
+
? `Email ${uid} moved to Trash.`
|
|
353
|
+
: `Email ${uid} permanently deleted.`,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
finally {
|
|
357
|
+
imap.end();
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
// ─── Public dispatcher ────────────────────────────────────────────────────────
|
|
361
|
+
export async function emailAction(action, args) {
|
|
362
|
+
switch (action) {
|
|
363
|
+
case "send_email": return sendEmail(args);
|
|
364
|
+
case "read_inbox": return readInbox(args);
|
|
365
|
+
case "search_email": return searchEmail(args);
|
|
366
|
+
case "get_email": return getEmail(args);
|
|
367
|
+
case "mark_read": return markRead(args);
|
|
368
|
+
case "delete_email": return deleteEmail(args);
|
|
369
|
+
default:
|
|
370
|
+
return {
|
|
371
|
+
error: `Unknown email action: "${action}". ` +
|
|
372
|
+
"Valid: send_email, read_inbox, search_email, get_email, mark_read, delete_email.",
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
//# sourceMappingURL=email-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-tool.js","sourceRoot":"","sources":["../src/email-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function getNflScores(_args: Record<string, unknown>): Promise<unknown>;
|
|
2
|
+
export declare function getNbaScores(_args: Record<string, unknown>): Promise<unknown>;
|
|
3
|
+
export declare function getMlbScores(_args: Record<string, unknown>): Promise<unknown>;
|
|
4
|
+
export declare function getNhlScores(_args: Record<string, unknown>): Promise<unknown>;
|
|
5
|
+
export declare function getSoccerScores(args: Record<string, unknown>): Promise<unknown>;
|
|
6
|
+
export declare function getEspnNews(args: Record<string, unknown>): Promise<unknown>;
|
|
7
|
+
export declare function getTeamInfo(args: Record<string, unknown>): Promise<unknown>;
|
|
8
|
+
//# sourceMappingURL=espn-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"espn-tool.d.ts","sourceRoot":"","sources":["../src/espn-tool.ts"],"names":[],"mappings":"AA0EA,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CASnF;AAID,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnF;AAID,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnF;AAID,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnF;AAiBD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAarF;AAiBD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBjF;AAmBD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BjF"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// ESPN sports data via the unofficial public ESPN API.
|
|
2
|
+
// No API key required.
|
|
3
|
+
// Base URL: https://site.api.espn.com/apis/site/v2/sports/
|
|
4
|
+
const ESPN_BASE = "https://site.api.espn.com/apis/site/v2/sports";
|
|
5
|
+
async function espnFetch(path) {
|
|
6
|
+
const res = await fetch(`${ESPN_BASE}${path}`, {
|
|
7
|
+
headers: { "User-Agent": "UnClickMCP/1.0 (https://unclick.io)" },
|
|
8
|
+
});
|
|
9
|
+
if (!res.ok)
|
|
10
|
+
throw new Error(`ESPN API HTTP ${res.status}`);
|
|
11
|
+
return res.json();
|
|
12
|
+
}
|
|
13
|
+
function normalizeEvent(event) {
|
|
14
|
+
const comp = event.competitions?.[0];
|
|
15
|
+
const competitors = (comp?.competitors ?? []).map((c) => ({
|
|
16
|
+
team: c.team?.displayName ?? "Unknown",
|
|
17
|
+
abbreviation: c.team?.abbreviation ?? null,
|
|
18
|
+
score: c.score ?? null,
|
|
19
|
+
home_away: c.homeAway ?? null,
|
|
20
|
+
winner: c.winner ?? null,
|
|
21
|
+
}));
|
|
22
|
+
const broadcasts = comp?.broadcasts?.flatMap((b) => b.names ?? []) ?? [];
|
|
23
|
+
const venue = comp?.venue
|
|
24
|
+
? `${comp.venue.fullName ?? ""}${comp.venue.address?.city ? ", " + comp.venue.address.city : ""}`
|
|
25
|
+
: null;
|
|
26
|
+
return {
|
|
27
|
+
id: event.id,
|
|
28
|
+
name: event.name,
|
|
29
|
+
short_name: event.shortName ?? null,
|
|
30
|
+
date: event.date,
|
|
31
|
+
status: event.status?.type?.description ?? event.status?.type?.name ?? null,
|
|
32
|
+
completed: event.status?.type?.completed ?? null,
|
|
33
|
+
clock: event.status?.displayClock ?? null,
|
|
34
|
+
period: event.status?.period ?? null,
|
|
35
|
+
competitors,
|
|
36
|
+
venue: venue?.trim() || null,
|
|
37
|
+
broadcasts,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
// ─── get_nfl_scores ───────────────────────────────────────────────────────────
|
|
41
|
+
export async function getNflScores(_args) {
|
|
42
|
+
const data = await espnFetch("/football/nfl/scoreboard");
|
|
43
|
+
return {
|
|
44
|
+
sport: "NFL",
|
|
45
|
+
season_year: data.season?.year ?? null,
|
|
46
|
+
week: data.week?.number ?? null,
|
|
47
|
+
event_count: data.events?.length ?? 0,
|
|
48
|
+
events: (data.events ?? []).map(normalizeEvent),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// ─── get_nba_scores ───────────────────────────────────────────────────────────
|
|
52
|
+
export async function getNbaScores(_args) {
|
|
53
|
+
const data = await espnFetch("/basketball/nba/scoreboard");
|
|
54
|
+
return {
|
|
55
|
+
sport: "NBA",
|
|
56
|
+
season_year: data.season?.year ?? null,
|
|
57
|
+
event_count: data.events?.length ?? 0,
|
|
58
|
+
events: (data.events ?? []).map(normalizeEvent),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// ─── get_mlb_scores ───────────────────────────────────────────────────────────
|
|
62
|
+
export async function getMlbScores(_args) {
|
|
63
|
+
const data = await espnFetch("/baseball/mlb/scoreboard");
|
|
64
|
+
return {
|
|
65
|
+
sport: "MLB",
|
|
66
|
+
season_year: data.season?.year ?? null,
|
|
67
|
+
event_count: data.events?.length ?? 0,
|
|
68
|
+
events: (data.events ?? []).map(normalizeEvent),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
// ─── get_nhl_scores ───────────────────────────────────────────────────────────
|
|
72
|
+
export async function getNhlScores(_args) {
|
|
73
|
+
const data = await espnFetch("/hockey/nhl/scoreboard");
|
|
74
|
+
return {
|
|
75
|
+
sport: "NHL",
|
|
76
|
+
season_year: data.season?.year ?? null,
|
|
77
|
+
event_count: data.events?.length ?? 0,
|
|
78
|
+
events: (data.events ?? []).map(normalizeEvent),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// ─── get_soccer_scores ────────────────────────────────────────────────────────
|
|
82
|
+
const SOCCER_LEAGUES = {
|
|
83
|
+
"eng.1": "English Premier League",
|
|
84
|
+
"eng.2": "Championship",
|
|
85
|
+
"esp.1": "La Liga",
|
|
86
|
+
"ger.1": "Bundesliga",
|
|
87
|
+
"ita.1": "Serie A",
|
|
88
|
+
"fra.1": "Ligue 1",
|
|
89
|
+
"usa.1": "MLS",
|
|
90
|
+
"aus.1": "A-League",
|
|
91
|
+
"uefa.champions": "UEFA Champions League",
|
|
92
|
+
"uefa.europa": "UEFA Europa League",
|
|
93
|
+
};
|
|
94
|
+
export async function getSoccerScores(args) {
|
|
95
|
+
const league = String(args.league ?? "eng.1").trim();
|
|
96
|
+
const data = await espnFetch(`/soccer/${encodeURIComponent(league)}/scoreboard`);
|
|
97
|
+
return {
|
|
98
|
+
sport: "Soccer",
|
|
99
|
+
league,
|
|
100
|
+
league_name: SOCCER_LEAGUES[league] ?? league,
|
|
101
|
+
common_leagues: SOCCER_LEAGUES,
|
|
102
|
+
season_year: data.season?.year ?? null,
|
|
103
|
+
event_count: data.events?.length ?? 0,
|
|
104
|
+
events: (data.events ?? []).map(normalizeEvent),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
export async function getEspnNews(args) {
|
|
108
|
+
const sport = String(args.sport ?? "football/nfl").trim();
|
|
109
|
+
const data = await espnFetch(`/${sport}/news`);
|
|
110
|
+
return {
|
|
111
|
+
sport,
|
|
112
|
+
count: data.articles?.length ?? 0,
|
|
113
|
+
articles: (data.articles ?? []).slice(0, 20).map((a) => ({
|
|
114
|
+
headline: a.headline ?? null,
|
|
115
|
+
description: a.description ?? null,
|
|
116
|
+
byline: a.byline ?? null,
|
|
117
|
+
published: a.published ?? null,
|
|
118
|
+
url: a.links?.web?.href ?? null,
|
|
119
|
+
})),
|
|
120
|
+
tip: 'sport examples: "football/nfl", "basketball/nba", "baseball/mlb", "hockey/nhl", "soccer/eng.1"',
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
export async function getTeamInfo(args) {
|
|
124
|
+
const sport = String(args.sport ?? "").trim();
|
|
125
|
+
const league = String(args.league ?? "").trim();
|
|
126
|
+
const teamId = String(args.team_id ?? "").trim();
|
|
127
|
+
if (!sport || !league || !teamId) {
|
|
128
|
+
return { error: "sport, league, and team_id are all required. Example: sport=football, league=nfl, team_id=12." };
|
|
129
|
+
}
|
|
130
|
+
const data = await espnFetch(`/${sport}/${league}/teams/${encodeURIComponent(teamId)}`);
|
|
131
|
+
if (!data.team)
|
|
132
|
+
return { error: `No team found for ${sport}/${league}/${teamId}.` };
|
|
133
|
+
const t = data.team;
|
|
134
|
+
return {
|
|
135
|
+
id: t.id ?? null,
|
|
136
|
+
name: t.displayName ?? null,
|
|
137
|
+
abbreviation: t.abbreviation ?? null,
|
|
138
|
+
nickname: t.nickname ?? null,
|
|
139
|
+
location: t.location ?? null,
|
|
140
|
+
primary_color: t.color ? `#${t.color}` : null,
|
|
141
|
+
alternate_color: t.alternateColor ? `#${t.alternateColor}` : null,
|
|
142
|
+
logo: t.logos?.[0]?.href ?? null,
|
|
143
|
+
record: t.record?.items?.map((r) => ({ name: r.name, summary: r.summary })) ?? [],
|
|
144
|
+
links: t.links?.map((l) => ({ text: l.text, url: l.href })) ?? [],
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=espn-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"espn-tool.js","sourceRoot":"","sources":["../src/espn-tool.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,uBAAuB;AACvB,2DAA2D;AAE3D,MAAM,SAAS,GAAG,+CAA+C,CAAC;AAElE,KAAK,UAAU,SAAS,CAAI,IAAY;IACtC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,GAAG,IAAI,EAAE,EAAE;QAC7C,OAAO,EAAE,EAAE,YAAY,EAAE,qCAAqC,EAAE;KACjE,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;AAClC,CAAC;AA8BD,SAAS,cAAc,CAAC,KAAgB;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,IAAI,SAAS;QACtC,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,IAAI,IAAI;QAC1C,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI;QACtB,SAAS,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;QAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI;KACzB,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IACzE,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK;QACvB,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACjG,CAAC,CAAC,IAAI,CAAC;IAET,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QACnC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI;QAC3E,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI;QAChD,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,IAAI,IAAI;QACzC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI;QACpC,WAAW;QACX,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI;QAC5B,UAAU;KACX,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAA8B;IAC/D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAyB,0BAA0B,CAAC,CAAC;IACjF,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI;QACtC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI;QAC/B,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;QACrC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAA8B;IAC/D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAyB,4BAA4B,CAAC,CAAC;IACnF,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI;QACtC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;QACrC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAA8B;IAC/D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAyB,0BAA0B,CAAC,CAAC;IACjF,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI;QACtC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;QACrC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAA8B;IAC/D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAyB,wBAAwB,CAAC,CAAC;IAC/E,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI;QACtC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;QACrC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,cAAc,GAA2B;IAC7C,OAAO,EAAE,wBAAwB;IACjC,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,UAAU;IACnB,gBAAgB,EAAE,uBAAuB;IACzC,aAAa,EAAE,oBAAoB;CACpC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAA6B;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAyB,WAAW,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAEzG,OAAO;QACL,KAAK,EAAE,QAAQ;QACf,MAAM;QACN,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,MAAM;QAC7C,cAAc,EAAE,cAAc;QAC9B,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI;QACtC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;QACrC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;KAChD,CAAC;AACJ,CAAC;AAiBD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAA6B;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAmB,IAAI,KAAK,OAAO,CAAC,CAAC;IAEjE,OAAO;QACL,KAAK;QACL,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;QACjC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;YAC5B,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;YAClC,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI;YACxB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;YAC9B,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI;SAChC,CAAC,CAAC;QACH,GAAG,EAAE,gGAAgG;KACtG,CAAC;AACJ,CAAC;AAmBD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAA6B;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,EAAE,KAAK,EAAE,+FAA+F,EAAE,CAAC;IACpH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,SAAS,CAAmB,IAAI,KAAK,IAAI,MAAM,UAAU,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE1G,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,KAAK,IAAI,MAAM,IAAI,MAAM,GAAG,EAAE,CAAC;IAEpF,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACpB,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI;QAChB,IAAI,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAC3B,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI;QACpC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;QAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;QAC5B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;QAC7C,eAAe,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI;QACjE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;QACjF,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;KAClE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function eventbriteSearchEvents(args: Record<string, unknown>): Promise<unknown>;
|
|
2
|
+
export declare function eventbriteGetEvent(args: Record<string, unknown>): Promise<unknown>;
|
|
3
|
+
export declare function eventbriteGetEventAttendees(args: Record<string, unknown>): Promise<unknown>;
|
|
4
|
+
export declare function eventbriteCreateEvent(args: Record<string, unknown>): Promise<unknown>;
|
|
5
|
+
export declare function eventbriteListCategories(args: Record<string, unknown>): Promise<unknown>;
|
|
6
|
+
export declare function eventbriteGetVenue(args: Record<string, unknown>): Promise<unknown>;
|
|
7
|
+
//# sourceMappingURL=eventbrite-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventbrite-tool.d.ts","sourceRoot":"","sources":["../src/eventbrite-tool.ts"],"names":[],"mappings":"AAsEA,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAW5F;AAID,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQxF;AAID,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQjG;AAID,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA4B3F;AAID,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAK9F;AAID,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQxF"}
|