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

@qpmtx/query-fetcher

v0.4.0

Published

Downloads

602

Readme

qpm-ts-query-fetcher

The one typed way a QPMSecondBrain client talks to an estate API. @qpmtx/query-fetcher wraps fetch with zod-validated request/response bodies, the standard error envelope, and abort/timeout support, plus a thin TanStack Query integration layer (typed query keys, queryOptions/mutationOptions helpers, an SSR-safe QueryClient + prefetch/hydration flow for the Next.js App Router, and streamIntoQuery for folding a server-sent-events response into a query cache). It publishes to npmjs.org, public, under the @qpmtx scope — see docs/distribution.md for how a release happens and why this repo does not use the estate's git-tag pin.

Install

bun add @qpmtx/query-fetcher

@tanstack/react-query and react are peer dependencies — the consuming app's own versions are used (docs/usage.md).

Governing law

  • ts-craft (bun toolchain, ESM-only, module layout) and ts-client-craft (generated clients, TanStack Query as the only server-data cache, dumb UI) — both in qpsb-skills.
  • code-craft (cross-language writing/changing rules) and qa-craft (test strategy).
  • docs-craft (this README's own shape).
  • See INSTRUCTIONS.md for the full pinned skill/agent set and the gate command.

Quickstart

git config core.hooksPath .githooks   # once per clone (repo-gates-and-hooks rule 2)
bun install --frozen-lockfile
./check

./check is the gate — hook, CI, and a human all run exactly it (./check <stage> for one stage: fmt, lint, typecheck, test, or build; no argument runs all of them).

Docs

  • docs/usage.md — install, fetcher setup, one query, one mutation, SSR hydration, streaming server-sent events into a query cache, error handling.
  • docs/distribution.md — how this package is published to npm, why not a git-tag pin, and the temporary vendored-config deviation (QPMSEC-433).