@pokepc/dataset 6.3.0 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +73 -117
  2. package/build/lib/enums.d.mts +3 -0
  3. package/build/lib/enums.d.mts.map +1 -1
  4. package/build/lib/enums.mjs +3 -0
  5. package/build/lib/enums.mjs.map +1 -1
  6. package/build/lib/fs.d.mts +6 -6
  7. package/build/lib/schemas.d.mts +49 -49
  8. package/build/lib-next/_build.d.mts +1 -0
  9. package/build/lib-next/_build.mjs +32958 -0
  10. package/build/lib-next/_build.mjs.map +1 -0
  11. package/build/lib-next/enums.d.mts +54 -0
  12. package/build/lib-next/enums.d.mts.map +1 -0
  13. package/build/lib-next/enums.mjs +263 -0
  14. package/build/lib-next/enums.mjs.map +1 -0
  15. package/build/lib-next/languages.d.mts +40 -0
  16. package/build/lib-next/languages.d.mts.map +1 -0
  17. package/build/lib-next/languages.mjs +251 -0
  18. package/build/lib-next/languages.mjs.map +1 -0
  19. package/build/lib-next/schemas.d.mts +414 -0
  20. package/build/lib-next/schemas.d.mts.map +1 -0
  21. package/build/lib-next/schemas.mjs +92 -0
  22. package/build/lib-next/schemas.mjs.map +1 -0
  23. package/data/pokemon/archaludon.json +1 -1
  24. package/data/pokemon/dipplin.json +1 -1
  25. package/data/pokemon/fezandipiti.json +1 -1
  26. package/data/pokemon/gougingfire.json +1 -1
  27. package/data/pokemon/hydrapple.json +1 -1
  28. package/data/pokemon/ironboulder.json +1 -1
  29. package/data/pokemon/ironcrown.json +1 -1
  30. package/data/pokemon/munkidori.json +1 -1
  31. package/data/pokemon/ogerpon-cornerstone.json +1 -1
  32. package/data/pokemon/ogerpon-hearthflame.json +1 -1
  33. package/data/pokemon/ogerpon-wellspring.json +1 -1
  34. package/data/pokemon/ogerpon.json +1 -1
  35. package/data/pokemon/okidogi.json +1 -1
  36. package/data/pokemon/pecharunt.json +1 -1
  37. package/data/pokemon/ragingbolt.json +1 -1
  38. package/data/pokemon/sinistcha-masterpiece.json +1 -1
  39. package/data/pokemon/sinistcha.json +1 -1
  40. package/data/pokemon/terapagos-stellar.json +1 -1
  41. package/data/pokemon/terapagos-terastal.json +1 -1
  42. package/data/pokemon/terapagos.json +1 -1
  43. package/data/pokemon/ursaluna-bloodmoon.json +1 -1
  44. package/data-next/champions/abilities.json +1360 -0
  45. package/data-next/champions/battle-states.json +464 -0
  46. package/data-next/champions/i18n/chs/abilities.json +1360 -0
  47. package/data-next/champions/i18n/chs/battle-states.json +464 -0
  48. package/data-next/champions/i18n/chs/items.json +938 -0
  49. package/data-next/champions/i18n/chs/moves.json +5847 -0
  50. package/data-next/champions/i18n/chs/pokemon.json +2205 -0
  51. package/data-next/champions/i18n/cht/abilities.json +1360 -0
  52. package/data-next/champions/i18n/cht/battle-states.json +464 -0
  53. package/data-next/champions/i18n/cht/items.json +938 -0
  54. package/data-next/champions/i18n/cht/moves.json +5847 -0
  55. package/data-next/champions/i18n/cht/pokemon.json +2205 -0
  56. package/data-next/champions/i18n/deu/abilities.json +1360 -0
  57. package/data-next/champions/i18n/deu/battle-states.json +464 -0
  58. package/data-next/champions/i18n/deu/items.json +938 -0
  59. package/data-next/champions/i18n/deu/moves.json +5847 -0
  60. package/data-next/champions/i18n/deu/pokemon.json +2205 -0
  61. package/data-next/champions/i18n/eng/abilities.json +1360 -0
  62. package/data-next/champions/i18n/eng/battle-states.json +464 -0
  63. package/data-next/champions/i18n/eng/items.json +938 -0
  64. package/data-next/champions/i18n/eng/moves.json +5847 -0
  65. package/data-next/champions/i18n/eng/pokemon.json +2205 -0
  66. package/data-next/champions/i18n/es-es/abilities.json +1360 -0
  67. package/data-next/champions/i18n/es-es/battle-states.json +464 -0
  68. package/data-next/champions/i18n/es-es/items.json +938 -0
  69. package/data-next/champions/i18n/es-es/moves.json +5847 -0
  70. package/data-next/champions/i18n/es-es/pokemon.json +2205 -0
  71. package/data-next/champions/i18n/es-la/abilities.json +1360 -0
  72. package/data-next/champions/i18n/es-la/battle-states.json +464 -0
  73. package/data-next/champions/i18n/es-la/items.json +938 -0
  74. package/data-next/champions/i18n/es-la/moves.json +5847 -0
  75. package/data-next/champions/i18n/es-la/pokemon.json +2205 -0
  76. package/data-next/champions/i18n/fra/abilities.json +1360 -0
  77. package/data-next/champions/i18n/fra/battle-states.json +464 -0
  78. package/data-next/champions/i18n/fra/items.json +938 -0
  79. package/data-next/champions/i18n/fra/moves.json +5847 -0
  80. package/data-next/champions/i18n/fra/pokemon.json +2205 -0
  81. package/data-next/champions/i18n/ita/abilities.json +1360 -0
  82. package/data-next/champions/i18n/ita/battle-states.json +464 -0
  83. package/data-next/champions/i18n/ita/items.json +938 -0
  84. package/data-next/champions/i18n/ita/moves.json +5847 -0
  85. package/data-next/champions/i18n/ita/pokemon.json +2205 -0
  86. package/data-next/champions/i18n/jpn/abilities.json +1360 -0
  87. package/data-next/champions/i18n/jpn/battle-states.json +464 -0
  88. package/data-next/champions/i18n/jpn/items.json +938 -0
  89. package/data-next/champions/i18n/jpn/moves.json +5847 -0
  90. package/data-next/champions/i18n/jpn/pokemon.json +2205 -0
  91. package/data-next/champions/i18n/kor/abilities.json +1360 -0
  92. package/data-next/champions/i18n/kor/battle-states.json +464 -0
  93. package/data-next/champions/i18n/kor/items.json +938 -0
  94. package/data-next/champions/i18n/kor/moves.json +5847 -0
  95. package/data-next/champions/i18n/kor/pokemon.json +2205 -0
  96. package/data-next/champions/i18n/pt-br/abilities.json +1360 -0
  97. package/data-next/champions/i18n/pt-br/battle-states.json +464 -0
  98. package/data-next/champions/i18n/pt-br/items.json +938 -0
  99. package/data-next/champions/i18n/pt-br/moves.json +5847 -0
  100. package/data-next/champions/i18n/pt-br/pokemon.json +2205 -0
  101. package/data-next/champions/items.json +1055 -0
  102. package/data-next/champions/moves.json +14197 -0
  103. package/data-next/champions/pokemon-moves.json +14304 -0
  104. package/data-next/champions/pokemon.json +10000 -0
  105. package/package.json +16 -2
