@pokepc/dataset 6.5.1 → 6.7.0-beta.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.
Files changed (91) hide show
  1. package/build/{box-preset-sanitizer-GjGde3eW.mjs → box-preset-sanitizer-DHGv5TJj.mjs} +2 -2
  2. package/build/{box-preset-sanitizer-GjGde3eW.mjs.map → box-preset-sanitizer-DHGv5TJj.mjs.map} +1 -1
  3. package/build/box-preset-sanitizer-kg68JZPB.d.mts.map +1 -1
  4. package/build/{build-DeFbpXmN.mjs → build-DvGzwIK8.mjs} +74 -17
  5. package/build/build-DvGzwIK8.mjs.map +1 -0
  6. package/build/{build-DlK17pH-.mjs → build-bE_0_-0H.mjs} +16 -15
  7. package/build/build-bE_0_-0H.mjs.map +1 -0
  8. package/build/enums-CCbmORM6.d.mts.map +1 -1
  9. package/build/lib/box-preset-sanitizer.mjs +1 -1
  10. package/build/lib/box-preset-transform.d.mts +4 -6
  11. package/build/lib/box-preset-transform.d.mts.map +1 -1
  12. package/build/lib/box-preset-transform.mjs +2 -2
  13. package/build/lib/constants.d.mts +3 -4
  14. package/build/lib/constants.d.mts.map +1 -1
  15. package/build/lib/fs.d.mts +52 -53
  16. package/build/lib/fs.d.mts.map +1 -1
  17. package/build/lib/fs.mjs +3 -3
  18. package/build/lib/fs.mjs.map +1 -1
  19. package/build/lib/languages.d.mts +11 -12
  20. package/build/lib/languages.d.mts.map +1 -1
  21. package/build/lib/schemas.d.mts +1 -1
  22. package/build/lib/schemas.mjs +1 -1
  23. package/build/lib/search.d.mts +2 -3
  24. package/build/lib/search.d.mts.map +1 -1
  25. package/build/lib/search.mjs.map +1 -1
  26. package/build/lib/types.d.mts +34 -34
  27. package/build/lib/types.d.mts.map +1 -1
  28. package/build/lib/utils.d.mts +16 -17
  29. package/build/lib/utils.d.mts.map +1 -1
  30. package/build/lib/validators.d.mts +1 -1
  31. package/build/lib-next/_build.d.mts +1 -1
  32. package/build/lib-next/_build.mjs +2 -2
  33. package/build/lib-next/enums.d.mts +41 -42
  34. package/build/lib-next/enums.d.mts.map +1 -1
  35. package/build/lib-next/fs.d.mts +3 -4
  36. package/build/lib-next/fs.d.mts.map +1 -1
  37. package/build/lib-next/languages.d.mts +17 -18
  38. package/build/lib-next/languages.d.mts.map +1 -1
  39. package/build/lib-next/schemas.d.mts +230 -232
  40. package/build/lib-next/schemas.d.mts.map +1 -1
  41. package/build/lib-next/schemas.mjs +1 -1
  42. package/build/schemas-Bj1AIX0P.mjs +93 -0
  43. package/build/schemas-Bj1AIX0P.mjs.map +1 -0
  44. package/build/schemas-CcUqoHNr.mjs +349 -0
  45. package/build/schemas-CcUqoHNr.mjs.map +1 -0
  46. package/build/schemas-DZQWOWP4.d.mts +804 -0
  47. package/build/schemas-DZQWOWP4.d.mts.map +1 -0
  48. package/build/utils-BwovRocd.mjs.map +1 -1
  49. package/data/abilities.json +9 -0
  50. package/data/games/champions.json +5 -1
  51. package/data/games/pokopia-bubblybasin.json +42 -0
  52. package/data/games/pokopia.json +1 -1
  53. package/data/indices/games.json +1 -0
  54. package/data/indices/pokedexes.json +3 -1
  55. package/data/pokedexes/champions-regular-roster-m-b.json +3 -0
  56. package/data/pokedexes/champions-regular-roster-m-c.json +464 -0
  57. package/data/pokedexes/paldea-kitakami.json +0 -2
  58. package/data/pokedexes/pokopia-basin.json +63 -0
  59. package/data/pokedexes/pokopia-event.json +6 -2
  60. package/data/pokemon/absol-mega-z.json +1 -3
  61. package/data/pokemon/baxcalibur.json +1 -1
  62. package/data/pokemon/garchomp-mega-z.json +2 -2
  63. package/data/pokemon/golisopod.json +12 -1
  64. package/data/pokemon/lucario-mega-z.json +1 -3
  65. package/data/pokemon/pyroar-f.json +7 -2
  66. package/data/pokemon/pyroar.json +2 -1
  67. package/data/pokemon/rillaboom.json +1 -1
  68. package/data/pokemon/salamence.json +2 -1
  69. package/data-next/champions/abilities.json +10 -0
  70. package/data-next/champions/i18n/chs/abilities.json +7 -0
  71. package/data-next/champions/i18n/cht/abilities.json +7 -0
  72. package/data-next/champions/i18n/deu/abilities.json +7 -0
  73. package/data-next/champions/i18n/eng/abilities.json +7 -0
  74. package/data-next/champions/i18n/es-es/abilities.json +7 -0
  75. package/data-next/champions/i18n/es-la/abilities.json +7 -0
  76. package/data-next/champions/i18n/fra/abilities.json +7 -0
  77. package/data-next/champions/i18n/ita/abilities.json +7 -0
  78. package/data-next/champions/i18n/jpn/abilities.json +7 -0
  79. package/data-next/champions/i18n/kor/abilities.json +7 -0
  80. package/data-next/champions/i18n/pt-br/abilities.json +7 -0
  81. package/data-next/champions/items.json +34 -0
  82. package/data-next/champions/moves.json +1 -0
  83. package/package.json +10 -10
  84. package/build/build-DeFbpXmN.mjs.map +0 -1
  85. package/build/build-DlK17pH-.mjs.map +0 -1
  86. package/build/schemas-B4fI9u0f.mjs +0 -93
  87. package/build/schemas-B4fI9u0f.mjs.map +0 -1
  88. package/build/schemas-BCuqOH_X.d.mts +0 -805
  89. package/build/schemas-BCuqOH_X.d.mts.map +0 -1
  90. package/build/schemas-Dt7FbAMy.mjs +0 -349
  91. package/build/schemas-Dt7FbAMy.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { y as modernBoxPresetSlotSchema } from "./schemas-Dt7FbAMy.mjs";
