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

@qamadness/qam-playwright-reporter

v0.3.0

Published

Playwright reporter that submits test results to a QAM Hub instance.

Readme

@qamadness/qam-playwright-reporter

Playwright custom reporter that submits test results to a QAM Hub instance after a run finishes.

Install

npm i -D @qamadness/qam-playwright-reporter

Configure

In playwright.config.ts:

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [
    ['json', { outputFile: 'test-results/report.json' }],
    ['@qamadness/qam-playwright-reporter', {
      apiUrl: process.env.QAM_API_URL!,        // e.g. https://qam.example.com/api
      projectId: process.env.QAM_PROJECT_ID!,  // UUID from QAM Hub → Automation Runs page
      runName: `CI Run ${process.env.CI_BUILD_NUMBER ?? new Date().toISOString().slice(0, 16).replace('T', ' ')}`,
      // apiToken is read from QAM_API_TOKEN env var automatically
    }],
  ],
});

Auth

Generate a Bearer token in QAM Hub → Profile → API Tokens and expose it as the QAM_API_TOKEN environment variable (CI secret). Never commit it.

Linking to manual cases

Prefix test titles with TC-<number> to auto-link automation results to their manual test cases in QAM Hub:

test('TC-42: user can log in', async ({ page }) => { /* ... */ });

Options

| Option | Type | Required | Default | Description | | ---------------- | --------- | -------- | ----------------------------- | ---------------------------------------------- | | apiUrl | string | yes | — | Base URL of the QAM Hub API (no trailing /). | | projectId | string | yes | — | QAM Hub project UUID. | | apiToken | string | no | process.env.QAM_API_TOKEN | Bearer token. | | runName | string | no | ISO timestamp | Human-readable run name in QAM Hub. | | jsonReportPath | string | no | test-results/report.json | Path to the Playwright JSON report. | | disabled | boolean | no | false | Skip submission (useful for local runs). | | autoDetectCiMeta | boolean | no | true | Auto-detect CI/git run metadata (see below). | | branch | string | no | auto | Git branch — overrides auto-detection. | | commitSha | string | no | auto | Git commit SHA — overrides auto-detection. | | commitMessage | string | no | auto | Commit message (first line) — overrides auto. | | ciBuildUrl | string | no | auto | Link to the CI build — overrides auto. | | environment | string | no | auto | Environment label (e.g. staging). | | triggeredBy | string | no | auto | CI actor — overrides auto-detection. |

CI run metadata

By default the reporter auto-detects the branch, commit SHA, commit message, CI build URL, environment and triggering actor and shows them on each run in QAM Hub. No configuration is needed — it recognizes GitHub Actions, GitLab CI, CircleCI, Azure Pipelines, Bitbucket Pipelines, Travis CI, Drone, Buildkite, Jenkins and TeamCity, and falls back to reading local git for anything a provider doesn't expose (e.g. the commit message on GitHub).

Override any field explicitly via the options above, or disable detection entirely with autoDetectCiMeta: false.

Videos & traces

When your Playwright config records videos (use: { video: 'on' | 'retain-on-failure' }) and/or traces (use: { trace: 'on' | 'retain-on-failure' }), the reporter uploads each test's video and trace directly to QAM Hub's object storage (they're too large to embed in the JSON payload) and links them to the run. In QAM Hub, the test details modal shows the video in an inline player and offers the trace as a downloadable .zip (open it at trace.playwright.dev).

Files larger than 50 MB are skipped. Upload failures never abort result submission — the run is still recorded without the media. Storage must be configured on the QAM Hub backend.

Requirements

Playwright >= 1.30. The json built-in reporter must be enabled — this reporter reads the JSON report it produces.

Learn more

License

MIT