package/README.md CHANGED
@@ -1,161 +1,117 @@
1
- # PokéPC static dataset
1
+ # PokéPC Dataset
2
2
 
3
- JSON data files of Pokémon, Games, Pokédexes, Living Dex Box presets, etc., used in
4
- https://pokepc.net and https://classic.pokepc.net.
3
+ Static JSON data for Pokémon, games, Pokédexes, box presets, and related PokéPC metadata.
5
4
 
6
- Data has been collected from many public sources including: PokéAPI, Serebii.net and Bulbapedia.
5
+ The package also includes TypeScript helpers, Zod schemas, and an OpenAPI description for serving
6
+ the dataset as a static JSON API.
7
7
 
8
- ## How to update the dataset
8
+ ## Install
9
9
 
10
- Requirements: Bun 1.3+ and PNPM 11.5+
11
-
12
- - Clone this project and install the dependencies with `pnpm install`.
13
- - Edit the files that you need.
14
- - Run `pnpm test` to check if the dataset is still valid.
15
- - Before pushing any code, run `pnpm lint` and `pnpm typecheck` to check if there are any circular
16
- imports or type errors.
17
-
18
- > TIP: If you edit a Box preset, you can preview it by running `pnpm run dev` and visiting
19
- > `http://localhost:4011/boxes` (you will need to restart the server to see any data changes).
20
- > <img width="745" height="340" alt="image" src="https://github.com/user-attachments/assets/73f18a73-9dd6-4b23-8d3e-1b846c3b130a" />
21
-
22
- ## Structure
23
-
24
- - `data/`
25
- - `games/`: Individial JSON files for each game.
26
- - `indices/`: Keeps the sorting of the individual JSON files.
27
- - `metadata/`: Extra metadata files (e.g. Pokémon sprite slice coords, etc.)
28
- - `pokedexes/`: Individial JSON files for each Pokédex.
29
- - `pokemon/`: Individial JSON files for each Pokémon.
30
- - `boxpresets/`: Living Dex Box presets.
31
- - `classic/`: legacy one-file-per-game-set preset maps.
32
- - `modern/`: route-loadable prepared presets. Each `GAMESET_ID.json` is an ordered array of
33
- preset ids, and each `GAMESET_ID/PRESET_ID.json` is one standalone preset file.
34
- - `.*.json`: Standalone JSON files (types, colors, items, etc.)
35
-
36
- - `src/lib/`
37
- - `constants.ts`: Constants.
38
- - `enums.ts`: Values that are constant (e.g. move categories, item categories, etc.).
39
- - `fs.ts`: File system utilities to load the dataset JSON files with the correct types.
40
- - `languages.ts`: Languages extra data and utilities.
41
- - `schemas.ts`: Zod schemas for the dataset.
42
- - `search.ts`: Full-text search utilities. This is what powers the Pokémon searchbox on the PokéPC
43
- website.
44
- - `types.ts`: All type definitions created from the schemas and the enums. Use the `Pkds.` prefix
45
- to access them directly without imports. e.g. `Pkds.Pokemon`.
46
- - `utils.ts`: Utility functions and helpers.
47
- - `validators.ts`: Validators for the dataset.
48
-
49
- - `src/utils/`: Generic utils.
50
-
51
- - `src/scripts/`: Various maintenance scripts.
52
-
53
- - `tests/*.test.ts`: Tests for the whole dataset.
10
+ ```bash
11
+ pnpm add @pokepc/dataset
12
+ ```
54
13
 
55
- ## Modern box presets
14
+ Example imports:
56
15
 
