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

@pkistudio/derbuilder

v0.1.0

Published

Browser-first ASN.1 instance builder for creating and inspecting DER data.

Downloads

24

Readme

DER Builder

DER Builder is a local-only browser application and reusable TypeScript API for creating deterministic DER documents from a supported ASN.1 definition and Instance JSON.

Current version: 0.1.0

Definitions, input values, diagnostics, and generated DER stay in the browser. The application does not retrieve schemas, OID data, or other resources. The production page enforces connect-src 'none'.

Features

  • Parse the supported ASN.1 module subset into a shared Schema Model.
  • Validate definitions and Instance JSON with stable codes and value paths.
  • Encode primitives, constructed values, choices, tags, defaults, and OF types as deterministic DER.
  • Load portable Definition Bundles and a catalog of PKI-oriented NamedObjects.
  • Edit one Instance value through synchronized Form and JSON views.
  • Open successful output in a new editable DerEditor tab while keeping the builder workspace focused on definition and instance input.
  • Use Core, Validation, and App APIs independently through controlled package exports.

Install

npm install @pkistudio/derbuilder

The only runtime dependency on another PkiStudio package is the published, exactly pinned @pkistudio/dereditor npm package. DER Builder does not consume source, assets, workflows, branches, or unpublished APIs from any other PkiStudio repository.

Core API

import {
  bytesToHex,
  createInstance,
  parseAsn1Definition,
  validateInstance,
  validateSchemaModule
} from '@pkistudio/derbuilder';

const schema = parseAsn1Definition(`Example DEFINITIONS ::= BEGIN
Person ::= SEQUENCE { name UTF8String, age INTEGER OPTIONAL }
END`);

const input = { name: 'Alice', age: 42 };
const diagnostics = [
  ...validateSchemaModule(schema),
  ...validateInstance(schema, 'Person', input)
];

if (!diagnostics.some((item) => item.severity === 'error')) {
  const document = createInstance(schema, 'Person', input);
  console.log(bytesToHex(document.der));
}

Browser app

import { initDerBuilder } from '@pkistudio/derbuilder/app';
import '@pkistudio/derbuilder/styles.css';

const app = initDerBuilder({ mount: '#app', schema, input });
const result = await app.build({ typeName: 'Person' });

if (result.ok) console.log(result.document.der);
else console.error(result.error, result.instanceDiagnostics);

Successful builds open a new DerEditor tab by default. Embedded hosts that only need the returned bytes can pass openViewerTab: false.

The application is deployed to GitHub Pages only after validation on main. The first deployment requires Pages to use GitHub Actions as its source; see Deployment.

Development

npm install
npm test
npm run check
npm run build
npm run test:e2e:install
npm run test:e2e
npm run pack:dry-run

Use npm run dev during development or npm run preview for the production build. npm run verify runs the non-browser release checks, and npm run verify:browser rebuilds before the browser suite.

The feature specification, API specification, and dependency policy define stable boundaries. See the user guide, deployment guide, release process, npm publishing guide, and GitHub prerequisites for operation and release procedures.

License

MIT