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

@sitelensapi/qa-smoke

v0.3.2

Published

Shared SiteLens smoke QA step schema, parser, and Playwright executor (MCP + API)

Readme

@sitelensapi/qa-smoke

Shared SiteLens smoke QA step schema, parser, and Playwright executor used by @sitelensapi/mcp (local runs) and sitelens-api (cloud saved flows).

Install

This package is normally installed as a dependency of @sitelensapi/mcp. Direct install (advanced / API integrators):

npm install @sitelensapi/qa-smoke

Requires playwright as a peer dependency (>=1.49.0).

Usage

import { parseQaSmokeStep, executeQaSmokeSteps, qaSmokeStepSchema } from "@sitelensapi/qa-smoke";

See docs/sitelens-agent-smoke-qa-v1.md for the shared step vocabulary (including selectOption, Tier 1/2 interactions, storage, screenshot, network request.json / response.json, and bundled network trigger). Design notes: docs/network-observation-assertions.md.

Optional @sitelensapi/observe integration (Browser DevTools Observability)

This package has an optional workspace:* dependency on @sitelensapi/observe. Pass a BrowserEventSession (or any object structurally matching QaSmokeBrowserEventSession) to executeQaSmokeSteps(page, viewport, steps, { browserEventSession }) to unlock:

  • Lookback network waitswaitForRequest / waitForResponse / expectNetwork / captureResponse match via session.waitForNetwork, so an exchange already captured in the session buffer resolves immediately instead of racing a fresh Playwright listener.
  • Richer network matchers — optional host, filename, query fields on network steps.
  • Observation/console/diagnostics stepsobservation.boundary, observation.configure, waitForConsole, expectConsole, expectNoConsole, expectNoPageErrors, expectPageError, expectNoFailedRequests, expectNoBrowserDiagnostics (all require a session and throw a clear error without one).
  • Downloads / WebSocket steps (opt-in)expectDownload, waitForWebSocket, expectWebSocket also require the session's capture policy to opt into categories.downloads / categories.websockets (verbose capture mode, or an explicit custom policy); with the category disabled no matching events are ever recorded, so these steps simply time out.
  • Auto-attached diagnostics on failure — a failed step's log entry gets a capped diagnosticsFindings summary from analyzeBrowserDiagnostics.

Without a session, everything works exactly as before (Playwright-only fallback). See docs/network-observation-assertions.md (Phase 6) for details.

Monorepo

pnpm --filter @sitelensapi/qa-smoke run build
pnpm --filter @sitelensapi/qa-smoke test
pnpm --filter @sitelensapi/qa-smoke run pack:check

License

See repository root for license terms before publishing.