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

@hjs-api-db/jep-sdk-js

v0.7.2

Published

JavaScript SDK for creating and verifying JEP Core 0.7 events through the JEP API

Readme

JEP JavaScript SDK — JEP Core 0.7

JavaScript client for the current JEP Core 0.7 reference API.

The default client uses:

POST /v0.7/events/create
POST /v0.7/events/verify
GET  /health

Historical pre-0.7 compatibility is explicit through createEventLegacy() and verifyEventLegacy(). A failed 0.7 validation is never heuristically retried as 0.6.

Status

Experimental reference SDK. It does not define new JEP Core semantics and does not determine factual truth, authorization validity, legal effect, causality, regulatory compliance, or policy outcome.

Installation

Starting with software 0.7.2, the npm package and import name is @hjs-api-db/jep-sdk-js. The source repository remains hjs-spec/sdk-js on GitHub; npm account scope and GitHub owner are separate.

Until the owner completes the first npm publication, use the GitHub release tarball:

npm install https://github.com/hjs-spec/sdk-js/releases/download/v0.7.2/hjs-api-db-jep-sdk-js-0.7.2.tgz

After that version is confirmed on npm, the registry installation is:

npm install @hjs-api-db/[email protected]

Both install the same package and use the new import below. The historical @hjs-spec/jep-sdk-js tarballs, including v0.7.1, are preserved unchanged; they are not republished or silently redirected. Existing users of a historical tarball must explicitly change their dependency and import name when adopting 0.7.2. Runtime source, types, API paths and signed event semantics are unchanged. See PUBLISHING.md for first-publication and automatic-release setup.

Quick start

import { JEPClient, Verb } from "@hjs-api-db/jep-sdk-js";

const client = new JEPClient({ baseUrl: "http://127.0.0.1:8000" });
const created = await client.createEvent({
  verb: Verb.Judgment,
  who: "did:example:agent-789",
  what: { claim: "approve" },
});
console.log(created.event.id);
console.log(created.event_hash);
const verified = await client.verifyEvent({ event: created.event, mode: "archival" });
console.log(verified.status, verified.checks);

JEP Core 0.7 model

  • Event Identity is (who,id); id is required.
  • Core does not require a top-level nonce.
  • Event Hash identifies an exact signed artifact, not Event Identity.
  • Validation uses independent checks rather than cumulative Validation Levels.
  • Acceptance may return accepted or already_accepted.
  • D requires what.delegatee and what.scope.
  • T requires ref and what.termination_scope.
  • V requires ref, what.verification_scope, and what.result.
  • Logical JEP event references use Event Identity; exact-artifact pinning may additionally carry Event Hash.

The normative Core source and schemas are maintained in jep-core.

Legacy pre-0.7

Legacy handling is explicit:

await client.verifyEventLegacy({ event: legacyEvent, mode: "archival" });

Do not interpret a failed 0.7 validation as permission to retry a legacy decoder.

Core exports

  • JEPClient
  • Verb
  • JEPValidationError
  • JEPAPIError
  • eventToJSON
  • isValidationResult
  • JEP_CORE_PROFILE
  • LEGACY_JEP_CORE_PROFILE

Validation results

Current 0.7 results expose:

  • status: valid | invalid | indeterminate
  • checks: independent check results
  • event_identity
  • event_hash
  • optional acceptance
  • warnings / errors

Extensions

Application metadata belongs in ext. Unknown critical extensions fail extension_processing; non-critical unknown extensions may be ignored by a generic Core verifier.

Testing

npm test

Tests include real loopback HTTP client behavior, npm scope/metadata checks and an offline installation/import of the actual packed archive in a fresh directory. They do not prove live-service readiness or external truth.

Related repositories

  • JEP Core 0.7: https://github.com/hjs-spec/jep-core
  • JEP API: https://github.com/hjs-spec/jep-api
  • Python SDK: https://github.com/hjs-spec/sdk-py
  • Go SDK: https://github.com/hjs-spec/sdk-go

License

MIT