57
- Modern box presets can be migrated from `data/boxpresets/classic/**` with:
16
+ ```ts
17
+ import bulbasaur from '@pokepc/dataset/data/pokemon/bulbasaur'
18
+ import { pokemonSchema } from '@pokepc/dataset/lib/schemas'
58
19
 
59
- ```bash
60
- bun src/scripts/transform-modern-box-presets.ts
20
+ const pokemon = pokemonSchema.parse(bulbasaur)
61
21
  ```
62
22
 
63
- > NOTE: this will replace the existing `data/boxpresets/modern/**` presets, so make sure to back up
64
- > your work first.
23
+ JSON imports depend on your runtime or bundler configuration. In this repository, the raw files are
24
+ always available under `data/`.
65
25
 
66
- The generated layout is intentionally easy to prune by hand:
26
+ ## Static API
67
27
 
68
- - `data/boxpresets/modern/GAMESET_ID.json`: ordered preset ids for that game set.
69
- - `data/boxpresets/modern/GAMESET_ID/PRESET_ID.json`: one schema-versioned preset file.
28
+ The OpenAPI docs and static JSON API are hosted on GitHub Pages:
70
29
 
71
- During `pnpm build:data`, this tree is copied to `public/dataset/boxpresets/` without adding the
72
- presets to the main `pokepc-static-data*.min.json` bundle. Route loaders should fetch only the
73
- needed same-origin asset, such as `/dataset/boxpresets/home.json` or
74
- `/dataset/boxpresets/home/grouped-region.json`.
30
+ - API client (Swagger UI) https://pokepc.github.io/dataset/
31
+ - OpenAPI spec: https://pokepc.github.io/dataset/openapi.json
75
32
 
76
- Known Classic-only Pokémon ids are sanitized to `null` slots by `lib/box-preset-sanitizer.ts` so box
77
- and slot order stays stable while incompatible content is made visible in transform diagnostics.
33
+ ### Use Cases of the `openapi.json` spec
78
34
 
79
- ## Pokemon search syntax
35
+ Apart from being able to use it in your code with validators or generators, when combined with AI
36
+ agents, it unlocks many extras:
80
37
 
81
- The Pokemon search is powered by `generatePokemonSearchableText()` in `lib/utils.ts` and the
82
- matching helpers in `lib/search.ts`.
38
+ 1. Tool calling / agent usage: The LLM can know what endpoints exist and how to call them.
83
39
 
84
- ### How matching works
40
+ 2. Code generation: It can generate typed clients, fetch wrappers, SDK helpers, Zod schemas, etc.
85
41
 
86
- - Search is case-insensitive.
87
- - Commas are treated like spaces.
88
- - Multiple spaces are collapsed.
89
- - Positive tokens are combined with AND. Example: `pikachu electric` only matches entries containing
90
- both terms.
91
- - Negated tokens start with `!` and must **not** be present. Example: `pikachu !mega` matches
92
- Pikachu results that do not contain `mega`.
42
+ 3. Documentation Q&A: Users can ask natural-language questions and the LLM can map them to the right
43
+ endpoint/schema.
93
44
 
94
- ### Searchable criteria
45
+ 4. Safer answers: Enums like language IDs, generation IDs, region IDs, ribbon IDs, etc. reduce
46
+ hallucinations.
95
47
 
96
- Each Pokemon contributes searchable text from the following data:
48
+ 5. Dataset exploration: The LLM can inspect available resources without manually reading every file.
97
49
 
98
- - Pokemon names from all available languages
99
- - Form names from all available languages
100
- - National Dex number
101
- - Pokemon `id`
102
- - `type:<type-id>` for both primary and secondary types
103
- - `region:<region-id>`
104
- - `color:<color-id>` Special case: brown Pokemon also include `color:orange`
105
- - Generation tokens for both species dex generation and the Pokemon's own `gen` field: `gen1`,
106
- `gen:1`, `gen2`, `gen:2`, etc.
107
- - Tags/flags when applicable: `mythical`, `legendary`, `female`, `baby`, `ultrabeast`,
108
- `ultra beast`, `regional`, `fusion`, `paradox`, `convergent`, `cosmetic`, `gigantamax`, `gmax`,
109
- `is-form`, `is-mega`, `is-battle-only`, `not-battle-only`, `is-storable`, `not-storable`
50
+ ## Data Layout
110
51
 
111
- ### Examples
52
+ ```text
53
+ data/
54
+ abilities.json
55
+ games/
56
+ indices/
57
+ metadata/
58
+ pokedexes/
59
+ pokemon/
60
+ boxpresets/
61
+ classic/
62
+ modern/
63
+ ```
112
64
 
113
- - `charizard type:fire`
114
- - `pikachu !is-form`
115
- - `type:water !region:paldea`
116
- - `gen:4 !legendary`
117
- - `gmax !is-battle-only`
65
+ Root JSON files are collection files. `games/`, `pokedexes/`, and `pokemon/` contain one JSON file
66
+ per entity. `indices/` controls the order of those per-entity files.
118
67
 
119
- ### Usage snippet
68
+ ## Contributing
120
69
 
121
- ```ts
122
- import { loadAllPokemon } from '@pokepc/dataset/lib/fs'
123
- import { createSearchablePokemonList, searchPokemon } from '@pokepc/dataset/lib/search'
70
+ Requirements: Node.js 24 and pnpm 11.
71
+
72
+ ```bash
73
+ pnpm install
74
+ pnpm format:check
75
+ pnpm typecheck
76
+ pnpm test
77
+ pnpm build
78
+ ```
124
79
 
125
- const pokemon = createSearchablePokemonList(loadAllPokemon())
80
+ When changing data, run the tests before opening a PR. When changing the static API docs, run
81
+ `pnpm build:pages` and check the local Swagger UI with `pnpm dev`.
126
82
 
127
- // all Pokemon or forms in generation 9 that are not mega and are electric and green
128
- const results = searchPokemon(pokemon, {
129
- q: 'gen9 !is-mega electric green', // or 'gen9 !is-mega type:electric color:green'
130
- forms: true,
131
- })
83
+ Build a GitHub Pages-ready artifact:
132
84
 
133
- console.log(results.pokemon.map((item) => item.id))
85
+ ```bash
86
+ pnpm build:pages
134
87
  ```
135
88
 
136
- ## How to use the dataset and the lib in other projects
89
+ This writes:
137
90
 
138
- We don't offer a built version of this code via npm or similar.
91
+ ```text
92
+ dist-pages/
93
+ index.html
94
+ openapi.json
95
+ data/
96
+ ```
139
97
 
140
- The recommended way to use it in your projects is to add it as a git submodule, e.g.:
98
+ Preview the Swagger UI locally:
141
99
 
142
100
  ```bash
143
- git submodule add git@github.com:pokepc/dataset.git packages/dataset
101
+ pnpm dev
144
102
  ```
145
103
 
146
- This way, you can directly use the dataset and the lib `*.ts` files in your project as you wish,
147
- e.g. as a monorepo workspace dependency: `"@pokepc/dataset": "workspace:*",`
148
-
149
- Once you build your own project, make sure you delete any content that is not needed, such as the
150
- `dataset/tests/` directory, so you can save some space.
104
+ The dev server runs at `http://localhost:4173/` by default. Override the port with
105
+ `PORT=4174 pnpm dev` or `node src/openapi/dev.ts --port=4174`.
151
106
 
152
107
  ## Credits
153
108
 
154
- A big part of the data in this dataset is made possible thanks to the following projects:
109
+ This dataset uses public data from:
155
110
 
156
111
  - [Pokémon Showdown](https://pokemonshowdown.com/)
157
112
  - [PokéAPI](https://pokeapi.co/)
113
+ - [Project Pokémon](https://github.com/projectpokemon)
158
114
  - [Serebii.net](https://serebii.net/)
159
115
  - [Bulbapedia](https://bulbapedia.bulbagarden.net/)
160
116
 
161
- Thanks to everyone for collecting and making the game data available to the public.
117
+ Thanks to everyone who collects and maintains public Pokémon game data.
@@ -6,6 +6,9 @@ declare const itemCategory: readonly ["ball", "medicine", "battle", "berry", "ma
6
6
  declare const pokeballCategory: readonly ["regular", "special", "hisuian", "other"];
7
7
  declare const languageIds: readonly ["en", "es", "esla", "fr", "de", "it", "ja", "ko", "chs", "cht", "pt"];
8
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
+ */
9
12
  declare const languageInGameCodes: readonly ["ENG", "ES-ES", "ES-LA", "FRA", "DEU", "ITA", "JPN", "KOR", "CHT", "CHS", "PT-BR"];
