npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@sechael/pta-data

v0.5.5

Published

PTA catalog JSON datasets (Pokémon, moves, items, weapons, afflictions, type chart, mega variants, trainer pools). Gigantamax slice ships separately.

Readme

@sechael/pta-data

Canonical PTA catalog JSON for the pta-app compendium: Pokémon, moves, items, weapons, afflictions, type chart, mega variants, and trainer move pools. Gigantamax / Dynamax datasets live under lib/gmax/ in git only (not published on npm until a separate package ships).

| | | |--|--| | npm | @sechael/pta-data | | Source | github.com/Sechael/pta-data |


Layout (lib/ + schemas/)

| File | Purpose | |------|----------------| | pokemon.json | Species / forms | | moves.json | Moves (mechanics bundle; see schemas/moveschema.json) | | items/*.json | Split item catalogs by category (mechanics + conditions) | | weapons.json | Trainer weapons | | afflictions.json | Affliction rules | | type-chart.json | Type effectiveness | | trainer-class-move-pools.json | Object | Class move pools (e.g. Martial Form) | | pokemon-mega.json | Mega forms | | gmax/*.json | Gigantamax Pokémon, G-Max moves, related items — not in the npm tarball (see .npmignore) |

| Path (schemas/) | Purpose | |---------------------|---------| | itemschema.json | JSON Schema for forward-looking item rows + mechanics | | moveschema.json | JSON Schema for moves.json entries | | Downtime.md | Source notes for downtime job income bands used in economy balancing | | Economic Baseline.md | Working affordability baseline that compares item prices to downtime income |


Data samples

Pokémon (lib/pokemon.json)

{
  "id": "bulbasaur",
  "base_species_id": "bulbasaur",
  "form_name": "default",
  "variant_name": "default",
  "type_1": "grass",
  "type_2": "poison",
  "egg_group": "['grass', 'monster']",
  "hatch_time": 10,
  "is_temporary": false,
  "gmax_move": null,
  "hp": 30.0,
  "atk": 5.0,
  "def": 4.0,
  "spec_atk": 7.0,
  "spec_def": 7.0,
  "speed": 5.0,
  "evolution_stage": 1.0,
  "evolves_from": null,
  "skills": "['sprouter', 'threaded']",
  "passives": "['growl', 'overgrow']",
  "proficiencies": "['grass', 'poison', 'floral']",
  "inherent_moves": ["tackle", "leech-seed", "vine-whip"],
  "habitats": "['forest', 'jungle']",
  "diets": "['phototroph']",
  "national_dex_number": 1.0,
  "name": "Bulbasaur",
  "description": "…",
  "sprite": "sprites/pokemon/1.png",
  "evolves_to": ["ivysaur"],
  "evolves_next_naturally": true,
  "generation": 1,
  "rarity": "Rare",
  "size_class": "Small",
  "weight_class": "Light"
}

Item (lib/items/medical.json)

{
  "type": "item",
  "id": "potion",
  "category": "Medical",
  "rarity": "Common",
  "price": 25,
  "is_consumable": true,
  "conditions": ["POKEMON", "CONSCIOUS"],
  "mechanics": [
    { "type": "HEAL", "target": "SELECTED", "value": 10, "resource": "HP" }
  ],
  "sprite_url": "https://…",
  "description": "Spray-type medicine that heals 10 HP for a Pokémon.",
  "name": "Potion",
  "sprite": "items/potion.png",
  "size": "1x1"
}

Item mechanics schema outline

Items are now mechanics-first (see schemas/itemschema.json and lib/items/*.json).

{
  "id": "wiki-berry",
  "name": "Wiki Berry",
  "description": "…",
  "category": "Berry",
  "rarity": "Uncommon",
  "price": 850,
  "is_consumable": true,
  "size": "1x1",
  "sprite": "items/wiki-berry.png",
  "sprite_url": "https://…",
  "flavors": ["Dry"],
  "mechanics": [
    { "type": "HEAL", "target": "SELECTED", "value": "33%", "resource": "HP" },
    {
      "type": "CONDITION",
      "target": "SELECTED",
      "value": "CURE",
      "resource": "CONFUSION",
      "params": { "exception": "POKEMON_TASTE_LIKE_FLAVORS" }
    }
  ],
  "container": {
    "capacity": 12,
    "unit": "BALL",
    "allowed": { "categories": ["Pokeball"] }
  }
}

Move (lib/moves.json)

{
  "type": "move",
  "id": "absorb",
  "name": "Absorb",
  "move_type": "Grass",
  "category": "Special",
  "description": "On hit, you regain HP equal to half of the damage dealt.",
  "proficency": ["Grass", "Parasitic"],
  "contest": { "stat": "Clever", "keyword": "Good Show!" },
  "mechanics": {
    "frequency": 3,
    "accuracy": 0,
    "attack_type": "melee",
    "target": "Single",
    "target_range": 0,
    "effect_radius": 0,
    "move_keyword": null,
    "effects": [
      {
        "type": "DAMAGE",
        "target": "FOE",
        "value": "2d8",
        "resource": "HP",
        "damage": { "kind": "Dice", "value": "2d8" }
      },
      {
        "type": "HEAL",
        "target": "SELF",
        "value": "half_damage_dealt",
        "resource": "HP",
        "damage": { "kind": "None", "value": "" }
      }
    ]
  }
}

Version history

0.5.5

  • Weapons readability update (lib/weapons.json): Reworked weapon descriptions to include the full combat profile inline (move type/category, attack type + target + range, damage dice, accuracy, and frequency) for faster lookup during play.
  • Firearm ammo normalization (lib/weapons.json): Adjusted ammo_max values to more realistic capacities for equivalent real-world weapon classes and synchronized matching special/description text (Pistol, Hunting Rifle, Assault Rifle, Taser, Machine Gun).
  • Move mechanics correction (lib/moves.json): Replaced the previous placeholder move effect block with explicit HEAL and targeted RESTORE_USES mechanics (including move_ids) for catalog-driven execution consistency.

0.5.4

  • Berry coverage: Added Haban, Kasib, Kebia, Occa, Passho, and Payapa berries to lib/items/berry.json as uncommon type-resist entries.
  • Supplies and equipment economy: Rebalanced Pokémon Food and Trainer Ration price points in lib/items/supplies.json, updated the Rebreather description, and added vehicle catalog rows in lib/items/trainer-equipment.json.
  • Economy docs: Added schemas/Downtime.md and schemas/Economic Baseline.md to capture downtime income assumptions and a first-pass affordability baseline for the item catalog.

0.5.3

  • Campaign data fix: Corrected catalog rows tied to Rest-move campaign data in lib/moves.json and aligned related species entries in lib/pokemon.json.
  • Validation hardening: Expanded scripts/validate.mjs checks to guard the affected move/pokemon data shape and catch similar regressions earlier.

0.5.2

  • Trainer equipment (lib/items/trainer-equipment.json): Camera bag is a container (one camera body, ITEM unit) allow-listed to digital/film camera catalog ids; added camera tier items; expanded outdoor/camp tooling (tent, folding knife, crowbar, duct tape, flashlight, flask, gas mask, grappling hook, claw and sledge hammer); added Gardener's Kit (₽350).
  • Medical (lib/items/medical.json): Added Revival Herb (full heal for fainted Pokémon, consumed on use; loyalty rule in description text).

0.5.1

  • Monolithic items file removed from the repo: lib/items.json is deleted; consumers use split bundles under lib/items/*.json only (this completes the change described for 0.5.0 in documentation).
  • Validation: scripts/validate.mjs now checks every lib/items/*.json file instead of a single lib/items.json (addresses the 0.5.0 “Open” follow-up).
  • Items data: pokeball-container includes structured container metadata (12 units, BALL, Pokeball category) per schemas/itemschema.json. lib/items/medical.json — Hyper Lemonade sprite URL fix, rarity pass (Iron, Max Potion, Revive, Super Potion). lib/items/supplies.jsonpokemon-food and pokemon-food-bag prices aligned to current app/economy defaults.

0.5.0

  • Items split finalized: Documented removal of legacy lib/items.json in favor of split lib/items/*.json as the item source; package exports already targeted split paths.
  • Medical tuning pass: Updated selected lib/items/medical.json entries (including rarity alignment and sprite URL correction) to match current mechanics-first usage in the app.
  • Docs refresh: README examples and item model notes now describe the active mechanics-first structure (HEAL / CONDITION / STAT_MOD) and split catalog layout.

0.4.0

  • Moves (lib/moves.json): optional tactical move_keyword on each mechanics block (Binding, Coat, Hazard, Multi-turn, Priority, Reaction, Scatter, Terrain, Weather, or null), placed before effects; validated by schemas/moveschema.json. Tagging maintained by scripts/augment_move_keywords.py.
  • Schemas: JSON Schemas live under schemas/ (itemschema.json, moveschema.json); removed duplicate lib/itemschema.json. Published tarball includes schemas/; exports expose ./schemas/itemschema.json and ./schemas/moveschema.json.
  • Tooling: scripts/migrate_moves_catalog_to_v2.py documents the legacy → mechanics-bundle migration path.
  • npm: 0.4.0 is published as @sechael/pta-data. In consuming apps, run npm install so package-lock.json pins 0.4.0 and the registry integrity hash.

0.3.0

  • Pokémon (lib/pokemon.json): catalog row shape updates (e.g. nested sprites.default / sprites.shiny with local paths and PokéAPI sprite_url values), stat/evolution/id field alignment.
  • Moves (lib/moves.json): migrated to the mechanics bundle shape (mechanics.frequency, accuracy, ranges, effects[]); validated by schemas/moveschema.json.
  • Items: mechanics / schema alignment across lib/items/*.json and schemas/itemschema.json.
  • Publishing: lib/pokemon-gmax.json removed from the published package; Gigantamax datasets live under lib/gmax/ in git and are omitted from the npm tarball (.npmignore). package.json exports include ./lib/items/* and no longer export the removed gmax JSON entry.
  • Other catalogs: updates to afflictions.json, type-chart.json, weapons.json, and trainer-class-move-pools.json where the app expects newer shapes.
  • Tooling: maintenance scripts under scripts/ (including Pokémon catalog migration and wire_pokemon_json_sprites.py) and validate.mjs adjustments.

0.2.0

  • Added lib/items/ per-category items split (staged migration away from monolithic items.json).
  • Added item JSON Schema (schemas/itemschema.json) and began migrating item rows to a mechanics[] model (targets, affects, uses, and container metadata).
  • Open todo: Check Berries, trainer-equipment Held-items, evolution items, key-items for consistencies (Medical, Pokeball, supplies, tm are valid).