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

@hikoutei/kohkai

v0.1.0

Published

Runtime-neutral stable encoding and canonical JSON primitives for cross-runtime signed payloads.

Readme

@hikoutei/kohkai

Runtime-neutral Kohkai primitives for byte-stable serialization and canonical JSON text across Node.js, Apps Script, and other standard runtimes. The package owns the stable_encode_v1 byte grammar and the canonical-JSON text grammar used by signed payloads. It has no runtime dependencies and no Hikoutei domain, ORM, Google SDK, or Node-specific crypto types in its public surface.

The package is ESM-only and uses standard runtime facilities such as Uint8Array, TextEncoder, and String.prototype.normalize. Apps Script cannot import an npm package at runtime, so this repository also owns a self-contained source mirror under apps-script/; its output is checked against the package implementation and golden vectors.

Installation

npm install @hikoutei/kohkai
import {
  stableEncode,
  canonicalJson,
  isCanonicalJsonValue,
  CanonicalCodecError,
  StableCodecError,
} from "@hikoutei/kohkai";

API

  • stableEncode(value) returns the versioned stable_encode_v1 bytes used for deterministic identity and fingerprint inputs.
  • canonicalJson(value) returns sorted-key, finite-number, dense-array JSON text suitable for signed payloads.
  • isCanonicalJsonValue(value) validates the canonical JSON input grammar.
  • StableCodecError and CanonicalCodecError expose machine-readable error codes for invalid or ambiguous values.

stableEncode rejects non-finite numbers, unsupported types, cyclic values, duplicate object keys after NFC normalization, invalid tagged dates, and unpaired UTF-16 surrogates. canonicalJson separately rejects non-finite numbers, unsupported values, sparse arrays, cycles, and non-plain objects.

The package intentionally does not provide a SHA-256 helper. Applications keep hashing and application-specific error/protocol mappings at their own boundary.

Compatibility contract

The stable_encode_v1 bytes and hashes, and the canonical JSON text grammar, are compatibility contracts. Existing vectors must not change silently. A future incompatible encoding requires a new explicit version.

The Apps Script mirror is self-contained and does not import this npm package. Use the repository's parity tests when changing either implementation.

Development

npm ci
npm test
npm run typecheck
npm run typecheck:test
npm run build
npm pack --dry-run

License

MIT © ManddarinShop