@pokepc/dataset 7.0.0 → 7.1.1
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 +57 -1
- package/build/{box-preset-sanitizer-BE4i0vEj.mjs → box-preset-sanitizer-DRi4Ayrn.mjs} +2 -2
- package/build/{box-preset-sanitizer-BE4i0vEj.mjs.map → box-preset-sanitizer-DRi4Ayrn.mjs.map} +1 -1
- package/build/enums-Ajt5avHN.mjs +488 -0
- package/build/enums-Ajt5avHN.mjs.map +1 -0
- package/build/enums-DCL82p1t.d.mts +66 -0
- package/build/enums-DCL82p1t.d.mts.map +1 -0
- package/build/{evolution-schemas-BZQILLSQ.mjs → evolution-schemas-Db7-jivr.mjs} +2 -2
- package/build/{evolution-schemas-BZQILLSQ.mjs.map → evolution-schemas-Db7-jivr.mjs.map} +1 -1
- package/build/form-schemas-BjyAMPZU.mjs +166 -0
- package/build/form-schemas-BjyAMPZU.mjs.map +1 -0
- package/build/form-schemas-Bq10Ac7d.d.mts +1407 -0
- package/build/form-schemas-Bq10Ac7d.d.mts.map +1 -0
- package/build/lib/availability-sources.mjs +1 -1
- package/build/lib/availability-sources.mjs.map +1 -1
- package/build/lib/box-preset-sanitizer.mjs +1 -1
- package/build/lib/box-preset-transform.mjs +2 -2
- package/build/lib/enums.d.mts +2 -2
- package/build/lib/enums.mjs +2 -2
- package/build/lib/evolution-schemas.mjs +1 -1
- package/build/lib/form-methods.d.mts +11 -0
- package/build/lib/form-methods.d.mts.map +1 -0
- package/build/lib/form-methods.mjs +56 -0
- package/build/lib/form-methods.mjs.map +1 -0
- package/build/lib/form-schemas.d.mts +2 -0
- package/build/lib/form-schemas.mjs +2 -0
- package/build/lib/fs.d.mts +6 -6
- package/build/lib/schemas.d.mts +3 -2
- package/build/lib/schemas.mjs +4 -3
- package/build/lib/types.d.mts +7 -2
- package/build/lib/types.d.mts.map +1 -1
- package/build/lib-next/schemas.d.mts +8 -8
- package/build/{schemas-30DCmCcg.mjs → schemas-Bl5_UJHu.mjs} +6 -4
- package/build/schemas-Bl5_UJHu.mjs.map +1 -0
- package/build/{schemas-D2xLu3LV.d.mts → schemas-Cw4Mrff5.d.mts} +589 -11
- package/build/schemas-Cw4Mrff5.d.mts.map +1 -0
- package/data/items.json +140 -0
- package/data/pokedexes/xd.json +16 -1
- package/data/pokemon/abomasnow-mega.json +26 -1
- package/data/pokemon/absol-mega-z.json +18 -1
- package/data/pokemon/absol-mega.json +26 -1
- package/data/pokemon/aegislash-blade.json +66 -0
- package/data/pokemon/aerodactyl-mega.json +34 -1
- package/data/pokemon/aggron-mega.json +26 -1
- package/data/pokemon/alakazam-mega.json +34 -1
- package/data/pokemon/alcremie-gmax.json +76 -0
- package/data/pokemon/altaria-mega.json +26 -1
- package/data/pokemon/ampharos-mega.json +26 -1
- package/data/pokemon/appletun-gmax.json +12 -0
- package/data/pokemon/arceus-bug.json +145 -1
- package/data/pokemon/arceus-dark.json +145 -1
- package/data/pokemon/arceus-dragon.json +145 -1
- package/data/pokemon/arceus-electric.json +145 -1
- package/data/pokemon/arceus-fairy.json +121 -1
- package/data/pokemon/arceus-fighting.json +145 -1
- package/data/pokemon/arceus-fire.json +145 -1
- package/data/pokemon/arceus-flying.json +145 -1
- package/data/pokemon/arceus-ghost.json +145 -1
- package/data/pokemon/arceus-grass.json +145 -1
- package/data/pokemon/arceus-ground.json +145 -1
- package/data/pokemon/arceus-ice.json +145 -1
- package/data/pokemon/arceus-legendary.json +55 -1
- package/data/pokemon/arceus-poison.json +145 -1
- package/data/pokemon/arceus-psychic.json +145 -1
- package/data/pokemon/arceus-rock.json +145 -1
- package/data/pokemon/arceus-steel.json +145 -1
- package/data/pokemon/arceus-water.json +145 -1
- package/data/pokemon/arceus.json +263 -0
- package/data/pokemon/audino-mega.json +26 -1
- package/data/pokemon/banette-mega.json +26 -1
- package/data/pokemon/barbaracle-mega.json +18 -1
- package/data/pokemon/basculin-blue-striped.json +1 -0
- package/data/pokemon/baxcalibur-mega.json +18 -1
- package/data/pokemon/beedrill-mega.json +34 -1
- package/data/pokemon/blastoise-gmax.json +12 -0
- package/data/pokemon/blastoise-mega.json +34 -1
- package/data/pokemon/blaziken-mega.json +26 -1
- package/data/pokemon/burmy-sandy.json +95 -0
- package/data/pokemon/burmy-trash.json +52 -0
- package/data/pokemon/burmy.json +52 -0
- package/data/pokemon/butterfree-gmax.json +12 -0
- package/data/pokemon/calyrex-ice.json +18 -0
- package/data/pokemon/calyrex-shadow.json +18 -0
- package/data/pokemon/camerupt-mega.json +26 -1
- package/data/pokemon/castform-rainy.json +64 -0
- package/data/pokemon/castform-snowy.json +64 -0
- package/data/pokemon/castform-sunny.json +64 -0
- package/data/pokemon/centiskorch-gmax.json +12 -0
- package/data/pokemon/chandelure-mega.json +18 -1
- package/data/pokemon/charizard-gmax.json +12 -0
- package/data/pokemon/charizard-mega-x.json +34 -1
- package/data/pokemon/charizard-mega-y.json +34 -1
- package/data/pokemon/cherrim-sunshine.json +219 -0
- package/data/pokemon/chesnaught-mega.json +18 -1
- package/data/pokemon/chimecho-mega.json +18 -1
- package/data/pokemon/cinderace-gmax.json +12 -0
- package/data/pokemon/clefable-mega.json +18 -1
- package/data/pokemon/coalossal-gmax.json +12 -0
- package/data/pokemon/copperajah-gmax.json +12 -0
- package/data/pokemon/corviknight-gmax.json +12 -0
- package/data/pokemon/crabominable-mega.json +18 -1
- package/data/pokemon/cramorant-gorging.json +67 -0
- package/data/pokemon/cramorant-gulping.json +67 -0
- package/data/pokemon/darkrai-mega.json +18 -0
- package/data/pokemon/darmanitan-galar-zen.json +24 -0
- package/data/pokemon/darmanitan-zen.json +31 -0
- package/data/pokemon/deerling-autumn.json +47 -0
- package/data/pokemon/deerling-summer.json +36 -0
- package/data/pokemon/deerling-winter.json +47 -0
- package/data/pokemon/deerling.json +47 -0
- package/data/pokemon/delphox-mega.json +18 -1
- package/data/pokemon/deoxys-attack.json +90 -0
- package/data/pokemon/deoxys-defense.json +90 -0
- package/data/pokemon/deoxys-speed.json +90 -0
- package/data/pokemon/deoxys.json +117 -0
- package/data/pokemon/dialga-origin.json +40 -1
- package/data/pokemon/diancie-mega.json +26 -1
- package/data/pokemon/dragalge-mega.json +18 -1
- package/data/pokemon/dragonite-mega.json +18 -1
- package/data/pokemon/drampa-mega.json +18 -1
- package/data/pokemon/drednaw-gmax.json +12 -0
- package/data/pokemon/duraludon-gmax.json +12 -0
- package/data/pokemon/eelektross-mega.json +18 -1
- package/data/pokemon/eevee-gmax.json +12 -0
- package/data/pokemon/eiscue-noice.json +32 -0
- package/data/pokemon/emboar-mega.json +18 -1
- package/data/pokemon/empoleon.json +1 -0
- package/data/pokemon/enamorus-therian.json +16 -0
- package/data/pokemon/excadrill-mega.json +18 -1
- package/data/pokemon/falinks-mega.json +18 -1
- package/data/pokemon/feraligatr-mega.json +18 -1
- package/data/pokemon/flapple-gmax.json +12 -0
- package/data/pokemon/floette-eternal-mega.json +18 -1
- package/data/pokemon/froslass-mega.json +18 -1
- package/data/pokemon/furfrou-dandy.json +191 -0
- package/data/pokemon/furfrou-debutante.json +191 -0
- package/data/pokemon/furfrou-diamond.json +191 -0
- package/data/pokemon/furfrou-heart.json +191 -0
- package/data/pokemon/furfrou-kabuki.json +191 -0
- package/data/pokemon/furfrou-la-reine.json +191 -0
- package/data/pokemon/furfrou-matron.json +191 -0
- package/data/pokemon/furfrou-pharaoh.json +191 -0
- package/data/pokemon/furfrou-star.json +191 -0
- package/data/pokemon/furfrou.json +99 -0
- package/data/pokemon/gallade-mega.json +26 -1
- package/data/pokemon/garbodor-gmax.json +12 -0
- package/data/pokemon/garchomp-mega-z.json +18 -1
- package/data/pokemon/garchomp-mega.json +26 -1
- package/data/pokemon/gardevoir-mega.json +26 -1
- package/data/pokemon/genesect-burn.json +25 -1
- package/data/pokemon/genesect-chill.json +25 -1
- package/data/pokemon/genesect-douse.json +25 -1
- package/data/pokemon/genesect-shock.json +25 -1
- package/data/pokemon/genesect.json +29 -0
- package/data/pokemon/gengar-gmax.json +12 -0
- package/data/pokemon/gengar-mega.json +34 -1
- package/data/pokemon/gengar.json +1 -0
- package/data/pokemon/giratina-origin.json +118 -1
- package/data/pokemon/glalie-mega.json +26 -1
- package/data/pokemon/glimmora-mega.json +18 -1
- package/data/pokemon/golisopod-mega.json +18 -1
- package/data/pokemon/golurk-mega.json +18 -1
- package/data/pokemon/greninja-ash.json +25 -0
- package/data/pokemon/greninja-mega.json +18 -1
- package/data/pokemon/grimmsnarl-gmax.json +12 -0
- package/data/pokemon/groudon-primal.json +40 -0
- package/data/pokemon/gyarados-mega.json +34 -1
- package/data/pokemon/hatterene-gmax.json +12 -0
- package/data/pokemon/hawlucha-mega.json +18 -1
- package/data/pokemon/heatran-mega.json +18 -0
- package/data/pokemon/heracross-mega.json +26 -1
- package/data/pokemon/hoopa-unbound.json +60 -0
- package/data/pokemon/houndoom-mega.json +26 -1
- package/data/pokemon/inteleon-gmax.json +12 -0
- package/data/pokemon/kangaskhan-mega.json +34 -1
- package/data/pokemon/keldeo-resolute.json +92 -0
- package/data/pokemon/kingler-gmax.json +12 -0
- package/data/pokemon/kyogre-primal.json +40 -0
- package/data/pokemon/kyurem-black.json +33 -0
- package/data/pokemon/kyurem-white.json +33 -0
- package/data/pokemon/landorus-therian.json +32 -0
- package/data/pokemon/lapras-gmax.json +12 -0
- package/data/pokemon/latias-mega.json +26 -1
- package/data/pokemon/latios-mega.json +26 -1
- package/data/pokemon/lopunny-mega.json +26 -1
- package/data/pokemon/lucario-mega-z.json +18 -1
- package/data/pokemon/lucario-mega.json +26 -1
- package/data/pokemon/machamp-gmax.json +12 -0
- package/data/pokemon/magearna-mega.json +18 -1
- package/data/pokemon/magearna-original-mega.json +18 -1
- package/data/pokemon/malamar-mega.json +18 -1
- package/data/pokemon/manectric-mega.json +26 -1
- package/data/pokemon/mawile-mega.json +26 -1
- package/data/pokemon/mawile.json +0 -1
- package/data/pokemon/medicham-mega.json +26 -1
- package/data/pokemon/meganium-mega.json +18 -1
- package/data/pokemon/melmetal-gmax.json +12 -0
- package/data/pokemon/meloetta-pirouette.json +29 -0
- package/data/pokemon/meowstic-mega.json +18 -1
- package/data/pokemon/meowth-alola.json +2 -0
- package/data/pokemon/meowth-gmax.json +12 -0
- package/data/pokemon/metagross-mega.json +26 -1
- package/data/pokemon/mewtwo-mega-x.json +34 -1
- package/data/pokemon/mewtwo-mega-y.json +34 -1
- package/data/pokemon/mimikyu-busted.json +53 -0
- package/data/pokemon/minior-blue.json +53 -0
- package/data/pokemon/minior-green.json +53 -0
- package/data/pokemon/minior-indigo.json +53 -0
- package/data/pokemon/minior-orange.json +53 -0
- package/data/pokemon/minior-red.json +53 -0
- package/data/pokemon/minior-violet.json +53 -0
- package/data/pokemon/minior-yellow.json +53 -0
- package/data/pokemon/morpeko-hangry.json +57 -0
- package/data/pokemon/necrozma-dawn-wings.json +18 -0
- package/data/pokemon/necrozma-dusk-mane.json +18 -0
- package/data/pokemon/necrozma-ultra.json +21 -0
- package/data/pokemon/ogerpon-cornerstone.json +9 -1
- package/data/pokemon/ogerpon-hearthflame.json +9 -1
- package/data/pokemon/ogerpon-wellspring.json +9 -1
- package/data/pokemon/ogerpon.json +13 -0
- package/data/pokemon/orbeetle-gmax.json +12 -0
- package/data/pokemon/oricorio-pau.json +9 -0
- package/data/pokemon/oricorio-pom-pom.json +9 -0
- package/data/pokemon/oricorio-sensu.json +9 -0
- package/data/pokemon/oricorio.json +9 -0
- package/data/pokemon/palafin-hero.json +16 -0
- package/data/pokemon/palkia-origin.json +40 -1
- package/data/pokemon/persian-alola.json +2 -0
- package/data/pokemon/pidgeot-mega.json +34 -1
- package/data/pokemon/pikachu-gmax.json +12 -0
- package/data/pokemon/pinsir-mega.json +34 -1
- package/data/pokemon/piplup.json +1 -0
- package/data/pokemon/prinplup.json +1 -0
- package/data/pokemon/pyroar-mega.json +18 -1
- package/data/pokemon/raichu-mega-x.json +18 -1
- package/data/pokemon/raichu-mega-y.json +18 -1
- package/data/pokemon/rayquaza-mega.json +29 -0
- package/data/pokemon/rillaboom-gmax.json +12 -0
- package/data/pokemon/rotom-fan.json +94 -0
- package/data/pokemon/rotom-frost.json +94 -0
- package/data/pokemon/rotom-heat.json +94 -0
- package/data/pokemon/rotom-mow.json +94 -0
- package/data/pokemon/rotom-wash.json +94 -0
- package/data/pokemon/rotom.json +112 -0
- package/data/pokemon/sableye-mega.json +26 -1
- package/data/pokemon/salamence-mega.json +26 -1
- package/data/pokemon/sandaconda-gmax.json +12 -0
- package/data/pokemon/sawsbuck-autumn.json +47 -0
- package/data/pokemon/sawsbuck-summer.json +36 -0
- package/data/pokemon/sawsbuck-winter.json +47 -0
- package/data/pokemon/sawsbuck.json +47 -0
- package/data/pokemon/sceptile-mega.json +26 -1
- package/data/pokemon/scizor-mega.json +26 -1
- package/data/pokemon/scolipede-mega.json +18 -1
- package/data/pokemon/scolipede.json +1 -0
- package/data/pokemon/scovillain-mega.json +18 -1
- package/data/pokemon/scrafty-mega.json +18 -1
- package/data/pokemon/sharpedo-mega.json +26 -1
- package/data/pokemon/shaymin-sky.json +151 -0
- package/data/pokemon/shiftry-f.json +1 -0
- package/data/pokemon/shiftry.json +1 -0
- package/data/pokemon/silvally-bug.json +27 -1
- package/data/pokemon/silvally-dark.json +27 -1
- package/data/pokemon/silvally-dragon.json +27 -1
- package/data/pokemon/silvally-electric.json +27 -1
- package/data/pokemon/silvally-fairy.json +27 -1
- package/data/pokemon/silvally-fighting.json +27 -1
- package/data/pokemon/silvally-fire.json +27 -1
- package/data/pokemon/silvally-flying.json +27 -1
- package/data/pokemon/silvally-ghost.json +27 -1
- package/data/pokemon/silvally-grass.json +27 -1
- package/data/pokemon/silvally-ground.json +27 -1
- package/data/pokemon/silvally-ice.json +27 -1
- package/data/pokemon/silvally-poison.json +27 -1
- package/data/pokemon/silvally-psychic.json +27 -1
- package/data/pokemon/silvally-rock.json +27 -1
- package/data/pokemon/silvally-steel.json +27 -1
- package/data/pokemon/silvally-water.json +27 -1
- package/data/pokemon/silvally.json +50 -0
- package/data/pokemon/skarmory-mega.json +18 -1
- package/data/pokemon/slowbro-mega.json +34 -1
- package/data/pokemon/snorlax-gmax.json +12 -0
- package/data/pokemon/staraptor-mega.json +18 -0
- package/data/pokemon/starmie-mega.json +18 -1
- package/data/pokemon/steelix-mega.json +26 -1
- package/data/pokemon/swampert-mega.json +26 -1
- package/data/pokemon/tatsugiri-droopy-mega.json +18 -1
- package/data/pokemon/tatsugiri-mega.json +18 -1
- package/data/pokemon/tatsugiri-stretchy-mega.json +18 -1
- package/data/pokemon/terapagos-stellar.json +15 -0
- package/data/pokemon/terapagos-terastal.json +15 -0
- package/data/pokemon/thundurus-therian.json +32 -0
- package/data/pokemon/tornadus-therian.json +32 -0
- package/data/pokemon/toxtricity-gmax.json +12 -0
- package/data/pokemon/toxtricity-low-key-gmax.json +12 -0
- package/data/pokemon/tyranitar-mega.json +26 -1
- package/data/pokemon/urshifu-gmax.json +12 -0
- package/data/pokemon/urshifu-rapid-strike-gmax.json +12 -0
- package/data/pokemon/venipede.json +1 -0
- package/data/pokemon/venusaur-gmax.json +12 -0
- package/data/pokemon/venusaur-mega.json +34 -1
- package/data/pokemon/victreebel-mega.json +18 -1
- package/data/pokemon/whirlipede.json +1 -0
- package/data/pokemon/wishiwashi-school.json +24 -0
- package/data/pokemon/xerneas-active.json +11 -0
- package/data/pokemon/zacian-crowned.json +19 -1
- package/data/pokemon/zamazenta-crowned.json +19 -1
- package/data/pokemon/zeraora-mega.json +18 -1
- package/data/pokemon/zygarde-10.json +19 -0
- package/data/pokemon/zygarde-complete-mega.json +18 -1
- package/data/pokemon/zygarde-complete.json +36 -0
- package/data/pokemon/zygarde.json +33 -0
- package/package.json +4 -1
- package/build/enums-CXl-yCW7.mjs +0 -274
- package/build/enums-CXl-yCW7.mjs.map +0 -1
- package/build/enums-DNGH357y.d.mts +0 -43
- package/build/enums-DNGH357y.d.mts.map +0 -1
- package/build/schemas-30DCmCcg.mjs.map +0 -1
- package/build/schemas-D2xLu3LV.d.mts.map +0 -1
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
//#region src/lib/enums.d.ts
|
|
2
|
+
declare const gameType: readonly ["superset", "set", "game", "dlc"];
|
|
3
|
+
declare const gamePlatforms: readonly ["gb", "gbc", "gba", "nds", "3ds", "mobile", "ngc", "wii", "wiiu", "switch", "switch2"];
|
|
4
|
+
declare const gameSeries: readonly ["main", "spinoff", "storage", "legends"];
|
|
5
|
+
declare const itemCategory: readonly ["ball", "medicine", "battle", "berry", "machine", "megastone", "zcrystal", "treasure", "ingredient", "material", "key", "other"];
|
|
6
|
+
declare const pokeballCategory: readonly ["regular", "special", "hisuian", "other"];
|
|
7
|
+
declare const languageIds: readonly ["en", "es", "esla", "fr", "de", "it", "ja", "ko", "chs", "cht", "pt"];
|
|
8
|
+
declare const languageAlpha3Codes: readonly ["eng", "esp", "esla", "fra", "deu", "ita", "jap", "kor", "chs", "cht", "por"];
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated use gameLocales from lib-next/languages
|
|
11
|
+
*/
|
|
12
|
+
declare const languageInGameCodes: readonly ["ENG", "ES-ES", "ES-LA", "FRA", "DEU", "ITA", "JPN", "KOR", "CHT", "CHS", "PT-BR"];
|
|
13
|
+
declare const ribbonCategory: readonly ["league", "contest", "tower", "memory", "gift"];
|
|
14
|
+
declare const typeIds: readonly ["normal", "fire", "water", "electric", "grass", "ice", "fighting", "poison", "ground", "flying", "psychic", "bug", "rock", "ghost", "dragon", "dark", "steel", "fairy", "stellar"];
|
|
15
|
+
/** Category tags on abilities (data/abilities.json `tags`). */
|
|
16
|
+
declare const abilityTagIds: readonly ["alert", "ally-helper", "stat-boost", "move-boost", "bypass", "defense", "handicap", "heal", "items", "priority-control", "damage", "target-weaken", "status-trigger", "status-immunity", "steal", "weather", "terrain", "trap", "ability-change", "type-change", "species-specific", "other"];
|
|
17
|
+
declare const statIds: readonly ["hp", "atk", "def", "spa", "spd", "spe", "acc", "eva"];
|
|
18
|
+
declare const moveCategory: readonly ["physical", "special", "status"];
|
|
19
|
+
declare const genders: readonly ["m", "f"];
|
|
20
|
+
declare const titleTypes: readonly ["ribbon", "mark", "custom"];
|
|
21
|
+
declare const pokemonSizes: readonly ["xs", "s", "m", "l", "xl"];
|
|
22
|
+
declare const ivJudgeValues: readonly ["nogood", "decent", "good", "verygood", "fantastic", "best"];
|
|
23
|
+
declare const battleStyles: readonly ["singles", "doubles", "triples", "rotation", "royale"];
|
|
24
|
+
declare const raidStyles: readonly ["dynamax", "tera"];
|
|
25
|
+
/** Evolution vocabulary, also used by the evolution schemas. */
|
|
26
|
+
declare const evoTriggers: readonly ["level_up", "trade", "use_item", "special"];
|
|
27
|
+
declare const evoItemRoles: readonly ["held", "used", "bag"];
|
|
28
|
+
declare const evoActivations: readonly ["automatic", "manual"];
|
|
29
|
+
declare const evoConditionKeys: readonly ["friendship", "affection", "beauty", "gender", "time_of_day", "known_move", "known_move_type", "ability", "party_pokemon", "party_type", "trade_partner", "attack_defense_comparison", "overworld_weather", "location", "region", "device_upside_down", "union_circle", "walk_steps", "outside_poke_ball", "battle_experience", "use_move", "hit_with_move", "recoil_damage_without_fainting", "damage_without_fainting", "critical_hits_in_one_battle", "defeat_pokemon_holding_item", "spin", "hidden_value_branch", "nature", "spare_party_slot", "spare_poke_ball", "evolve_other", "full_moon", "interact_with_scroll", "vivillon_pattern", "candy"];
|
|
30
|
+
declare const evoGenders: readonly ["male", "female", "genderless"];
|
|
31
|
+
declare const evoTimesOfDay: readonly ["day", "night", "dusk"];
|
|
32
|
+
declare const evoStatComparisons: readonly ["lt", "eq", "gt"];
|
|
33
|
+
declare const evoWeather: readonly ["rain", "fog"];
|
|
34
|
+
declare const evoLocations: readonly ["magnetic_field", "moss_rock", "ice_rock", "mount_lanakila", "dusty_bowl_arch", "coulant_waterway_bridge"];
|
|
35
|
+
declare const evoRegionRelations: readonly ["in", "outside"];
|
|
36
|
+
declare const evoWalkModes: readonly ["lets_go"];
|
|
37
|
+
declare const evoMoveStyles: readonly ["agile", "strong"];
|
|
38
|
+
declare const evoSpinDirections: readonly ["clockwise", "counterclockwise", "either"];
|
|
39
|
+
declare const evoSpinComparisons: readonly ["lt", "gt"];
|
|
40
|
+
declare const evoScrolls: readonly ["darkness", "waters"];
|
|
41
|
+
/** Form transition vocabulary, also used by the form schemas. */
|
|
42
|
+
declare const formTriggers: readonly ["use_item", "equip_item", "remove_item", "learn_move", "forget_move", "use_move", "interact", "fuse", "separate", "automatic", "special"];
|
|
43
|
+
declare const formItemRoles: readonly ["held", "used", "bag"];
|
|
44
|
+
declare const formConditionKeys: readonly ["ability", "known_move", "move_used", "move_category", "time_of_day", "status", "fusion_partner", "interaction", "location", "environment", "season", "elapsed_time", "storage_event", "transfer", "battle_event", "original_form", "intrinsic_form", "spare_party_slot", "mechanic", "hp", "weather", "held_item_absent", "battle_condition"];
|
|
45
|
+
declare const formMoveRelations: readonly ["knows", "does_not_know"];
|
|
46
|
+
declare const formTimesOfDay: readonly ["morning", "day", "dusk", "evening", "night"];
|
|
47
|
+
declare const formStatuses: readonly ["frozen", "frostbite", "fainted"];
|
|
48
|
+
declare const formStatusRelations: readonly ["is", "not"];
|
|
49
|
+
declare const formInteractions: readonly ["contest_spectacular_ends", "deoxys_meteorite", "electric_fan", "enter_contest_spectacular", "enter_union_room", "enter_wifi_club", "furfrou_groom", "furfrou_restore_natural", "lawn_mower", "leave_distortion_world", "light_bulb", "load_game", "microwave_oven", "reassembly_unit", "recall_outside_battle", "refrigerator", "return_appliance", "washing_machine"];
|
|
50
|
+
declare const formLocations: readonly ["alabaster_icelands", "ambrette_fossil_lab_meteorites", "bell_tower", "burned_tower", "cobalt_coastlands", "coronet_highlands", "crimson_mirelands", "dalizapa_passage", "distortion_world", "east_province_area_one", "east_province_area_two", "friseur_furfrou", "glaseado_mountain", "hauoli_city_salon", "hokulani_observatory_meteorite", "jaune_sector_6", "jubilife_village", "jubilife_village_player_quarters", "kanto_route_3_meteorites", "malie_city_salon", "nacrene_museum_meteorite", "north_province_area_one", "obsidian_fieldlands", "professor_birchs_lab", "professor_cozmos_house_meteorite", "professor_kukuis_lab", "shopping_mall_nine_basement", "silph_co_rotom_room", "slateport_pokemon_fan_club", "socarrat_trail", "south_province_area_five", "south_province_area_four", "south_province_area_one", "sprout_tower", "sycamore_pokemon_lab", "team_galactic_eterna_building_rotom_room", "veilstone_city_meteorites", "west_province_area_three", "west_province_area_two"];
|
|
51
|
+
declare const formEnvironments: readonly ["building", "cave_or_beach", "outdoors_or_tall_grass", "outside_distortion_world", "snowstorm"];
|
|
52
|
+
declare const formSeasons: readonly ["spring", "summer", "autumn", "winter"];
|
|
53
|
+
declare const formTimeUnits: readonly ["turns", "days", "seconds"];
|
|
54
|
+
declare const formStorageEvents: readonly ["deposit", "withdrawal"];
|
|
55
|
+
declare const formStorageServices: readonly ["bank", "day_care", "home", "nursery", "pc"];
|
|
56
|
+
declare const formBattleEvents: readonly ["battle_start", "battle_end", "switch_in", "switch_out", "end_of_turn", "before_move", "after_move", "damaging_hit", "physical_hit", "faint"];
|
|
57
|
+
/** Event shorthand accepted by formMethods[].revert. */
|
|
58
|
+
declare const formRevertEvents: readonly ["battle_start", "battle_end", "switch_in", "switch_out", "end_of_turn", "before_move", "after_move", "damaging_hit", "physical_hit", "faint"];
|
|
59
|
+
declare const formMechanics: readonly ["change_a_move_other_than_secret_sword", "dynamax", "gigantamax", "in_party", "legend_plate", "mega_evolution", "not_holding_griseous_orb", "participated_in_battle", "terastallization", "ultra_burst"];
|
|
60
|
+
declare const formComparisons: readonly ["lt", "lte", "eq", "gte", "gt"];
|
|
61
|
+
declare const formWeather: readonly ["sun", "rain", "hail", "snow", "none"];
|
|
62
|
+
declare const formWeatherRelations: readonly ["in", "outside"];
|
|
63
|
+
declare const formBattleConditions: readonly ["ability_is_not_sheer_force", "at_least_40_additional_zygarde_cells", "battle_bond_not_previously_used", "battle_continues", "confusion_self_hit", "directly_knock_out_opponent", "disguise_not_bypassed", "forecast_suppressed_or_replaced", "gigantamax_factor", "hail_or_snow_begins", "ice_face_not_bypassed", "in_battle", "judgment_type_match", "legends_arceus_sunshine_conditions_ended", "mega_gauge_full", "mega_power_depleted", "move_affects_at_least_one_target", "move_deals_damage", "not_dynamaxed", "not_terastallized", "rayquaza_mega_eligible", "sunlight_effect_or_flower_gift_inactive", "ultra_burst_unused_by_trainer", "weather_effects_active", "weather_effects_negated", "zen_mode_suppressed_or_replaced"];
|
|
64
|
+
//#endregion
|
|
65
|
+
export { statIds as $, formStatusRelations as A, gameSeries as B, formInteractions as C, formMoveRelations as D, formMechanics as E, formTimesOfDay as F, languageAlpha3Codes as G, genders as H, formTriggers as I, moveCategory as J, languageIds as K, formWeather as L, formStorageEvents as M, formStorageServices as N, formRevertEvents as O, formTimeUnits as P, ribbonCategory as Q, formWeatherRelations as R, formEnvironments as S, formLocations as T, itemCategory as U, gameType as V, ivJudgeValues as W, pokemonSizes as X, pokeballCategory as Y, raidStyles as Z, evoWeather as _, evoGenders as a, formComparisons as b, evoMoveStyles as c, evoSpinComparisons as d, titleTypes as et, evoSpinDirections as f, evoWalkModes as g, evoTriggers as h, evoConditionKeys as i, formStatuses as j, formSeasons as k, evoRegionRelations as l, evoTimesOfDay as m, battleStyles as n, evoItemRoles as o, evoStatComparisons as p, languageInGameCodes as q, evoActivations as r, evoLocations as s, abilityTagIds as t, typeIds as tt, evoScrolls as u, formBattleConditions as v, formItemRoles as w, formConditionKeys as x, formBattleEvents as y, gamePlatforms as z };
|
|
66
|
+
//# sourceMappingURL=enums-DCL82p1t.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums-DCL82p1t.d.mts","names":[],"sources":["../src/lib/enums.ts"],"mappings":";cAAa;cACA;cAaA;cACA;cAcA;cACA;cAaA;;;;cAiBA;cAcA;cACA;;cAyBA;cAyBA;cACA;cACA;cACA;cACA;cAWA;cAEA;cACA;;cAGA;cACA;cACA;cACA;cAsCA;cACA;cACA;cACA;cACA;cAQA;cACA;cACA;cACA;cACA;cACA;;cAGA;cAaA;cACA;cAyBA;cACA;cACA;cACA;cACA;cAoBA;cAyCA;cAOA;cACA;cACA;cACA;cACA;;cAaA;cACA;cAYA;cACA;cACA;cACA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { G as languageAlpha3Codes, _ as evoWeather, a as evoGenders, c as evoMoveStyles, d as evoSpinComparisons, f as evoSpinDirections, g as evoWalkModes, h as evoTriggers, i as evoConditionKeys, l as evoRegionRelations, m as evoTimesOfDay, o as evoItemRoles, p as evoStatComparisons, r as evoActivations, s as evoLocations, tt as typeIds, u as evoScrolls } from "./enums-Ajt5avHN.mjs";
|
|
2
2
|
import { z as z$1 } from "zod";
|
|
3
3
|
//#region src/lib/evolution-schemas.ts
|
|
4
4
|
const id = z$1.string().min(1).max(50).regex(/^[a-z0-9-]+$/);
|
|
@@ -179,4 +179,4 @@ const evolutionMethodSchema = z$1.strictObject({
|
|
|
179
179
|
//#endregion
|
|
180
180
|
export { evolutionMethodSchema as n, evolutionConditionSchema as t };
|
|
181
181
|
|
|
182
|
-
//# sourceMappingURL=evolution-schemas-
|
|
182
|
+
//# sourceMappingURL=evolution-schemas-Db7-jivr.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evolution-schemas-BZQILLSQ.mjs","names":["z"],"sources":["../src/lib/evolution-schemas.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n evoActivations,\n evoConditionKeys,\n evoGenders,\n evoItemRoles,\n evoLocations,\n evoMoveStyles,\n evoRegionRelations,\n evoScrolls,\n evoSpinComparisons,\n evoSpinDirections,\n evoStatComparisons,\n evoTimesOfDay,\n evoTriggers,\n evoWalkModes,\n evoWeather,\n languageAlpha3Codes,\n typeIds,\n} from './enums.ts'\n\nconst id = z\n .string()\n .min(1)\n .max(50)\n .regex(/^[a-z0-9-]+$/)\nconst ids = z\n .array(id)\n .min(1)\n .refine((values) => new Set(values).size === values.length, 'Duplicate IDs')\nconst count = z.number().int().positive()\nconst localizedText = z\n .partialRecord(z.enum(languageAlpha3Codes), z.string().min(1))\n .refine((text) => Object.values(text).some(Boolean), 'Provide at least one translation')\nconst conditionKey = z.enum(evoConditionKeys).enum\n\n/** Stable translation keys with validated parameters, not an executable expression language. */\nexport const evolutionConditionSchema = z.discriminatedUnion('key', [\n z.strictObject({ key: z.literal(conditionKey.friendship) }),\n z.strictObject({ key: z.literal(conditionKey.affection), minLevel: count }),\n z.strictObject({\n key: z.literal(conditionKey.beauty),\n minValue: z.number().int().min(0).max(255),\n }),\n z.strictObject({ key: z.literal(conditionKey.gender), gender: z.enum(evoGenders) }),\n z.strictObject({ key: z.literal(conditionKey.time_of_day), time: z.enum(evoTimesOfDay) }),\n z.strictObject({ key: z.literal(conditionKey.known_move), move: id }),\n z.strictObject({ key: z.literal(conditionKey.known_move_type), type: z.enum(typeIds) }),\n z.strictObject({ key: z.literal(conditionKey.ability), abilities: ids }),\n z.strictObject({ key: z.literal(conditionKey.party_pokemon), pokemon: id }),\n z.strictObject({ key: z.literal(conditionKey.party_type), type: z.enum(typeIds) }),\n z.strictObject({ key: z.literal(conditionKey.trade_partner), pokemon: id }),\n z.strictObject({\n key: z.literal(conditionKey.attack_defense_comparison),\n comparison: z.enum(evoStatComparisons),\n }),\n z.strictObject({\n key: z.literal(conditionKey.overworld_weather),\n weather: z.array(z.enum(evoWeather)).min(1),\n }),\n z.strictObject({\n key: z.literal(conditionKey.location),\n location: z.enum(evoLocations),\n }),\n z.strictObject({\n key: z.literal(conditionKey.region),\n region: id,\n relation: z.enum(evoRegionRelations),\n }),\n z.strictObject({ key: z.literal(conditionKey.device_upside_down) }),\n z.strictObject({ key: z.literal(conditionKey.union_circle) }),\n z.strictObject({ key: z.literal(conditionKey.walk_steps), count, mode: z.enum(evoWalkModes) }),\n z.strictObject({ key: z.literal(conditionKey.outside_poke_ball) }),\n z.strictObject({ key: z.literal(conditionKey.battle_experience) }),\n z.strictObject({\n key: z.literal(conditionKey.use_move),\n move: id,\n count,\n style: z.enum(evoMoveStyles).optional(),\n }),\n z.strictObject({ key: z.literal(conditionKey.hit_with_move), move: id, count }),\n z.strictObject({ key: z.literal(conditionKey.recoil_damage_without_fainting), amount: count }),\n z.strictObject({ key: z.literal(conditionKey.damage_without_fainting), amount: count }),\n z.strictObject({ key: z.literal(conditionKey.critical_hits_in_one_battle), count }),\n z.strictObject({\n key: z.literal(conditionKey.defeat_pokemon_holding_item),\n pokemon: id,\n item: id,\n count,\n }),\n z.strictObject({\n key: z.literal(conditionKey.spin),\n direction: z.enum(evoSpinDirections),\n seconds: z.number().positive(),\n comparison: z.enum(evoSpinComparisons),\n }),\n z.strictObject({\n key: z.literal(conditionKey.hidden_value_branch),\n percentage: z.number().positive().max(100),\n }),\n z.strictObject({ key: z.literal(conditionKey.nature), natures: ids }),\n z.strictObject({ key: z.literal(conditionKey.spare_party_slot) }),\n z.strictObject({ key: z.literal(conditionKey.spare_poke_ball) }),\n z.strictObject({ key: z.literal(conditionKey.evolve_other), pokemon: id }),\n z.strictObject({ key: z.literal(conditionKey.full_moon) }),\n z.strictObject({\n key: z.literal(conditionKey.interact_with_scroll),\n scroll: z.enum(evoScrolls),\n }),\n z.strictObject({ key: z.literal(conditionKey.vivillon_pattern), pattern: id }),\n z.strictObject({ key: z.literal(conditionKey.candy), pokemon: id, count }),\n])\n\nexport const evolutionMethodSchema = z\n .strictObject({\n // Alternatives between entries, conjunction within an entry; `from` is a choice of source forms.\n from: ids,\n games: ids.optional(),\n trigger: z.enum(evoTriggers),\n minLevel: z.number().int().min(1).max(100).optional(),\n item: z.strictObject({ id, role: z.enum(evoItemRoles), quantity: count.optional() }).optional(),\n conditions: z.array(evolutionConditionSchema),\n additionalResult: z.boolean().optional(),\n // PLA exposes an Evolve action instead of automatically evolving when requirements are met.\n activation: z.enum(evoActivations).optional(),\n notes: localizedText.optional(),\n })\n .superRefine((method, ctx) => {\n if (method.trigger === 'use_item' && method.item?.role !== 'used') {\n ctx.addIssue({\n code: 'custom',\n path: ['item'],\n message: 'Item-use methods require a used item',\n })\n }\n if (method.item?.role === 'used' && method.trigger !== 'use_item') {\n ctx.addIssue({\n code: 'custom',\n path: ['trigger'],\n message: 'Used items require the use_item trigger',\n })\n }\n if (method.trigger === 'special' && method.conditions.length === 0 && !method.notes) {\n ctx.addIssue({\n code: 'custom',\n path: ['conditions'],\n message: 'Special methods require a condition or explanatory note',\n })\n }\n const keys = method.conditions.map((condition) => condition.key)\n if (new Set(keys).size !== keys.length) {\n ctx.addIssue({\n code: 'custom',\n path: ['conditions'],\n message: 'Use one condition per key; separate alternatives into methods',\n })\n }\n })\n\nexport type EvolutionCondition = z.infer<typeof evolutionConditionSchema>\nexport type EvolutionMethod = z.infer<typeof evolutionMethodSchema>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evolution-schemas-Db7-jivr.mjs","names":["z"],"sources":["../src/lib/evolution-schemas.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n evoActivations,\n evoConditionKeys,\n evoGenders,\n evoItemRoles,\n evoLocations,\n evoMoveStyles,\n evoRegionRelations,\n evoScrolls,\n evoSpinComparisons,\n evoSpinDirections,\n evoStatComparisons,\n evoTimesOfDay,\n evoTriggers,\n evoWalkModes,\n evoWeather,\n languageAlpha3Codes,\n typeIds,\n} from './enums.ts'\n\nconst id = z\n .string()\n .min(1)\n .max(50)\n .regex(/^[a-z0-9-]+$/)\nconst ids = z\n .array(id)\n .min(1)\n .refine((values) => new Set(values).size === values.length, 'Duplicate IDs')\nconst count = z.number().int().positive()\nconst localizedText = z\n .partialRecord(z.enum(languageAlpha3Codes), z.string().min(1))\n .refine((text) => Object.values(text).some(Boolean), 'Provide at least one translation')\nconst conditionKey = z.enum(evoConditionKeys).enum\n\n/** Stable translation keys with validated parameters, not an executable expression language. */\nexport const evolutionConditionSchema = z.discriminatedUnion('key', [\n z.strictObject({ key: z.literal(conditionKey.friendship) }),\n z.strictObject({ key: z.literal(conditionKey.affection), minLevel: count }),\n z.strictObject({\n key: z.literal(conditionKey.beauty),\n minValue: z.number().int().min(0).max(255),\n }),\n z.strictObject({ key: z.literal(conditionKey.gender), gender: z.enum(evoGenders) }),\n z.strictObject({ key: z.literal(conditionKey.time_of_day), time: z.enum(evoTimesOfDay) }),\n z.strictObject({ key: z.literal(conditionKey.known_move), move: id }),\n z.strictObject({ key: z.literal(conditionKey.known_move_type), type: z.enum(typeIds) }),\n z.strictObject({ key: z.literal(conditionKey.ability), abilities: ids }),\n z.strictObject({ key: z.literal(conditionKey.party_pokemon), pokemon: id }),\n z.strictObject({ key: z.literal(conditionKey.party_type), type: z.enum(typeIds) }),\n z.strictObject({ key: z.literal(conditionKey.trade_partner), pokemon: id }),\n z.strictObject({\n key: z.literal(conditionKey.attack_defense_comparison),\n comparison: z.enum(evoStatComparisons),\n }),\n z.strictObject({\n key: z.literal(conditionKey.overworld_weather),\n weather: z.array(z.enum(evoWeather)).min(1),\n }),\n z.strictObject({\n key: z.literal(conditionKey.location),\n location: z.enum(evoLocations),\n }),\n z.strictObject({\n key: z.literal(conditionKey.region),\n region: id,\n relation: z.enum(evoRegionRelations),\n }),\n z.strictObject({ key: z.literal(conditionKey.device_upside_down) }),\n z.strictObject({ key: z.literal(conditionKey.union_circle) }),\n z.strictObject({ key: z.literal(conditionKey.walk_steps), count, mode: z.enum(evoWalkModes) }),\n z.strictObject({ key: z.literal(conditionKey.outside_poke_ball) }),\n z.strictObject({ key: z.literal(conditionKey.battle_experience) }),\n z.strictObject({\n key: z.literal(conditionKey.use_move),\n move: id,\n count,\n style: z.enum(evoMoveStyles).optional(),\n }),\n z.strictObject({ key: z.literal(conditionKey.hit_with_move), move: id, count }),\n z.strictObject({ key: z.literal(conditionKey.recoil_damage_without_fainting), amount: count }),\n z.strictObject({ key: z.literal(conditionKey.damage_without_fainting), amount: count }),\n z.strictObject({ key: z.literal(conditionKey.critical_hits_in_one_battle), count }),\n z.strictObject({\n key: z.literal(conditionKey.defeat_pokemon_holding_item),\n pokemon: id,\n item: id,\n count,\n }),\n z.strictObject({\n key: z.literal(conditionKey.spin),\n direction: z.enum(evoSpinDirections),\n seconds: z.number().positive(),\n comparison: z.enum(evoSpinComparisons),\n }),\n z.strictObject({\n key: z.literal(conditionKey.hidden_value_branch),\n percentage: z.number().positive().max(100),\n }),\n z.strictObject({ key: z.literal(conditionKey.nature), natures: ids }),\n z.strictObject({ key: z.literal(conditionKey.spare_party_slot) }),\n z.strictObject({ key: z.literal(conditionKey.spare_poke_ball) }),\n z.strictObject({ key: z.literal(conditionKey.evolve_other), pokemon: id }),\n z.strictObject({ key: z.literal(conditionKey.full_moon) }),\n z.strictObject({\n key: z.literal(conditionKey.interact_with_scroll),\n scroll: z.enum(evoScrolls),\n }),\n z.strictObject({ key: z.literal(conditionKey.vivillon_pattern), pattern: id }),\n z.strictObject({ key: z.literal(conditionKey.candy), pokemon: id, count }),\n])\n\nexport const evolutionMethodSchema = z\n .strictObject({\n // Alternatives between entries, conjunction within an entry; `from` is a choice of source forms.\n from: ids,\n games: ids.optional(),\n trigger: z.enum(evoTriggers),\n minLevel: z.number().int().min(1).max(100).optional(),\n item: z.strictObject({ id, role: z.enum(evoItemRoles), quantity: count.optional() }).optional(),\n conditions: z.array(evolutionConditionSchema),\n additionalResult: z.boolean().optional(),\n // PLA exposes an Evolve action instead of automatically evolving when requirements are met.\n activation: z.enum(evoActivations).optional(),\n notes: localizedText.optional(),\n })\n .superRefine((method, ctx) => {\n if (method.trigger === 'use_item' && method.item?.role !== 'used') {\n ctx.addIssue({\n code: 'custom',\n path: ['item'],\n message: 'Item-use methods require a used item',\n })\n }\n if (method.item?.role === 'used' && method.trigger !== 'use_item') {\n ctx.addIssue({\n code: 'custom',\n path: ['trigger'],\n message: 'Used items require the use_item trigger',\n })\n }\n if (method.trigger === 'special' && method.conditions.length === 0 && !method.notes) {\n ctx.addIssue({\n code: 'custom',\n path: ['conditions'],\n message: 'Special methods require a condition or explanatory note',\n })\n }\n const keys = method.conditions.map((condition) => condition.key)\n if (new Set(keys).size !== keys.length) {\n ctx.addIssue({\n code: 'custom',\n path: ['conditions'],\n message: 'Use one condition per key; separate alternatives into methods',\n })\n }\n })\n\nexport type EvolutionCondition = z.infer<typeof evolutionConditionSchema>\nexport type EvolutionMethod = z.infer<typeof evolutionMethodSchema>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { A as formStatusRelations, C as formInteractions, D as formMoveRelations, E as formMechanics, F as formTimesOfDay, G as languageAlpha3Codes, I as formTriggers, J as moveCategory, L as formWeather, M as formStorageEvents, N as formStorageServices, O as formRevertEvents, P as formTimeUnits, R as formWeatherRelations, S as formEnvironments, T as formLocations, b as formComparisons, j as formStatuses, k as formSeasons, v as formBattleConditions, w as formItemRoles, x as formConditionKeys, y as formBattleEvents } from "./enums-Ajt5avHN.mjs";
|
|
2
|
+
import { z as z$1 } from "zod";
|
|
3
|
+
//#region src/lib/form-schemas.ts
|
|
4
|
+
const id = z$1.string().min(1).max(50).regex(/^[a-z0-9-]+$/);
|
|
5
|
+
const ids = z$1.array(id).min(1).refine((values) => new Set(values).size === values.length, "Duplicate IDs");
|
|
6
|
+
const key = z$1.enum(formConditionKeys).enum;
|
|
7
|
+
/** Requirements for a transition, with stable translation keys and typed parameters. */
|
|
8
|
+
const formConditionSchema = z$1.discriminatedUnion("key", [
|
|
9
|
+
z$1.strictObject({
|
|
10
|
+
key: z$1.literal(key.ability),
|
|
11
|
+
abilities: ids
|
|
12
|
+
}),
|
|
13
|
+
z$1.strictObject({
|
|
14
|
+
key: z$1.literal(key.known_move),
|
|
15
|
+
move: id,
|
|
16
|
+
relation: z$1.enum(formMoveRelations).optional()
|
|
17
|
+
}),
|
|
18
|
+
z$1.strictObject({
|
|
19
|
+
key: z$1.literal(key.move_used),
|
|
20
|
+
move: id
|
|
21
|
+
}),
|
|
22
|
+
z$1.strictObject({
|
|
23
|
+
key: z$1.literal(key.move_category),
|
|
24
|
+
categories: z$1.array(z$1.enum(moveCategory)).min(1)
|
|
25
|
+
}),
|
|
26
|
+
z$1.strictObject({
|
|
27
|
+
key: z$1.literal(key.time_of_day),
|
|
28
|
+
time: z$1.enum(formTimesOfDay)
|
|
29
|
+
}),
|
|
30
|
+
z$1.strictObject({
|
|
31
|
+
key: z$1.literal(key.status),
|
|
32
|
+
status: z$1.enum(formStatuses),
|
|
33
|
+
relation: z$1.enum(formStatusRelations)
|
|
34
|
+
}),
|
|
35
|
+
z$1.strictObject({
|
|
36
|
+
key: z$1.literal(key.fusion_partner),
|
|
37
|
+
pokemon: id
|
|
38
|
+
}),
|
|
39
|
+
z$1.strictObject({
|
|
40
|
+
key: z$1.literal(key.interaction),
|
|
41
|
+
interaction: z$1.enum(formInteractions)
|
|
42
|
+
}),
|
|
43
|
+
z$1.strictObject({
|
|
44
|
+
key: z$1.literal(key.location),
|
|
45
|
+
location: z$1.enum(formLocations)
|
|
46
|
+
}),
|
|
47
|
+
z$1.strictObject({
|
|
48
|
+
key: z$1.literal(key.environment),
|
|
49
|
+
environment: z$1.enum(formEnvironments)
|
|
50
|
+
}),
|
|
51
|
+
z$1.strictObject({
|
|
52
|
+
key: z$1.literal(key.season),
|
|
53
|
+
season: z$1.enum(formSeasons)
|
|
54
|
+
}),
|
|
55
|
+
z$1.strictObject({
|
|
56
|
+
key: z$1.literal(key.elapsed_time),
|
|
57
|
+
amount: z$1.number().positive(),
|
|
58
|
+
unit: z$1.enum(formTimeUnits)
|
|
59
|
+
}),
|
|
60
|
+
z$1.strictObject({
|
|
61
|
+
key: z$1.literal(key.storage_event),
|
|
62
|
+
event: z$1.enum(formStorageEvents),
|
|
63
|
+
service: z$1.enum(formStorageServices).optional()
|
|
64
|
+
}),
|
|
65
|
+
z$1.strictObject({
|
|
66
|
+
key: z$1.literal(key.transfer),
|
|
67
|
+
destination: id
|
|
68
|
+
}),
|
|
69
|
+
z$1.strictObject({
|
|
70
|
+
key: z$1.literal(key.battle_event),
|
|
71
|
+
events: z$1.array(z$1.enum(formBattleEvents)).min(1)
|
|
72
|
+
}),
|
|
73
|
+
z$1.strictObject({
|
|
74
|
+
key: z$1.literal(key.original_form),
|
|
75
|
+
forms: ids
|
|
76
|
+
}),
|
|
77
|
+
z$1.strictObject({
|
|
78
|
+
key: z$1.literal(key.intrinsic_form),
|
|
79
|
+
forms: ids
|
|
80
|
+
}),
|
|
81
|
+
z$1.strictObject({ key: z$1.literal(key.spare_party_slot) }),
|
|
82
|
+
z$1.strictObject({
|
|
83
|
+
key: z$1.literal(key.mechanic),
|
|
84
|
+
mechanic: z$1.enum(formMechanics)
|
|
85
|
+
}),
|
|
86
|
+
z$1.strictObject({
|
|
87
|
+
key: z$1.literal(key.hp),
|
|
88
|
+
comparison: z$1.enum(formComparisons),
|
|
89
|
+
percent: z$1.number().min(0).max(100)
|
|
90
|
+
}),
|
|
91
|
+
z$1.strictObject({
|
|
92
|
+
key: z$1.literal(key.weather),
|
|
93
|
+
weather: z$1.array(z$1.enum(formWeather)).min(1),
|
|
94
|
+
relation: z$1.enum(formWeatherRelations)
|
|
95
|
+
}),
|
|
96
|
+
z$1.strictObject({
|
|
97
|
+
key: z$1.literal(key.held_item_absent),
|
|
98
|
+
items: ids
|
|
99
|
+
}),
|
|
100
|
+
z$1.strictObject({
|
|
101
|
+
key: z$1.literal(key.battle_condition),
|
|
102
|
+
condition: z$1.enum(formBattleConditions)
|
|
103
|
+
})
|
|
104
|
+
]);
|
|
105
|
+
const actionShape = {
|
|
106
|
+
trigger: z$1.enum(formTriggers),
|
|
107
|
+
minLevel: z$1.number().int().min(1).max(100).optional(),
|
|
108
|
+
item: z$1.strictObject({
|
|
109
|
+
id,
|
|
110
|
+
role: z$1.enum(formItemRoles),
|
|
111
|
+
consumed: z$1.boolean().optional()
|
|
112
|
+
}).optional(),
|
|
113
|
+
conditions: z$1.array(formConditionSchema),
|
|
114
|
+
notes: z$1.partialRecord(z$1.enum(languageAlpha3Codes), z$1.string().min(1)).refine((text) => Object.values(text).some(Boolean), "Provide at least one translation").optional()
|
|
115
|
+
};
|
|
116
|
+
function validateAction(method, ctx) {
|
|
117
|
+
const requiredRole = method.trigger === "use_item" ? "used" : method.trigger === "equip_item" ? "held" : void 0;
|
|
118
|
+
if (requiredRole && method.item?.role !== requiredRole) ctx.addIssue({
|
|
119
|
+
code: "custom",
|
|
120
|
+
path: ["item"],
|
|
121
|
+
message: `${method.trigger} requires a ${requiredRole} item`
|
|
122
|
+
});
|
|
123
|
+
if (method.item?.consumed && method.item.role !== "used") ctx.addIssue({
|
|
124
|
+
code: "custom",
|
|
125
|
+
path: ["item", "consumed"],
|
|
126
|
+
message: "Only used items can be consumed"
|
|
127
|
+
});
|
|
128
|
+
if (method.trigger === "fuse" && !method.conditions.some((condition) => condition.key === "fusion_partner")) ctx.addIssue({
|
|
129
|
+
code: "custom",
|
|
130
|
+
path: ["conditions"],
|
|
131
|
+
message: "Fusion requires a partner"
|
|
132
|
+
});
|
|
133
|
+
if (method.trigger === "special" && method.conditions.length === 0 && !method.notes) ctx.addIssue({
|
|
134
|
+
code: "custom",
|
|
135
|
+
path: ["conditions"],
|
|
136
|
+
message: "Special methods require a condition or explanatory note"
|
|
137
|
+
});
|
|
138
|
+
const conditions = method.conditions.map((condition) => JSON.stringify(condition));
|
|
139
|
+
if (new Set(conditions).size !== conditions.length) ctx.addIssue({
|
|
140
|
+
code: "custom",
|
|
141
|
+
path: ["conditions"],
|
|
142
|
+
message: "Duplicate condition"
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
z$1.strictObject(actionShape);
|
|
146
|
+
/** Missing games inherits the forward method; null explicitly retains unknown scope. */
|
|
147
|
+
const formRevertDetailSchema = z$1.strictObject({
|
|
148
|
+
to: id.optional(),
|
|
149
|
+
games: ids.nullable().optional(),
|
|
150
|
+
...actionShape
|
|
151
|
+
}).superRefine(validateAction);
|
|
152
|
+
const formRevertSchema = z$1.union([
|
|
153
|
+
z$1.enum(formRevertEvents),
|
|
154
|
+
z$1.strictObject({ afterTurns: z$1.number().int().positive() }),
|
|
155
|
+
formRevertDetailSchema
|
|
156
|
+
]);
|
|
157
|
+
const formMethodSchema = z$1.strictObject({
|
|
158
|
+
from: ids,
|
|
159
|
+
games: ids.optional(),
|
|
160
|
+
...actionShape,
|
|
161
|
+
revert: z$1.array(formRevertSchema).min(1).optional()
|
|
162
|
+
}).superRefine(validateAction);
|
|
163
|
+
//#endregion
|
|
164
|
+
export { formRevertSchema as i, formMethodSchema as n, formRevertDetailSchema as r, formConditionSchema as t };
|
|
165
|
+
|
|
166
|
+
//# sourceMappingURL=form-schemas-BjyAMPZU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-schemas-BjyAMPZU.mjs","names":["z"],"sources":["../src/lib/form-schemas.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n formBattleConditions,\n formBattleEvents,\n formComparisons,\n formConditionKeys,\n formEnvironments,\n formInteractions,\n formItemRoles,\n formLocations,\n formMechanics,\n formMoveRelations,\n formRevertEvents,\n formSeasons,\n formStatusRelations,\n formStatuses,\n formStorageEvents,\n formStorageServices,\n formTimesOfDay,\n formTimeUnits,\n formTriggers,\n formWeather,\n formWeatherRelations,\n languageAlpha3Codes,\n moveCategory,\n} from './enums.ts'\n\nconst id = z\n .string()\n .min(1)\n .max(50)\n .regex(/^[a-z0-9-]+$/)\nconst ids = z\n .array(id)\n .min(1)\n .refine((values) => new Set(values).size === values.length, 'Duplicate IDs')\nconst key = z.enum(formConditionKeys).enum\n\n/** Requirements for a transition, with stable translation keys and typed parameters. */\nexport const formConditionSchema = z.discriminatedUnion('key', [\n z.strictObject({ key: z.literal(key.ability), abilities: ids }),\n z.strictObject({\n key: z.literal(key.known_move),\n move: id,\n relation: z.enum(formMoveRelations).optional(),\n }),\n z.strictObject({ key: z.literal(key.move_used), move: id }),\n z.strictObject({\n key: z.literal(key.move_category),\n categories: z.array(z.enum(moveCategory)).min(1),\n }),\n z.strictObject({ key: z.literal(key.time_of_day), time: z.enum(formTimesOfDay) }),\n z.strictObject({\n key: z.literal(key.status),\n status: z.enum(formStatuses),\n relation: z.enum(formStatusRelations),\n }),\n z.strictObject({ key: z.literal(key.fusion_partner), pokemon: id }),\n z.strictObject({ key: z.literal(key.interaction), interaction: z.enum(formInteractions) }),\n z.strictObject({ key: z.literal(key.location), location: z.enum(formLocations) }),\n z.strictObject({ key: z.literal(key.environment), environment: z.enum(formEnvironments) }),\n z.strictObject({ key: z.literal(key.season), season: z.enum(formSeasons) }),\n z.strictObject({\n key: z.literal(key.elapsed_time),\n amount: z.number().positive(),\n unit: z.enum(formTimeUnits),\n }),\n z.strictObject({\n key: z.literal(key.storage_event),\n event: z.enum(formStorageEvents),\n service: z.enum(formStorageServices).optional(),\n }),\n z.strictObject({ key: z.literal(key.transfer), destination: id }),\n z.strictObject({\n key: z.literal(key.battle_event),\n events: z.array(z.enum(formBattleEvents)).min(1),\n }),\n z.strictObject({ key: z.literal(key.original_form), forms: ids }),\n z.strictObject({ key: z.literal(key.intrinsic_form), forms: ids }),\n z.strictObject({ key: z.literal(key.spare_party_slot) }),\n z.strictObject({ key: z.literal(key.mechanic), mechanic: z.enum(formMechanics) }),\n z.strictObject({\n key: z.literal(key.hp),\n comparison: z.enum(formComparisons),\n percent: z.number().min(0).max(100),\n }),\n z.strictObject({\n key: z.literal(key.weather),\n weather: z.array(z.enum(formWeather)).min(1),\n relation: z.enum(formWeatherRelations),\n }),\n z.strictObject({ key: z.literal(key.held_item_absent), items: ids }),\n z.strictObject({ key: z.literal(key.battle_condition), condition: z.enum(formBattleConditions) }),\n])\n\nconst actionShape = {\n trigger: z.enum(formTriggers),\n minLevel: z.number().int().min(1).max(100).optional(),\n item: z\n .strictObject({ id, role: z.enum(formItemRoles), consumed: z.boolean().optional() })\n .optional(),\n conditions: z.array(formConditionSchema),\n notes: z\n .partialRecord(z.enum(languageAlpha3Codes), z.string().min(1))\n .refine((text) => Object.values(text).some(Boolean), 'Provide at least one translation')\n .optional(),\n}\n\nfunction validateAction(method: z.infer<typeof formActionSchema>, ctx: z.RefinementCtx) {\n const requiredRole =\n method.trigger === 'use_item' ? 'used' : method.trigger === 'equip_item' ? 'held' : undefined\n if (requiredRole && method.item?.role !== requiredRole) {\n ctx.addIssue({\n code: 'custom',\n path: ['item'],\n message: `${method.trigger} requires a ${requiredRole} item`,\n })\n }\n if (method.item?.consumed && method.item.role !== 'used') {\n ctx.addIssue({\n code: 'custom',\n path: ['item', 'consumed'],\n message: 'Only used items can be consumed',\n })\n }\n if (\n method.trigger === 'fuse' &&\n !method.conditions.some((condition) => condition.key === 'fusion_partner')\n ) {\n ctx.addIssue({ code: 'custom', path: ['conditions'], message: 'Fusion requires a partner' })\n }\n if (method.trigger === 'special' && method.conditions.length === 0 && !method.notes) {\n ctx.addIssue({\n code: 'custom',\n path: ['conditions'],\n message: 'Special methods require a condition or explanatory note',\n })\n }\n const conditions = method.conditions.map((condition) => JSON.stringify(condition))\n if (new Set(conditions).size !== conditions.length) {\n ctx.addIssue({ code: 'custom', path: ['conditions'], message: 'Duplicate condition' })\n }\n}\n\nconst formActionSchema = z.strictObject(actionShape)\n\n/** Missing games inherits the forward method; null explicitly retains unknown scope. */\nexport const formRevertDetailSchema = z\n .strictObject({\n to: id.optional(),\n games: ids.nullable().optional(),\n ...actionShape,\n })\n .superRefine(validateAction)\n\nexport const formRevertSchema = z.union([\n z.enum(formRevertEvents),\n z.strictObject({ afterTurns: z.number().int().positive() }),\n formRevertDetailSchema,\n])\n\nexport const formMethodSchema = z\n .strictObject({\n from: ids,\n games: ids.optional(),\n ...actionShape,\n revert: z.array(formRevertSchema).min(1).optional(),\n })\n .superRefine(validateAction)\n\nexport type FormCondition = z.infer<typeof formConditionSchema>\nexport type FormRevertDetail = z.infer<typeof formRevertDetailSchema>\nexport type FormRevert = z.infer<typeof formRevertSchema>\nexport type FormMethod = z.infer<typeof formMethodSchema>\n"],"mappings":"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"}
|