getcompetitive 4.2.0 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -5
- package/dist/http-server.js +47 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.js +3 -26
- package/dist/index.js.map +1 -1
- package/dist/meta-history.data.js +389 -0
- package/dist/meta-history.data.js.map +1 -0
- package/dist/prompts.js +175 -0
- package/dist/prompts.js.map +1 -0
- package/dist/server.js +38 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/doctor.js +5 -1
- package/dist/tools/doctor.js.map +1 -1
- package/dist/tools/meta.js +78 -0
- package/dist/tools/meta.js.map +1 -1
- package/dist/tools/replay.js +221 -0
- package/dist/tools/replay.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,8 @@ Smogon-tier and archetype surface that used to sit alongside it is gone.
|
|
|
17
17
|
|
|
18
18
|
## What it provides
|
|
19
19
|
|
|
20
|
-
- **
|
|
20
|
+
- **28 tools** across six domains: data, team analysis, team workflows (paste in, diagnose, prepare matchups, learn from replays), meta (usage-derived), battle mechanics, and official regulation sets
|
|
21
|
+
- **Six workflow prompts** — `/team-doctor`, `/matchup-prep`, `/build-around`, `/tournament-prep`, `/learn-my-team`, `/meta-report` — server-provided templates that chain the deterministic tools, so compound workflows stay discoverable without a 40-tool surface
|
|
21
22
|
- **Structured, agent-first definitions** — every tool declares MCP annotations and an output schema, returns `structuredContent` alongside JSON text, and documents all of its parameters; the deterministic half of the [TDQS](https://tdqs.dev) checklist is linted in CI
|
|
22
23
|
- Full **Pokémon Showdown** dataset — species, alternate forms, stats, moves, items, abilities, natures, learnsets, types
|
|
23
24
|
- **Battle math** from Smogon's calculator — stat calculation and full damage calculation (weather, terrain, boosts, items)
|
|
@@ -56,11 +57,13 @@ Built on [`@pkmn/dex`](https://github.com/pkmn/EPOKe) (Showdown data) and
|
|
|
56
57
|
| `format_team` | Render a canonical team back into paste text, round-tripping through `parse_team` |
|
|
57
58
|
| `diagnose_team` | "Fix my team": weaknesses with evidence, then concrete spread, move, item and member changes, each backed by exact math or usage data |
|
|
58
59
|
| `prepare_matchup` | "Prepare me": their likely sets by usage, speed races with margins, key damage rolls, bring-four, leads, and win/loss conditions |
|
|
60
|
+
| `analyze_replay` | Post-match read of a battle log: teams, KOs with causes, observed Speed order, damage percentages, and a type-coverage read |
|
|
59
61
|
|
|
60
62
|
### Meta (usage-derived)
|
|
61
63
|
| Tool | Purpose |
|
|
62
64
|
| --- | --- |
|
|
63
65
|
| `list_threats` | Most-used Pokemon of a regulation, ranked by measured usage (role, tier, usage share) with the sample and sources behind it |
|
|
66
|
+
| `compare_meta` | What is changing: last 7 days of usage vs the 7 before, per species and per two-species core, from a committed build-time aggregation |
|
|
64
67
|
| `get_set` | Most-played set for one or several species (item, ability, nature, EVs, 4 moves), with the Mega form and ability where relevant; covers each regulation's ranked species, which `list_threats` lists |
|
|
65
68
|
|
|
66
69
|
### Regulations (Pokémon Champions / VGC)
|
|
@@ -137,10 +140,39 @@ With Docker (after `docker build -t getcompetitive .`):
|
|
|
137
140
|
For Claude Desktop, add one of the same entries under `mcpServers` in
|
|
138
141
|
`claude_desktop_config.json`.
|
|
139
142
|
|
|
143
|
+
## Remote endpoint
|
|
144
|
+
|
|
145
|
+
The same surface runs over Streamable HTTP — the stateless remote mode, one
|
|
146
|
+
request per transport, safe behind a load balancer:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
node dist/http-server.js # http://127.0.0.1:3000/mcp
|
|
150
|
+
PORT=8080 node dist/http-server.js
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Connect a client with the URL `http://<host>:<port>/mcp`. TLS, auth and rate
|
|
154
|
+
limiting are the deployer's concern: the server itself remains a pure offline
|
|
155
|
+
read.
|
|
156
|
+
|
|
157
|
+
## Workflow prompts
|
|
158
|
+
|
|
159
|
+
Six server-provided prompts make the compound workflows discoverable without
|
|
160
|
+
adding a tool per workflow — each chains the deterministic tools, and each
|
|
161
|
+
follows the same doctrine: the model explains, getcompetitive proves.
|
|
162
|
+
|
|
163
|
+
| Prompt | What it chains |
|
|
164
|
+
| --- | --- |
|
|
165
|
+
| `/team-doctor` | `parse_team` → `diagnose_team` → `format_team` ("fix my team") |
|
|
166
|
+
| `/matchup-prep` | `parse_team` → `prepare_matchup` ("here is my opponent") |
|
|
167
|
+
| `/build-around` | `get_set` → `analyze_team` → `diagnose_team` → `check_legality` → `format_team` |
|
|
168
|
+
| `/tournament-prep` | `get_regulation` → `list_threats` → `get_set` (a pre-event briefing) |
|
|
169
|
+
| `/learn-my-team` | `parse_team` → `analyze_team` → `diagnose_team` → `get_set` (a team guide) |
|
|
170
|
+
| `/meta-report` | `list_threats` → `get_set` on the top five (a data-dated meta report) |
|
|
171
|
+
|
|
140
172
|
## Verify
|
|
141
173
|
|
|
142
174
|
```bash
|
|
143
|
-
npm test # builds and drives every tool over real MCP stdio
|
|
175
|
+
npm test # builds and drives every tool over real MCP stdio, plus the HTTP entrypoint
|
|
144
176
|
```
|
|
145
177
|
|
|
146
178
|
## Example queries
|
|
@@ -159,9 +191,11 @@ npm test # builds and drives every tool over real MCP stdio
|
|
|
159
191
|
|
|
160
192
|
The Showdown dataset and battle math track `@pkmn/dex` / `@smogon/calc`. Official
|
|
161
193
|
**Regulation Sets change seasonally**; the legal rosters are regenerated with
|
|
162
|
-
`node scripts/extract-regs.mjs`,
|
|
163
|
-
(`src/threats.ts`)
|
|
164
|
-
|
|
194
|
+
`node scripts/extract-regs.mjs`, the **threat list / standard sets**
|
|
195
|
+
(`src/threats.ts`) with `node scripts/build-threats.mjs <regulation>`, and the
|
|
196
|
+
**two-window usage history** behind `compare_meta` with
|
|
197
|
+
`node scripts/build-meta-history.mjs <regulation>` (it refuses to write unless
|
|
198
|
+
every tournament in the window was fetched). All generated data files are
|
|
165
199
|
committed, so the tools stay offline at runtime. See [CONTRIBUTING](CONTRIBUTING.md).
|
|
166
200
|
|
|
167
201
|
## Contributing
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* getcompetitive — MCP server over Streamable HTTP: the remote-endpoint mode.
|
|
4
|
+
*
|
|
5
|
+
* node dist/http-server.js # defaults to port 3000, host 127.0.0.1
|
|
6
|
+
* PORT=8080 node dist/http-server.js
|
|
7
|
+
*
|
|
8
|
+
* Connect any MCP client to http://<host>:<port>/mcp. This is the same
|
|
9
|
+
* transport-agnostic server as the stdio entrypoint — identical tools and
|
|
10
|
+
* prompts. It runs in stateless mode, the shape the SDK recommends for remote
|
|
11
|
+
* deployments: each request gets a fresh transport (stateless transports are
|
|
12
|
+
* single-request by design, so reusing one would collide on message ids), no
|
|
13
|
+
* session state is kept, and the whole thing can sit behind a load balancer.
|
|
14
|
+
* Deployment concerns — TLS, auth, rate limits, hosting — are deliberately left
|
|
15
|
+
* to whoever runs it: the server itself stays a pure offline read.
|
|
16
|
+
*/
|
|
17
|
+
import http from 'node:http';
|
|
18
|
+
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
19
|
+
import { buildServer } from './server.js';
|
|
20
|
+
const port = Number(process.env.PORT ?? 3000);
|
|
21
|
+
const host = process.env.HOST ?? '127.0.0.1';
|
|
22
|
+
const httpServer = http.createServer((req, res) => {
|
|
23
|
+
void (async () => {
|
|
24
|
+
// Stateless: a fresh server+transport per request, per the SDK's contract
|
|
25
|
+
// that a stateless transport handles exactly one request.
|
|
26
|
+
const server = buildServer();
|
|
27
|
+
const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
|
|
28
|
+
await server.connect(transport);
|
|
29
|
+
await transport.handleRequest(req, res);
|
|
30
|
+
})().catch((e) => {
|
|
31
|
+
console.error('MCP request failed:', e instanceof Error ? e.message : e);
|
|
32
|
+
if (!res.headersSent) {
|
|
33
|
+
res.writeHead(500, { 'content-type': 'application/json' });
|
|
34
|
+
res.end(JSON.stringify({ jsonrpc: '2.0', error: { code: -32603, message: 'Internal error' } }));
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
httpServer.listen(port, host, () => {
|
|
39
|
+
console.error(`getcompetitive MCP server listening on http://${host}:${port}/mcp (stateless)`);
|
|
40
|
+
});
|
|
41
|
+
process.on('SIGINT', () => {
|
|
42
|
+
httpServer.close(() => process.exit(0));
|
|
43
|
+
});
|
|
44
|
+
process.on('SIGTERM', () => {
|
|
45
|
+
httpServer.close(() => process.exit(0));
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=http-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;AAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAChD,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,0EAA0E;QAC1E,0DAA0D;QAC1D,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC;QACvF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;QAClG,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;IACjC,OAAO,CAAC,KAAK,CAAC,iDAAiD,IAAI,IAAI,IAAI,kBAAkB,CAAC,CAAC;AACjG,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,37 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* getcompetitive — MCP server for the Pokémon Champions meta.
|
|
3
|
+
* getcompetitive — MCP server for the Pokémon Champions meta, over stdio.
|
|
4
4
|
*
|
|
5
5
|
* Champions is the only game here, so the surface is scoped to it: the official
|
|
6
6
|
* regulation sets, the usage-derived threat list, and the data lookups and
|
|
7
7
|
* battle math a team needs — all in the game's own terms (doubles, level 50,
|
|
8
8
|
* 66 stat points, no Terastallization).
|
|
9
9
|
*/
|
|
10
|
-
import { readFileSync } from 'node:fs';
|
|
11
|
-
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
12
10
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
import { registerRegulationTools } from './tools/regulations.js';
|
|
16
|
-
import { registerAnalyzeTools } from './tools/analyze.js';
|
|
17
|
-
import { registerMetaTools } from './tools/meta.js';
|
|
18
|
-
import { registerTeamTools } from './tools/team.js';
|
|
19
|
-
import { registerDoctorTool } from './tools/doctor.js';
|
|
20
|
-
import { registerMatchupTool } from './tools/matchup.js';
|
|
21
|
-
import { registerSpritesTool } from './tools/sprites.js';
|
|
22
|
-
const { version } = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8'));
|
|
23
|
-
const server = new McpServer({
|
|
24
|
-
name: 'getcompetitive',
|
|
25
|
-
version,
|
|
26
|
-
});
|
|
27
|
-
registerDataTools(server);
|
|
28
|
-
registerCalcTools(server);
|
|
29
|
-
registerRegulationTools(server);
|
|
30
|
-
registerAnalyzeTools(server);
|
|
31
|
-
registerMetaTools(server);
|
|
32
|
-
registerTeamTools(server);
|
|
33
|
-
registerDoctorTool(server);
|
|
34
|
-
registerMatchupTool(server);
|
|
35
|
-
registerSpritesTool(server);
|
|
11
|
+
import { buildServer } from './server.js';
|
|
12
|
+
const server = buildServer();
|
|
36
13
|
await server.connect(new StdioServerTransport());
|
|
37
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;AAC7B,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
// Generated by scripts/build-meta-history.mjs — do not edit by hand.
|
|
2
|
+
// Two 7-day windows of measured usage (last 7 days vs the 7 before) for
|
|
3
|
+
// `compare_meta`, keyed by regulation id: per-species usage share and the
|
|
4
|
+
// most common species pairs, aggregated from the same tournament source the
|
|
5
|
+
// threat list uses. Regenerate with `node scripts/build-meta-history.mjs <regulation>`.
|
|
6
|
+
export default { "m-c": {
|
|
7
|
+
"regulation": "m-c",
|
|
8
|
+
"name": "Regulation Set M-C",
|
|
9
|
+
"source": "usage",
|
|
10
|
+
"sourceAsOf": "2026-09-19",
|
|
11
|
+
"note": "Computed from 2091 teams across 29 tournaments in the last 7 days and 1292 teams across the 7 days before that. Windows are rolling: regenerate to slide them forward.",
|
|
12
|
+
"windows": {
|
|
13
|
+
"current": {
|
|
14
|
+
"start": "2026-09-12",
|
|
15
|
+
"end": "2026-09-19",
|
|
16
|
+
"teams": 2091
|
|
17
|
+
},
|
|
18
|
+
"previous": {
|
|
19
|
+
"start": "2026-09-05",
|
|
20
|
+
"end": "2026-09-12",
|
|
21
|
+
"teams": 1292
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"species": [
|
|
25
|
+
{
|
|
26
|
+
"species": "Gholdengo",
|
|
27
|
+
"current": 23.7,
|
|
28
|
+
"previous": 11.8
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"species": "Raichu",
|
|
32
|
+
"current": 15.3,
|
|
33
|
+
"previous": 6.9
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"species": "Arcanine",
|
|
37
|
+
"current": 18.4,
|
|
38
|
+
"previous": 11
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"species": "Milotic",
|
|
42
|
+
"current": 12.1,
|
|
43
|
+
"previous": 7
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"species": "Rillaboom",
|
|
47
|
+
"current": 56.5,
|
|
48
|
+
"previous": 51.8
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"species": "Staraptor",
|
|
52
|
+
"current": 7.5,
|
|
53
|
+
"previous": 3.4
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"species": "Volcarona",
|
|
57
|
+
"current": 6.7,
|
|
58
|
+
"previous": 3.3
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"species": "Gengar",
|
|
62
|
+
"current": 4.6,
|
|
63
|
+
"previous": 1.7
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"species": "Annihilape",
|
|
67
|
+
"current": 3.6,
|
|
68
|
+
"previous": 0.9
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"species": "Metagross",
|
|
72
|
+
"current": 5.5,
|
|
73
|
+
"previous": 2.8
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"species": "Politoed",
|
|
77
|
+
"current": 4.7,
|
|
78
|
+
"previous": 2.2
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"species": "Archaludon",
|
|
82
|
+
"current": 11.3,
|
|
83
|
+
"previous": 9
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"species": "Froslass",
|
|
87
|
+
"current": 7,
|
|
88
|
+
"previous": 5.5
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"species": "Sylveon",
|
|
92
|
+
"current": 11.5,
|
|
93
|
+
"previous": 10.2
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"species": "Indeedee",
|
|
97
|
+
"current": 25.5,
|
|
98
|
+
"previous": 24.3
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"species": "Armarouge",
|
|
102
|
+
"current": 5.8,
|
|
103
|
+
"previous": 4.8
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"species": "Gardevoir",
|
|
107
|
+
"current": 8.8,
|
|
108
|
+
"previous": 8.1
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"species": "Glimmora",
|
|
112
|
+
"current": 3.1,
|
|
113
|
+
"previous": 2.6
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"species": "Salamence",
|
|
117
|
+
"current": 37.2,
|
|
118
|
+
"previous": 37.1
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"species": "Golisopod",
|
|
122
|
+
"current": 16.5,
|
|
123
|
+
"previous": 16.4
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"species": "Grimmsnarl",
|
|
127
|
+
"current": 4.9,
|
|
128
|
+
"previous": 4.9
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"species": "Excadrill",
|
|
132
|
+
"current": 5.5,
|
|
133
|
+
"previous": 5.6
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"species": "Pawmot",
|
|
137
|
+
"current": 3.6,
|
|
138
|
+
"previous": 3.8
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"species": "Primarina",
|
|
142
|
+
"current": 3.7,
|
|
143
|
+
"previous": 3.9
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"species": "Tyranitar",
|
|
147
|
+
"current": 7.7,
|
|
148
|
+
"previous": 8.2
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"species": "Swampert",
|
|
152
|
+
"current": 3.6,
|
|
153
|
+
"previous": 4.1
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"species": "Dragonite",
|
|
157
|
+
"current": 3.6,
|
|
158
|
+
"previous": 4.1
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"species": "Pelipper",
|
|
162
|
+
"current": 12.7,
|
|
163
|
+
"previous": 13.5
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"species": "Farigiraf",
|
|
167
|
+
"current": 15.5,
|
|
168
|
+
"previous": 16.3
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"species": "Hatterene",
|
|
172
|
+
"current": 3.6,
|
|
173
|
+
"previous": 4.5
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"species": "Garchomp",
|
|
177
|
+
"current": 13.1,
|
|
178
|
+
"previous": 14
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"species": "Venusaur",
|
|
182
|
+
"current": 3.5,
|
|
183
|
+
"previous": 4.6
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"species": "Charizard",
|
|
187
|
+
"current": 9.1,
|
|
188
|
+
"previous": 10.7
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"species": "Aerodactyl",
|
|
192
|
+
"current": 2.8,
|
|
193
|
+
"previous": 4.5
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"species": "Delphox",
|
|
197
|
+
"current": 2.5,
|
|
198
|
+
"previous": 4.3
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"species": "Torkoal",
|
|
202
|
+
"current": 4.5,
|
|
203
|
+
"previous": 6.6
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"species": "Lucario",
|
|
207
|
+
"current": 5.9,
|
|
208
|
+
"previous": 8.1
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"species": "Incineroar",
|
|
212
|
+
"current": 33.4,
|
|
213
|
+
"previous": 35.6
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"species": "Sneasler",
|
|
217
|
+
"current": 46.8,
|
|
218
|
+
"previous": 49.3
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"species": "Ninetales",
|
|
222
|
+
"current": 2.5,
|
|
223
|
+
"previous": 5
|
|
224
|
+
}
|
|
225
|
+
],
|
|
226
|
+
"cores": [
|
|
227
|
+
{
|
|
228
|
+
"core": [
|
|
229
|
+
"Gholdengo",
|
|
230
|
+
"Rillaboom"
|
|
231
|
+
],
|
|
232
|
+
"current": 19.7,
|
|
233
|
+
"previous": 8.7
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"core": [
|
|
237
|
+
"Raichu",
|
|
238
|
+
"Rillaboom"
|
|
239
|
+
],
|
|
240
|
+
"current": 12.8,
|
|
241
|
+
"previous": 4.6
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"core": [
|
|
245
|
+
"Gholdengo",
|
|
246
|
+
"Raichu"
|
|
247
|
+
],
|
|
248
|
+
"current": 9.6,
|
|
249
|
+
"previous": 2.2
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"core": [
|
|
253
|
+
"Arcanine",
|
|
254
|
+
"Rillaboom"
|
|
255
|
+
],
|
|
256
|
+
"current": 15,
|
|
257
|
+
"previous": 8.4
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"core": [
|
|
261
|
+
"Arcanine",
|
|
262
|
+
"Gholdengo"
|
|
263
|
+
],
|
|
264
|
+
"current": 8.6,
|
|
265
|
+
"previous": 2.5
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"core": [
|
|
269
|
+
"Arcanine",
|
|
270
|
+
"Raichu"
|
|
271
|
+
],
|
|
272
|
+
"current": 7.7,
|
|
273
|
+
"previous": 2.3
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"core": [
|
|
277
|
+
"Gholdengo",
|
|
278
|
+
"Salamence"
|
|
279
|
+
],
|
|
280
|
+
"current": 12.5,
|
|
281
|
+
"previous": 7.2
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"core": [
|
|
285
|
+
"Gholdengo",
|
|
286
|
+
"Sneasler"
|
|
287
|
+
],
|
|
288
|
+
"current": 11.7,
|
|
289
|
+
"previous": 6.7
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"core": [
|
|
293
|
+
"Rillaboom",
|
|
294
|
+
"Staraptor"
|
|
295
|
+
],
|
|
296
|
+
"current": 4.5,
|
|
297
|
+
"previous": 0.7
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"core": [
|
|
301
|
+
"Gholdengo",
|
|
302
|
+
"Staraptor"
|
|
303
|
+
],
|
|
304
|
+
"current": 4.2,
|
|
305
|
+
"previous": 0.5
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"core": [
|
|
309
|
+
"Milotic",
|
|
310
|
+
"Rillaboom"
|
|
311
|
+
],
|
|
312
|
+
"current": 7,
|
|
313
|
+
"previous": 3.3
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"core": [
|
|
317
|
+
"Raichu",
|
|
318
|
+
"Sneasler"
|
|
319
|
+
],
|
|
320
|
+
"current": 6.2,
|
|
321
|
+
"previous": 2.6
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"core": [
|
|
325
|
+
"Arcanine",
|
|
326
|
+
"Staraptor"
|
|
327
|
+
],
|
|
328
|
+
"current": 4.3,
|
|
329
|
+
"previous": 0.9
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"core": [
|
|
333
|
+
"Raichu",
|
|
334
|
+
"Staraptor"
|
|
335
|
+
],
|
|
336
|
+
"current": 4.2,
|
|
337
|
+
"previous": 0.9
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"core": [
|
|
341
|
+
"Arcanine",
|
|
342
|
+
"Salamence"
|
|
343
|
+
],
|
|
344
|
+
"current": 11,
|
|
345
|
+
"previous": 7.8
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"core": [
|
|
349
|
+
"Arcanine",
|
|
350
|
+
"Sneasler"
|
|
351
|
+
],
|
|
352
|
+
"current": 9.4,
|
|
353
|
+
"previous": 6.3
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
"core": [
|
|
357
|
+
"Milotic",
|
|
358
|
+
"Salamence"
|
|
359
|
+
],
|
|
360
|
+
"current": 6.1,
|
|
361
|
+
"previous": 3.1
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
"core": [
|
|
365
|
+
"Garchomp",
|
|
366
|
+
"Rillaboom"
|
|
367
|
+
],
|
|
368
|
+
"current": 7.4,
|
|
369
|
+
"previous": 4.5
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"core": [
|
|
373
|
+
"Gholdengo",
|
|
374
|
+
"Incineroar"
|
|
375
|
+
],
|
|
376
|
+
"current": 8.1,
|
|
377
|
+
"previous": 5.3
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"core": [
|
|
381
|
+
"Rillaboom",
|
|
382
|
+
"Volcarona"
|
|
383
|
+
],
|
|
384
|
+
"current": 5.8,
|
|
385
|
+
"previous": 3
|
|
386
|
+
}
|
|
387
|
+
]
|
|
388
|
+
} };
|
|
389
|
+
//# sourceMappingURL=meta-history.data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-history.data.js","sourceRoot":"","sources":["../src/meta-history.data.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,wEAAwE;AACxE,0EAA0E;AAC1E,4EAA4E;AAC5E,wFAAwF;AACxF,eAAe,EAAE,KAAK,EAAE;QACtB,YAAY,EAAE,KAAK;QACnB,MAAM,EAAE,oBAAoB;QAC5B,QAAQ,EAAE,OAAO;QACjB,YAAY,EAAE,YAAY;QAC1B,MAAM,EAAE,wKAAwK;QAChL,SAAS,EAAE;YACT,SAAS,EAAE;gBACT,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,IAAI;aACd;YACD,UAAU,EAAE;gBACV,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,IAAI;aACd;SACF;QACD,SAAS,EAAE;YACT;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,EAAE;aACf;YACD;gBACE,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,CAAC;aACd;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,YAAY;gBACvB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,YAAY;gBACvB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,CAAC;aACd;YACD;gBACE,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,SAAS,EAAE,YAAY;gBACvB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,EAAE;aACf;YACD;gBACE,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,SAAS,EAAE,YAAY;gBACvB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,SAAS,EAAE,YAAY;gBACvB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,SAAS,EAAE,WAAW;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,CAAC;aACd;SACF;QACD,OAAO,EAAE;YACP;gBACE,MAAM,EAAE;oBACN,WAAW;oBACX,WAAW;iBACZ;gBACD,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,QAAQ;oBACR,WAAW;iBACZ;gBACD,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,WAAW;oBACX,QAAQ;iBACT;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,UAAU;oBACV,WAAW;iBACZ;gBACD,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,UAAU;oBACV,WAAW;iBACZ;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,UAAU;oBACV,QAAQ;iBACT;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,WAAW;oBACX,WAAW;iBACZ;gBACD,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,WAAW;oBACX,UAAU;iBACX;gBACD,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,WAAW;oBACX,WAAW;iBACZ;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,WAAW;oBACX,WAAW;iBACZ;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,SAAS;oBACT,WAAW;iBACZ;gBACD,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,QAAQ;oBACR,UAAU;iBACX;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,UAAU;oBACV,WAAW;iBACZ;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,QAAQ;oBACR,WAAW;iBACZ;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,UAAU;oBACV,WAAW;iBACZ;gBACD,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,UAAU;oBACV,UAAU;iBACX;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,SAAS;oBACT,WAAW;iBACZ;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,UAAU;oBACV,WAAW;iBACZ;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,WAAW;oBACX,YAAY;iBACb;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;aAChB;YACD;gBACE,MAAM,EAAE;oBACN,WAAW;oBACX,WAAW;iBACZ;gBACD,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,CAAC;aACd;SACF;KACF,EAAW,CAAC"}
|