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

@suss/contract-intent

v0.34.0

Published

Read the intent specs your team writes in YAML or JSON, so suss can check the code against what you said it should do.

Downloads

4,515

Readme

@suss/contract-intent

Part of suss, which reads both sides of every call in a repository and reports where the two disagree.

This package reads intent specs your team writes (*.intent / *.prd, YAML or JSON) into IntentSummary[], which the intent checker pairs with the summaries derived from code.

What this is

The layer that reads intent files. An intent spec declares what a boundary should do (system intent), or the scenarios people expect a feature to satisfy (PRD outcome intent). This package finds the files and directories and parses the YAML or JSON. The schema, and the conversion to IntentSummary, are in @suss/intent-ir.

Unlike the other contract readers, intent does not produce BehavioralSummary. It has its own type and its own checker. The full design is in design/proposals/intent-specs.md.

Usage

import {
  loadIntentDoc,
  loadIntentFile,
  loadIntentDirectory,
} from "@suss/contract-intent";

const one = loadIntentFile("intents/users.intent.yaml"); // IntentSummary
const all = loadIntentDirectory("intents/"); // IntentSummary[]

The CLI loads intent through suss check --intent <dir>. Intent is checked against code, so suss contract does not write it out.

Spec shape

There are two kinds, told apart by the top-level kind. System intent:

kind: boundary
name: users-lookup
purpose: Look up a single user by id.
audience: web-client
boundary:
  transport: http
  semantics: rest        # or function-call
  method: GET
  path: /users/:id
transitions:
  - id: not-found
    when: user not found
    response:
      status: 404
      body:
        properties:
          error: { type: string }
  - id: found
    when: user exists
    response:
      status: 200
      body:
        properties:
          id: { type: string }
          fullName: { type: string }

Each transition declares exactly one outcome: response (a REST status and body), returns (a function or handler return value), or throws (an error). PRD docs (kind: prd) contain when / expect scenarios, and each scenario can link to a system-intent outcome by <name>.<id>.

Body properties accept the primitive type names string, integer, number, boolean, null and unknown.

More

Coverage

coverage

License

Apache-2.0