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

@drever/schema

v0.17.4

Published

Serializable data contracts shared by Drever's compiler and runtime.

Readme

@drever/schema

Serializable, dependency-light contracts shared across Drever's compiler, adapters, and browser runtime. Use this package when a tool needs Drever data types without importing executable compiler or React code.

import { DECK_MANIFEST_VERSION, type DeckManifest } from "@drever/schema";

const manifest: DeckManifest = {
  version: DECK_MANIFEST_VERSION,
  slides: [
    {
      id: "slide-1",
      index: 0,
      title: "A trustworthy artifact",
      speakerNotes: [
        {
          format: "markdown",
          plainText: "Remember the key result.",
          value: "Remember the **key result**.",
        },
      ],
      stepStops: [1, 3],
    },
  ],
};

speakerNotes[].value preserves the authored Markdown, while plainText is a compile-time readable projection for lightweight speaker interfaces. Both are immutable serializable data; they never contain React nodes or compiler ASTs. title is optional additive metadata inferred from the first static Markdown heading, a static native h1–h6 passed to a layout slot, or the first top-level MDX element's static aria-label, title, heading, or label prop when the slide has no usable heading.

DeckPreflightReportV2 is the current emitted report and combines source and optional rendered diagnostics without introducing a second diagnostic vocabulary. When drever check --rendered runs, its receipt records RENDERED_PREFLIGHT_VERSION, RENDERED_PREFLIGHT_RULESET_VERSION, the configured canvas, chromium engine, optional browser version, captured state count, status, optional evidence-manifest and inspection-build fingerprint, and any explicit source-skip, browser, or runtime failure reason.

DeckPreflightReportV1 models the legacy source-only artifact, while DeckPreflightReport is the safe V1-or-V2 union. Consumers should narrow on the root version before reading rendered; a V1 report never proves rendered inspection. Receipt wire version 1 accepts rendered rulesets 1 through 4 so stored evidence remains representable; compare rulesetVersion with RENDERED_PREFLIGHT_RULESET_VERSION before treating old evidence as current.

Deck plan contract

DREVER_DECK_PLAN_VERSION and DreverDeckPlan define the dependency-light, serializable story contract used by AI authoring. Validate parsed JSON before using it:

import { validateDreverDeckPlanValue, type DreverDeckPlan } from "@drever/schema";

const result = validateDreverDeckPlanValue(JSON.parse(source));
if (!result.ok) {
  for (const issue of result.issues) console.error(issue.field, issue.message);
  throw new Error("Invalid Drever deck plan");
}

const plan: DreverDeckPlan = result.value;

The validator rejects unknown fields and accepts both the current content-only V2 contract and read-only legacy V1 plans. Narrow on version before reading V1-only composition or motion fields; consumers should not silently coerce an unsupported future version. Planning slide IDs are stable review labels, while the compiled audience runtime remains position-based.

DreverAuthoringContextV2 is the current context and pairs with the V2 preflight report. DreverAuthoringContextV1 retains the prior source-only shape, while DreverAuthoringContext is the corresponding versioned union.

The package includes Deck IR, compile-plan, manifest, extension, diagnostic, source-location, and JSON-safe value contracts. Contracts are versioned so producers and consumers can reject incompatible artifacts explicitly.

Status

Drever is pre-1.0. The API is under active development and is not yet stable for production use.

For the overall architecture, roadmap, and development setup, see the Drever main project repository.