RPP402RPP402
Changelog

Releases & notable changes

RPP402 follows semver for the wire format: additive fields are minor bumps, anything a client must change for is a major bump. Packages publish to npm under the @rpp402 scope.

  1. v0.1.1pre-release
    Packaging fix

    A packaging release that makes @rpp402/sdk and @rpp402/registry installable and usable from any project - not just inside the monorepo. No wire-format changes.

    Fixed
    • @rpp402/sdk and @rpp402/registry no longer publish an unresolved "workspace:*" dependency on @rpp402/protocol - it now resolves to a real ^0.1.1 range, so `npm install` no longer fails with EUNSUPPORTEDPROTOCOL.
    • Packages ship compiled JavaScript and .d.ts type declarations instead of raw TypeScript source, so they work under plain Node, tsc, and any bundler - not only TS-aware toolchains.
    Changed
    • Every package now publishes dual ESM + CommonJS builds with a proper "exports" map, "main"/"module"/"types" fields, source maps, and a bundled LICENSE.
    • @rpp402/sdk hardens its network layer: a default request timeout, and network, timeout, malformed-JSON, and non-JSON error responses all surface as a typed Rpp402Error instead of a raw fetch failure.
    • discover() accepts a bare domain, an origin, or a full well-known URL and normalizes them identically, rejecting empty or malformed input up front.
  2. v0.1.0pre-release
    Published on npm

    The first public cut of RPP402 - the six-primitive protocol, the SDK and CLI, and the reference tools, live on npm under @rpp402.

    Added
    • RPP402-000 through RPP402-006 - the Introduction plus the six v1 primitives: Discovery, Quote, Commerce Session, Payment Intent, Settlement, Receipt.
    • @rpp402/protocol - JSON Schemas and TypeScript types, the wire-format source of truth.
    • @rpp402/sdk - one call per primitive, every response validated against the schemas at runtime.
    • @rpp402/cli - init, dev, doctor, inspect, simulate, receipts verify, registry, publish.
    • Registry Explorer, live Playground, and runnable Examples - all driving the real SDK, no canned data.