1
+ import { y as modernBoxPresetSlotSchema } from "./schemas-CcUqoHNr.mjs";
2
2
  //#region src/lib/box-preset-sanitizer.ts
3
3
  const incompatibleClassicPokemonIds = [
4
4
  "greninja--battle-bond",
@@ -51,4 +51,4 @@ function collectModernBoxPresetSanitizerDiagnostics(originalSlots, sanitizedSlot
51
51
  //#endregion
52
52
  export { sanitizeModernBoxPresetSlots as a, sanitizeModernBoxPresetSlot as i, incompatibleClassicPokemonIds as n, modernBoxPresetSlotFilters as r, collectModernBoxPresetSanitizerDiagnostics as t };
53
53
 
54
- //# sourceMappingURL=box-preset-sanitizer-GjGde3eW.mjs.map
54
+ //# sourceMappingURL=box-preset-sanitizer-DHGv5TJj.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"box-preset-sanitizer-GjGde3eW.mjs","names":[],"sources":["../src/lib/box-preset-sanitizer.ts"],"sourcesContent":["import { modernBoxPresetSlotSchema } from './schemas'\n\nexport type ModernBoxPresetSlotInput =\n | null\n | string\n | {\n pid: string\n shiny?: boolean\n gmax?: boolean\n shinyLocked?: boolean\n }\n\nexport type ModernBoxPresetSlotSanitizerContext = {\n gameSet: string\n presetId: string\n boxIndex: number\n slotIndex: number\n validPokemonIds: ReadonlySet<string>\n}\n\nexport type ModernBoxPresetSlotFilter = (\n slot: ModernBoxPresetSlotInput,\n context: ModernBoxPresetSlotSanitizerContext,\n) => ModernBoxPresetSlotInput\n\nexport type ModernBoxPresetSanitizerDiagnostic = {\n reason: 'incompatible-classic-pokemon-id'\n pokemon: string\n gameSet: string\n presetId: string\n boxIndex: number\n slotIndex: number\n}\n\nexport const incompatibleClassicPokemonIds = [\n 'greninja--battle-bond',\n 'rockruff--own-tempo',\n 'zygarde--power-construct',\n 'zygarde-10--power-construct',\n] as const\nconst incompatibleClassicPokemonIdSet = new Set<string>(incompatibleClassicPokemonIds)\n\nfunction getSlotPokemonId(slot: ModernBoxPresetSlotInput): string | null {\n if (slot === null) return null\n if (typeof slot === 'string') return slot\n return slot.pid\n}\n\nfunction isIncompatibleClassicPokemonId(slot: ModernBoxPresetSlotInput): boolean {\n const pokemonId = getSlotPokemonId(slot)\n return pokemonId !== null && incompatibleClassicPokemonIdSet.has(pokemonId)\n}\n\nexport const modernBoxPresetSlotFilters: ModernBoxPresetSlotFilter[] = [\n (slot) => (isIncompatibleClassicPokemonId(slot) ? null : slot),\n]\n\nexport function sanitizeModernBoxPresetSlot(\n slot: ModernBoxPresetSlotInput,\n context: ModernBoxPresetSlotSanitizerContext,\n): Pkds.ModernBoxPresetSlot {\n const sanitized = modernBoxPresetSlotFilters.reduce(\n (currentSlot, filter) => filter(currentSlot, context),\n slot,\n )\n if (sanitized === null || typeof sanitized === 'string') {\n return sanitized\n }\n return modernBoxPresetSlotSchema.parse({\n pokemon: sanitized.pid,\n shiny: sanitized.shiny,\n gmax: sanitized.gmax,\n shinyLocked: sanitized.shinyLocked,\n })\n}\n\nexport function sanitizeModernBoxPresetSlots(\n slots: ModernBoxPresetSlotInput[],\n context: Omit<ModernBoxPresetSlotSanitizerContext, 'slotIndex'>,\n): Pkds.ModernBoxPresetSlot[] {\n return slots.map((slot, slotIndex) =>\n sanitizeModernBoxPresetSlot(slot, {\n ...context,\n slotIndex,\n }),\n )\n}\n\nexport function collectModernBoxPresetSanitizerDiagnostics(\n originalSlots: ModernBoxPresetSlotInput[],\n sanitizedSlots: Pkds.ModernBoxPresetSlot[],\n context: Omit<ModernBoxPresetSlotSanitizerContext, 'slotIndex'>,\n): ModernBoxPresetSanitizerDiagnostic[] {\n return originalSlots.flatMap((slot, slotIndex) => {\n const pokemon = getSlotPokemonId(slot)\n if (pokemon === null || sanitizedSlots[slotIndex] !== null) return []\n if (!incompatibleClassicPokemonIdSet.has(pokemon)) return []\n return [\n {\n reason: 'incompatible-classic-pokemon-id' as const,\n pokemon,\n gameSet: context.gameSet,\n presetId: context.presetId,\n boxIndex: context.boxIndex,\n slotIndex,\n },\n ]\n })\n}\n"],"mappings":";;AAkCA,MAAa,gCAAgC;CAC3C;CACA;CACA;CACA;AACF;AACA,MAAM,kCAAkC,IAAI,IAAY,6BAA6B;AAErF,SAAS,iBAAiB,MAA+C;CACvE,IAAI,SAAS,MAAM,OAAO;CAC1B,IAAI,OAAO,SAAS,UAAU,OAAO;CACrC,OAAO,KAAK;AACd;AAEA,SAAS,+BAA+B,MAAyC;CAC/E,MAAM,YAAY,iBAAiB,IAAI;CACvC,OAAO,cAAc,QAAQ,gCAAgC,IAAI,SAAS;AAC5E;AAEA,MAAa,6BAA0D,EACpE,SAAU,+BAA+B,IAAI,IAAI,OAAO,IAC3D;AAEA,SAAgB,4BACd,MACA,SAC0B;CAC1B,MAAM,YAAY,2BAA2B,QAC1C,aAAa,WAAW,OAAO,aAAa,OAAO,GACpD,IACF;CACA,IAAI,cAAc,QAAQ,OAAO,cAAc,UAC7C,OAAO;CAET,OAAO,0BAA0B,MAAM;EACrC,SAAS,UAAU;EACnB,OAAO,UAAU;EACjB,MAAM,UAAU;EAChB,aAAa,UAAU;CACzB,CAAC;AACH;AAEA,SAAgB,6BACd,OACA,SAC4B;CAC5B,OAAO,MAAM,KAAK,MAAM,cACtB,4BAA4B,MAAM;EAChC,GAAG;EACH;CACF,CAAC,CACH;AACF;AAEA,SAAgB,2CACd,eACA,gBACA,SACsC;CACtC,OAAO,cAAc,SAAS,MAAM,cAAc;EAChD,MAAM,UAAU,iBAAiB,IAAI;EACrC,IAAI,YAAY,QAAQ,eAAe,eAAe,MAAM,OAAO,CAAC;EACpE,IAAI,CAAC,gCAAgC,IAAI,OAAO,GAAG,OAAO,CAAC;EAC3D,OAAO,CACL;GACE,QAAQ;GACR;GACA,SAAS,QAAQ;GACjB,UAAU,QAAQ;GAClB,UAAU,QAAQ;GAClB;EACF,CACF;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"box-preset-sanitizer-DHGv5TJj.mjs","names":[],"sources":["../src/lib/box-preset-sanitizer.ts"],"sourcesContent":["import { modernBoxPresetSlotSchema } from './schemas'\n\nexport type ModernBoxPresetSlotInput =\n | null\n | string\n | {\n pid: string\n shiny?: boolean\n gmax?: boolean\n shinyLocked?: boolean\n }\n\nexport type ModernBoxPresetSlotSanitizerContext = {\n gameSet: string\n presetId: string\n boxIndex: number\n slotIndex: number\n validPokemonIds: ReadonlySet<string>\n}\n\nexport type ModernBoxPresetSlotFilter = (\n slot: ModernBoxPresetSlotInput,\n context: ModernBoxPresetSlotSanitizerContext,\n) => ModernBoxPresetSlotInput\n\nexport type ModernBoxPresetSanitizerDiagnostic = {\n reason: 'incompatible-classic-pokemon-id'\n pokemon: string\n gameSet: string\n presetId: string\n boxIndex: number\n slotIndex: number\n}\n\nexport const incompatibleClassicPokemonIds = [\n 'greninja--battle-bond',\n 'rockruff--own-tempo',\n 'zygarde--power-construct',\n 'zygarde-10--power-construct',\n] as const\nconst incompatibleClassicPokemonIdSet = new Set<string>(incompatibleClassicPokemonIds)\n\nfunction getSlotPokemonId(slot: ModernBoxPresetSlotInput): string | null {\n if (slot === null) return null\n if (typeof slot === 'string') return slot\n return slot.pid\n}\n\nfunction isIncompatibleClassicPokemonId(slot: ModernBoxPresetSlotInput): boolean {\n const pokemonId = getSlotPokemonId(slot)\n return pokemonId !== null && incompatibleClassicPokemonIdSet.has(pokemonId)\n}\n\nexport const modernBoxPresetSlotFilters: ModernBoxPresetSlotFilter[] = [\n (slot) => (isIncompatibleClassicPokemonId(slot) ? null : slot),\n]\n\nexport function sanitizeModernBoxPresetSlot(\n slot: ModernBoxPresetSlotInput,\n context: ModernBoxPresetSlotSanitizerContext,\n): Pkds.ModernBoxPresetSlot {\n const sanitized = modernBoxPresetSlotFilters.reduce(\n (currentSlot, filter) => filter(currentSlot, context),\n slot,\n )\n if (sanitized === null || typeof sanitized === 'string') {\n return sanitized\n }\n return modernBoxPresetSlotSchema.parse({\n pokemon: sanitized.pid,\n shiny: sanitized.shiny,\n gmax: sanitized.gmax,\n shinyLocked: sanitized.shinyLocked,\n })\n}\n\nexport function sanitizeModernBoxPresetSlots(\n slots: ModernBoxPresetSlotInput[],\n context: Omit<ModernBoxPresetSlotSanitizerContext, 'slotIndex'>,\n): Pkds.ModernBoxPresetSlot[] {\n return slots.map((slot, slotIndex) =>\n sanitizeModernBoxPresetSlot(slot, {\n ...context,\n slotIndex,\n }),\n )\n}\n\nexport function collectModernBoxPresetSanitizerDiagnostics(\n originalSlots: ModernBoxPresetSlotInput[],\n sanitizedSlots: Pkds.ModernBoxPresetSlot[],\n context: Omit<ModernBoxPresetSlotSanitizerContext, 'slotIndex'>,\n): ModernBoxPresetSanitizerDiagnostic[] {\n return originalSlots.flatMap((slot, slotIndex) => {\n const pokemon = getSlotPokemonId(slot)\n if (pokemon === null || sanitizedSlots[slotIndex] !== null) return []\n if (!incompatibleClassicPokemonIdSet.has(pokemon)) return []\n return [\n {\n reason: 'incompatible-classic-pokemon-id' as const,\n pokemon,\n gameSet: context.gameSet,\n presetId: context.presetId,\n boxIndex: context.boxIndex,\n slotIndex,\n },\n ]\n })\n}\n"],"mappings":";;AAkCA,MAAa,gCAAgC;CAC3C;CACA;CACA;CACA;AACF;AACA,MAAM,kCAAkC,IAAI,IAAY,6BAA6B;AAErF,SAAS,iBAAiB,MAA+C;CACvE,IAAI,SAAS,MAAM,OAAO;CAC1B,IAAI,OAAO,SAAS,UAAU,OAAO;CACrC,OAAO,KAAK;AACd;AAEA,SAAS,+BAA+B,MAAyC;CAC/E,MAAM,YAAY,iBAAiB,IAAI;CACvC,OAAO,cAAc,QAAQ,gCAAgC,IAAI,SAAS;AAC5E;AAEA,MAAa,6BAA0D,EACpE,SAAU,+BAA+B,IAAI,IAAI,OAAO,IAC3D;AAEA,SAAgB,4BACd,MACA,SAC0B;CAC1B,MAAM,YAAY,2BAA2B,QAC1C,aAAa,WAAW,OAAO,aAAa,OAAO,GACpD,IACF;CACA,IAAI,cAAc,QAAQ,OAAO,cAAc,UAC7C,OAAO;CAET,OAAO,0BAA0B,MAAM;EACrC,SAAS,UAAU;EACnB,OAAO,UAAU;EACjB,MAAM,UAAU;EAChB,aAAa,UAAU;CACzB,CAAC;AACH;AAEA,SAAgB,6BACd,OACA,SAC4B;CAC5B,OAAO,MAAM,KAAK,MAAM,cACtB,4BAA4B,MAAM;EAChC,GAAG;EACH;CACF,CAAC,CACH;AACF;AAEA,SAAgB,2CACd,eACA,gBACA,SACsC;CACtC,OAAO,cAAc,SAAS,MAAM,cAAc;EAChD,MAAM,UAAU,iBAAiB,IAAI;EACrC,IAAI,YAAY,QAAQ,eAAe,eAAe,MAAM,OAAO,CAAC;EACpE,IAAI,CAAC,gCAAgC,IAAI,OAAO,GAAG,OAAO,CAAC;EAC3D,OAAO,CACL;GACE,QAAQ;GACR;GACA,SAAS,QAAQ;GACjB,UAAU,QAAQ;GAClB,UAAU,QAAQ;GAClB;EACF,CACF;CACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"box-preset-sanitizer-kg68JZPB.d.mts","names":[],"sources":["../src/lib/box-preset-sanitizer.ts"],"mappings":";KAEY,wBAAA;EAIN,GAAA;EACA,KAAA;EACA,IAAA;EACA,WAAA;AAAA;AAAA,KAGM,mCAAA;EACV,OAAA;EACA,QAAA;EACA,QAAA;EACA,SAAA;EACA,eAAA,EAAiB,WAAW;AAAA;AAAA,KAGlB,yBAAA,IACV,IAAA,EAAM,wBAAA,EACN,OAAA,EAAS,mCAAA,KACN,wBAAA;AAAA,KAEO,kCAAA;EACV,MAAA;EACA,OAAA;EACA,OAAA;EACA,QAAA;EACA,QAAA;EACA,SAAA;AAAA;AAAA,cAGW,6BAAA;AAAA,cAmBA,0BAAA,EAA4B,yBAAyB;AAAA,iBAIlD,2BAAA,CACd,IAAA,EAAM,wBAAA,EACN,OAAA,EAAS,mCAAA,GACR,IAAA,CAAK,mBAAA;AAAA,iBAgBQ,4BAAA,CACd,KAAA,EAAO,wBAAA,IACP,OAAA,EAAS,IAAA,CAAK,mCAAA,iBACb,IAAA,CAAK,mBAAA;AAAA,iBASQ,0CAAA,CACd,aAAA,EAAe,wBAAA,IACf,cAAA,EAAgB,IAAA,CAAK,mBAAA,IACrB,OAAA,EAAS,IAAA,CAAK,mCAAA,iBACb,kCAAA"}
1
+ {"version":3,"file":"box-preset-sanitizer-kg68JZPB.d.mts","names":[],"sources":["../src/lib/box-preset-sanitizer.ts"],"mappings":";KAEY;EAIN;EACA;EACA;EACA;;KAGM;EACV;EACA;EACA;EACA;EACA,iBAAiB;;KAGP,6BACV,MAAM,0BACN,SAAS,wCACN;KAEO;EACV;EACA;EACA;EACA;EACA;EACA;;cAGW;cAmBA,4BAA4B;iBAIzB,4BACd,MAAM,0BACN,SAAS,sCACR,KAAK;iBAgBQ,6BACd,OAAO,4BACP,SAAS,KAAK,oDACb,KAAK;iBASQ,2CACd,eAAe,4BACf,gBAAgB,KAAK,uBACrB,SAAS,KAAK,oDACb"}
@@ -1,6 +1,6 @@
1
1
  import { a as appLangsBySlug, l as gameLocales } from "./languages-CY-Q1SED.mjs";
2
2
  import { n as battleStates } from "./enums-DlMg7WLl.mjs";
3
- import { b as pokemonSchema, c as i18nSchema, d as itemSchema, g as pokemonI18nSchema, i as battleStateSchema, n as abilitySchema, p as moveSchema, u as itemI18nSchema, v as pokemonMovesRecordSchema } from "./schemas-B4fI9u0f.mjs";
3
+ import { b as pokemonSchema, c as i18nSchema, d as itemSchema, g as pokemonI18nSchema, i as battleStateSchema, n as abilitySchema, p as moveSchema, u as itemI18nSchema, v as pokemonMovesRecordSchema } from "./schemas-Bj1AIX0P.mjs";
4
4
  import { copyFileSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
5
5
  import { dirname, join } from "node:path";
6
6
  //#region \0rolldown/runtime.js
@@ -17,7 +17,8 @@ var import_node = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
17
17
  get: u[a],
18
18
  enumerable: !0
19
19
  });
20
- }, ui = (i, u, a, g) => {
20
+ };
21
+ var ui = (i, u, a, g) => {
21
22
  if (u && typeof u == "object" || typeof u == "function") for (let o of _u(u)) !$u.call(i, o) && o !== a && B(i, o, {
22
23
  get: () => u[o],
23
24
  enumerable: !(g = Vu(u, o)) || g.enumerable
@@ -31526,7 +31527,8 @@ var import_node = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
31526
31527
  "t",
31527
31528
  "p",
31528
31529
  "h"
31529
- ], oi = [
31530
+ ];
31531
+ var oi = [
31530
31532
  "a",
31531
31533
  "ae",
31532
31534
  "ya",
@@ -31548,7 +31550,8 @@ var import_node = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
31548
31550
  "eu",
31549
31551
  "yi",
31550
31552
  "i"
31551
- ], li = [
31553
+ ];
31554
+ var li = [
31552
31555
  "",
31553
31556
  "g",
31554
31557
  "gg",
@@ -31577,7 +31580,8 @@ var import_node = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
31577
31580
  "t",
31578
31581
  "p",
31579
31582
  "h"
31580
- ], n = [];
31583
+ ];
31584
+ var n = [];
31581
31585
  n[0] = d;
31582
31586
  n[1] = m;
31583
31587
  n[2] = P;
@@ -31717,7 +31721,10 @@ var import_node = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
31717
31721
  let u = i - 44032;
31718
31722
  H[String.fromCharCode(i)] = ai[u / 588 | 0] + oi[u % 588 / 28 | 0] + li[u % 28];
31719
31723
  }
