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

@elqora/dgp-spec

v1.3.0

Published

Canonical plain contracts and generated interoperability artifacts for the Digital Goods Protocol.

Downloads

621

Readme

DGP Spec

DGP Spec defines the canonical plain shared and wire contracts of the Digital Goods Protocol. During the migration, contracts are authored in TypeScript and accompanied by JSON fixtures, protocol versions, diagnostic identifiers, and generated JSON Schemas for non-TypeScript consumers.

Spec defines portable representation and versioning. Backend domain semantics remain owned by the DGP SDK, while language-specific DTOs and helpers act as bindings that must serialize losslessly to the shared contracts. See CONTRACTS.md for the authoring and ratification rules.

Responsibilities

  • Plain TypeScript product-definition and shared wire contracts
  • Handler service, capability, manifest, and order snapshot wire contracts
  • Protocol versioning and compatibility rules
  • Shared valid and invalid fixtures
  • Generated, committed JSON Schema interoperability artifacts
  • Stable diagnostic identifiers and cross-language conformance expectations

No runtime interpretation, UI rendering, editorial workflow, or fulfillment implementation belongs here.

The diagnostic contract added in package 1.1 defines stable ProductDefinition publication codes, severities, RFC 6901 paths, and validation-result wire shapes without moving validation behavior into Spec. Package 1.2 adds the canonical OrderSnapshot wire contract and exact advisory utility-result representation. Package 1.3 extends stable diagnostics for relationship conflicts and malformed customer/quantity rules.

Ecosystem

Toolchain

DGP Spec is an independent npm package. It supports Node.js 22 or newer and uses npm with the committed lockfile.

npm install
npm run lint
npm run typecheck
npm test
npm run generate
npm run check:schemas
npm run check:boundaries
npm run build
npm run check

npm run generate derives JSON Schemas from the canonical TypeScript declarations and writes them to schemas/. These generated schemas are committed. npm run check:schemas regenerates into an isolated temporary directory and fails on file-set or content drift. Hand-authored valid and invalid JSON fixtures are exercised by npm test.

npm run check is the repository completion command. It runs lint, type checking, fixture tests, source-boundary enforcement, schema drift verification, and the package build.

Contract status

The DGP v1 ProductDefinition, browser JavaScript expression, handler-service, service-capability, diagnostic, and OrderSnapshot contracts are stable. Their reviewed rationale and ratification evidence are recorded in the versioned documents under docs/contracts/v1. A contract becomes ratified when its complete TypeScript source, fixtures, rationale, stable status, and generated schema are merged into main, and released when its package version is tagged and published.

License

GPL-3.0-only.