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

@warp-lang/commerce-registry

v0.1.0

Published

A mechanism for describing and indexing community commerce adapters: a documented manifest format (name, platform, inbound/outbound capability, conformance status), a local in-memory index, and a validator. It is a format plus tooling, not a hosted regist

Readme

@warp-lang/commerce-registry

A mechanism for describing and indexing community commerce adapters. It is three things and no more:

  • a manifest format — a documented type for describing an adapter: its name, the platform it targets, its inbound/outbound capabilities, and its conformance status.
  • a local index — an in-memory collection of registered manifests, with list/filter/lookup.
  • a validator — checks a candidate manifest against the format and reports every problem with a locatable, readable message.

It is a format plus tooling, not a hosted registry service. It persists nothing, fetches nothing over the network, and never loads or runs the adapters it describes. A manifest is data about an adapter; this package helps you write, validate, and organize that data.

This package is private and unpublished (0.1.0).

The manifest format

A manifest is the registry's own descriptive type. It is deliberately separate from the frozen Warp Commerce Model schema (the invariants, the transition graph, the structural shapes in schema/): a manifest describes an adapter, not a commerce object, and editing it never touches the model.

interface AdapterManifest {
  name: string;          // unique key in an index; lowercase, digits, hyphens
  platform: string;      // the external system targeted (see KNOWN_PLATFORMS)
  capabilities: AdapterCapability[]; // non-empty list of mappings
  conformance: "unverified" | "self-reported" | "verified";
  description?: string;
  version?: string;
  homepage?: string;
}

interface AdapterCapability {
  direction: "inbound" | "outbound"; // platform->Warp, or Warp->platform
  entity: string;                    // the Warp-model concept involved
  via: string;                       // the exported mapping function (documentary)
}

conformance records how far an adapter has been checked against the canonical conformance harness; it is a claim about process, not a guarantee about the adapter's code. via names the function that performs a mapping so a reader can find it in source — the registry never calls it.

Usage

import { AdapterRegistry, validateManifest } from "@warp-lang/commerce-registry";

const registry = new AdapterRegistry();

registry.register({
  name: "acme-shop",
  platform: "acme",
  conformance: "self-reported",
  capabilities: [{ direction: "inbound", entity: "Commitment", via: "fromAcmeOrder" }],
});

registry.list();                       // -> [manifest, ...] sorted by name
registry.listByPlatform("acme");       // filter by platform
registry.listByConformance("verified"); // filter by conformance status

// Validate without registering:
const result = validateManifest(candidate);
if (!result.valid) console.error(result.issues);

Registration validates first, so an index only ever holds well-formed manifests. A malformed manifest is rejected with the validator's issues, never silently stored. Re-registering a name throws; use replace to overwrite deliberately.

Example

examples/register-existing-adapters.mjs registers the four adapters that ship in @warp-lang/commerce-types (Shopify, Stripe, PayPal, Amazon) via manifests, validates them, lists them, and rejects a malformed manifest. It also imports each platform module and checks that every function a manifest names in via is a real export — confirming the descriptions match the shipped code.

npm install --include=dev
npm run build
npm run example

Scripts

  • npm run build — bundle to dist/ (dual ESM/CJS with types)
  • npm test — run the validator and index tests
  • npm run typechecktsc --noEmit
  • npm run example — run the registration demo (build first)