10
13
  declare const ribbonCategory: readonly ["league", "contest", "tower", "memory", "gift"];
11
14
  declare const typeIds: readonly ["normal", "fire", "water", "electric", "grass", "ice", "fighting", "poison", "ground", "flying", "psychic", "bug", "rock", "ghost", "dragon", "dark", "steel", "fairy", "stellar"];
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.mts","names":[],"sources":["../../src/lib/enums.ts"],"mappings":";cAAa,QAAA;AAAA,cACA,aAAA;AAAA,cAaA,UAAA;AAAA,cACA,YAAA;AAAA,cAcA,gBAAA;AAAA,cACA,WAAA;AAAA,cAaA,mBAAA;AAAA,cAaA,mBAAA;AAAA,cAcA,cAAA;AAAA,cACA,OAAA;AA1DH;AAAA,cAmFG,aAAA;AAAA,cAyBA,OAAA;AAAA,cACA,YAAA;AAAA,cACA,OAAA;AAAA,cACA,UAAA;AAAA,cACA,YAAA;AAAA,cAWA,aAAA;AAAA,cAEA,YAAA;AAAA,cACA,UAAA"}
1
+ {"version":3,"file":"enums.d.mts","names":[],"sources":["../../src/lib/enums.ts"],"mappings":";cAAa,QAAA;AAAA,cACA,aAAA;AAAA,cAaA,UAAA;AAAA,cACA,YAAA;AAAA,cAcA,gBAAA;AAAA,cACA,WAAA;AAAA,cAaA,mBAAA;;;;cAiBA,mBAAA;AAAA,cAcA,cAAA;AAAA,cACA,OAAA;;cAyBA,aAAA;AAAA,cAyBA,OAAA;AAAA,cACA,YAAA;AAAA,cACA,OAAA;AAAA,cACA,UAAA;AAAA,cACA,YAAA;AAAA,cAWA,aAAA;AAAA,cAEA,YAAA;AAAA,cACA,UAAA"}
@@ -70,6 +70,9 @@ const languageAlpha3Codes = [
70
70
  "cht",
71
71
  "por"
72
72
  ];
