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

@dpdpguard/contract

v1.5.0

Published

Versioned DPDP Guard API contract: openapi/v1.yaml, a machine-readable error-code catalog, and the audit-hash canonicalization + golden vectors. The dependency path DPDP Guard SDKs use for the /api/v1 wire shape.

Readme

@dpdpguard/contract

The versioned wire contract for the DPDP Guard Consent Manager API: an OpenAPI 3.1 specification, a machine-readable error-code catalog, and the audit-hash canonicalization algorithm with golden conformance vectors.

DPDP Guard SDKs are intended to depend on this package rather than vendoring copies of these files, so that every SDK stays byte-for-byte in sync with the same wire shape instead of drifting independently.

Contents

| File | Purpose | | --- | --- | | openapi/v1.yaml | The /api/v1 OpenAPI 3.1 specification. | | conformance/error-catalog.json | The stable, machine-readable error code enum returned in API error responses. | | conformance/audit-hash-spec.md | The audit-hash canonicalization algorithm (HMAC-SHA256), described in prose. | | conformance/audit-hash-vectors.json | Golden input → output vectors for verifying an independent implementation of the audit-hash algorithm. | | conformance/capture-artifact-vectors.json | Golden vectors for the dpdpcca/2 Cryptographic Consent Artifact canonicalization an offline capture device signs over (described in audit-hash-spec.md). |

Install

npm install @dpdpguard/contract

Official server SDKs

| Language | Package | Status | | --- | --- | --- | | Node/TypeScript | @dpdpguard/server | Shipped — reference implementation. | | Python | dpdpguard-sdk (pip install dpdpguard-sdk / uv add dpdpguard-sdk, import dpdpguard) | Shipped — mirrors @dpdpguard/server method for method. | | JVM | — | Tracked in docs/specs/mobile-server-sdk.md (P1). Not shipped yet. |

Prefer these over hand-rolling a client or generating one — they're hand-maintained against this package's openapi/v1.yaml and the ADR-002 error catalog, so upgrades are a versioned dependency bump instead of a manual diff or a regeneration step.

Generating a client for an unsupported language

For a language without an official SDK above, generate a typed client directly from this package's openapi/v1.yaml with openapi-generator rather than hand-writing one against the raw spec:

npm install --no-save @dpdpguard/contract
npx @openapitools/openapi-generator-cli generate \
  -i node_modules/@dpdpguard/contract/openapi/v1.yaml \
  -g go \
  -o ./generated/dpdpguard-client-go \
  --additional-properties packageName=dpdpguard_client

Swap -g go and the output path for any other openapi-generator target language (-g java, -g csharp, …). Pin the @dpdpguard/contract version per this package's own versioning rules above — a major bump can change generated types, so regenerate deliberately, not on every install.

This, plus the official SDK table above, is the documented resolution to docs/specs/crm-backend-integration-blockers.md B4 ("no official server-side SDK or client library"): use an official SDK where one ships, and fall back to generation only where one doesn't.

Versioning

This package's version tracks the contract artifact itself, independent of the /api/v1 URL version: a major bump means a breaking change to the wire shape or error catalog, a minor bump means an additive change (new endpoint, new optional field), and a patch bump means docs/clarification only. Pin an exact version, or a caret range, rather than latest if you're generating code from this package — a major bump can change generated types.

License

Apache License, Version 2.0 — see LICENSE.