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

@clan-europe/osrs-drops-sdk

v0.5.0

Published

Pre-generated SDK of OSRS boss/raid EHB rates and notable drop items with their probabilities, scraped from the Wise Old Man API and OSRS Wiki — so consumers never scrape live.

Readme

@clan-europe/osrs-drops-sdk

Pre-generated SDK of OSRS boss/raid EHB rates and notable drop items with their probabilities. The data is scraped from the Wise Old Man API and the OSRS Wiki once, periodically — consumers of this package never scrape live.

Usage

import { getSources, getSourceDrops } from '@clan-europe/osrs-drops-sdk';

const sources = getSources(); // EhbSource[] — every boss/raid EHB rate
const drops = getSourceDrops('vorkath'); // SourceDrops | undefined

See src/types.ts for the full shape of EhbSource, DropItem, and SourceDrops.

Regenerating the data

pnpm generate   # scrapes WOM + the wiki, overwrites src/data/generated.json
pnpm build      # bundles src/index.ts (+ the freshly generated data) into dist/

pnpm generate hits the network (Wise Old Man + the OSRS Wiki) and takes a couple of minutes for the full set of ~70 sources. Unlike most generated files, src/data/generated.json is committed to the repo — see "Generating & publishing" below for how and when that happens in CI. If you're just testing locally, feel free to regenerate freely; only commit the result yourself if you specifically mean to trigger a data-refresh release.

An optional WOM_API_KEY environment variable raises Wise Old Man rate limits; the generator works fine without it.

Generating & publishing

Two separate workflows:

  • .github/workflows/osrs-drops-sdk-generate.yml — runs generate every Wednesday at 12:00 UTC (or via manual dispatch). If the result is meaningfully different from what's committed (ignoring the generatedAt timestamp, which always changes), it commits src/data/generated.json with feat(osrs-drops-sdk): refresh generated drop data and pushes. No meaningful change -> no commit, no downstream publish.
  • .github/workflows/osrs-drops-sdk.yml — triggered by any push under this folder (including the generate workflow's commit above) or manual dispatch. Derives the next version from Conventional Commits touching this path since the last vX.Y.Z-osrs-drops-sdk tag: feat: bumps minor (this is why the data-refresh commit uses that prefix), a ! suffix or BREAKING CHANGE footer bumps major, anything else (fix:, chore:, ...) bumps patch. No relevant commits since the last tag -> nothing to publish. Otherwise it builds whatever is currently committed and runs pnpm publish to the public npm registry (@clan-europe scope), then commits the bumped package.json back to the repo (chore(osrs-drops-sdk): release vX.Y.Z [skip ci]) and tags it vX.Y.Z-osrs-drops-sdk.

Consuming inside this monorepo

apps/website depends on this package via workspace:*, so it always uses whatever is currently built in dist/ here. src/data/generated.json is committed with real data (refreshed weekly by the generate workflow above), so a plain pnpm build already produces a real package. To force a fresh scrape locally instead:

pnpm --filter @clan-europe/osrs-drops-sdk generate
pnpm --filter @clan-europe/osrs-drops-sdk build