73
+ /**
74
+ * @deprecated use gameLocales from lib-next/languages
75
+ */
73
76
  const languageInGameCodes = [
74
77
  "ENG",
75
78
  "ES-ES",
@@ -1 +1 @@
1
- {"version":3,"file":"enums.mjs","names":[],"sources":["../../src/lib/enums.ts"],"sourcesContent":["export const gameType = ['superset', 'set', 'game', 'dlc'] as const\nexport const gamePlatforms = [\n 'gb',\n 'gbc',\n 'gba',\n 'nds',\n '3ds',\n 'mobile',\n 'ngc',\n 'wii',\n 'wiiu',\n 'switch',\n 'switch2',\n] as const\nexport const gameSeries = ['main', 'spinoff', 'storage', 'legends'] as const\nexport const itemCategory = [\n 'ball',\n 'medicine',\n 'battle',\n 'berry',\n 'machine',\n 'megastone',\n 'zcrystal',\n 'treasure',\n 'ingredient',\n 'material',\n 'key',\n 'other',\n] as const\nexport const pokeballCategory = ['regular', 'special', 'hisuian', 'other'] as const\nexport const languageIds = [\n 'en',\n 'es',\n 'esla',\n 'fr',\n 'de',\n 'it',\n 'ja',\n 'ko',\n 'chs',\n 'cht',\n 'pt',\n] as const\nexport const languageAlpha3Codes = [\n 'eng',\n 'esp',\n 'esla',\n 'fra',\n 'deu',\n 'ita',\n 'jap',\n 'kor',\n 'chs',\n 'cht',\n 'por',\n] as const\nexport const languageInGameCodes = [\n 'ENG',\n 'ES-ES',\n 'ES-LA',\n 'FRA',\n 'DEU',\n 'ITA',\n 'JPN',\n 'KOR',\n 'CHT',\n 'CHS',\n 'PT-BR',\n] as const\n\nexport const ribbonCategory = ['league', 'contest', 'tower', 'memory', 'gift'] as const\nexport const typeIds = [\n 'normal',\n 'fire',\n 'water',\n 'electric',\n 'grass',\n 'ice',\n 'fighting',\n 'poison',\n 'ground',\n 'flying',\n 'psychic',\n 'bug',\n 'rock',\n 'ghost',\n 'dragon',\n 'dark',\n 'steel',\n 'fairy',\n // Special types:\n // 'shadow', // Shadow pokemon in Colosseum and XD\n 'stellar', // keep. it can be used as Tera type and move damage in Scarlet and Violet\n] as const\n\n/** Category tags on abilities (data/abilities.json `tags`). */\nexport const abilityTagIds = [\n 'alert',\n 'ally-helper',\n 'stat-boost',\n 'move-boost',\n 'bypass',\n 'defense',\n 'handicap',\n 'heal',\n 'items',\n 'priority-control',\n 'damage',\n 'target-weaken',\n 'status-trigger',\n 'status-immunity',\n 'steal',\n 'weather',\n 'terrain',\n 'trap',\n 'ability-change',\n 'type-change',\n 'species-specific',\n 'other',\n] as const\n\nexport const statIds = ['hp', 'atk', 'def', 'spa', 'spd', 'spe', 'acc', 'eva'] as const\nexport const moveCategory = ['physical', 'special', 'status'] as const\nexport const genders = ['m', 'f'] as const // m: male, f: female, null/undefined: genderless\nexport const titleTypes = ['ribbon', 'mark', 'custom'] as const\nexport const pokemonSizes = ['xs', 's', 'm', 'l', 'xl'] as const\n\n/*\nIn most core series games:\nIV of 0: \"No good\" (or \"Not So Good\" in Let's GO)\nIV range of 1-15: \"Decent\" (or \"OK\" in Let's GO)\nIV range of 16-25: \"Pretty good\" (or \"Good\" in Let's GO)\nIV range 26-29: \"Very good\"\nIV of 30: \"Fantastic\"\nIV of 31: \"Best\"\n */\nexport const ivJudgeValues = ['nogood', 'decent', 'good', 'verygood', 'fantastic', 'best'] as const\n\nexport const battleStyles = ['singles', 'doubles', 'triples', 'rotation', 'royale'] as const\nexport const raidStyles = ['dynamax', 'tera'] as const\n"],"mappings":";AAAA,MAAa,WAAW;CAAC;CAAY;CAAO;CAAQ;AAAK;AACzD,MAAa,gBAAgB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAa,aAAa;CAAC;CAAQ;CAAW;CAAW;AAAS;AAClE,MAAa,eAAe;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAa,mBAAmB;CAAC;CAAW;CAAW;CAAW;AAAO;AACzE,MAAa,cAAc;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAa,sBAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAa,sBAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAa,iBAAiB;CAAC;CAAU;CAAW;CAAS;CAAU;AAAM;AAC7E,MAAa,UAAU;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAGA;AACF;;AAGA,MAAa,gBAAgB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAa,UAAU;CAAC;CAAM;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;AAAK;AAC7E,MAAa,eAAe;CAAC;CAAY;CAAW;AAAQ;AAC5D,MAAa,UAAU,CAAC,KAAK,GAAG;AAChC,MAAa,aAAa;CAAC;CAAU;CAAQ;AAAQ;AACrD,MAAa,eAAe;CAAC;CAAM;CAAK;CAAK;CAAK;AAAI;AAWtD,MAAa,gBAAgB;CAAC;CAAU;CAAU;CAAQ;CAAY;CAAa;AAAM;AAEzF,MAAa,eAAe;CAAC;CAAW;CAAW;CAAW;CAAY;AAAQ;AAClF,MAAa,aAAa,CAAC,WAAW,MAAM"}
1
+ {"version":3,"file":"enums.mjs","names":[],"sources":["../../src/lib/enums.ts"],"sourcesContent":["export const gameType = ['superset', 'set', 'game', 'dlc'] as const\nexport const gamePlatforms = [\n 'gb',\n 'gbc',\n 'gba',\n 'nds',\n '3ds',\n 'mobile',\n 'ngc',\n 'wii',\n 'wiiu',\n 'switch',\n 'switch2',\n] as const\nexport const gameSeries = ['main', 'spinoff', 'storage', 'legends'] as const\nexport const itemCategory = [\n 'ball',\n 'medicine',\n 'battle',\n 'berry',\n 'machine',\n 'megastone',\n 'zcrystal',\n 'treasure',\n 'ingredient',\n 'material',\n 'key',\n 'other',\n] as const\nexport const pokeballCategory = ['regular', 'special', 'hisuian', 'other'] as const\nexport const languageIds = [\n 'en',\n 'es',\n 'esla',\n 'fr',\n 'de',\n 'it',\n 'ja',\n 'ko',\n 'chs',\n 'cht',\n 'pt',\n] as const\nexport const languageAlpha3Codes = [\n 'eng',\n 'esp',\n 'esla',\n 'fra',\n 'deu',\n 'ita',\n 'jap',\n 'kor',\n 'chs',\n 'cht',\n 'por',\n] as const\n\n/**\n * @deprecated use gameLocales from lib-next/languages\n */\nexport const languageInGameCodes = [\n 'ENG',\n 'ES-ES',\n 'ES-LA',\n 'FRA',\n 'DEU',\n 'ITA',\n 'JPN',\n 'KOR',\n 'CHT',\n 'CHS',\n 'PT-BR',\n] as const\n\nexport const ribbonCategory = ['league', 'contest', 'tower', 'memory', 'gift'] as const\nexport const typeIds = [\n 'normal',\n 'fire',\n 'water',\n 'electric',\n 'grass',\n 'ice',\n 'fighting',\n 'poison',\n 'ground',\n 'flying',\n 'psychic',\n 'bug',\n 'rock',\n 'ghost',\n 'dragon',\n 'dark',\n 'steel',\n 'fairy',\n // Special types:\n // 'shadow', // Shadow pokemon in Colosseum and XD\n 'stellar', // keep. it can be used as Tera type and move damage in Scarlet and Violet\n] as const\n\n/** Category tags on abilities (data/abilities.json `tags`). */\nexport const abilityTagIds = [\n 'alert',\n 'ally-helper',\n 'stat-boost',\n 'move-boost',\n 'bypass',\n 'defense',\n 'handicap',\n 'heal',\n 'items',\n 'priority-control',\n 'damage',\n 'target-weaken',\n 'status-trigger',\n 'status-immunity',\n 'steal',\n 'weather',\n 'terrain',\n 'trap',\n 'ability-change',\n 'type-change',\n 'species-specific',\n 'other',\n] as const\n\nexport const statIds = ['hp', 'atk', 'def', 'spa', 'spd', 'spe', 'acc', 'eva'] as const\nexport const moveCategory = ['physical', 'special', 'status'] as const\nexport const genders = ['m', 'f'] as const // m: male, f: female, null/undefined: genderless\nexport const titleTypes = ['ribbon', 'mark', 'custom'] as const\nexport const pokemonSizes = ['xs', 's', 'm', 'l', 'xl'] as const\n\n/*\nIn most core series games:\nIV of 0: \"No good\" (or \"Not So Good\" in Let's GO)\nIV range of 1-15: \"Decent\" (or \"OK\" in Let's GO)\nIV range of 16-25: \"Pretty good\" (or \"Good\" in Let's GO)\nIV range 26-29: \"Very good\"\nIV of 30: \"Fantastic\"\nIV of 31: \"Best\"\n */\nexport const ivJudgeValues = ['nogood', 'decent', 'good', 'verygood', 'fantastic', 'best'] as const\n\nexport const battleStyles = ['singles', 'doubles', 'triples', 'rotation', 'royale'] as const\nexport const raidStyles = ['dynamax', 'tera'] as const\n"],"mappings":";AAAA,MAAa,WAAW;CAAC;CAAY;CAAO;CAAQ;AAAK;AACzD,MAAa,gBAAgB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAa,aAAa;CAAC;CAAQ;CAAW;CAAW;AAAS;AAClE,MAAa,eAAe;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAa,mBAAmB;CAAC;CAAW;CAAW;CAAW;AAAO;AACzE,MAAa,cAAc;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAa,sBAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;;;;AAKA,MAAa,sBAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAa,iBAAiB;CAAC;CAAU;CAAW;CAAS;CAAU;AAAM;AAC7E,MAAa,UAAU;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAGA;AACF;;AAGA,MAAa,gBAAgB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAa,UAAU;CAAC;CAAM;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;AAAK;AAC7E,MAAa,eAAe;CAAC;CAAY;CAAW;AAAQ;AAC5D,MAAa,UAAU,CAAC,KAAK,GAAG;AAChC,MAAa,aAAa;CAAC;CAAU;CAAQ;AAAQ;AACrD,MAAa,eAAe;CAAC;CAAM;CAAK;CAAK;CAAK;AAAI;AAWtD,MAAa,gBAAgB;CAAC;CAAU;CAAU;CAAQ;CAAY;CAAa;AAAM;AAEzF,MAAa,eAAe;CAAC;CAAW;CAAW;CAAW;CAAY;AAAQ;AAClF,MAAa,aAAa,CAAC,WAAW,MAAM"}
@@ -9,7 +9,7 @@ declare const itemsFs: import("yolodb").YoloDbTable<{
9
9
  gen: number;
10
10
  shortDesc: string;
11
11
  desc: string | null;
12
- category: "ball" | "medicine" | "battle" | "berry" | "machine" | "megastone" | "zcrystal" | "treasure" | "ingredient" | "material" | "key" | "other";
12
+ category: "berry" | "other" | "ball" | "medicine" | "battle" | "machine" | "treasure" | "ingredient" | "material" | "key" | "megastone" | "zcrystal";
13
13
  unholdable?: boolean | undefined;
14
14
  }>;
15
15
  declare const pokeballsFs: import("yolodb").YoloDbTable<{
@@ -18,7 +18,7 @@ declare const pokeballsFs: import("yolodb").YoloDbTable<{
18
18
  gen: number;
19
19
  shortDesc: string;
20
20
  desc: string | null;
21
- category: "other" | "regular" | "special" | "hisuian";
21
+ category: "special" | "other" | "regular" | "hisuian";
22
22
  unusable?: boolean | undefined;
23
23
  }>;
24
24
  declare const abilitiesFs: import("yolodb").YoloDbTable<{
@@ -28,7 +28,7 @@ declare const abilitiesFs: import("yolodb").YoloDbTable<{
28
28
  gen: number;
29
29
  shortDesc: string;
30
30
  desc: string | null;
31
- tags: ("other" | "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")[];
31
+ tags: ("defense" | "other" | "items" | "alert" | "ally-helper" | "stat-boost" | "move-boost" | "bypass" | "handicap" | "heal" | "priority-control" | "damage" | "target-weaken" | "status-trigger" | "status-immunity" | "steal" | "weather" | "terrain" | "trap" | "ability-change" | "type-change" | "species-specific")[];
32
32
  immunities?: ("normal" | "fire" | "water" | "electric" | "grass" | "ice" | "fighting" | "poison" | "ground" | "flying" | "psychic" | "bug" | "rock" | "ghost" | "dragon" | "dark" | "steel" | "fairy" | "stellar")[] | undefined;
33
33
  weaknesses?: ("normal" | "fire" | "water" | "electric" | "grass" | "ice" | "fighting" | "poison" | "ground" | "flying" | "psychic" | "bug" | "rock" | "ghost" | "dragon" | "dark" | "steel" | "fairy" | "stellar")[] | undefined;
34
34
  }>;
@@ -43,7 +43,7 @@ declare const movesFs: import("yolodb").YoloDbTable<{
43
43
  power: number;
44
44
  accuracy: number;
45
45
  pp: number;
46
- category: "special" | "physical" | "status";
46
+ category: "physical" | "special" | "status";
47
47
  priority: number;
48
48
  isZ: boolean;
49
49
  isGmax: boolean;
@@ -102,10 +102,10 @@ declare const colorsFs: import("yolodb").YoloDbTable<{
102
102
  color: string;
103
103
  }>;
104
104
  declare const languagesFs: import("yolodb").YoloDbTable<{
105
- id: "en" | "es" | "esla" | "fr" | "de" | "it" | "ja" | "ko" | "chs" | "cht" | "pt";
105
+ id: "esla" | "chs" | "cht" | "en" | "es" | "fr" | "de" | "it" | "ja" | "ko" | "pt";
106
106
  name: string;
107
107
  nameEng: string;
108
- alpha3: "esla" | "chs" | "cht" | "eng" | "esp" | "fra" | "deu" | "ita" | "jap" | "kor" | "por";
108
+ alpha3: "eng" | "esp" | "esla" | "fra" | "deu" | "ita" | "jap" | "kor" | "chs" | "cht" | "por";
109
109
  inGameCode: "ENG" | "ES-ES" | "ES-LA" | "FRA" | "DEU" | "ITA" | "JPN" | "KOR" | "CHT" | "CHS" | "PT-BR";
110
110
  locale: string;
111
111
  flag: string;
@@ -2,16 +2,16 @@ import { z } from "zod";
2
2
 
3
3
  //#region src/lib/schemas.d.ts
4
4
  declare const i18nTextSchema: z.ZodRecord<z.ZodEnum<{
5
- esla: "esla";
6
- chs: "chs";
7
- cht: "cht";
8
5
  eng: "eng";
9
6
  esp: "esp";
7
+ esla: "esla";
10
8
  fra: "fra";
11
9
  deu: "deu";
12
10
  ita: "ita";
13
11
  jap: "jap";
14
12
  kor: "kor";
13
+ chs: "chs";
14
+ cht: "cht";
15
15
  por: "por";
16
16
  }>, z.ZodOptional<z.ZodString>>;
17
17
  declare const abilitySchema: z.ZodObject<{
@@ -22,16 +22,16 @@ declare const abilitySchema: z.ZodObject<{
22
22
  shortDesc: z.ZodString;
23
23
  desc: z.ZodNullable<z.ZodString>;
24
24
  tags: z.ZodArray<z.ZodEnum<{
25
+ defense: "defense";
25
26
  other: "other";
27
+ items: "items";
26
28
  alert: "alert";
27
29
  "ally-helper": "ally-helper";
28
30
  "stat-boost": "stat-boost";
29
31
  "move-boost": "move-boost";
30
32
  bypass: "bypass";
31
- defense: "defense";
32
33
  handicap: "handicap";
33
34
  heal: "heal";
34
- items: "items";
35
35
  "priority-control": "priority-control";
36
36
  damage: "damage";
37
37
  "target-weaken": "target-weaken";
@@ -137,8 +137,8 @@ declare const onlineFeaturesSchema: z.ZodObject<{
137
137
  trades: z.ZodBoolean;
138
138
  raids: z.ZodBoolean;
139
139
  raidStyles: z.ZodArray<z.ZodEnum<{
140
- dynamax: "dynamax";
141
140
  tera: "tera";
141
+ dynamax: "dynamax";
142
142
  }>>;
143
143
  coop: z.ZodBoolean;
144
144
  }, z.core.$strip>;
@@ -218,8 +218,8 @@ declare const gameSchema: z.ZodObject<{
218
218
  trades: z.ZodBoolean;
219
219
  raids: z.ZodBoolean;
220
220
  raidStyles: z.ZodArray<z.ZodEnum<{
221
- dynamax: "dynamax";
222
221
  tera: "tera";
222
+ dynamax: "dynamax";
223
223
  }>>;
224
224
  coop: z.ZodBoolean;
225
225
  }, z.core.$strip>>;
@@ -237,18 +237,18 @@ declare const itemSchema: z.ZodObject<{
237
237
  shortDesc: z.ZodString;
238
238
  desc: z.ZodNullable<z.ZodString>;
239
239
  category: z.ZodEnum<{
240
+ berry: "berry";
241
+ other: "other";
240
242
  ball: "ball";
241
243
  medicine: "medicine";
242
244
  battle: "battle";
243
- berry: "berry";
244
245
  machine: "machine";
245
- megastone: "megastone";
246
- zcrystal: "zcrystal";
247
246
  treasure: "treasure";
248
247
  ingredient: "ingredient";
249
248
  material: "material";
250
249
  key: "key";
251
- other: "other";
250
+ megastone: "megastone";
251
+ zcrystal: "zcrystal";
252
252
  }>;
253
253
  unholdable: z.ZodOptional<z.ZodCoercedBoolean<unknown>>;
254
254
  }, z.core.$strip>;
@@ -259,40 +259,40 @@ declare const pokeballSchema: z.ZodObject<{
259
259
  shortDesc: z.ZodString;
260
260
  desc: z.ZodNullable<z.ZodString>;
261
261
  category: z.ZodEnum<{
262
+ special: "special";
262
263
  other: "other";
263
264
  regular: "regular";
264
- special: "special";
265
265
  hisuian: "hisuian";
266
266
  }>;
267
267
  unusable: z.ZodOptional<z.ZodCoercedBoolean<unknown>>;
268
268
  }, z.core.$strip>;
269
269
  declare const languageSchema: z.ZodObject<{
270
270
  id: z.ZodEnum<{
271
+ esla: "esla";
272
+ chs: "chs";
273
+ cht: "cht";
271
274
  en: "en";
272
275
  es: "es";
273
- esla: "esla";
274
276
  fr: "fr";
275
277
  de: "de";
276
278
  it: "it";
277
279
  ja: "ja";
278
280
  ko: "ko";
279
- chs: "chs";
280
- cht: "cht";
281
281
  pt: "pt";
282
282
  }>;
283
283
  name: z.ZodString;
284
284
  nameEng: z.ZodString;
285
285
  alpha3: z.ZodEnum<{
286
- esla: "esla";
287
- chs: "chs";
288
- cht: "cht";
289
286
  eng: "eng";
290
287
  esp: "esp";
288
+ esla: "esla";
291
289
  fra: "fra";
292
290
  deu: "deu";
293
291
  ita: "ita";
294
292
  jap: "jap";
295
293
  kor: "kor";
294
+ chs: "chs";
295
+ cht: "cht";
296
296
  por: "por";
297
297
  }>;
298
298
  inGameCode: z.ZodEnum<{
@@ -408,8 +408,8 @@ declare const moveSchema: z.ZodObject<{
408
408
  accuracy: z.ZodCoercedNumber<unknown>;
409
409
  pp: z.ZodCoercedNumber<unknown>;
410
410
  category: z.ZodEnum<{
411
- special: "special";
412
411
  physical: "physical";
412
+ special: "special";
413
413
  status: "status";
414
414
  }>;
415
415
  priority: z.ZodCoercedNumber<unknown>;
@@ -425,42 +425,42 @@ declare const pokedexEntrySchema: z.ZodObject<{
425
425
  isNonCanonical: z.ZodOptional<z.ZodCoercedBoolean<unknown>>;
426
426
  meta: z.ZodOptional<z.ZodObject<{
427
427
  names: z.ZodRecord<z.ZodEnum<{
428
- esla: "esla";
429
- chs: "chs";
430
- cht: "cht";
431
428
  eng: "eng";
432
429
  esp: "esp";
430
+ esla: "esla";
433
431
  fra: "fra";
434
432
  deu: "deu";
435
433
  ita: "ita";
436
434
  jap: "jap";
437
435
  kor: "kor";
436
+ chs: "chs";
437
+ cht: "cht";
438
438
  por: "por";
439
439
  }>, z.ZodOptional<z.ZodString>>;
440
440
  speciesNames: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
441
- esla: "esla";
442
- chs: "chs";
443
- cht: "cht";
444
441
  eng: "eng";
445
442
  esp: "esp";
443
+ esla: "esla";
446
444
  fra: "fra";
447
445
  deu: "deu";
448
446
  ita: "ita";
449
447
  jap: "jap";
450
448
  kor: "kor";
449
+ chs: "chs";
450
+ cht: "cht";
451
451
  por: "por";
452
452
  }>, z.ZodOptional<z.ZodString>>>;
453
453
  formNames: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
454
- esla: "esla";
455
- chs: "chs";
456
- cht: "cht";
457
454
  eng: "eng";
458
455
  esp: "esp";
456
+ esla: "esla";
459
457
  fra: "fra";
460
458
  deu: "deu";
461
459
  ita: "ita";
462
460
  jap: "jap";
463
461
  kor: "kor";
462
+ chs: "chs";
463
+ cht: "cht";
464
464
  por: "por";
465
465
  }>, z.ZodOptional<z.ZodString>>>;
466
466
  type1: z.ZodOptional<z.ZodString>;
@@ -490,42 +490,42 @@ declare const pokedexSchema: z.ZodObject<{
490
490
  isNonCanonical: z.ZodOptional<z.ZodCoercedBoolean<unknown>>;
491
491
  meta: z.ZodOptional<z.ZodObject<{
492
492
  names: z.ZodRecord<z.ZodEnum<{
493
- esla: "esla";
494
- chs: "chs";
495
- cht: "cht";
496
493
  eng: "eng";
497
494
  esp: "esp";
495
+ esla: "esla";
498
496
  fra: "fra";
499
497
  deu: "deu";
500
498
  ita: "ita";
501
499
  jap: "jap";
502
500
  kor: "kor";
501
+ chs: "chs";
502
+ cht: "cht";
503
503
  por: "por";
504
504
  }>, z.ZodOptional<z.ZodString>>;
505
505
  speciesNames: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
506
- esla: "esla";
507
- chs: "chs";
508
- cht: "cht";
509
506
  eng: "eng";
510
507
  esp: "esp";
508
+ esla: "esla";
511
509
  fra: "fra";
512
510
  deu: "deu";
513
511
  ita: "ita";
514
512
  jap: "jap";
515
513
  kor: "kor";
514
+ chs: "chs";
515
+ cht: "cht";
516
516
  por: "por";
517
517
  }>, z.ZodOptional<z.ZodString>>>;
518
518
  formNames: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
519
- esla: "esla";
520
- chs: "chs";
521
- cht: "cht";
522
519
  eng: "eng";
523
520
  esp: "esp";
521
+ esla: "esla";
524
522
  fra: "fra";
525
523
  deu: "deu";
526
524
  ita: "ita";
527
525
  jap: "jap";
528
526
  kor: "kor";
527
+ chs: "chs";
528
+ cht: "cht";
529
529
  por: "por";
530
530
  }>, z.ZodOptional<z.ZodString>>>;
531
531
  type1: z.ZodOptional<z.ZodString>;
@@ -632,55 +632,55 @@ declare const pokemonSchema: z.ZodObject<{
632
632
  evoFromFriendship: z.ZodOptional<z.ZodCoercedBoolean<unknown>>;
633
633
  evoFromCondition: z.ZodOptional<z.ZodString>;
634
634
  names: z.ZodRecord<z.ZodEnum<{
635
- esla: "esla";
636
- chs: "chs";
637
- cht: "cht";
638
635
  eng: "eng";
639
636
  esp: "esp";
637
+ esla: "esla";
640
638
  fra: "fra";
641
639
  deu: "deu";
642
640
  ita: "ita";
643
641
  jap: "jap";
644
642
  kor: "kor";
643
+ chs: "chs";
644
+ cht: "cht";
645
645
  por: "por";
646
646
  }>, z.ZodOptional<z.ZodString>>;
647
647
  genus: z.ZodRecord<z.ZodEnum<{
648
- esla: "esla";
649
- chs: "chs";
650
- cht: "cht";
651
648
  eng: "eng";
652
649
  esp: "esp";
650
+ esla: "esla";
653
651
  fra: "fra";
654
652
  deu: "deu";
655
653
  ita: "ita";
656
654
  jap: "jap";
657
655
  kor: "kor";
656
+ chs: "chs";
657
+ cht: "cht";
658
658
  por: "por";
659
659
  }>, z.ZodOptional<z.ZodString>>;
660
660
  speciesNames: z.ZodRecord<z.ZodEnum<{
661
- esla: "esla";
662
- chs: "chs";
663
- cht: "cht";
664
661
  eng: "eng";
665
662
  esp: "esp";
663
+ esla: "esla";
666
664
  fra: "fra";
667
665
  deu: "deu";
668
666
  ita: "ita";
669
667
  jap: "jap";
670
668
  kor: "kor";
669
+ chs: "chs";
670
+ cht: "cht";
671
671
  por: "por";
672
672
  }>, z.ZodOptional<z.ZodString>>;
673
673
  formNames: z.ZodRecord<z.ZodEnum<{
674
- esla: "esla";
675
- chs: "chs";
676
- cht: "cht";
677
674
  eng: "eng";
678
675
  esp: "esp";
676
+ esla: "esla";
679
677
  fra: "fra";
680
678
  deu: "deu";
681
679
  ita: "ita";
682
680
  jap: "jap";
683
681
  kor: "kor";
682
+ chs: "chs";
683
+ cht: "cht";
684
684
  por: "por";
685
685
  }>, z.ZodOptional<z.ZodString>>;
686
686
  }, z.core.$strip>;
@@ -0,0 +1 @@
1
+ export { };