@pokepc/dataset 7.1.1 → 7.1.2

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.
@@ -47586,6 +47586,42 @@ function formStorageRule(pokemon, base, games) {
47586
47586
  };
47587
47587
  }
47588
47588
  //#endregion
47589
+ //#region src/upstream-adapters/bulbapedia/go-event-availability.ts
47590
+ const goEventAvailabilityRules = {
47591
+ cosmog: {
47592
+ note: "Cosmog requires Special Research claimed during a limited event or season.",
47593
+ sourceUrl: "https://pokemongo.com/news/solstice-horizons"
47594
+ },
47595
+ cosmoem: {
47596
+ note: "Cosmoem evolves from event-research Cosmog; no independent ordinary GO route.",
47597
+ sourceUrl: "https://www.serebii.net/pokemongo/pokemon/790.shtml"
47598
+ },
47599
+ kubfu: {
47600
+ note: "Kubfu requires the limited-claim Might and Mastery or Fuzzy Fighter research.",
47601
+ sourceUrl: "https://pokemongo.com/news/final-strike-2025?hl=en"
47602
+ },
47603
+ urshifu: {
47604
+ note: "Single Strike Urshifu evolves from event-research Kubfu; no independent ordinary GO route.",
47605
+ sourceUrl: "https://pokemongo.com/news/final-strike-2025?hl=en"
47606
+ },
47607
+ "urshifu-rapid-strike": {
47608
+ note: "Rapid Strike Urshifu evolves from event-research Kubfu; no independent ordinary GO route.",
47609
+ sourceUrl: "https://pokemongo.com/news/final-strike-2025?hl=en"
47610
+ },
47611
+ eternatus: {
47612
+ note: "Eternatus was a limited GO Pass: Max Finale reward; Eternamax battles did not award an encounter.",
47613
+ sourceUrl: "https://pokemongo.com/gofestmaxfinale"
47614
+ },
47615
+ zarude: {
47616
+ note: "Zarude requires Search for Zarude or Rogue of the Jungle research claimed during their events.",
47617
+ sourceUrl: "https://pokemongo.com/news/verdant-wonders-2024"
47618
+ },
47619
+ zeraora: {
47620
+ note: "Zeraora requires GO Fest 2026 event research; no permanent research or recurring raid route established.",
47621
+ sourceUrl: "https://bulbapedia.bulbagarden.net/wiki/Mythical_Pok%C3%A9mon#Pokémon_GO"
47622
+ }
47623
+ };
47624
+ //#endregion
47589
47625
  //#region src/upstream-adapters/bulbapedia/go-availability.ts
47590
47626
  const cleanText = (value) => value.replace(/\s+/g, " ").trim();
47591
47627
  const normalize = (value) => value.replaceAll("♀", "female").replaceAll("♂", "male").normalize("NFKD").replace(/\p{M}/gu, "").toLowerCase().replace(/[^a-z0-9]/g, "");
@@ -48007,11 +48043,17 @@ function resolveGoAvailability(parsed, pokemon, siblings) {
48007
48043
  note: "The GO source lists this form as both released and unreleased."
48008
48044
  };
48009
48045
  const result = released[0] ?? matches.find((entry) => entry.status === "unknown") ?? matches[0];
48010
- const note = [result.note, ...usesSharedForm ? [`Reviewed shared GO form identity for ${pokemon.id}; not base availability inheritance.`] : []].filter(Boolean).join(" ");
48046
+ const eventRule = result.status === "obtainableIn" && goEventAvailabilityRules[pokemon.id];
48047
+ const note = [
48048
+ result.note,
48049
+ ...eventRule ? [eventRule.note] : [],
48050
+ ...usesSharedForm ? [`Reviewed shared GO form identity for ${pokemon.id}; not base availability inheritance.`] : []
48051
+ ].filter(Boolean).join(" ");
48011
48052
  return {
48012
- status: result.status,
48053
+ status: eventRule ? "eventOnlyIn" : result.status,
48013
48054
  text: result.text,
48014
- ...note ? { note } : {}
48055
+ ...note ? { note } : {},
48056
+ ...eventRule ? { sourceUrl: eventRule.sourceUrl } : {}
48015
48057
  };
48016
48058
  }
48017
48059
  //#endregion
@@ -48063,6 +48105,7 @@ function createAvailabilityReport(tables, pokemon, games, siblings = [pokemon])
48063
48105
  basis = "rule";
48064
48106
  } else if (game.id === "go" && tables.go) {
48065
48107
  method = resolveGoAvailability(tables.go, pokemon, siblings);
48108
+ if (method?.sourceUrl) basis = "rule";
48066
48109
  if (!method && sourceBase) {
48067
48110
  method = resolveGoAvailability(tables.go, sourceBase, siblings);
48068
48111
  if (method) {