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

@vue-html-bridge/adapter-testkit

v0.1.0

Published

Contract tests, fake adapter, and fixtures for validator-api adapters.

Readme

@vue-html-bridge/adapter-testkit

A devDependency-only package that verifies whether a @vue-html-bridge/validator-api adapter meets the common contract: UTF-16 ranges, failure/diagnostic separation, cancellation, session lifecycle, concurrency, JSON-serializability, and config watch targets.

It exists so that a second or third validator adapter can be added without changing the analyzer or the language server — the contract suite, not just TypeScript's structural typing, is what proves an adapter behaves correctly at every boundary the SPI cares about.

Exports

Split across three entry points so the framework-neutral core never pulls in a test-runner dependency:

  • @vue-html-bridge/adapter-testkit — createAdapterContractCases, the fixture types, and the educational createNoBlinkAdapter sample. No dependency on Vitest or any other test framework.
  • @vue-html-bridge/adapter-testkit/vitest — defineVitestAdapterContract, a thin Vitest binding over the same cases.
  • @vue-html-bridge/adapter-testkit/fake — createFakeAdapter, a controllable in-memory adapter for analyzer/language-server unit tests (queued results, call capture, abort barriers). Only ever imported from test files.

See docs/design/packages/adapter-testkit.md for the full contract-case catalogue (§3) and self-test list (§6/§8).

Versioning

  • The testkit's major version tracks @vue-html-bridge/validator-api's major version. A validator-api major bump (a required-field change, or a new apiVersion) is always accompanied by a matching testkit major bump.
  • Tightening the contract is a major bump, or an opt-in case — never a minor bump. If a change to an existing case could fail an adapter that passed before (a stricter assertion, a new mandatory case), it ships as a major version, or as a new case gated behind an opt-in fixture field so existing callers are unaffected until they adopt it.
  • Adding an optional fixture field, or a new case gated behind an existing optional field (e.g. expectedConfigWatchTargets), is a minor bump — it cannot fail a fixture that doesn't set the field.
  • Validator-specific fixtures belong to each adapter package. This package carries no fixtures for any one real validator (see @vue-html-bridge/adapter-markuplint's own test suite for that); it only owns the fixture shape (AdapterContractFixture) and the fake/sample adapters used across the monorepo's own tests.
  • The fake adapter's API is a real, semver-covered test utility — it is consumed directly by @vue-html-bridge/analyzer and @vue-html-bridge/language-server's test suites, not just an internal implementation detail, so its shape changes follow the same semver discipline as any other export.