31720
- var ei = /[-[\]/{}()*+?.\\^$|]/g, gi = /[\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DBF\u4E00-\u9FFC\uF900-\uFA6D\uFA70-\uFAD9]|\uD81B[\uDFF0\uDFF1]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]/, hi = /[\s!-#%-*,-/:;?@[-\]_{}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/, r = {
31724
+ var ei = /[-[\]/{}()*+?.\\^$|]/g;
31725
+ var gi = /[\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DBF\u4E00-\u9FFC\uF900-\uFA6D\uFA70-\uFAD9]|\uD81B[\uDFF0\uDFF1]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]/;
31726
+ var hi = /[\s!-#%-*,-/:;?@[-\]_{}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/;
31727
+ var r = {
31721
31728
  Left: -1,
31722
31729
  Middle: 0,
31723
31730
  Right: 1
@@ -31788,14 +31795,18 @@ var import_node = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
31788
31795
  }
31789
31796
  return l;
31790
31797
  }
31791
- var Zi = /[\uD800-\uDBFF]/, Li = /[\uDC00-\uDFFF]/, Ji = /[^\s\S]/, T = {
31798
+ var Zi = /[\uD800-\uDBFF]/;
31799
+ var Li = /[\uDC00-\uDFFF]/;
31800
+ var Ji = /[^\s\S]/;
31801
+ var T = {
31792
31802
  ignore: [],
31793
31803
  replace: [],
31794
31804
  replaceAfter: [],
31795
31805
  trim: !1,
31796
31806
  unknown: "",
31797
31807
  fixChineseSpacing: !0
31798
- }, C = class {
31808
+ };
31809
+ var C = class {
31799
31810
  get options() {
31800
31811
  return Y({
31801
31812
  ...T,
@@ -31864,7 +31875,8 @@ var import_node = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
31864
31875
  separator: "-",
31865
31876
  uppercase: !1,
31866
31877
  fixChineseSpacing: !0
31867
- }, p = class extends C {
31878
+ };
31879
+ var p = class extends C {
31868
31880
  get options() {
31869
31881
  return Y({
31870
31882
  ...ti,
@@ -31882,10 +31894,12 @@ var import_node = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
31882
31894
  return l = Q(l, new RegExp(`[^${o.allowedChars}]+`, "g"), o.separator ?? "-", o.ignore ?? []), e && (l = l.replace(new RegExp(`${e}+`, "g"), o.separator), l = l.replace(new RegExp(`^${e}+|${e}+$`, "g"), "")), o.lowercase && (l = l.toLowerCase()), o.uppercase && (l = l.toUpperCase()), l;
31883
31895
  }
31884
31896
  };
31885
- var S = new C(), G = S.transliterate.bind(S);
31897
+ var S = new C();
31898
+ var G = S.transliterate.bind(S);
31886
31899
  G.config = S.config.bind(S);
31887
31900
  G.setData = S.setData.bind(S);
31888
- var X = new p(), M = X.slugify.bind(X);
31901
+ var X = new p();
31902
+ var M = X.slugify.bind(X);
31889
31903
  M.config = X.config.bind(X);
31890
31904
  M.setData = X.setData.bind(X);
31891
31905
  0 && (module.exports = {
@@ -31898,6 +31912,47 @@ function expandLocalSlugAliases(slug) {
31898
31912
  return [slug, ...LOCAL_SLUG_ALIASES[slug] ?? []];
31899
31913
  }
31900
31914
  //#endregion
31915
+ //#region src/upstream-adapters/projectpokemon-champout/fixtures/preliminary.ts
31916
+ const PRELIMINARY_ABILITIES = [{
31917
+ id: "auraguard",
31918
+ slug: "aura-guard",
31919
+ name: "Aura Guard",
31920
+ descriptions: {
31921
+ usa: "Halves the damage the Pokémon takes from contact moves.",
31922
+ jpn: "接触技で受けるダメージが半減する。",
31923
+ kor: "접촉 기술로 입는 데미지가 반감된다.",
31924
+ sch: "因接触类招式而受到的伤害会减半。",
31925
+ tch: "因接觸類招式而受到的傷害會減半。",
31926
+ deu: "Der Schaden, den das Pokémon durch Kontaktattacken erleidet, wird halbiert.",
31927
+ fra: "Les dégâts des capacités à contact subis par le Pokémon sont réduits de moitié.",
31928
+ ita: "Dimezza i danni subiti dalle mosse da contatto.",
31929
+ esp: "Reduce a la mitad el daño recibido por los movimientos de contacto.",
31930
+ latam: "Reduce un 50% el daño recibido por los movimientos de contacto."
31931
+ }
31932
+ }];
31933
+ /** Append the preliminary abilities the dump does not carry yet. */
31934
+ function applyPreliminaryAbilities(abilities) {
31935
+ const known = new Set(abilities.map((ability) => ability.id));
31936
+ return [...abilities, ...PRELIMINARY_ABILITIES.filter((ability) => !known.has(ability.id)).map((ability) => abilitySchema.parse({
31937
+ id: ability.id,
31938
+ championsId: `preliminary-${ability.id}`,
31939
+ slug: ability.slug,
31940
+ name: ability.name,
31941
+ description: ability.descriptions.usa
31942
+ }))];
31943
+ }
31944
+ /** The same abilities for one language's i18n file. */
31945
+ function applyPreliminaryAbilityI18n(records, lang) {
31946
+ const known = new Set(records.map((record) => record.id));
31947
+ return [...records, ...PRELIMINARY_ABILITIES.filter((ability) => !known.has(ability.id)).map((ability) => i18nSchema.parse({
31948
+ id: ability.id,
31949
+ slug: ability.slug,
31950
+ slugLoc: ability.slug,
31951
+ name: ability.name,
31952
+ description: ability.descriptions[lang]
31953
+ }))];
31954
+ }
31955
+ //#endregion
31901
31956
  //#region src/upstream-adapters/projectpokemon-champout/fixtures/text.ts
31902
31957
  const TEXT_REPLACEMENTS = [{
31903
31958
  path: "rom-txt/usa/wazaname.json",
@@ -32114,7 +32169,7 @@ const I18N_FILE_NAMES = [
32114
32169
  ];
32115
32170
  const missingLocales = ["PT-BR"];
32116
32171
  const BATTLE_STATE_SET = new Set(battleStates);
32117
- const IGNORED_POKEMON_PERSONAL_IDS = new Set(["0678003"]);
32172
+ const IGNORED_POKEMON_PERSONAL_IDS = /* @__PURE__ */ new Set(["0678003"]);
32118
32173
  const POKEMON_MAP_OVERRIDES = {
32119
32174
  "0121001": ["starmie-mega"],
32120
32175
  "0678000": ["meowstic"],
@@ -32260,19 +32315,20 @@ function buildData(datasetRoot = DEFAULT_DATASET_ROOT, options = {}) {
32260
32315
  const championsItems = buildItems(datasetRoot, "usa");
32261
32316
  const battleStates = buildBattleStates(datasetRoot, "usa");
32262
32317
  const abilitiesMap = buildLocalChampionsMap(readLocalNamedRecords(DEFAULT_LOCAL_DATA_ROOT, "abilities"), championsAbilities);
32263
- const pokemonMapIndex = buildPokemonMapIndex(datasetRoot, DEFAULT_LOCAL_DATA_ROOT, createTokuToLocalAbilityId(abilitiesMap));
32318
+ const tokuToLocalAbilityId = createTokuToLocalAbilityId(abilitiesMap);
32319
+ const pokemonMapIndex = buildPokemonMapIndex(datasetRoot, DEFAULT_LOCAL_DATA_ROOT, tokuToLocalAbilityId);
32264
32320
  const pokemon = localizePokemon(datasetRoot, "usa", pokemonMapIndex);
32265
32321
  const movesMap = buildLocalChampionsMap(readLocalNamedRecords(DEFAULT_LOCAL_DATA_ROOT, "moves"), championsMoves);
32266
32322
  const itemsMap = buildLocalChampionsMap(readLocalNamedRecords(DEFAULT_LOCAL_DATA_ROOT, "items"), championsItems);
32267
32323
  const moves = mergeLocalChampionsRecords(championsMoves, movesMap, moveSchema);
32268
- const abilities = mergeLocalChampionsRecords(championsAbilities, abilitiesMap, abilitySchema);
32324
+ const abilities = applyPreliminaryAbilities(mergeLocalChampionsRecords(championsAbilities, abilitiesMap, abilitySchema));
32269
32325
  const items = mergeLocalChampionsRecords(championsItems, itemsMap, itemSchema);
32270
32326
  const pokemonMoves = buildPokemonMoves(datasetRoot, DEFAULT_LOCAL_DATA_ROOT, pokemon, moves);
32271
32327
  const battleStateSlugs = createSlugMap(battleStates);
32272
32328
  const i18n = {};
32273
32329
  for (const lang of I18N_CODE) i18n[lang] = {
32274
32330
  moves: buildMoveI18n(datasetRoot, lang, movesMap),
32275
- abilities: buildAbilityI18n(datasetRoot, lang, abilitiesMap),
32331
+ abilities: applyPreliminaryAbilityI18n(buildAbilityI18n(datasetRoot, lang, abilitiesMap), lang),
32276
32332
  items: buildItemI18n(datasetRoot, lang, itemsMap),
32277
32333
  battleStates: buildBattleStateI18n(datasetRoot, lang, battleStateSlugs),
32278
32334
  pokemon: localizePokemonI18n(datasetRoot, lang, pokemonMapIndex)
@@ -32717,7 +32773,8 @@ function writeBuiltData(data, outputRoot = DEFAULT_OUTPUT_ROOT) {
32717
32773
  writeJsonFile(join(outputRoot, "pokemon.json"), data.pokemon);
32718
32774
  writeJsonFile(join(outputRoot, "pokemon-moves.json"), data.pokemonMoves);
32719
32775
  for (const lang of I18N_CODE) {
32720
- const langRoot = join(outputRoot, "i18n", langMap[lang].gameLocale.toLowerCase());
32776
+ const normalizedLang = langMap[lang].gameLocale.toLowerCase();
32777
+ const langRoot = join(outputRoot, "i18n", normalizedLang);
32721
32778
  const langData = data.i18n[lang];
32722
32779
  writeJsonFile(join(langRoot, "moves.json"), langData.moves);
32723
32780
  writeJsonFile(join(langRoot, "abilities.json"), langData.abilities);
@@ -33023,4 +33080,4 @@ console.log([
33023
33080
  //#endregion
33024
33081
  export {};
33025
33082
 
33026
- //# sourceMappingURL=build-DeFbpXmN.mjs.map
33083
+ //# sourceMappingURL=build-DvGzwIK8.mjs.map