@pkmn/data 0.4.23 → 0.5.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 CHANGED
@@ -55,9 +55,9 @@ a couple of Pokémon Showdown quirks. While this interface is far from the
55
55
 
56
56
  - data returned from a `Generation`s methods are constrained to the generation in question. Data
57
57
  which does not exist, only exists in later gens, or is illegal or non standard will not be
58
- returned which means you do not need filter data before using it. This allows you to define the
59
- legality requirements for your data set up front across all data types and then forget about it,
60
- as opposed to having to filter at each call site.
58
+ returned which means you do not need filter data before using it. This allows you to [define the
59
+ legality requirements for your data set up front](#existsfn) across all data types and then forget
60
+ about it, as opposed to having to filter at each call site.
61
61
  - `undefined` is returned from functions as opposed to an object with its `exists` field set to
62
62
  `false`. `undefined` fails loudly, can be checked statically by Typescript and allows for more
63
63
  efficient implementation under the hood.
@@ -99,6 +99,81 @@ assert(await gens.get(4).learnsets.canLearn('Ursaring', 'Rock Climb'));
99
99
 
100
100
  Please see the [unit tests](index.test.ts) for more comprehensive usage examples.
101
101
 
102
+ #### `ExistsFn`
103
+
104
+ Pokémon Showdown includes a lot of [nonstandard
105
+ information](https://github.com/smogon/pokemon-showdown/blob/master/sim/NONSTANDARD.md) in its data
106
+ files and expects developers to check the data returned by each API to ensure it is satisfactory for
107
+ your use case. Checking at every callsite is error prone and redundant - with `@pkmn/data`, the
108
+ filter function is configured up front on the `Generations` instance and is applied automatically on
109
+ every API.
110
+
111
+ By default, `Generations` uses an existence filter that ensures only data that exists in the latest
112
+ official release of a given Pokémon generation is returned. This is usually what you want, and as
113
+ such the most of the time you don't need to worry about existence at all. However, there are certain
114
+ circumstances where you might want to loosen the restrictions of the default existence function, eg.
115
+ to allow for Pokémon which have canonically existed but have not been included in the latest
116
+ release. This can be accomplished by passing an `ExistsFn` implementation as the second argument to
117
+ the `Generations` constructor:
118
+
119
+ ```ts
120
+ // These species are unobtainable outside of their own generations, but this data gets lost in the
121
+ // Pokémon Showdown data files because isNonstandard is a scalar value and isNonstandard = 'Past'
122
+ // overwrites the isNonstandard = 'Unobtainable' designation
123
+ const NATDEX_UNOBTAINABLE_SPECIES = [
124
+ 'Eevee-Starter', 'Floette-Eternal', 'Pichu-Spiky-eared', 'Pikachu-Belle', 'Pikachu-Cosplay',
125
+ 'Pikachu-Libre', 'Pikachu-PhD', 'Pikachu-Pop-Star', 'Pikachu-Rock-Star', 'Pikachu-Starter',
126
+ 'Eternatus-Eternamax',
127
+ ];
128
+
129
+ const NATDEX_EXISTS = (d: Data, g: GenerationNum) => {
130
+ // The "National Dex" rules only apply to gen 8, but this ExistsFn gets called on all generations
131
+ if (g !== 8) return Generations.DEFAULT_EXISTS(d, g);
132
+ // These checks remain unchanged from the default existence filter
133
+ if (!d.exists) return false;
134
+ if (d.kind === 'Ability' && d.id === 'noability') return false;
135
+ // "National Dex" rules allows for data from the past, but not other forms of nonstandard-ness
136
+ if ('isNonstandard' in d && d.isNonstandard && d.isNonstandard !== 'Past') return false;
137
+ // Unlike the check in the default existence function we don't want to filter out the 'Illegal' tier
138
+ if ('tier' in d && d.tier === 'Unreleased') return false;
139
+ // Filter out the unobtainable species
140
+ if (d.kind === 'Species' && NATDEX_UNOBTAINABLE_SPECIES.includes(d.name)) return false;
141
+ // Nonstandard items other than Z-Crystals and Pokémon-specific items should be filtered
142
+ return !(d.kind === 'Item' && ['Past', 'Unobtainable'].includes(d.isNonstandard!) &&
143
+ !d.zMove && !d.itemUser && !d.forcedForme);
144
+ };
145
+
146
+ const gens = new Generations(Dex, NATDEX_EXISTS);
147
+ ```
148
+
149
+ The above example showcases an existence filter which includes data legal in Pokémon Showdown's
150
+ "National Dex" metagames. This is a particularly hairy existence filter due to how the [`'Standard
151
+ NatDex'` ruleset is
152
+ defined](https://github.com/smogon/pokemon-showdown/blob/master/data/rulesets.ts) and is subject to
153
+ change at the whims of the Pokémon Showdown developers. Alternative `ExistsFn` implementations can
154
+ be used to include Pokémon from [Smogon's Create-A-Pokémon Project](https://www.smogon.com/cap/),
155
+ unreleased data, Pokéstart Pokémon, etc. Note that as covered above, the `ExistsFn` only gets
156
+ applied at the object-level, **field-level existence still must be handled manually**.
157
+
158
+ #### Mods
159
+
160
+ `Generations` can be used with `Dex` objects that have been modified by the `Dex.mod` API, though it
161
+ first requires that the modded `Dex` be wrapped by the `ModdedDex` abstraction provided by
162
+ [`@pkmn/mods`](../mods):
163
+
164
+ ```ts
165
+ import {Dex, ID, ModData} from '@pkmn/dex';
166
+ import {ModdexDex} from '@pkmn/mods';
167
+
168
+ const dex = Dex.mod('gen8bdsp' as ID, await import('@pkmn/mods/gen8bdsp') as ModData);
169
+ const gens = new Generations(new ModdedDex(dex));
170
+ ```
171
+
172
+ Wrapping a modded `Dex` in `ModdedDex` is already the recommended practice to allow for better
173
+ typechecking, but in the case of `@pkmn/data` the wrapper is required as `Generations` calls
174
+ `Dex.forGen` under the hood which will default to an unmodded `Dex` (`ModdedDex` overrides
175
+ `Dex.forGen` to return the modded `Dex` for the generation that was modded).
176
+
102
177
  ### Browser
103
178
 
104
179
  The recommended way of using `@pkmn/data` in a web browser is to **configure your bundler**
package/build/index.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { AbilityName, Condition, Data, Dex, EggGroup, EvoType, FormeName, GenderName, GenerationNum, ID, ItemName, Move, MoveCategory, MoveName, MoveSource, Nature, Nonstandard, Species as DexSpecies, SpeciesAbility, SpeciesName, SpeciesTag, StatID, StatsTable, Tier, Type as DexType, TypeName } from '@pkmn/dex-types';
2
- declare const DEFAULT_EXISTS: (d: Data) => boolean;
3
- declare type ExistsFn = typeof DEFAULT_EXISTS;
2
+ export declare type ExistsFn = (d: Data, g: GenerationNum) => boolean;
3
+ declare type BoundExistsFn = (d: Data) => boolean;
4
4
  export declare function toID(text: any): ID;
5
5
  export declare class Generations {
6
6
  private readonly cache;
7
7
  private readonly dex;
8
8
  private readonly exists;
9
+ static DEFAULT_EXISTS: (d: Data) => boolean;
9
10
  constructor(dex: Dex, exists?: (d: Data) => boolean);
10
11
  get(gen: GenerationNum): Generation;
11
12
  [Symbol.iterator](): Generator<Generation, void, unknown>;
@@ -22,7 +23,7 @@ export declare class Generation {
22
23
  readonly stats: Stats;
23
24
  readonly dex: Dex;
24
25
  private readonly exists;
25
- constructor(dex: Dex, exists: ExistsFn);
26
+ constructor(dex: Dex, exists: BoundExistsFn);
26
27
  get num(): GenerationNum;
27
28
  toString(): string;
28
29
  toJSON(): string;
@@ -30,21 +31,21 @@ export declare class Generation {
30
31
  export declare class Abilities {
31
32
  private readonly dex;
32
33
  private readonly exists;
33
- constructor(dex: Dex, exists: ExistsFn);
34
+ constructor(dex: Dex, exists: BoundExistsFn);
34
35
  get(name: string): import("@pkmn/dex-types").Ability | undefined;
35
36
  [Symbol.iterator](): Generator<import("@pkmn/dex-types").Ability, void, unknown>;
36
37
  }
37
38
  export declare class Items {
38
39
  private readonly dex;
39
40
  private readonly exists;
40
- constructor(dex: Dex, exists: ExistsFn);
41
+ constructor(dex: Dex, exists: BoundExistsFn);
41
42
  get(name: string): import("@pkmn/dex-types").Item | undefined;
42
43
  [Symbol.iterator](): Generator<import("@pkmn/dex-types").Item, void, unknown>;
43
44
  }
44
45
  export declare class Moves {
45
46
  private readonly dex;
46
47
  private readonly exists;
47
- constructor(dex: Dex, exists: ExistsFn);
48
+ constructor(dex: Dex, exists: BoundExistsFn);
48
49
  get(name: string): Move | undefined;
49
50
  [Symbol.iterator](): Generator<Move, void, unknown>;
50
51
  }
@@ -52,7 +53,7 @@ export declare class Species {
52
53
  private readonly cache;
53
54
  private readonly dex;
54
55
  private readonly exists;
55
- constructor(dex: Dex, exists: ExistsFn);
56
+ constructor(dex: Dex, exists: BoundExistsFn);
56
57
  get(name: string): Specie | undefined;
57
58
  [Symbol.iterator](): Generator<Specie, void, unknown>;
58
59
  }
@@ -115,7 +116,7 @@ export declare class Specie implements DexSpecies {
115
116
  readonly canHatch: boolean;
116
117
  private readonly dex;
117
118
  private static readonly EXCLUDE;
118
- constructor(dex: Dex, exists: ExistsFn, species: DexSpecies);
119
+ constructor(dex: Dex, exists: BoundExistsFn, species: DexSpecies);
119
120
  get formeNum(): number;
120
121
  toString(): SpeciesName;
121
122
  toJSON(): {
@@ -125,13 +126,13 @@ export declare class Specie implements DexSpecies {
125
126
  export declare class Conditions {
126
127
  private readonly dex;
127
128
  private readonly exists;
128
- constructor(dex: Dex, exists: ExistsFn);
129
+ constructor(dex: Dex, exists: BoundExistsFn);
129
130
  get(name: string): Condition | undefined;
130
131
  }
131
132
  export declare class Natures {
132
133
  private readonly dex;
133
134
  private readonly exists;
134
- constructor(dex: Dex, exists: ExistsFn);
135
+ constructor(dex: Dex, exists: BoundExistsFn);
135
136
  get(name: string): Nature | undefined;
136
137
  [Symbol.iterator](): Generator<Nature, void, unknown>;
137
138
  }
@@ -145,7 +146,7 @@ export declare class Types {
145
146
  private readonly unknown;
146
147
  private readonly dex;
147
148
  private readonly exists;
148
- constructor(dex: Dex, exists: ExistsFn);
149
+ constructor(dex: Dex, exists: BoundExistsFn);
149
150
  get(name: string): Type | undefined;
150
151
  [Symbol.iterator](): Generator<Type, void, unknown>;
151
152
  getHiddenPower(ivs: StatsTable): {
@@ -188,7 +189,7 @@ export declare class Learnsets {
188
189
  private readonly gen;
189
190
  private readonly dex;
190
191
  private readonly exists;
191
- constructor(gen: Generation, dex: Dex, exists: ExistsFn);
192
+ constructor(gen: Generation, dex: Dex, exists: BoundExistsFn);
192
193
  get(name: string): Promise<import("@pkmn/dex-types").Learnset | undefined>;
193
194
  [Symbol.iterator](): AsyncGenerator<import("@pkmn/dex-types").Learnset, void, unknown>;
194
195
  all(species: Specie): AsyncGenerator<import("@pkmn/dex-types").Learnset, void, unknown>;
package/build/index.js CHANGED
@@ -47,7 +47,7 @@ function toID(text) {
47
47
  }
48
48
  exports.toID = toID;
49
49
  class Generations {
50
- constructor(dex, exists = DEFAULT_EXISTS) {
50
+ constructor(dex, exists = Generations.DEFAULT_EXISTS) {
51
51
  this.cache = Object.create(null);
52
52
  this.dex = dex;
53
53
  this.exists = exists;
@@ -55,7 +55,7 @@ class Generations {
55
55
  get(gen) {
56
56
  if (this.cache[gen])
57
57
  return this.cache[gen];
58
- return (this.cache[gen] = new Generation(this.dex.forGen(gen), this.exists));
58
+ return (this.cache[gen] = new Generation(this.dex.forGen(gen), d => this.exists(d, gen)));
59
59
  }
60
60
  *[Symbol.iterator]() {
61
61
  for (let gen = 1; gen <= 8; gen++) {
@@ -64,6 +64,7 @@ class Generations {
64
64
  }
65
65
  }
66
66
  exports.Generations = Generations;
67
+ Generations.DEFAULT_EXISTS = DEFAULT_EXISTS;
67
68
  class Generation {
68
69
  constructor(dex, exists) {
69
70
  this.dex = dex;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAM,cAAc,GAAG,CAAC,CAAO,EAAE,EAAE;IACjC,IAAI,CAAC,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,EAAE,GAAG,CAAC,GAAW,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAKnF,SAAS,aAAa,CAAC,CAAuB,EAAE,CAAuB,EAAE,OAAoB;IAC3F,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;QACnB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACrE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SACjB;KACF;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,IAAI,CAAC,IAAS;IAC5B,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE;QAAE,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACpE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAO,CAAC;AACpE,CAAC;AAJD,oBAIC;AAED,MAAa,WAAW;IAQtB,YAAY,GAAQ,EAAE,MAAM,GAAG,WAAW,CAAC,cAAc;QAPxC,UAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAgC,CAAC;QAQ1E,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,GAAkB;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;YACjC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAoB,CAAC,CAAC;SACtC;IACH,CAAC;;AAtBH,kCAuBC;AAjBQ,0BAAc,GAAG,cAAc,CAAC;AAmBzC,MAAa,UAAU;IAerB,YAAY,GAAQ,EAAE,MAAqB;QACzC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,OAAO,eAAe,IAAI,CAAC,GAAG,GAAG,CAAC;IACpC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF;AAzCD,gCAyCC;AAED,MAAa,SAAS;IAIpB,YAAY,GAAQ,EAAE,MAAqB;QACzC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;YAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,CAAC;gBAAE,MAAM,CAAC,CAAC;SAChB;IACH,CAAC;CACF;AApBD,8BAoBC;AAED,MAAa,KAAK;IAIhB,YAAY,GAAQ,EAAE,MAAqB;QACzC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC;gBAAE,MAAM,CAAC,CAAC;SAChB;IACH,CAAC;CACF;AApBD,sBAoBC;AAED,MAAa,KAAK;IAIhB,YAAY,GAAQ,EAAE,MAAqB;QACzC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC;gBAAE,MAAM,CAAC,CAAC;SAChB;IACH,CAAC;CACF;AApBD,sBAoBC;AAED,MAAa,OAAO;IAMlB,YAAY,GAAQ,EAAE,MAAqB;QAL1B,UAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAA6B,CAAC;QAMvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,MAAM,EAAE,GAAI,OAAe,CAAC,SAAS,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,gCAAgC;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,CAAC;gBAAE,MAAM,CAAC,CAAC;SAChB;IACH,CAAC;CACF;AA1BD,0BA0BC;AAED,MAAa,MAAM;IAsEjB,YAAY,GAAQ,EAAE,MAAqB,EAAE,OAAmB;;QAC9D,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,EAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,CAAC;YAC3C,wFAAwF;YACxF,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;gBACpE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC1C;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YACrF,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;SACtF;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,EAAC,CAAC,EAAE,EAAE,EAAC,CAAC;SAC1B;QACD,IAAI,CAAC,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAA,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,MAAA,OAAO,CAAC,cAAc,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,MAAM,CAAA;YAAE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClE,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,CAAC,WAAW,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,CAAA;YAAE,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,CAAC,UAAU,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,CAAA;YAAE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAClF,IAAI,CAAC,KAAK;YACR,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,IAAI;YACpC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,UAAW,CAAC,SAAS,CAC5D,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACpE,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;;AAvHH,wBAwHC;AA7DyB,cAAO,GAAG,IAAI,GAAG,CAAC;IACxC,WAAW;IACX,gBAAgB;IAChB,MAAM;IACN,QAAQ;IACR,aAAa;IACb,KAAK;IACL,aAAa;IACb,OAAO;CACR,CAAC,CAAC;AAsDL,MAAa,UAAU;IAIrB,YAAY,GAAQ,EAAE,MAAqB;QACzC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;CACF;AAbD,gCAaC;AAED,MAAa,OAAO;IAIlB,YAAY,GAAQ,EAAE,MAAqB;QACzC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC;gBAAE,MAAM,CAAC,CAAC;SAChB;IACH,CAAC;CACF;AArBD,0BAqBC;AAED,MAAM,aAAa,GAAG;IACpB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;CACP,CAAC;AAIF,MAAa,KAAK;IAOhB,YAAY,GAAQ,EAAE,MAAqB;QAN1B,UAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAA2B,CAAC;QAOrE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,6CAA6C;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC;YACtB,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,4CAA4C;YAC5C,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,KAAK;YACX,uFAAuF;YACvF,mDAAmD;YACnD,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;YACpB,GAAG,EAAE,CAAC;YACN,mDAAmD;YACnD,WAAW,EAAE,EAAiD;YAC9D,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;SACV,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC;gBAAE,MAAM,CAAC,CAAC;SAChB;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE;YAC1C,MAAM,IAAI,CAAC,OAAO,CAAC;SACpB;IACH,CAAC;IAED,cAAc,CAAC,GAAe;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,CAAC,MAAqC,EAAE,MAAkB;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,kBAAkB,CAAC,MAAqC,EAAE,MAAkB;QAC1E,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;YAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACzD,4DAA4D;QAC5D,OAAO,aAAa,CAAC,CAA+B,CAAC,CAAC;IACxD,CAAC;CACF;AA7DD,sBA6DC;AAID,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAwB,CAAC;AAC3D,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE3F,MAAa,IAAI;IAcf,YAAY,IAAa,EAAE,GAAQ,EAAE,KAAY;QAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ;YACX,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3F,yFAAyF;QACzF,IAAI,CAAC,aAAa,GAAG,EAAC,KAAK,EAAE,CAAC,EAA2C,CAAC;QAC1E,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAA6B,CAAC;YAC7E,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACrF;IACH,CAAC;IAED,SAAS,CAAC,MAAkB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,kBAAkB,CAAC,MAAkB;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;CACF;AA1CD,oBA0CC;AAED,MAAM,QAAQ,GACZ,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAS,CAAC,CAAC;AACjG,8EAA8E;AAC9E,MAAM,QAAQ,GACZ,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAS,CAAC,CAAC;AAI7F,MAAa,SAAS;IASpB,YAAY,GAAe,EAAE,GAAQ,EAAE,MAAqB;QAR3C,UAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAE1C,CAAC;QAOA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;;YACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS;gBAAE,cAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAY,CAAC,CAAA,CAAC;YACzE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;gBACxC,MAAM,CAAC,GAAG,cAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAC;gBAC7B,IAAI,CAAC;oBAAE,oBAAM,CAAC,CAAA,CAAC;aAChB;QACH,CAAC;KAAA;IAEM,GAAG,CAAC,OAAe;;YACxB,IAAI,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACpB,IAAI,QAAQ,GAAG,cAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAC;YAClC,IAAI,CAAC,QAAQ,EAAE;gBACb,EAAE,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW;oBACvF,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;oBAC1B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC9B,QAAQ,GAAG,cAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAC;aAC/B;YAED,OAAO,QAAQ,EAAE;gBACf,oBAAM,QAAQ,CAAA,CAAC;gBAEf,IAAI,EAAE,KAAK,cAAc,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,UAAU,IAAI,EAAE,KAAK,UAAU,CAAC,EAAE;oBAC7E,EAAE,GAAG,cAAoB,CAAC;iBAC3B;qBAAM,IAAI,OAAO,CAAC,EAAE,KAAK,eAAe,EAAE;oBACzC,EAAE,GAAG,WAAiB,CAAC;iBACxB;qBAAM,IAAI,OAAO,CAAC,EAAE,KAAK,gBAAgB,EAAE;oBAC1C,EAAE,GAAG,WAAiB,CAAC;iBACxB;qBAAM;oBACL,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;iBACvE;gBAED,IAAI,CAAC,EAAE;oBAAE,MAAM;gBACf,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,CAAC,CAAC;oBAAE,MAAM;gBACd,OAAO,GAAG,CAAC,CAAC;gBACZ,QAAQ,GAAG,cAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAC;aAC/B;QACH,CAAC;KAAA;IAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,WAAyB;;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;SAC3B;QAED,MAAM,KAAK,GAAqC,EAAE,CAAC;;YAEnD,KAA6B,IAAA,KAAA,cAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA,IAAA;gBAAnC,MAAM,QAAQ,WAAA,CAAA;gBACvB,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACrB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE;wBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBACxC,IAAI,IAAI,EAAE;4BACR,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;4BAC1C,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;gCAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;6BACpE;yBACF;qBACF;iBACF;aACF;;;;;;;;;QAED,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAAmB,EAAE,WAAyB;;;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACpE,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;;YAE3C,KAA6B,IAAA,KAAA,cAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA,IAAA;gBAAnC,MAAM,QAAQ,WAAA,CAAA;gBACvB,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAA,QAAQ,CAAC,QAAQ,0CAAG,IAAI,CAAC,EAAE,CAAC,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;oBAClF,OAAO,IAAI,CAAC;iBACb;aACF;;;;;;;;;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAU,EAAE,OAAiC,EAAE,GAA6B;QACzF,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,CACb,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;YAC9D,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAC/D,CAAC;QAEF,IAAI,GAAG,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACvD,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAExD,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE;YACnE,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,SAAS,GAAG,KAAK,CAAC;YAEtB,IAAI,MAAM,KAAK,CAAC,EAAE;gBAChB,SAAS,IAAI,GAAG,CAAC;gBACjB,SAAS,GAAG,IAAI,CAAC;aAClB;YACD,IAAI,SAAS;gBAAE,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAElD,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gBACjC,SAAS,IAAI,GAAG,CAAC;gBACjB,SAAS,GAAG,IAAI,CAAC;aAClB;YACD,IAAI,SAAS;gBAAE,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAElD,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzE,SAAS,IAAI,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5C,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;SACzC;aAAM;YACL,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;SACzD;IACH,CAAC;CACF;AA7ID,8BA6IC;AAED,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAEjE,MAAM,KAAK,GAAyC;IAClD,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI;IAClB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK;IACrC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK;IACtC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK;IAC1E,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK;IACtC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK;IAC3E,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK;CACjD,CAAC;AAEF,MAAM,OAAO,GAA6D;IACxE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;IAChB,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;IACtB,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;IACvB,GAAG,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC;IAC9B,GAAG,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAC/B,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IACrB,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;CACxB,CAAC;AAEF,MAAa,KAAK;IAEhB,YAAY,GAAQ;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE,GAAG,EAAE,EAAE,EAAW,EAAE,KAAK,GAAG,GAAG,EAAE,MAAe;QACjF,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE;YACpB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,GAAG,SAAS,CAAC;SACpB;QACD,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;SACxF;aAAM;YACL,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;YACjE,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;oBAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC7D,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI;oBAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;aAC9D;YACD,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;IAED,GAAG,CAAC,CAAS;QACX,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,IAAI,GAAG,KAAK;QAC/B,IAAI,CAAC,GAA+B,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,CAAC,GAAG,KAAK,CAAC;QACjD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAI,KAA6B,EAAE,GAAM;QAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;SACzC;QACD,OAAO,KAAsB,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,GAAwB;QAC9B,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACzD,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACzD,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACzD,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;YACrB,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IAED,IAAI,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,EAAU;QACb,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;CACF;AAhED,sBAgEC"}
@@ -1 +1 @@
1
- var _this=this;function _defineProperties(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _createClass(e,t,i){return t&&_defineProperties(e.prototype,t),i&&_defineProperties(e,i),e}!function(){"use strict";var e={},t=_this&&_this.__await||function(e){return this instanceof t?(this.v=e,this):new t(e)},i=_this&&_this.__asyncGenerator||function(e,i,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s,r=n.apply(e,i||[]),o=[];return s={},a("next"),a("throw"),a("return"),s[Symbol.asyncIterator]=function(){return this},s;function a(e){r[e]&&(s[e]=function(t){return new Promise((function(i,n){o.push([e,t,i,n])>1||h(e,t)}))})}function h(e,i){try{(n=r[e](i)).value instanceof t?Promise.resolve(n.value.v).then(c,u):d(o[0][2],n)}catch(e){d(o[0][3],e)}var n}function c(e){h("next",e)}function u(e){h("throw",e)}function d(e,t){e(t),o.shift(),o.length&&h(o[0][0],o[0][1])}},n=_this&&_this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,i=e[Symbol.asyncIterator];return i?i.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(i){t[i]=e[i]&&function(t){return new Promise((function(n,s){(function(e,t,i,n){Promise.resolve(n).then((function(t){e({value:t,done:i})}),t)})(n,s,(t=e[i](t)).done,t.value)}))}}};e.Stats=e.Learnsets=e.Type=e.Types=e.Natures=e.Conditions=e.Specie=e.Species=e.Moves=e.Items=e.Abilities=e.Generation=e.Generations=e.toID=void 0;var s=function(e){return!!e.exists&&((!("isNonstandard"in e)||!e.isNonstandard)&&(("Ability"!==e.kind||"noability"!==e.id)&&!("tier"in e&&["Illegal","Unreleased"].includes(e.tier))))},r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t?(e>>>0)%2**t:e>>>0};function o(e,t,i){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&!i.has(n)&&(e[n]=t[n]);return e}function a(e){return(null==e?void 0:e.id)&&(e=e.id),"string"!=typeof e&&"number"!=typeof e?"":(""+e).toLowerCase().replace(/[^a-z0-9]+/g,"")}e.toID=a;var h=function(e){function t(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s;this.cache=Object.create(null),this.dex=e,this.exists=t}var i=t.prototype;return i.get=function(e){return this.cache[e]?this.cache[e]:this.cache[e]=new c(this.dex.forGen(e),this.exists)},i[e]=function*(){for(var e=1;e<=8;e++)yield this.get(e)},t}(Symbol.iterator);e.Generations=h;var c=function(){function e(e,t){this.dex=e,this.exists=t,this.abilities=new u(this.dex,this.exists),this.items=new d(this.dex,this.exists),this.moves=new f(this.dex,this.exists),this.species=new l(this.dex,this.exists),this.natures=new g(this.dex,this.exists),this.types=new x(this.dex,this.exists),this.learnsets=new D(this,this.dex,this.exists),this.conditions=new p(this.dex,this.exists),this.stats=new I(this.dex)}var t=e.prototype;return t.toString=function(){return"[Generation:"+this.num+"]"},t.toJSON=function(){return this.toString()},_createClass(e,[{key:"num",get:function(){return this.dex.gen}}]),e}();e.Generation=c;var u=function(e){function t(e,t){this.dex=e,this.exists=t}var i=t.prototype;return i.get=function(e){var t=this.dex.abilities.get(e);return this.exists(t)?t:void 0},i[e]=function*(){for(var e in this.dex.data.Abilities){var t=this.get(e);t&&(yield t)}},t}(Symbol.iterator);e.Abilities=u;var d=function(e){function t(e,t){this.dex=e,this.exists=t}var i=t.prototype;return i.get=function(e){var t=this.dex.items.get(e);return this.exists(t)?t:void 0},i[e]=function*(){for(var e in this.dex.data.Items){var t=this.get(e);t&&(yield t)}},t}(Symbol.iterator);e.Items=d;var f=function(e){function t(e,t){this.dex=e,this.exists=t}var i=t.prototype;return i.get=function(e){var t=this.dex.moves.get(e);return this.exists(t)?t:void 0},i[e]=function*(){for(var e in this.dex.data.Moves){var t=this.get(e);t&&(yield t)}},t}(Symbol.iterator);e.Moves=f;var l=function(e){function t(e,t){this.cache=Object.create(null),this.dex=e,this.exists=t}var i=t.prototype;return i.get=function(e){var t=this.dex.species.get(e);if(this.exists(t)){var i=t.speciesid||t.id,n=this.cache[i];return n||(this.cache[i]=new v(this.dex,this.exists,t))}},i[e]=function*(){for(var e in this.dex.data.Species){var t=this.get(e);t&&(yield t)}},t}(Symbol.iterator);e.Species=l;var v=function(){function e(t,i,n){var s,r,a,h,c,u,d,f,l,v=this;o(this,n,e.EXCLUDE),this.dex=t,this.dex.gen>=2?(this.gender=n.gender,this.genderRatio=n.genderRatio):this.genderRatio={M:0,F:0},this.dex.gen>=3?(this.abilities={0:n.abilities[0]},n.abilities[1]&&this.dex.abilities.get(n.abilities[1]).gen<=this.dex.gen&&(this.abilities[1]=n.abilities[1]),this.dex.gen>=5&&n.abilities.H&&(this.abilities.H=n.abilities.H),this.dex.gen>=7&&n.abilities.S&&(this.abilities.S=n.abilities.S)):this.abilities={0:""},this.evos=null===(s=n.evos)||void 0===s?void 0:s.filter((function(e){return i(v.dex.species.get(e))})),this.nfe=!!(null===(r=this.evos)||void 0===r?void 0:r.length),this.nfe||(this.evos=void 0),this.cosmeticFormes=null===(a=n.cosmeticFormes)||void 0===a?void 0:a.filter((function(e){return i(v.dex.species.get(e))})),(null===(h=this.cosmeticFormes)||void 0===h?void 0:h.length)||(this.cosmeticFormes=void 0),this.otherFormes=null===(c=n.otherFormes)||void 0===c?void 0:c.filter((function(e){return i(v.dex.species.get(e))})),(null===(u=this.otherFormes)||void 0===u?void 0:u.length)||(this.otherFormes=void 0),this.formeOrder=null===(d=n.formeOrder)||void 0===d?void 0:d.filter((function(e){return i(v.dex.species.get(e))})),(null===(f=this.formeOrder)||void 0===f?void 0:f.length)||(this.formeOrder=void 0),this.formes=null===(l=this.formeOrder)||void 0===l?void 0:l.filter((function(e){return!v.dex.species.get(e).isGigantamax})),this.prevo=n.prevo&&i(this.dex.species.get(n.prevo))?n.prevo:void 0}var t=e.prototype;return t.toString=function(){return this.name},t.toJSON=function(){return o({},this,new Set(["dex"]))},_createClass(e,[{key:"formeNum",get:function(){var e=this;return this.baseSpecies===this.name?this.formeOrder?this.formeOrder.findIndex((function(t){return t===e.name})):0:this.dex.species.get(this.baseSpecies).formeOrder.findIndex((function(t){return t===(e.isGigantamax?e.baseSpecies:e.name)}))}}]),e}();e.Specie=v,v.EXCLUDE=new Set(["abilities","cosmeticFormes","evos","gender","genderRatio","nfe","otherFormes","prevo"]);var p=function(){function e(e,t){this.dex=e,this.exists=t}return e.prototype.get=function(e){var t=this.dex.conditions.get(e);return this.exists(t)?t:void 0},e}();e.Conditions=p;var g=function(e){function t(e,t){this.dex=e,this.exists=t}var i=t.prototype;return i.get=function(e){if(!(this.dex.gen<3)){var t=this.dex.natures.get(e);return this.exists(t)?t:void 0}},i[e]=function*(){for(var e in this.dex.data.Natures){var t=this.get(e);t&&(yield t)}},t}(Symbol.iterator);e.Natures=g;var y={"-2":.25,"-1":.5,0:1,1:2,2:4},x=function(e){function t(e,t){this.cache=Object.create(null),this.dex=e,this.exists=t,this.unknown=new S({effectType:"Type",kind:"Type",id:"",name:"???",exists:e.gen<=4,gen:1,damageTaken:{},HPivs:{},HPdvs:{}},e,this)}var i=t.prototype;return i.get=function(e){if("???"===e)return this.unknown;var t=this.dex.types.get(e);if(this.exists(t)){var i=this.cache[t.id];return i||(this.cache[t.id]=new S(t,this.dex,this))}},i[e]=function*(){for(var e in this.dex.data.Types){var t=this.get(e);t&&(yield t)}this.dex.gen>=2&&this.dex.gen<=4&&(yield this.unknown)},i.getHiddenPower=function(e){return this.dex.getHiddenPower(e)},i.canDamage=function(e,t){return this.dex.getImmunity(e,t)},i.totalEffectiveness=function(e,t){if(!this.canDamage(e,t))return 0;var i=""+this.dex.getEffectiveness(e,t);return y[i]},t}(Symbol.iterator);e.Types=x;var m=[1,2,.5,0],b=["Fire","Water","Grass","Electric","Ice","Psychic","Dark","Dragon"],S=function(){function e(e,t,i){for(var n in Object.assign(this,e),this.types=i,this.category="Fairy"===this.name?void 0:b.includes(this.name)?"Special":"Physical",this.effectiveness={"???":1},t.data.Types){var s=n.charAt(0).toUpperCase()+n.slice(1);this.effectiveness[s]=m[t.data.Types[n].damageTaken[this.name]||0]}}var t=e.prototype;return t.canDamage=function(e){return this.types.canDamage(this.name,e)},t.totalEffectiveness=function(e){return this.types.totalEffectiveness(this.name,e)},t.toString=function(){return this.name},t.toJSON=function(){return o({},this,new Set(["types"]))},e}();e.Type=S;var w=new Set(["cut","fly","surf","strength","flash","rocksmash","waterfall","dive"]),k=new Set(["cut","fly","surf","strength","rocksmash","waterfall","rockclimb"]),D=function(e){function s(e,t,i){this.cache=Object.create(null),this.gen=e,this.dex=t,this.exists=i}var r=s.prototype;return r.get=async function(e){var t=await this.dex.learnsets.get(a(e));return this.exists(t)?t:void 0},r[e]=function(){return i(this,arguments,(function*(){for(var e in this.dex.data.Learnsets||(yield t(this.dex.learnsets.get("LOAD"))),this.dex.data.Learnsets){var i=yield t(this.get(e));i&&(yield yield t(i))}}))},r.all=function(e){return i(this,arguments,(function*(){var i=e.id,n=yield t(this.get(i));for(n||(i="string"==typeof e.battleOnly&&e.battleOnly!==e.baseSpecies?a(e.battleOnly):a(e.baseSpecies),n=yield t(this.get(i)));n&&(yield yield t(n),i="lycanrocdusk"===i||"rockruff"===e.id&&"rockruff"===i?"rockruffdusk":"gastrodoneast"===e.id?"gastrodon":"pumpkaboosuper"===e.id?"pumpkaboo":a(e.battleOnly||e.changesFrom||e.prevo));){var s=this.gen.species.get(i);if(!s)break;e=s,n=yield t(this.get(i))}}))},r.learnable=async function(e,t){var i,r,o=this,a=this.gen.species.get(e);if(a){if(!t){var h=this.cache[a.id];if(h)return h}var c={};try{for(var u,d=n(this.all(a));!(u=await d.next()).done;){var f=u.value;if(f.learnset)for(var l in f.learnset){var v=this.gen.moves.get(l);if(v){var p=f.learnset[l];s.isLegal(v,p,t||this.gen)&&(c[v.id]=p.filter((function(e){return+e.charAt(0)<=o.gen.num})))}}}}catch(e){i={error:e}}finally{try{u&&!u.done&&(r=d.return)&&await r.call(d)}finally{if(i)throw i.error}}return t||(this.cache[a.id]=c),c}},r.canLearn=async function(e,t,i){var r,o,a,h=this.gen.species.get(e);if(!h)return!1;if("string"==typeof(t="string"==typeof t&&this.gen.moves.get(t)||t))return!1;try{for(var c,u=n(this.all(h));!(c=await u.next()).done;){var d=c.value;if(s.isLegal(t,null===(a=d.learnset)||void 0===a?void 0:a[t.id],i||this.gen))return!0}}catch(e){r={error:e}}finally{try{c&&!c.done&&(o=u.return)&&await o.call(u)}finally{if(r)throw r.error}}return!1},s.isLegal=function(e,t,i){if(t){var n=t.map((function(e){return Number(e[0])})),s=Math.min.apply(Math,n),r=7===s&&t.every((function(e){return"7"!==e[0]||"7V"===e}))||8===s&&t.every((function(e){return"8"!==e[0]||"8V"===e}));if("Pentagon"===i)return n.includes(6);if("Plus"===i)return n.includes(7)&&!r;if("Galar"===i)return n.includes(8)&&!r;if(s<=4&&(w.has(e.id)||k.has(e.id))){var o="",a=!1;3===s&&(o+="3",a=!0),a&&(a=!w.has(e.id)),(a||n.includes(4))&&(o+="4",a=!0),a&&(a=!k.has(e.id));var h=a?5:Math.min.apply(Math,n.filter((function(e){return e>4})));return(o+="012345678".slice(h)).includes(""+i.num)}return"012345678".slice(s).includes(""+i.num)}},s}(Symbol.iterator);e.Learnsets=D;var O=["hp","atk","def","spe","spa","spd"],_={HP:"hp",hp:"hp",Attack:"atk",Atk:"atk",atk:"atk",Defense:"def",Def:"def",def:"def","Special Attack":"spa",SpA:"spa",SAtk:"spa",SpAtk:"spa",spa:"spa",Special:"spa",spc:"spa",Spc:"spa","Special Defense":"spd",SpD:"spd",SDef:"spd",SpDef:"spd",spd:"spd",Speed:"spe",Spe:"spe",Spd:"spe",spe:"spe"},P={hp:["HP","HP"],atk:["Atk","Attack"],def:["Def","Defense"],spa:["SpA","Special Attack"],spd:["SpD","Special Defense"],spe:["Spe","Speed"],spc:["Spc","Special"]},I=function(e){function t(e){this.dex=e}var i=t.prototype;return i.calc=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:31,n=arguments.length>3?arguments[3]:void 0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:100,o=arguments.length>5?arguments[5]:void 0;if(void 0===n&&(n=this.dex.gen<3?252:0),this.dex.gen<3&&(i=2*this.toDV(i),o=void 0),"hp"===e)return 1===t?t:r(r(2*t+i+r(n/4)+100)*s/100+10);var a=r(r(2*t+i+r(n/4))*s/100+5);if(void 0!==o){if(o.plus===e)return r(r(110*a,16)/100);if(o.minus===e)return r(r(90*a,16)/100)}return a},i.get=function(e){return _[e]},i.display=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=_[e];return void 0===i?e:(1===this.dex.gen&&"spa"===i&&(i="spc"),P[i][+t])},i.fill=function(e,t){for(var i=0;i<O.length;i++){var n=O[i];n in e||(e[n]=t)}return e},i.getHPDV=function(e){return this.toDV(void 0===e.atk?31:e.atk)%2*8+this.toDV(void 0===e.def?31:e.def)%2*4+this.toDV(void 0===e.spe?31:e.spe)%2*2+this.toDV(void 0===e.spa?31:e.spa)%2},i[e]=function*(){for(var e=0;e<O.length;e++){var t=O[e];yield t}},i.toDV=function(e){return Math.floor(e/2)},i.toIV=function(e){return 2*e+1},t}(Symbol.iterator);e.Stats=I,window.Generations=e.Generations}();
1
+ var _this=this;function _defineProperties(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _createClass(e,t,i){return t&&_defineProperties(e.prototype,t),i&&_defineProperties(e,i),e}!function(){"use strict";var e={},t=_this&&_this.__await||function(e){return this instanceof t?(this.v=e,this):new t(e)},i=_this&&_this.__asyncGenerator||function(e,i,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s,r=n.apply(e,i||[]),o=[];return s={},a("next"),a("throw"),a("return"),s[Symbol.asyncIterator]=function(){return this},s;function a(e){r[e]&&(s[e]=function(t){return new Promise((function(i,n){o.push([e,t,i,n])>1||h(e,t)}))})}function h(e,i){try{(n=r[e](i)).value instanceof t?Promise.resolve(n.value.v).then(c,u):d(o[0][2],n)}catch(e){d(o[0][3],e)}var n}function c(e){h("next",e)}function u(e){h("throw",e)}function d(e,t){e(t),o.shift(),o.length&&h(o[0][0],o[0][1])}},n=_this&&_this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,i=e[Symbol.asyncIterator];return i?i.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(i){t[i]=e[i]&&function(t){return new Promise((function(n,s){(function(e,t,i,n){Promise.resolve(n).then((function(t){e({value:t,done:i})}),t)})(n,s,(t=e[i](t)).done,t.value)}))}}};e.Stats=e.Learnsets=e.Type=e.Types=e.Natures=e.Conditions=e.Specie=e.Species=e.Moves=e.Items=e.Abilities=e.Generation=e.Generations=e.toID=void 0;var s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t?(e>>>0)%2**t:e>>>0};function r(e,t,i){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&!i.has(n)&&(e[n]=t[n]);return e}function o(e){return(null==e?void 0:e.id)&&(e=e.id),"string"!=typeof e&&"number"!=typeof e?"":(""+e).toLowerCase().replace(/[^a-z0-9]+/g,"")}e.toID=o;var a=function(e){function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t.DEFAULT_EXISTS;this.cache=Object.create(null),this.dex=e,this.exists=i}var i=t.prototype;return i.get=function(e){var t=this;return this.cache[e]?this.cache[e]:this.cache[e]=new h(this.dex.forGen(e),(function(i){return t.exists(i,e)}))},i[e]=function*(){for(var e=1;e<=8;e++)yield this.get(e)},t}(Symbol.iterator);e.Generations=a,a.DEFAULT_EXISTS=function(e){return!!e.exists&&((!("isNonstandard"in e)||!e.isNonstandard)&&(("Ability"!==e.kind||"noability"!==e.id)&&!("tier"in e&&["Illegal","Unreleased"].includes(e.tier))))};var h=function(){function e(e,t){this.dex=e,this.exists=t,this.abilities=new c(this.dex,this.exists),this.items=new u(this.dex,this.exists),this.moves=new d(this.dex,this.exists),this.species=new f(this.dex,this.exists),this.natures=new p(this.dex,this.exists),this.types=new y(this.dex,this.exists),this.learnsets=new k(this,this.dex,this.exists),this.conditions=new v(this.dex,this.exists),this.stats=new P(this.dex)}var t=e.prototype;return t.toString=function(){return"[Generation:"+this.num+"]"},t.toJSON=function(){return this.toString()},_createClass(e,[{key:"num",get:function(){return this.dex.gen}}]),e}();e.Generation=h;var c=function(e){function t(e,t){this.dex=e,this.exists=t}var i=t.prototype;return i.get=function(e){var t=this.dex.abilities.get(e);return this.exists(t)?t:void 0},i[e]=function*(){for(var e in this.dex.data.Abilities){var t=this.get(e);t&&(yield t)}},t}(Symbol.iterator);e.Abilities=c;var u=function(e){function t(e,t){this.dex=e,this.exists=t}var i=t.prototype;return i.get=function(e){var t=this.dex.items.get(e);return this.exists(t)?t:void 0},i[e]=function*(){for(var e in this.dex.data.Items){var t=this.get(e);t&&(yield t)}},t}(Symbol.iterator);e.Items=u;var d=function(e){function t(e,t){this.dex=e,this.exists=t}var i=t.prototype;return i.get=function(e){var t=this.dex.moves.get(e);return this.exists(t)?t:void 0},i[e]=function*(){for(var e in this.dex.data.Moves){var t=this.get(e);t&&(yield t)}},t}(Symbol.iterator);e.Moves=d;var f=function(e){function t(e,t){this.cache=Object.create(null),this.dex=e,this.exists=t}var i=t.prototype;return i.get=function(e){var t=this.dex.species.get(e);if(this.exists(t)){var i=t.speciesid||t.id,n=this.cache[i];return n||(this.cache[i]=new l(this.dex,this.exists,t))}},i[e]=function*(){for(var e in this.dex.data.Species){var t=this.get(e);t&&(yield t)}},t}(Symbol.iterator);e.Species=f;var l=function(){function e(t,i,n){var s,o,a,h,c,u,d,f,l,v=this;r(this,n,e.EXCLUDE),this.dex=t,this.dex.gen>=2?(this.gender=n.gender,this.genderRatio=n.genderRatio):this.genderRatio={M:0,F:0},this.dex.gen>=3?(this.abilities={0:n.abilities[0]},n.abilities[1]&&this.dex.abilities.get(n.abilities[1]).gen<=this.dex.gen&&(this.abilities[1]=n.abilities[1]),this.dex.gen>=5&&n.abilities.H&&(this.abilities.H=n.abilities.H),this.dex.gen>=7&&n.abilities.S&&(this.abilities.S=n.abilities.S)):this.abilities={0:""},this.evos=null===(s=n.evos)||void 0===s?void 0:s.filter((function(e){return i(v.dex.species.get(e))})),this.nfe=!!(null===(o=this.evos)||void 0===o?void 0:o.length),this.nfe||(this.evos=void 0),this.cosmeticFormes=null===(a=n.cosmeticFormes)||void 0===a?void 0:a.filter((function(e){return i(v.dex.species.get(e))})),(null===(h=this.cosmeticFormes)||void 0===h?void 0:h.length)||(this.cosmeticFormes=void 0),this.otherFormes=null===(c=n.otherFormes)||void 0===c?void 0:c.filter((function(e){return i(v.dex.species.get(e))})),(null===(u=this.otherFormes)||void 0===u?void 0:u.length)||(this.otherFormes=void 0),this.formeOrder=null===(d=n.formeOrder)||void 0===d?void 0:d.filter((function(e){return i(v.dex.species.get(e))})),(null===(f=this.formeOrder)||void 0===f?void 0:f.length)||(this.formeOrder=void 0),this.formes=null===(l=this.formeOrder)||void 0===l?void 0:l.filter((function(e){return!v.dex.species.get(e).isGigantamax})),this.prevo=n.prevo&&i(this.dex.species.get(n.prevo))?n.prevo:void 0}var t=e.prototype;return t.toString=function(){return this.name},t.toJSON=function(){return r({},this,new Set(["dex"]))},_createClass(e,[{key:"formeNum",get:function(){var e=this;return this.baseSpecies===this.name?this.formeOrder?this.formeOrder.findIndex((function(t){return t===e.name})):0:this.dex.species.get(this.baseSpecies).formeOrder.findIndex((function(t){return t===(e.isGigantamax?e.baseSpecies:e.name)}))}}]),e}();e.Specie=l,l.EXCLUDE=new Set(["abilities","cosmeticFormes","evos","gender","genderRatio","nfe","otherFormes","prevo"]);var v=function(){function e(e,t){this.dex=e,this.exists=t}return e.prototype.get=function(e){var t=this.dex.conditions.get(e);return this.exists(t)?t:void 0},e}();e.Conditions=v;var p=function(e){function t(e,t){this.dex=e,this.exists=t}var i=t.prototype;return i.get=function(e){if(!(this.dex.gen<3)){var t=this.dex.natures.get(e);return this.exists(t)?t:void 0}},i[e]=function*(){for(var e in this.dex.data.Natures){var t=this.get(e);t&&(yield t)}},t}(Symbol.iterator);e.Natures=p;var g={"-2":.25,"-1":.5,0:1,1:2,2:4},y=function(e){function t(e,t){this.cache=Object.create(null),this.dex=e,this.exists=t,this.unknown=new S({effectType:"Type",kind:"Type",id:"",name:"???",exists:e.gen<=4,gen:1,damageTaken:{},HPivs:{},HPdvs:{}},e,this)}var i=t.prototype;return i.get=function(e){if("???"===e)return this.unknown;var t=this.dex.types.get(e);if(this.exists(t)){var i=this.cache[t.id];return i||(this.cache[t.id]=new S(t,this.dex,this))}},i[e]=function*(){for(var e in this.dex.data.Types){var t=this.get(e);t&&(yield t)}this.dex.gen>=2&&this.dex.gen<=4&&(yield this.unknown)},i.getHiddenPower=function(e){return this.dex.getHiddenPower(e)},i.canDamage=function(e,t){return this.dex.getImmunity(e,t)},i.totalEffectiveness=function(e,t){if(!this.canDamage(e,t))return 0;var i=""+this.dex.getEffectiveness(e,t);return g[i]},t}(Symbol.iterator);e.Types=y;var x=[1,2,.5,0],m=["Fire","Water","Grass","Electric","Ice","Psychic","Dark","Dragon"],S=function(){function e(e,t,i){for(var n in Object.assign(this,e),this.types=i,this.category="Fairy"===this.name?void 0:m.includes(this.name)?"Special":"Physical",this.effectiveness={"???":1},t.data.Types){var s=n.charAt(0).toUpperCase()+n.slice(1);this.effectiveness[s]=x[t.data.Types[n].damageTaken[this.name]||0]}}var t=e.prototype;return t.canDamage=function(e){return this.types.canDamage(this.name,e)},t.totalEffectiveness=function(e){return this.types.totalEffectiveness(this.name,e)},t.toString=function(){return this.name},t.toJSON=function(){return r({},this,new Set(["types"]))},e}();e.Type=S;var b=new Set(["cut","fly","surf","strength","flash","rocksmash","waterfall","dive"]),w=new Set(["cut","fly","surf","strength","rocksmash","waterfall","rockclimb"]),k=function(e){function s(e,t,i){this.cache=Object.create(null),this.gen=e,this.dex=t,this.exists=i}var r=s.prototype;return r.get=async function(e){var t=await this.dex.learnsets.get(o(e));return this.exists(t)?t:void 0},r[e]=function(){return i(this,arguments,(function*(){for(var e in this.dex.data.Learnsets||(yield t(this.dex.learnsets.get("LOAD"))),this.dex.data.Learnsets){var i=yield t(this.get(e));i&&(yield yield t(i))}}))},r.all=function(e){return i(this,arguments,(function*(){var i=e.id,n=yield t(this.get(i));for(n||(i="string"==typeof e.battleOnly&&e.battleOnly!==e.baseSpecies?o(e.battleOnly):o(e.baseSpecies),n=yield t(this.get(i)));n&&(yield yield t(n),i="lycanrocdusk"===i||"rockruff"===e.id&&"rockruff"===i?"rockruffdusk":"gastrodoneast"===e.id?"gastrodon":"pumpkaboosuper"===e.id?"pumpkaboo":o(e.battleOnly||e.changesFrom||e.prevo));){var s=this.gen.species.get(i);if(!s)break;e=s,n=yield t(this.get(i))}}))},r.learnable=async function(e,t){var i,r,o=this,a=this.gen.species.get(e);if(a){if(!t){var h=this.cache[a.id];if(h)return h}var c={};try{for(var u,d=n(this.all(a));!(u=await d.next()).done;){var f=u.value;if(f.learnset)for(var l in f.learnset){var v=this.gen.moves.get(l);if(v){var p=f.learnset[l];s.isLegal(v,p,t||this.gen)&&(c[v.id]=p.filter((function(e){return+e.charAt(0)<=o.gen.num})))}}}}catch(e){i={error:e}}finally{try{u&&!u.done&&(r=d.return)&&await r.call(d)}finally{if(i)throw i.error}}return t||(this.cache[a.id]=c),c}},r.canLearn=async function(e,t,i){var r,o,a,h=this.gen.species.get(e);if(!h)return!1;if("string"==typeof(t="string"==typeof t&&this.gen.moves.get(t)||t))return!1;try{for(var c,u=n(this.all(h));!(c=await u.next()).done;){var d=c.value;if(s.isLegal(t,null===(a=d.learnset)||void 0===a?void 0:a[t.id],i||this.gen))return!0}}catch(e){r={error:e}}finally{try{c&&!c.done&&(o=u.return)&&await o.call(u)}finally{if(r)throw r.error}}return!1},s.isLegal=function(e,t,i){if(t){var n=t.map((function(e){return Number(e[0])})),s=Math.min.apply(Math,n),r=7===s&&t.every((function(e){return"7"!==e[0]||"7V"===e}))||8===s&&t.every((function(e){return"8"!==e[0]||"8V"===e}));if("Pentagon"===i)return n.includes(6);if("Plus"===i)return n.includes(7)&&!r;if("Galar"===i)return n.includes(8)&&!r;if(s<=4&&(b.has(e.id)||w.has(e.id))){var o="",a=!1;3===s&&(o+="3",a=!0),a&&(a=!b.has(e.id)),(a||n.includes(4))&&(o+="4",a=!0),a&&(a=!w.has(e.id));var h=a?5:Math.min.apply(Math,n.filter((function(e){return e>4})));return(o+="012345678".slice(h)).includes(""+i.num)}return"012345678".slice(s).includes(""+i.num)}},s}(Symbol.iterator);e.Learnsets=k;var D=["hp","atk","def","spe","spa","spd"],_={HP:"hp",hp:"hp",Attack:"atk",Atk:"atk",atk:"atk",Defense:"def",Def:"def",def:"def","Special Attack":"spa",SpA:"spa",SAtk:"spa",SpAtk:"spa",spa:"spa",Special:"spa",spc:"spa",Spc:"spa","Special Defense":"spd",SpD:"spd",SDef:"spd",SpDef:"spd",spd:"spd",Speed:"spe",Spe:"spe",Spd:"spe",spe:"spe"},O={hp:["HP","HP"],atk:["Atk","Attack"],def:["Def","Defense"],spa:["SpA","Special Attack"],spd:["SpD","Special Defense"],spe:["Spe","Speed"],spc:["Spc","Special"]},P=function(e){function t(e){this.dex=e}var i=t.prototype;return i.calc=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:31,n=arguments.length>3?arguments[3]:void 0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:100,o=arguments.length>5?arguments[5]:void 0;if(void 0===n&&(n=this.dex.gen<3?252:0),this.dex.gen<3&&(i=2*this.toDV(i),o=void 0),"hp"===e)return 1===t?t:s(s(2*t+i+s(n/4)+100)*r/100+10);var a=s(s(2*t+i+s(n/4))*r/100+5);if(void 0!==o){if(o.plus===e)return s(s(110*a,16)/100);if(o.minus===e)return s(s(90*a,16)/100)}return a},i.get=function(e){return _[e]},i.display=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=_[e];return void 0===i?e:(1===this.dex.gen&&"spa"===i&&(i="spc"),O[i][+t])},i.fill=function(e,t){for(var i=0;i<D.length;i++){var n=D[i];n in e||(e[n]=t)}return e},i.getHPDV=function(e){return this.toDV(void 0===e.atk?31:e.atk)%2*8+this.toDV(void 0===e.def?31:e.def)%2*4+this.toDV(void 0===e.spe?31:e.spe)%2*2+this.toDV(void 0===e.spa?31:e.spa)%2},i[e]=function*(){for(var e=0;e<D.length;e++){var t=D[e];yield t}},i.toDV=function(e){return Math.floor(e/2)},i.toIV=function(e){return 2*e+1},t}(Symbol.iterator);e.Stats=P,window.Generations=e.Generations}();
package/index.ts CHANGED
@@ -36,7 +36,8 @@ const DEFAULT_EXISTS = (d: Data) => {
36
36
 
37
37
  const tr = (num: number, bits = 0) => bits ? (num >>> 0) % (2 ** bits) : num >>> 0;
38
38
 
39
- type ExistsFn = typeof DEFAULT_EXISTS;
39
+ export type ExistsFn = (d: Data, g: GenerationNum) => boolean;
40
+ type BoundExistsFn = (d: Data) => boolean;
40
41
 
41
42
  function assignWithout(a: {[key: string]: any}, b: {[key: string]: any}, exclude: Set<string>) {
42
43
  for (const key in b) {
@@ -59,14 +60,16 @@ export class Generations {
59
60
  private readonly dex: Dex;
60
61
  private readonly exists: ExistsFn;
61
62
 
62
- constructor(dex: Dex, exists = DEFAULT_EXISTS) {
63
+ static DEFAULT_EXISTS = DEFAULT_EXISTS;
64
+
65
+ constructor(dex: Dex, exists = Generations.DEFAULT_EXISTS) {
63
66
  this.dex = dex;
64
67
  this.exists = exists;
65
68
  }
66
69
 
67
70
  get(gen: GenerationNum) {
68
71
  if (this.cache[gen]) return this.cache[gen];
69
- return (this.cache[gen] = new Generation(this.dex.forGen(gen), this.exists));
72
+ return (this.cache[gen] = new Generation(this.dex.forGen(gen), d => this.exists(d, gen)));
70
73
  }
71
74
 
72
75
  *[Symbol.iterator]() {
@@ -89,9 +92,9 @@ export class Generation {
89
92
 
90
93
  readonly dex: Dex;
91
94
 
92
- private readonly exists: ExistsFn;
95
+ private readonly exists: BoundExistsFn;
93
96
 
94
- constructor(dex: Dex, exists: ExistsFn) {
97
+ constructor(dex: Dex, exists: BoundExistsFn) {
95
98
  this.dex = dex;
96
99
  this.exists = exists;
97
100
 
@@ -121,9 +124,9 @@ export class Generation {
121
124
 
122
125
  export class Abilities {
123
126
  private readonly dex: Dex;
124
- private readonly exists: ExistsFn;
127
+ private readonly exists: BoundExistsFn;
125
128
 
126
- constructor(dex: Dex, exists: ExistsFn) {
129
+ constructor(dex: Dex, exists: BoundExistsFn) {
127
130
  this.dex = dex;
128
131
  this.exists = exists;
129
132
  }
@@ -143,9 +146,9 @@ export class Abilities {
143
146
 
144
147
  export class Items {
145
148
  private readonly dex: Dex;
146
- private readonly exists: ExistsFn;
149
+ private readonly exists: BoundExistsFn;
147
150
 
148
- constructor(dex: Dex, exists: ExistsFn) {
151
+ constructor(dex: Dex, exists: BoundExistsFn) {
149
152
  this.dex = dex;
150
153
  this.exists = exists;
151
154
  }
@@ -165,9 +168,9 @@ export class Items {
165
168
 
166
169
  export class Moves {
167
170
  private readonly dex: Dex;
168
- private readonly exists: ExistsFn;
171
+ private readonly exists: BoundExistsFn;
169
172
 
170
- constructor(dex: Dex, exists: ExistsFn) {
173
+ constructor(dex: Dex, exists: BoundExistsFn) {
171
174
  this.dex = dex;
172
175
  this.exists = exists;
173
176
  }
@@ -189,9 +192,9 @@ export class Species {
189
192
  private readonly cache = Object.create(null) as { [id: string]: Specie };
190
193
 
191
194
  private readonly dex: Dex;
192
- private readonly exists: ExistsFn;
195
+ private readonly exists: BoundExistsFn;
193
196
 
194
- constructor(dex: Dex, exists: ExistsFn) {
197
+ constructor(dex: Dex, exists: BoundExistsFn) {
195
198
  this.dex = dex;
196
199
  this.exists = exists;
197
200
  }
@@ -283,7 +286,7 @@ export class Specie implements DexSpecies {
283
286
  'prevo',
284
287
  ]);
285
288
 
286
- constructor(dex: Dex, exists: ExistsFn, species: DexSpecies) {
289
+ constructor(dex: Dex, exists: BoundExistsFn, species: DexSpecies) {
287
290
  assignWithout(this, species, Specie.EXCLUDE);
288
291
  this.dex = dex;
289
292
  if (this.dex.gen >= 2) {
@@ -337,9 +340,9 @@ export class Specie implements DexSpecies {
337
340
 
338
341
  export class Conditions {
339
342
  private readonly dex: Dex;
340
- private readonly exists: ExistsFn;
343
+ private readonly exists: BoundExistsFn;
341
344
 
342
- constructor(dex: Dex, exists: ExistsFn) {
345
+ constructor(dex: Dex, exists: BoundExistsFn) {
343
346
  this.dex = dex;
344
347
  this.exists = exists;
345
348
  }
@@ -352,9 +355,9 @@ export class Conditions {
352
355
 
353
356
  export class Natures {
354
357
  private readonly dex: Dex;
355
- private readonly exists: ExistsFn;
358
+ private readonly exists: BoundExistsFn;
356
359
 
357
- constructor(dex: Dex, exists: ExistsFn) {
360
+ constructor(dex: Dex, exists: BoundExistsFn) {
358
361
  this.dex = dex;
359
362
  this.exists = exists;
360
363
  }
@@ -388,9 +391,9 @@ export class Types {
388
391
 
389
392
  private readonly unknown: Type;
390
393
  private readonly dex: Dex;
391
- private readonly exists: ExistsFn;
394
+ private readonly exists: BoundExistsFn;
392
395
 
393
- constructor(dex: Dex, exists: ExistsFn) {
396
+ constructor(dex: Dex, exists: BoundExistsFn) {
394
397
  this.dex = dex;
395
398
  this.exists = exists;
396
399
  // PS doesn't contain data for the '???' type
@@ -510,9 +513,9 @@ export class Learnsets {
510
513
 
511
514
  private readonly gen: Generation;
512
515
  private readonly dex: Dex;
513
- private readonly exists: ExistsFn;
516
+ private readonly exists: BoundExistsFn;
514
517
 
515
- constructor(gen: Generation, dex: Dex, exists: ExistsFn) {
518
+ constructor(gen: Generation, dex: Dex, exists: BoundExistsFn) {
516
519
  this.gen = gen;
517
520
  this.dex = dex;
518
521
  this.exists = exists;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pkmn/data",
3
- "version": "0.4.23",
3
+ "version": "0.5.0",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "unpkg": "build/production.min.js",
@@ -16,11 +16,12 @@
16
16
  "index.ts"
17
17
  ],
18
18
  "dependencies": {
19
- "@pkmn/dex-types": "^0.4.23"
19
+ "@pkmn/dex-types": "^0.5.0"
20
20
  },
21
21
  "devDependencies": {
22
- "@pkmn/dex": "^0.4.23",
23
- "@pkmn/sim": "^0.4.23",
22
+ "@pkmn/dex": "^0.5.0",
23
+ "@pkmn/mods": "^0.5.0",
24
+ "@pkmn/sim": "^0.5.0",
24
25
  "@smogon/calc": "^0.6.0"
25
26
  },
26
27
  "scripts": {
@@ -41,7 +42,8 @@
41
42
  "build/"
42
43
  ],
43
44
  "moduleNameMapper": {
44
- "^@smogon/calc/(.*)$": "<rootDir>/node_modules/@smogon/calc/dist/$1"
45
+ "^@smogon/calc/(.*)$": "<rootDir>/node_modules/@smogon/calc/dist/$1",
46
+ "^@pkmn/mods/(.*)$": "<rootDir>/node_modules/@pkmn/mods/build/$1"
45
47
  }
46
48
  }
47
49
  }