@pokepc/dataset 6.7.0 → 6.8.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 (205) hide show
  1. package/README.md +15 -3
  2. package/build/{box-preset-sanitizer-DHGv5TJj.mjs → box-preset-sanitizer-CmgPzVjb.mjs} +2 -2
  3. package/build/{box-preset-sanitizer-DHGv5TJj.mjs.map → box-preset-sanitizer-CmgPzVjb.mjs.map} +1 -1
  4. package/build/{build-DvGzwIK8.mjs → build-D2oPkkzJ.mjs} +52 -52
  5. package/build/{build-DvGzwIK8.mjs.map → build-D2oPkkzJ.mjs.map} +1 -1
  6. package/build/{enums-DlMg7WLl.mjs → enums-u8n-nN0B.mjs} +5 -2
  7. package/build/enums-u8n-nN0B.mjs.map +1 -0
  8. package/build/lib/box-preset-sanitizer.mjs +1 -1
  9. package/build/lib/box-preset-transform.mjs +2 -2
  10. package/build/lib/fs.d.mts +6 -6
  11. package/build/lib/fs.d.mts.map +1 -1
  12. package/build/lib/fs.mjs +21 -29
  13. package/build/lib/fs.mjs.map +1 -1
  14. package/build/lib/schemas.d.mts +1 -1
  15. package/build/lib/schemas.mjs +1 -1
  16. package/build/lib/search.d.mts +2 -0
  17. package/build/lib/search.d.mts.map +1 -1
  18. package/build/lib/search.mjs +3 -3
  19. package/build/lib/search.mjs.map +1 -1
  20. package/build/lib/types.d.mts +1 -1
  21. package/build/lib/utils.d.mts +2 -0
  22. package/build/lib/utils.d.mts.map +1 -1
  23. package/build/lib/utils.mjs +3 -2
  24. package/build/lib-next/_build.mjs +1 -1
  25. package/build/lib-next/enums.d.mts.map +1 -1
  26. package/build/lib-next/enums.mjs +1 -1
  27. package/build/lib-next/schemas.d.mts +8 -8
  28. package/build/lib-next/schemas.mjs +1 -1
  29. package/build/{schemas-Bj1AIX0P.mjs → schemas-CWE4YPI2.mjs} +2 -2
  30. package/build/{schemas-Bj1AIX0P.mjs.map → schemas-CWE4YPI2.mjs.map} +1 -1
  31. package/build/{schemas-CcUqoHNr.mjs → schemas-DvWBehAR.mjs} +5 -1
  32. package/build/schemas-DvWBehAR.mjs.map +1 -0
  33. package/build/{schemas-CDSWgtoj.d.mts → schemas-jxei_N2z.d.mts} +54 -48
  34. package/build/schemas-jxei_N2z.d.mts.map +1 -0
  35. package/build/{utils-BwovRocd.mjs → utils-BTjKkD-_.mjs} +2 -2
  36. package/build/utils-BTjKkD-_.mjs.map +1 -0
  37. package/build/utils-internal-C-UStMrZ.d.mts +7 -0
  38. package/build/utils-internal-C-UStMrZ.d.mts.map +1 -0
  39. package/build/{utils-internal-Czgdbnkv.mjs → utils-internal-DPjO9kQX.mjs} +7 -2
  40. package/build/{utils-internal-Czgdbnkv.mjs.map → utils-internal-DPjO9kQX.mjs.map} +1 -1
  41. package/data/games/b2w2-b2.json +4 -0
  42. package/data/games/b2w2-w2.json +4 -0
  43. package/data/games/b2w2.json +4 -0
  44. package/data/games/bdsp-bd.json +4 -0
  45. package/data/games/bdsp-sp.json +4 -0
  46. package/data/games/bdsp.json +4 -0
  47. package/data/games/bw-b.json +4 -0
  48. package/data/games/bw-w.json +4 -0
  49. package/data/games/bw.json +4 -0
  50. package/data/games/bwb2w2.json +4 -0
  51. package/data/games/c.json +4 -0
  52. package/data/games/champions.json +4 -0
  53. package/data/games/col.json +4 -0
  54. package/data/games/dp-d.json +4 -0
  55. package/data/games/dp-p.json +4 -0
  56. package/data/games/dp.json +4 -0
  57. package/data/games/dppt.json +4 -0
  58. package/data/games/e.json +4 -0
  59. package/data/games/frlg-fr.json +4 -0
  60. package/data/games/frlg-lg.json +4 -0
  61. package/data/games/frlg.json +4 -0
  62. package/data/games/go.json +4 -0
  63. package/data/games/gs-g.json +4 -0
  64. package/data/games/gs-s.json +4 -0
  65. package/data/games/gs.json +4 -0
  66. package/data/games/gsc.json +4 -0
  67. package/data/games/hgss-hg.json +4 -0
  68. package/data/games/hgss-ss.json +4 -0
  69. package/data/games/hgss.json +4 -0
  70. package/data/games/home.json +4 -0
  71. package/data/games/la.json +4 -0
  72. package/data/games/lgpe-lge.json +4 -0
  73. package/data/games/lgpe-lgp.json +4 -0
  74. package/data/games/lgpe.json +4 -0
  75. package/data/games/lza-megadimension.json +4 -0
  76. package/data/games/lza.json +4 -0
  77. package/data/games/oras-as.json +4 -0
  78. package/data/games/oras-or.json +4 -0
  79. package/data/games/oras.json +4 -0
  80. package/data/games/pokopia-bubblybasin.json +4 -0
  81. package/data/games/pokopia.json +4 -0
  82. package/data/games/pt.json +4 -0
  83. package/data/games/rb-b.json +4 -0
  84. package/data/games/rb-r.json +4 -0
  85. package/data/games/rb.json +4 -0
  86. package/data/games/rby.json +4 -0
  87. package/data/games/rs-r.json +4 -0
  88. package/data/games/rs-s.json +4 -0
  89. package/data/games/rs.json +4 -0
  90. package/data/games/rse.json +4 -0
  91. package/data/games/sm-m.json +4 -0
  92. package/data/games/sm-s.json +4 -0
  93. package/data/games/sm.json +4 -0
  94. package/data/games/smusum.json +4 -0
  95. package/data/games/sv-indigodisk.json +4 -0
  96. package/data/games/sv-s.json +4 -0
  97. package/data/games/sv-tealmask.json +4 -0
  98. package/data/games/sv-v.json +4 -0
  99. package/data/games/sv.json +4 -0
  100. package/data/games/swsh-crowntundra.json +4 -0
  101. package/data/games/swsh-islearmor.json +4 -0
  102. package/data/games/swsh-sh.json +4 -0
  103. package/data/games/swsh-sw.json +4 -0
  104. package/data/games/swsh.json +4 -0
  105. package/data/games/usum-um.json +4 -0
  106. package/data/games/usum-us.json +4 -0
  107. package/data/games/usum.json +4 -0
  108. package/data/games/wiwa-wa.json +4 -0
  109. package/data/games/wiwa-wi.json +4 -0
  110. package/data/games/wiwa.json +4 -0
  111. package/data/games/xd.json +4 -0
  112. package/data/games/xy-x.json +4 -0
  113. package/data/games/xy-y.json +4 -0
  114. package/data/games/xy.json +4 -0
  115. package/data/games/y.json +4 -0
  116. package/data/pokedexes/hoenn-oras.json +12 -0
  117. package/data/pokedexes/kanto-lgpe.json +11 -0
  118. package/data/pokedexes/national-oras.json +27 -0
  119. package/data/pokemon/abomasnow-mega.json +1 -1
  120. package/data/pokemon/aggron-mega.json +1 -1
  121. package/data/pokemon/ampharos-mega.json +1 -1
  122. package/data/pokemon/blastoise-mega.json +12 -1
  123. package/data/pokemon/blaziken-mega.json +1 -1
  124. package/data/pokemon/charizard-mega-x.json +12 -2
  125. package/data/pokemon/charizard-mega-y.json +12 -2
  126. package/data/pokemon/gengar-mega.json +1 -1
  127. package/data/pokemon/heracross-mega.json +1 -1
  128. package/data/pokemon/houndoom-mega.json +1 -1
  129. package/data/pokemon/kangaskhan-mega.json +1 -1
  130. package/data/pokemon/lucario-mega.json +1 -1
  131. package/data/pokemon/manectric-mega.json +1 -1
  132. package/data/pokemon/mawile-mega.json +2 -1
  133. package/data/pokemon/mewtwo-mega-x.json +10 -1
  134. package/data/pokemon/mewtwo-mega-y.json +10 -1
  135. package/data/pokemon/pinsir-mega.json +1 -1
  136. package/data/pokemon/sableye-mega.json +1 -1
  137. package/data/pokemon/scizor-mega.json +1 -1
  138. package/data/pokemon/tyranitar-mega.json +1 -1
  139. package/data/pokemon/venusaur-mega.json +12 -1
  140. package/data-next/champions/abilities.json +117 -5
  141. package/data-next/champions/battle-states.json +24 -3
  142. package/data-next/champions/i18n/chs/abilities.json +104 -6
  143. package/data-next/champions/i18n/chs/battle-states.json +24 -3
  144. package/data-next/champions/i18n/chs/items.json +144 -0
  145. package/data-next/champions/i18n/chs/moves.json +25 -25
  146. package/data-next/champions/i18n/chs/pokemon.json +195 -0
  147. package/data-next/champions/i18n/cht/abilities.json +105 -7
  148. package/data-next/champions/i18n/cht/battle-states.json +24 -3
  149. package/data-next/champions/i18n/cht/items.json +144 -0
  150. package/data-next/champions/i18n/cht/moves.json +25 -25
  151. package/data-next/champions/i18n/cht/pokemon.json +195 -0
  152. package/data-next/champions/i18n/deu/abilities.json +105 -7
  153. package/data-next/champions/i18n/deu/battle-states.json +24 -3
  154. package/data-next/champions/i18n/deu/items.json +144 -0
  155. package/data-next/champions/i18n/deu/moves.json +28 -28
  156. package/data-next/champions/i18n/deu/pokemon.json +195 -0
  157. package/data-next/champions/i18n/eng/abilities.json +102 -4
  158. package/data-next/champions/i18n/eng/battle-states.json +24 -3
  159. package/data-next/champions/i18n/eng/items.json +144 -0
  160. package/data-next/champions/i18n/eng/moves.json +25 -25
  161. package/data-next/champions/i18n/eng/pokemon.json +195 -0
  162. package/data-next/champions/i18n/es-es/abilities.json +106 -8
  163. package/data-next/champions/i18n/es-es/battle-states.json +24 -3
  164. package/data-next/champions/i18n/es-es/items.json +145 -1
  165. package/data-next/champions/i18n/es-es/moves.json +25 -25
  166. package/data-next/champions/i18n/es-es/pokemon.json +195 -0
  167. package/data-next/champions/i18n/es-la/abilities.json +106 -8
  168. package/data-next/champions/i18n/es-la/battle-states.json +24 -3
  169. package/data-next/champions/i18n/es-la/items.json +145 -1
  170. package/data-next/champions/i18n/es-la/moves.json +26 -26
  171. package/data-next/champions/i18n/es-la/pokemon.json +195 -0
  172. package/data-next/champions/i18n/fra/abilities.json +105 -7
  173. package/data-next/champions/i18n/fra/battle-states.json +24 -3
  174. package/data-next/champions/i18n/fra/items.json +144 -0
  175. package/data-next/champions/i18n/fra/moves.json +25 -25
  176. package/data-next/champions/i18n/fra/pokemon.json +195 -0
  177. package/data-next/champions/i18n/ita/abilities.json +116 -18
  178. package/data-next/champions/i18n/ita/battle-states.json +24 -3
  179. package/data-next/champions/i18n/ita/items.json +145 -1
  180. package/data-next/champions/i18n/ita/moves.json +28 -28
  181. package/data-next/champions/i18n/ita/pokemon.json +195 -0
  182. package/data-next/champions/i18n/jpn/abilities.json +104 -6
  183. package/data-next/champions/i18n/jpn/battle-states.json +24 -3
  184. package/data-next/champions/i18n/jpn/items.json +144 -0
  185. package/data-next/champions/i18n/jpn/moves.json +25 -25
  186. package/data-next/champions/i18n/jpn/pokemon.json +195 -0
  187. package/data-next/champions/i18n/kor/abilities.json +104 -6
  188. package/data-next/champions/i18n/kor/battle-states.json +24 -3
  189. package/data-next/champions/i18n/kor/items.json +144 -0
  190. package/data-next/champions/i18n/kor/moves.json +25 -25
  191. package/data-next/champions/i18n/kor/pokemon.json +195 -0
  192. package/data-next/champions/i18n/pt-br/abilities.json +102 -4
  193. package/data-next/champions/i18n/pt-br/battle-states.json +24 -3
  194. package/data-next/champions/i18n/pt-br/items.json +144 -0
  195. package/data-next/champions/i18n/pt-br/moves.json +25 -25
  196. package/data-next/champions/i18n/pt-br/pokemon.json +195 -0
  197. package/data-next/champions/items.json +180 -0
  198. package/data-next/champions/moves.json +61 -61
  199. package/data-next/champions/pokemon-moves.json +1882 -173
  200. package/data-next/champions/pokemon.json +913 -21
  201. package/package.json +17 -9
  202. package/build/enums-DlMg7WLl.mjs.map +0 -1
  203. package/build/schemas-CDSWgtoj.d.mts.map +0 -1
  204. package/build/schemas-CcUqoHNr.mjs.map +0 -1
  205. package/build/utils-BwovRocd.mjs.map +0 -1
@@ -1,16 +1,16 @@
1
1
  import { z as z$1 } from "zod";
2
2
  //#region src/lib/schemas.d.ts
3
3
  declare const i18nTextSchema: z$1.ZodRecord<z$1.ZodEnum<{
4
+ esla: "esla";
5
+ chs: "chs";
6
+ cht: "cht";
4
7
  eng: "eng";
5
8
  esp: "esp";
6
- esla: "esla";
7
9
  fra: "fra";
8
10
  deu: "deu";
9
11
  ita: "ita";
10
12
  jap: "jap";
11
13
  kor: "kor";
12
- chs: "chs";
13
- cht: "cht";
14
14
  por: "por";
15
15
  }>, z$1.ZodOptional<z$1.ZodString>>;
16
16
  declare const abilitySchema: z$1.ZodObject<{
@@ -21,16 +21,16 @@ declare const abilitySchema: z$1.ZodObject<{
21
21
  shortDesc: z$1.ZodString;
22
22
  desc: z$1.ZodNullable<z$1.ZodString>;
23
23
  tags: z$1.ZodArray<z$1.ZodEnum<{
24
- defense: "defense";
25
24
  other: "other";
26
- items: "items";
27
25
  alert: "alert";
28
26
  "ally-helper": "ally-helper";
29
27
  "stat-boost": "stat-boost";
30
28
  "move-boost": "move-boost";
31
29
  bypass: "bypass";
30
+ defense: "defense";
32
31
  handicap: "handicap";
33
32
  heal: "heal";
33
+ items: "items";
34
34
  "priority-control": "priority-control";
35
35
  damage: "damage";
36
36
  "target-weaken": "target-weaken";
@@ -102,6 +102,8 @@ declare const colorSchema: z$1.ZodObject<{
102
102
  }, z$1.core.$strip>;
103
103
  declare const gameFeaturesSchema: z$1.ZodObject<{
104
104
  storage: z$1.ZodBoolean;
105
+ party: z$1.ZodBoolean;
106
+ battleTeams: z$1.ZodBoolean;
105
107
  pokedex: z$1.ZodBoolean;
106
108
  training: z$1.ZodBoolean;
107
109
  shiny: z$1.ZodBoolean;
@@ -167,6 +169,8 @@ declare const gameSchema: z$1.ZodObject<{
167
169
  pokedexes: z$1.ZodArray<z$1.ZodString>;
168
170
  maxBoxes: z$1.ZodCoercedNumber<unknown>;
169
171
  maxBoxSize: z$1.ZodCoercedNumber<unknown>;
172
+ maxPartySize: z$1.ZodCoercedNumber<unknown>;
173
+ maxBattleTeams: z$1.ZodCoercedNumber<unknown>;
170
174
  platforms: z$1.ZodArray<z$1.ZodEnum<{
171
175
  gb: "gb";
172
176
  gbc: "gbc";
@@ -183,6 +187,8 @@ declare const gameSchema: z$1.ZodObject<{
183
187
  isUnreleased: z$1.ZodOptional<z$1.ZodCoercedBoolean<unknown>>;
184
188
  features: z$1.ZodObject<{
185
189
  storage: z$1.ZodBoolean;
190
+ party: z$1.ZodBoolean;
191
+ battleTeams: z$1.ZodBoolean;
186
192
  pokedex: z$1.ZodBoolean;
187
193
  training: z$1.ZodBoolean;
188
194
  shiny: z$1.ZodBoolean;
@@ -236,18 +242,18 @@ declare const itemSchema: z$1.ZodObject<{
236
242
  shortDesc: z$1.ZodString;
237
243
  desc: z$1.ZodNullable<z$1.ZodString>;
238
244
  category: z$1.ZodEnum<{
239
- berry: "berry";
240
- other: "other";
241
245
  ball: "ball";
242
246
  medicine: "medicine";
243
247
  battle: "battle";
248
+ berry: "berry";
244
249
  machine: "machine";
250
+ megastone: "megastone";
251
+ zcrystal: "zcrystal";
245
252
  treasure: "treasure";
246
253
  ingredient: "ingredient";
247
254
  material: "material";
248
255
  key: "key";
249
- megastone: "megastone";
250
- zcrystal: "zcrystal";
256
+ other: "other";
251
257
  }>;
252
258
  unholdable: z$1.ZodOptional<z$1.ZodCoercedBoolean<unknown>>;
253
259
  }, z$1.core.$strip>;
@@ -258,40 +264,40 @@ declare const pokeballSchema: z$1.ZodObject<{
258
264
  shortDesc: z$1.ZodString;
259
265
  desc: z$1.ZodNullable<z$1.ZodString>;
260
266
  category: z$1.ZodEnum<{
261
- special: "special";
262
267
  other: "other";
263
268
  regular: "regular";
269
+ special: "special";
264
270
  hisuian: "hisuian";
265
271
  }>;
266
272
  unusable: z$1.ZodOptional<z$1.ZodCoercedBoolean<unknown>>;
267
273
  }, z$1.core.$strip>;
268
274
  declare const languageSchema: z$1.ZodObject<{
269
275
  id: z$1.ZodEnum<{
270
- esla: "esla";
271
- chs: "chs";
272
- cht: "cht";
273
276
  en: "en";
274
277
  es: "es";
278
+ esla: "esla";
275
279
  fr: "fr";
276
280
  de: "de";
277
281
  it: "it";
278
282
  ja: "ja";
279
283
  ko: "ko";
284
+ chs: "chs";
285
+ cht: "cht";
280
286
  pt: "pt";
281
287
  }>;
282
288
  name: z$1.ZodString;
283
289
  nameEng: z$1.ZodString;
284
290
  alpha3: z$1.ZodEnum<{
291
+ esla: "esla";
292
+ chs: "chs";
293
+ cht: "cht";
285
294
  eng: "eng";
286
295
  esp: "esp";
287
- esla: "esla";
288
296
  fra: "fra";
289
297
  deu: "deu";
290
298
  ita: "ita";
291
299
  jap: "jap";
292
300
  kor: "kor";
293
- chs: "chs";
294
- cht: "cht";
295
301
  por: "por";
296
302
  }>;
297
303
  inGameCode: z$1.ZodEnum<{
@@ -407,8 +413,8 @@ declare const moveSchema: z$1.ZodObject<{
407
413
  accuracy: z$1.ZodCoercedNumber<unknown>;
408
414
  pp: z$1.ZodCoercedNumber<unknown>;
409
415
  category: z$1.ZodEnum<{
410
- physical: "physical";
411
416
  special: "special";
417
+ physical: "physical";
412
418
  status: "status";
413
419
  }>;
414
420
  priority: z$1.ZodCoercedNumber<unknown>;
@@ -424,42 +430,42 @@ declare const pokedexEntrySchema: z$1.ZodObject<{
424
430
  isNonCanonical: z$1.ZodOptional<z$1.ZodCoercedBoolean<unknown>>;
425
431
  meta: z$1.ZodOptional<z$1.ZodObject<{
426
432
  names: z$1.ZodRecord<z$1.ZodEnum<{
433
+ esla: "esla";
434
+ chs: "chs";
435
+ cht: "cht";
427
436
  eng: "eng";
428
437
  esp: "esp";
429
- esla: "esla";
430
438
  fra: "fra";
431
439
  deu: "deu";
432
440
  ita: "ita";
433
441
  jap: "jap";
434
442
  kor: "kor";
435
- chs: "chs";
436
- cht: "cht";
437
443
  por: "por";
438
444
  }>, z$1.ZodOptional<z$1.ZodString>>;
439
445
  speciesNames: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodEnum<{
446
+ esla: "esla";
447
+ chs: "chs";
448
+ cht: "cht";
440
449
  eng: "eng";
441
450
  esp: "esp";
442
- esla: "esla";
443
451
  fra: "fra";
444
452
  deu: "deu";
445
453
  ita: "ita";
446
454
  jap: "jap";
447
455
  kor: "kor";
448
- chs: "chs";
449
- cht: "cht";
450
456
  por: "por";
451
457
  }>, z$1.ZodOptional<z$1.ZodString>>>;
452
458
  formNames: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodEnum<{
459
+ esla: "esla";
460
+ chs: "chs";
461
+ cht: "cht";
453
462
  eng: "eng";
454
463
  esp: "esp";
455
- esla: "esla";
456
464
  fra: "fra";
457
465
  deu: "deu";
458
466
  ita: "ita";
459
467
  jap: "jap";
460
468
  kor: "kor";
461
- chs: "chs";
462
- cht: "cht";
463
469
  por: "por";
464
470
  }>, z$1.ZodOptional<z$1.ZodString>>>;
465
471
  type1: z$1.ZodOptional<z$1.ZodString>;
@@ -489,42 +495,42 @@ declare const pokedexSchema: z$1.ZodObject<{
489
495
  isNonCanonical: z$1.ZodOptional<z$1.ZodCoercedBoolean<unknown>>;
490
496
  meta: z$1.ZodOptional<z$1.ZodObject<{
491
497
  names: z$1.ZodRecord<z$1.ZodEnum<{
498
+ esla: "esla";
499
+ chs: "chs";
500
+ cht: "cht";
492
501
  eng: "eng";
493
502
  esp: "esp";
494
- esla: "esla";
495
503
  fra: "fra";
496
504
  deu: "deu";
497
505
  ita: "ita";
498
506
  jap: "jap";
499
507
  kor: "kor";
500
- chs: "chs";
501
- cht: "cht";
502
508
  por: "por";
503
509
  }>, z$1.ZodOptional<z$1.ZodString>>;
504
510
  speciesNames: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodEnum<{
511
+ esla: "esla";
512
+ chs: "chs";
513
+ cht: "cht";
505
514
  eng: "eng";
506
515
  esp: "esp";
507
- esla: "esla";
508
516
  fra: "fra";
509
517
  deu: "deu";
510
518
  ita: "ita";
511
519
  jap: "jap";
512
520
  kor: "kor";
513
- chs: "chs";
514
- cht: "cht";
515
521
  por: "por";
516
522
  }>, z$1.ZodOptional<z$1.ZodString>>>;
517
523
  formNames: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodEnum<{
524
+ esla: "esla";
525
+ chs: "chs";
526
+ cht: "cht";
518
527
  eng: "eng";
519
528
  esp: "esp";
520
- esla: "esla";
521
529
  fra: "fra";
522
530
  deu: "deu";
523
531
  ita: "ita";
524
532
  jap: "jap";
525
533
  kor: "kor";
526
- chs: "chs";
527
- cht: "cht";
528
534
  por: "por";
529
535
  }>, z$1.ZodOptional<z$1.ZodString>>>;
530
536
  type1: z$1.ZodOptional<z$1.ZodString>;
@@ -631,55 +637,55 @@ declare const pokemonSchema: z$1.ZodObject<{
631
637
  evoFromFriendship: z$1.ZodOptional<z$1.ZodCoercedBoolean<unknown>>;
632
638
  evoFromCondition: z$1.ZodOptional<z$1.ZodString>;
633
639
  names: z$1.ZodRecord<z$1.ZodEnum<{
640
+ esla: "esla";
641
+ chs: "chs";
642
+ cht: "cht";
634
643
  eng: "eng";
635
644
  esp: "esp";
636
- esla: "esla";
637
645
  fra: "fra";
638
646
  deu: "deu";
639
647
  ita: "ita";
640
648
  jap: "jap";
641
649
  kor: "kor";
642
- chs: "chs";
643
- cht: "cht";
644
650
  por: "por";
645
651
  }>, z$1.ZodOptional<z$1.ZodString>>;
646
652
  genus: z$1.ZodRecord<z$1.ZodEnum<{
653
+ esla: "esla";
654
+ chs: "chs";
655
+ cht: "cht";
647
656
  eng: "eng";
648
657
  esp: "esp";
649
- esla: "esla";
650
658
  fra: "fra";
651
659
  deu: "deu";
652
660
  ita: "ita";
653
661
  jap: "jap";
654
662
  kor: "kor";
655
- chs: "chs";
656
- cht: "cht";
657
663
  por: "por";
658
664
  }>, z$1.ZodOptional<z$1.ZodString>>;
659
665
  speciesNames: z$1.ZodRecord<z$1.ZodEnum<{
666
+ esla: "esla";
667
+ chs: "chs";
668
+ cht: "cht";
660
669
  eng: "eng";
661
670
  esp: "esp";
662
- esla: "esla";
663
671
  fra: "fra";
664
672
  deu: "deu";
665
673
  ita: "ita";
666
674
  jap: "jap";
667
675
  kor: "kor";
668
- chs: "chs";
669
- cht: "cht";
670
676
  por: "por";
671
677
  }>, z$1.ZodOptional<z$1.ZodString>>;
672
678
  formNames: z$1.ZodRecord<z$1.ZodEnum<{
679
+ esla: "esla";
680
+ chs: "chs";
681
+ cht: "cht";
673
682
  eng: "eng";
674
683
  esp: "esp";
675
- esla: "esla";
676
684
  fra: "fra";
677
685
  deu: "deu";
678
686
  ita: "ita";
679
687
  jap: "jap";
680
688
  kor: "kor";
681
- chs: "chs";
682
- cht: "cht";
683
689
  por: "por";
684
690
  }>, z$1.ZodOptional<z$1.ZodString>>;
685
691
  }, z$1.core.$strip>;
@@ -801,4 +807,4 @@ declare const pokemonSearchFilterSchema: z$1.ZodObject<{
801
807
  }, z$1.core.$strip>;
802
808
  //#endregion
803
809
  export { pokemonSchema as A, onlineFeaturesSchema as C, pokedexEntrySchema as D, pokeballSchema as E, regionSchema as M, ribbonSchema as N, pokedexSchema as O, typeSchema as P, natureSchema as S, personalitySchema as T, modernBoxPresetIndexSchema as _, boxPresetMapSchema as a, modernBoxPresetTags as b, colorSchema as c, generationSchema as d, i18nTextSchema as f, modernBoxPresetBoxSchema as g, markSchema as h, boxPresetIndexItemSchema as i, pokemonSearchFilterSchema as j, pokemonRefsSchema as k, gameFeaturesSchema as l, languageSchema as m, boxPresetBoxPokemonSchema as n, boxPresetSchema as o, itemSchema as p, boxPresetBoxSchema as r, characterSchema as s, abilitySchema as t, gameSchema as u, modernBoxPresetSchema as v, originMarkSchema as w, moveSchema as x, modernBoxPresetSlotSchema as y };
804
- //# sourceMappingURL=schemas-CDSWgtoj.d.mts.map
810
+ //# sourceMappingURL=schemas-jxei_N2z.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas-jxei_N2z.d.mts","names":[],"sources":["../src/lib/schemas.ts"],"mappings":";;cAkEa,gBAAc,IAAA,UAAA,IAAA;;;;;;;;;;;;IAA+D,IAAA,YAAA,IAAA;cAE7E,eAAa,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIxB,IAAA,KAAA;cACW,mBAAiB,IAAA;;;GAI5B,IAAA,KAAA;cACW,iBAAe,IAAA;;;GAE1B,IAAA,KAAA;cACW,aAAW,IAAA;;;;GAEtB,IAAA,KAAA;cACW,oBAAkB,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyB7B,IAAA,KAAA;cACW,sBAAoB,IAAA;;;;;;;;;;;;;;;;GAO/B,IAAA,KAAA;cACW,YAAU,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsBrB,IAAA,KAAA;cACW,kBAAgB,IAAA;;;;GAI3B,IAAA,KAAA;cACW,YAAU,IAAA;;;;;;;;;;;;;;;;;;;;;;GAIrB,IAAA,KAAA;cACW,gBAAc,IAAA;;;;;;;;;;;;;GAGzB,IAAA,KAAA;cACW,gBAAc,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GASzB,IAAA,KAAA;cACW,YAAU,IAAA;;;;;;;;;;GAMrB,IAAA,KAAA;cACW,cAAY,IAAA;;;;;;;;;;;;;;GAIvB,IAAA,KAAA;cACW,kBAAgB,IAAA;;;GAAc,IAAA,KAAA;cAC9B,cAAY,IAAA;;;GAAc,IAAA,KAAA;cAC1B,YAAU,IAAA;;;;;GAGrB,IAAA,KAAA;cACW,cAAY,IAAA;;;;;;;;;;;;;;;;;;;;;;;GAGvB,IAAA,KAAA;cACW,YAAU,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GASrB,IAAA,KAAA;cAEW,oBAAkB,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuB7B,IAAA,KAAA;cAEW,eAAa,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAUxB,IAAA,KAAA;cAEW,mBAAiB,IAAA;;;;;;;;;GAS5B,IAAA,KAAA;cAEW,eAAa,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFxB,IAAA,KAAA;cAIW,0BAAwB,IAAA;;;;;;GAQ1B,IAAA,KAAA;cAEE,2BAAyB,IAAA,UAAA,IAAA,YAAA,IAAA,YAAA,IAAA;;;;;GAOrC,IAAA,KAAA;cAEY,oBAAkB,IAAA;;;;;;;;GAG7B,IAAA,KAAA;cAEW,iBAAe,IAAA;;;;;;;;;;;;;;;;;GAS1B,IAAA,KAAA;cAEW,oBAAkB,IAAA,UAAA,IAAA,WAAA,IAAA,UAAA,IAAA,WAAA,IAAA;;;;;;;;;;;;;;;;;GAA8D,IAAA,KAAA;cAEhF;cAUA,4BAA0B,IAAA,SAAA,IAAA;cAE1B,2BAAyB,IAAA,UAAA,IAAA,YAAA,IAAA,YAAA,IAAA;;;;;GASrC,IAAA,KAAA;cAEY,0BAAwB,IAAA;;;;;;;;GAK1B,IAAA,KAAA;cAEE,uBAAqB,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoBvB,IAAA,KAAA;cAEE,2BAAyB,IAAA;;;;;;;;GASpC,IAAA,KAAA"}
@@ -1,4 +1,4 @@
1
- import { n as capitalizeFirstLetter, t as arrayUnique } from "./utils-internal-Czgdbnkv.mjs";
1
+ import { n as capitalizeFirstLetter, t as arrayUnique } from "./utils-internal-DPjO9kQX.mjs";
2
2
  //#region src/lib/utils.ts
3
3
  function formatDexNum(num, positions = 4) {
4
4
  return num.toString().padStart(positions, "0");
@@ -177,4 +177,4 @@ function resolvePokemonName(meta, nickname, lang3Char) {
177
177
  //#endregion
178
178
  export { generatePokemonDescription as a, getPokemonGender as c, resolvePokemonName as d, translatePokemon as f, translatePokemonText as g, translatePokemonList as h, generateGameDescription as i, getPossiblePokemonGenders as l, translatePokemonByNid as m, dexNumToInt as n, generatePokemonSearchableText as o, translatePokemonById as p, formatDexNum as r, getGameCategoryLabel as s, dexNumToGen as t, randomPokemonList as u };
179
179
 
180
- //# sourceMappingURL=utils-BwovRocd.mjs.map
180
+ //# sourceMappingURL=utils-BTjKkD-_.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-BTjKkD-_.mjs","names":[],"sources":["../src/lib/utils.ts"],"sourcesContent":["// ----- Dataset UTILS --------------------------------------------\n\nimport { arrayUnique, capitalizeFirstLetter } from '../utils/utils-internal'\nexport { sortStringsInGivenOrder } from '../utils/utils-internal'\n\nexport function formatDexNum(num: number | string, positions: number = 4): string {\n return num.toString().padStart(positions, '0')\n}\n\nexport function dexNumToInt(num: number | string): number {\n return typeof num === 'string' ? Number.parseInt(num.replace(/^0+/, '')) : num\n}\n\nexport function dexNumToGen(nationalDexNum: number | string): number {\n const num = dexNumToInt(nationalDexNum)\n\n if (num <= 151) return 1\n if (num <= 251) return 2\n if (num <= 386) return 3\n if (num <= 493) return 4\n if (num <= 649) return 5\n if (num <= 721) return 6\n if (num <= 809) return 7\n if (num <= 905) return 8\n return 9\n}\n\nexport function randomPokemonList<T extends Pkds.PokemonBase>(\n pokemonList: Array<T>,\n quantity = 16,\n withForms = true,\n): Array<T> {\n const filteredPokes = withForms ? pokemonList : pokemonList.filter((pkm) => !pkm.isForm)\n const minIndex = 1\n const maxIndex = filteredPokes.length\n const distinctPokeIndices = new Set<number>()\n\n while (distinctPokeIndices.size < quantity) {\n const newPoke = Math.floor(Math.random() * (maxIndex - minIndex + 1)) + minIndex\n distinctPokeIndices.add(newPoke)\n }\n\n return Array.from(distinctPokeIndices)\n .map((index) => filteredPokes[index])\n .filter(Boolean)\n}\n\nexport function getPossiblePokemonGenders(meta: Pkds.Pokemon): Pkds.Gender[] {\n if (meta.hasGenderDifferences && meta.isFemaleForm) {\n return ['f']\n }\n if (meta.hasGenderDifferences && !meta.isFemaleForm) {\n return ['m']\n }\n if (meta.maleRate >= 100) {\n return ['m']\n }\n if (meta.femaleRate >= 100) {\n return ['f']\n }\n if (meta.maleRate <= 0 && meta.femaleRate <= 0) {\n return []\n }\n return ['m', 'f']\n}\n\nexport function getPokemonGender(\n inputGender: string | null | undefined,\n meta: Pkds.Pokemon,\n options?: { allowEmpty?: boolean },\n): Pkds.Gender {\n const possibleGenders = getPossiblePokemonGenders(meta)\n if (possibleGenders.length === 1) {\n return possibleGenders[0]\n }\n if (possibleGenders.length === 0) {\n return null\n }\n\n if (inputGender === 'm' || inputGender === 'f') {\n return inputGender\n }\n\n if (options?.allowEmpty) {\n // if allowEmpty is true, we won't determine/guess the gender, and return null\n // at this point, inputGender is either null or undefined as well\n return null\n }\n\n // if the gender is not specified, we need to determine it based on the maleRate and femaleRate\n if (meta.maleRate >= meta.femaleRate) {\n return 'm'\n }\n\n // if the femaleRate is greater than the maleRate, then the gender is female\n return 'f'\n}\n\n// ----- Dataset Text and Translation UTILS --------------------------------------------\n\nexport function translatePokemonText(\n pkm: Pkds.Pokemon,\n lang3Char: Pkds.LanguageAlpha3,\n): Pkds.PokemonText {\n const fallback = lang3Char === 'eng' ? undefined : translatePokemon(pkm, 'eng')\n const pkmName = pkm.names[lang3Char] ?? fallback?.name ?? pkm.id\n\n const texts: Pkds.PokemonText = {\n lang: lang3Char,\n genusText: pkm.genus[lang3Char] ?? fallback?.genusText,\n name: pkmName,\n speciesName: pkm.speciesNames[lang3Char] ?? pkmName ?? fallback?.speciesName ?? pkmName,\n formName: pkm.formNames[lang3Char] ?? fallback?.formName,\n }\n\n return texts\n}\n\nexport function translatePokemon(\n pokemon: Pkds.Pokemon | Pkds.TranslatedPokemon,\n lang: Pkds.LanguageAlpha3,\n dexNumPositions?: number,\n): Pkds.TranslatedPokemon {\n if (!('name' in pokemon)) {\n return {\n ...pokemon,\n ...translatePokemonText(pokemon, lang),\n speciesGen: dexNumToGen(pokemon.dexNum),\n dexNum: formatDexNum(\n pokemon.dexNum,\n dexNumPositions ?? Math.max(3, String(pokemon.dexNum).length),\n ),\n searchableText: generatePokemonSearchableText(pokemon),\n }\n }\n\n return {\n ...pokemon,\n ...translatePokemonText(pokemon, lang),\n }\n}\n\nexport function translatePokemonList(\n pokemonList: Array<Pkds.Pokemon | Pkds.TranslatedPokemon>,\n lang: Pkds.LanguageAlpha3,\n): Array<Pkds.TranslatedPokemon> {\n return pokemonList.map((pokemon) => translatePokemon(pokemon, lang))\n}\n\nexport function translatePokemonById(\n pokemonList: Array<Pkds.Pokemon | Pkds.TranslatedPokemon>,\n lang: Pkds.LanguageAlpha3,\n): Record<string, Pkds.TranslatedPokemon> {\n return Object.fromEntries(\n pokemonList.map((pokemon) => [pokemon.id, translatePokemon(pokemon, lang)]),\n )\n}\n\nexport function translatePokemonByNid(\n pokemonList: Array<Pkds.Pokemon | Pkds.TranslatedPokemon>,\n lang: Pkds.LanguageAlpha3,\n): Record<string, Pkds.TranslatedPokemon> {\n return Object.fromEntries(\n pokemonList.map((pokemon) => [pokemon.nid, translatePokemon(pokemon, lang)]),\n )\n}\n\nexport function generatePokemonDescription(\n pokemon: Pkds.TranslatedPokemon,\n lang3Char: Pkds.LanguageAlpha3,\n) {\n const parts = []\n const features = []\n const text = translatePokemonText(pokemon, lang3Char)\n\n // Basic description\n parts.push(`${text.genusText}`)\n\n // Form information\n if (pokemon.isForm) {\n parts.push(`Form: ${pokemon.formName}`)\n }\n\n // Pokemon category\n if (pokemon.isMythical) {\n features.push('Mythical')\n }\n if (pokemon.isLegendary) {\n features.push('Legendary')\n }\n\n // Type and generation information\n const types = [pokemon.type1]\n if (pokemon.type2) types.push(pokemon.type2)\n parts.push(`${types.map(capitalizeFirstLetter).join('/')} type`)\n parts.push(`It was discovered in Generation ${pokemon.gen}`)\n\n if (features.length > 0) {\n parts.push(`Classified as a ${features.join(' and ')} Pokémon`)\n }\n\n return parts.join('. ') + '.'\n}\n\nexport function generatePokemonSearchableText(poke: Pkds.Pokemon) {\n const pokeName = arrayUnique(Object.values(poke.names ?? {})).join(' ')\n const pokeFormName = arrayUnique(Object.values(poke.formNames ?? {})).join(' ')\n const speciesGen = dexNumToGen(poke.dexNum)\n\n const fullText = [\n pokeName,\n pokeFormName,\n poke.dexNum,\n poke.id,\n `type:${poke.type1}`,\n poke.type2 ? `type:${poke.type2}` : '',\n `region:${poke.region}`,\n `color:${poke.color}${poke.color === 'brown' ? ' color:orange' : ''}`,\n `gen${speciesGen} gen:${speciesGen} gen${poke.gen} gen:${poke.gen}`,\n poke.isMythical ? 'mythical' : '',\n poke.isLegendary ? 'legendary' : '',\n poke.isFemaleForm ? 'female' : '',\n poke.isBaby ? 'baby' : '',\n poke.isUltraBeast ? 'ultrabeast ultra beast' : '',\n poke.isRegional ? 'regional' : '',\n poke.isFusion ? 'fusion' : '',\n poke.isParadox ? 'paradox' : '',\n poke.isConvergent ? 'convergent' : '',\n poke.isCosmeticForm ? 'cosmetic' : '',\n poke.isGmax ? 'gigantamax gmax' : '',\n poke.isForm ? `is-form` : ``,\n poke.isMega ? `is-mega` : ``,\n poke.isBattleOnlyForm ? `is-battle-only` : `not-battle-only`,\n poke.storableIn.length > 0 ? 'is-storable' : 'not-storable',\n ]\n .filter(Boolean)\n .join(' ')\n .toLowerCase()\n\n return fullText\n}\n\nexport function getGameCategoryLabel(game: Pkds.Game): string {\n switch (game.series) {\n case 'main':\n return 'Main-series'\n case 'legends':\n return 'Legends-series'\n case 'storage':\n return 'Storage-series'\n default:\n return 'Spin-off'\n }\n}\n\nexport function generateGameDescription(game: Pkds.Game, gameCatText: string) {\n const platforms = game.platforms.map((platform: string) => platform.toUpperCase()).join(' / ')\n const features = []\n const parts = []\n const genPart = game.gen > 0 ? ` from Generation ${game.gen} ` : ''\n const releaseText = game.isUnreleased ? 'that will be released for' : 'released for'\n\n parts.push(\n `Pokémon ${game.name} is a ${gameCatText} ${game.type} ${genPart}${releaseText} ${platforms}`,\n )\n\n // if (game.gen > 0) {\n // parts.push(`It's a Generation ${game.gen} game`)\n // }\n\n if (game.features.gmax) features.push('Gigantamax')\n if (game.features.tera) features.push('Terastallization')\n if (game.features.alpha) features.push('Alpha Pokémon')\n\n if (features.length > 0) {\n // parts.push(`It features ${features.join(', ')}`)\n }\n\n if (game.region && game.region !== 'unknown') {\n const capitalizedRegion = game.region.charAt(0).toUpperCase() + game.region.slice(1)\n parts.push(`The game takes place in the ${capitalizedRegion} region`)\n }\n\n return parts.join('. ') + '.'\n}\n\nexport function resolvePokemonName(\n meta: Pkds.TranslatedPokemon,\n nickname?: string,\n lang3Char?: Pkds.LanguageAlpha3,\n): Pkds.PokemonNameInfo {\n const txt: Pkds.PokemonText = lang3Char\n ? translatePokemonText(meta, lang3Char)\n : {\n lang: meta.lang,\n name: meta.name,\n speciesName: meta.speciesName,\n formName: meta.formName,\n genusText: meta.genusText,\n }\n\n const nameObj: Pkds.PokemonNameInfo = {\n displayName: txt.speciesName ?? txt.name,\n displayFormName: txt.formName,\n fullName: txt.name,\n speciesName: txt.speciesName ?? txt.name,\n formName: txt.formName,\n isNicknamed: !!nickname,\n lang: txt.lang,\n }\n\n if (meta.isForm) {\n if (meta.isMega || meta.isPrimal || meta.isGmax) {\n nameObj.displayName = nameObj.fullName\n } else if (txt.formName) {\n nameObj.displayName = `${nameObj.speciesName} (${txt.formName})`\n }\n }\n if (nickname) {\n nameObj.displayName = `${nickname} - ${nameObj.displayName}`\n }\n return nameObj\n}\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ //#region src/utils/utils-internal.d.ts
2
+ declare function sortStringsInGivenOrder(strs: string[] | undefined, rightOrder: string[]): string[];
3
+ declare function sanitizeSearchQuery(query?: string | null): string;
4
+ declare function matchesSearchQuery(haystack: string, query?: string | null): boolean;
5
+ //#endregion
6
+ export { sanitizeSearchQuery as n, sortStringsInGivenOrder as r, matchesSearchQuery as t };
7
+ //# sourceMappingURL=utils-internal-C-UStMrZ.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-internal-C-UStMrZ.d.mts","names":[],"sources":["../src/utils/utils-internal.ts"],"mappings":";iBAQgB,wBAAwB,4BAA4B;iBAQpD,oBAAoB;iBAyCpB,mBAAmB,kBAAkB"}
@@ -5,6 +5,11 @@ function capitalizeFirstLetter(string) {
5
5
  function arrayUnique(array) {
6
6
  return Array.from(new Set(array));
7
7
  }
8
+ function sortStringsInGivenOrder(strs, rightOrder) {
9
+ return [...strs ?? []].sort((a, b) => {
10
+ return rightOrder.indexOf(a) - rightOrder.indexOf(b);
11
+ });
12
+ }
8
13
  function sanitizeSearchQuery(query) {
9
14
  if (query === void 0 || query === null) return "";
10
15
  return query.toLowerCase().replace(/\s{2,}/, " ").replace(/,/g, " ").replace(/\s{2,}/, " ");
@@ -28,6 +33,6 @@ function matchesSearchQuery(haystack, query) {
28
33
  return positive.every((token) => normalizedHaystack.includes(token)) && negative.every((token) => !normalizedHaystack.includes(token));
29
34
  }
30
35
  //#endregion
31
- export { sanitizeSearchQuery as i, capitalizeFirstLetter as n, matchesSearchQuery as r, arrayUnique as t };
36
+ export { sortStringsInGivenOrder as a, sanitizeSearchQuery as i, capitalizeFirstLetter as n, matchesSearchQuery as r, arrayUnique as t };
32
37
 
33
- //# sourceMappingURL=utils-internal-Czgdbnkv.mjs.map
38
+ //# sourceMappingURL=utils-internal-DPjO9kQX.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils-internal-Czgdbnkv.mjs","names":[],"sources":["../src/utils/utils-internal.ts"],"sourcesContent":["export function capitalizeFirstLetter(string: string): string {\n return string.charAt(0).toUpperCase() + string.slice(1)\n}\n\nexport function arrayUnique<T>(array: T[]): T[] {\n return Array.from(new Set(array))\n}\n\nexport function sortStringsInGivenOrder(strs: string[] | undefined, rightOrder: string[]) {\n return [...(strs ?? [])].sort((a, b) => {\n const aIndex = rightOrder.indexOf(a)\n const bIndex = rightOrder.indexOf(b)\n return aIndex - bIndex\n })\n}\n\nexport function sanitizeSearchQuery(query?: string | null) {\n if (query === undefined || query === null) {\n return ''\n }\n return query\n .toLowerCase()\n .replace(/\\s{2,}/, ' ')\n .replace(/,/g, ' ')\n .replace(/\\s{2,}/, ' ')\n}\n\nexport function sanitizeFormStringSpaces(str: string | FormDataEntryValue | null | undefined) {\n if (!str) {\n return ''\n }\n return str.toString().replace(/\\s+/g, ' ').trim()\n}\n\nexport function splitSearchQueryTokens(query?: string | null): {\n positive: string[]\n negative: string[]\n} {\n const tokens = sanitizeSearchQuery(query).trim().split(/\\s+/).filter(Boolean)\n\n return tokens.reduce(\n (result, token) => {\n if (token.startsWith('!')) {\n const negatedToken = token.slice(1).trim()\n if (negatedToken) {\n result.negative.push(negatedToken)\n }\n } else {\n result.positive.push(token)\n }\n\n return result\n },\n { positive: [] as string[], negative: [] as string[] },\n )\n}\n\nexport function matchesSearchQuery(haystack: string, query?: string | null): boolean {\n const { positive, negative } = splitSearchQueryTokens(query)\n if (positive.length === 0 && negative.length === 0) {\n return true\n }\n\n const normalizedHaystack = sanitizeSearchQuery(haystack)\n\n return (\n positive.every((token) => normalizedHaystack.includes(token)) &&\n negative.every((token) => !normalizedHaystack.includes(token))\n )\n}\n"],"mappings":";AAAA,SAAgB,sBAAsB,QAAwB;CAC5D,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,OAAO,MAAM,CAAC;AACxD;AAEA,SAAgB,YAAe,OAAiB;CAC9C,OAAO,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC;AAClC;AAUA,SAAgB,oBAAoB,OAAuB;CACzD,IAAI,UAAU,KAAA,KAAa,UAAU,MACnC,OAAO;CAET,OAAO,MACJ,YAAY,CAAC,CACb,QAAQ,UAAU,GAAG,CAAC,CACtB,QAAQ,MAAM,GAAG,CAAC,CAClB,QAAQ,UAAU,GAAG;AAC1B;AASA,SAAgB,uBAAuB,OAGrC;CAGA,OAFe,oBAAoB,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,OAEzD,CAAC,CAAC,QACX,QAAQ,UAAU;EACjB,IAAI,MAAM,WAAW,GAAG,GAAG;GACzB,MAAM,eAAe,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK;GACzC,IAAI,cACF,OAAO,SAAS,KAAK,YAAY;EAErC,OACE,OAAO,SAAS,KAAK,KAAK;EAG5B,OAAO;CACT,GACA;EAAE,UAAU,CAAC;EAAe,UAAU,CAAC;CAAc,CACvD;AACF;AAEA,SAAgB,mBAAmB,UAAkB,OAAgC;CACnF,MAAM,EAAE,UAAU,aAAa,uBAAuB,KAAK;CAC3D,IAAI,SAAS,WAAW,KAAK,SAAS,WAAW,GAC/C,OAAO;CAGT,MAAM,qBAAqB,oBAAoB,QAAQ;CAEvD,OACE,SAAS,OAAO,UAAU,mBAAmB,SAAS,KAAK,CAAC,KAC5D,SAAS,OAAO,UAAU,CAAC,mBAAmB,SAAS,KAAK,CAAC;AAEjE"}
1
+ {"version":3,"file":"utils-internal-DPjO9kQX.mjs","names":[],"sources":["../src/utils/utils-internal.ts"],"sourcesContent":["export function capitalizeFirstLetter(string: string): string {\n return string.charAt(0).toUpperCase() + string.slice(1)\n}\n\nexport function arrayUnique<T>(array: T[]): T[] {\n return Array.from(new Set(array))\n}\n\nexport function sortStringsInGivenOrder(strs: string[] | undefined, rightOrder: string[]) {\n return [...(strs ?? [])].sort((a, b) => {\n const aIndex = rightOrder.indexOf(a)\n const bIndex = rightOrder.indexOf(b)\n return aIndex - bIndex\n })\n}\n\nexport function sanitizeSearchQuery(query?: string | null) {\n if (query === undefined || query === null) {\n return ''\n }\n return query\n .toLowerCase()\n .replace(/\\s{2,}/, ' ')\n .replace(/,/g, ' ')\n .replace(/\\s{2,}/, ' ')\n}\n\nexport function sanitizeFormStringSpaces(str: string | FormDataEntryValue | null | undefined) {\n if (!str) {\n return ''\n }\n return str.toString().replace(/\\s+/g, ' ').trim()\n}\n\nexport function splitSearchQueryTokens(query?: string | null): {\n positive: string[]\n negative: string[]\n} {\n const tokens = sanitizeSearchQuery(query).trim().split(/\\s+/).filter(Boolean)\n\n return tokens.reduce(\n (result, token) => {\n if (token.startsWith('!')) {\n const negatedToken = token.slice(1).trim()\n if (negatedToken) {\n result.negative.push(negatedToken)\n }\n } else {\n result.positive.push(token)\n }\n\n return result\n },\n { positive: [] as string[], negative: [] as string[] },\n )\n}\n\nexport function matchesSearchQuery(haystack: string, query?: string | null): boolean {\n const { positive, negative } = splitSearchQueryTokens(query)\n if (positive.length === 0 && negative.length === 0) {\n return true\n }\n\n const normalizedHaystack = sanitizeSearchQuery(haystack)\n\n return (\n positive.every((token) => normalizedHaystack.includes(token)) &&\n negative.every((token) => !normalizedHaystack.includes(token))\n )\n}\n"],"mappings":";AAAA,SAAgB,sBAAsB,QAAwB;CAC5D,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,OAAO,MAAM,CAAC;AACxD;AAEA,SAAgB,YAAe,OAAiB;CAC9C,OAAO,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC;AAClC;AAEA,SAAgB,wBAAwB,MAA4B,YAAsB;CACxF,OAAO,CAAC,GAAI,QAAQ,CAAC,CAAE,CAAC,CAAC,MAAM,GAAG,MAAM;EAGtC,OAFe,WAAW,QAAQ,CAEtB,IADG,WAAW,QAAQ,CACb;CACvB,CAAC;AACH;AAEA,SAAgB,oBAAoB,OAAuB;CACzD,IAAI,UAAU,KAAA,KAAa,UAAU,MACnC,OAAO;CAET,OAAO,MACJ,YAAY,CAAC,CACb,QAAQ,UAAU,GAAG,CAAC,CACtB,QAAQ,MAAM,GAAG,CAAC,CAClB,QAAQ,UAAU,GAAG;AAC1B;AASA,SAAgB,uBAAuB,OAGrC;CAGA,OAFe,oBAAoB,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,OAEzD,CAAC,CAAC,QACX,QAAQ,UAAU;EACjB,IAAI,MAAM,WAAW,GAAG,GAAG;GACzB,MAAM,eAAe,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK;GACzC,IAAI,cACF,OAAO,SAAS,KAAK,YAAY;EAErC,OACE,OAAO,SAAS,KAAK,KAAK;EAG5B,OAAO;CACT,GACA;EAAE,UAAU,CAAC;EAAe,UAAU,CAAC;CAAc,CACvD;AACF;AAEA,SAAgB,mBAAmB,UAAkB,OAAgC;CACnF,MAAM,EAAE,UAAU,aAAa,uBAAuB,KAAK;CAC3D,IAAI,SAAS,WAAW,KAAK,SAAS,WAAW,GAC/C,OAAO;CAGT,MAAM,qBAAqB,oBAAoB,QAAQ;CAEvD,OACE,SAAS,OAAO,UAAU,mBAAmB,SAAS,KAAK,CAAC,KAC5D,SAAS,OAAO,UAAU,CAAC,mBAAmB,SAAS,KAAK,CAAC;AAEjE"}
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["unova-b2w2", "national-b2w2"],
15
15
  "maxBoxes": 24,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 1,
17
19
  "platforms": ["nds"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": true,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["unova-b2w2", "national-b2w2"],
15
15
  "maxBoxes": 24,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 1,
17
19
  "platforms": ["nds"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": true,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["unova-b2w2", "national-b2w2"],
15
15
  "maxBoxes": 24,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 1,
17
19
  "platforms": ["nds"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": true,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["sinnoh", "national-bdsp"],
15
15
  "maxBoxes": 40,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 6,
17
19
  "platforms": ["switch"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": true,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["sinnoh", "national-bdsp"],
15
15
  "maxBoxes": 40,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 6,
17
19
  "platforms": ["switch"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": true,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["sinnoh", "national-bdsp"],
15
15
  "maxBoxes": 40,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 6,
17
19
  "platforms": ["switch"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": true,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["unova", "national-bw"],
15
15
  "maxBoxes": 24,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 1,
17
19
  "platforms": ["nds"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": true,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["unova", "national-bw"],
15
15
  "maxBoxes": 24,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 1,
17
19
  "platforms": ["nds"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": true,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["unova", "national-bw"],
15
15
  "maxBoxes": 24,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 1,
17
19
  "platforms": ["nds"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": true,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": [],
15
15
  "maxBoxes": 24,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 1,
17
19
  "platforms": ["gb"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": true,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
package/data/games/c.json CHANGED
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["johto", "national-gsc"],
15
15
  "maxBoxes": 14,
16
16
  "maxBoxSize": 20,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 0,
17
19
  "platforms": ["gbc"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": false,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -18,9 +18,13 @@
18
18
  ],
19
19
  "maxBoxes": 40,
20
20
  "maxBoxSize": 30,
21
+ "maxPartySize": 0,
22
+ "maxBattleTeams": 18,
21
23
  "platforms": ["switch", "switch2", "mobile"],
22
24
  "features": {
23
25
  "storage": true,
26
+ "party": false,
27
+ "battleTeams": true,
24
28
  "pokedex": true,
25
29
  "training": true,
26
30
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["col"],
15
15
  "maxBoxes": 3,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 0,
17
19
  "platforms": ["ngc", "switch2"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": false,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["sinnoh", "national-dp"],
15
15
  "maxBoxes": 18,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 0,
17
19
  "platforms": ["nds"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": false,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,
@@ -14,9 +14,13 @@
14
14
  "pokedexes": ["sinnoh", "national-dp"],
15
15
  "maxBoxes": 18,
16
16
  "maxBoxSize": 30,
17
+ "maxPartySize": 6,
18
+ "maxBattleTeams": 0,
17
19
  "platforms": ["nds"],
18
20
  "features": {
19
21
  "storage": true,
22
+ "party": true,
23
+ "battleTeams": false,
20
24
  "pokedex": true,
21
25
  "training": true,
22
26
  "shiny": true,