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

@zephytiju/prism-component-sdk

v1.1.0

Published

Deterministic Prism component authoring, host contracts, packaging, validation, fixtures, and conformance tooling.

Readme

PrismComponentSDK

@zephytiju/prism-component-sdk is the deterministic, framework-neutral authoring and host contract for independently released Prism UI components.

It owns component module and host types, exact Schema references, metadata-definition helpers, layout-variant normalization, manifest and package validation, deterministic fixtures, and local conformance tooling. It deliberately contains no HTTP client, Blueprint model, Meridian runtime type, component implementation, composition state, storage transport, infrastructure, or deployment authority.

Author a component

import {
  defineComponentManifest,
  defineComponentMetadata,
  definePrismComponent,
  exactSchemaRef,
} from "@zephytiju/prism-component-sdk";

const configuration = exactSchemaRef({
  catalog: "prism-components",
  schema: "status-card.configuration",
  version: "1.0.0",
  digest: "sha256:8d969eef6ecad3c29a3a629280e686cff8ca9a4ae6f95c0d54d4a8468e0898e2",
});

export const metadata = defineComponentMetadata({
  configuration: { schema: configuration },
  inputs: [],
  outputs: [],
  events: [],
  intents: [],
  actions: [],
  slots: [],
  layout: {
    supportedRoles: ["content"],
    minimumSpan: { columns: 2, rows: 1 },
    preferredSpan: { columns: 4, rows: 2 },
    resizable: true,
    overflow: "host",
  },
  variants: [
    {
      variantKey: "centered",
      label: "Centered",
      isDefault: true,
      layoutConfigVersion: 1,
      layoutConfig: {
        kind: "alignment",
        horizontal: "center",
        vertical: "center",
      },
    },
  ],
  presentation: {
    label: "Status card",
    category: "Monitoring",
    searchTerms: ["status"],
    compatibleDistributions: ["web-html"],
  },
});

export const manifest = defineComponentManifest({
  manifestVersion: 1,
  componentId: "status-card",
  releaseVersion: "1.0.0",
  moduleEntry: "./dist/component.js",
  prismComponentSdk: ">=1 <2",
  metadataEntry: "./dist/metadata.js",
  requiredHostCapabilities: [],
  dependencies: {},
  producer: { sourceRevision: "0123456789abcdef0123456789abcdef01234567" },
});

export default definePrismComponent({
  manifest,
  metadata,
  mount(context) {
    context.element.textContent = String(context.configuration);
    return () => context.element.replaceChildren();
  },
});

The component receives no layout-variant switch. Workshop materializes a selected variant into host-owned instance layout configuration before mount.

Conformance

Use defineConformanceSuite and runConformanceSuite from @zephytiju/prism-component-sdk/testing, or serialize the same candidate shape and run:

prism-component-conformance ./prism-component.conformance.json

Conformance requires a base fixture and one fixture for every declared variant. Each fixture carries deterministic preview data, accessibility evidence, and compatibility expectations. Layout validation covers simple alignment, nested stack/grid regions, and responsive breakpoint configurations.

Run the repository gates with npm run verify. A runnable, framework-free example is available through npm run example.

Exactness and boundaries

  • Schema references require an explicit catalog, schema, immutable version, and SHA-256 digest. Mutable aliases such as latest, current, and active are rejected.
  • Package file order, metadata, layout configurations, fixture data, and digests are canonicalized deterministically.
  • Layout configurations are declarative data. Executable values, CSS, URLs, credentials, endpoints, and arbitrary prototype-bearing objects are rejected.
  • Production dependencies are checked against forbidden Blueprint, Meridian, storage, streaming, infrastructure, and runtime-registry families.

Byte packages and named regions (1.1.0)

Use createComponentPackage for a canonical byte-carrying container and readComponentPackage / extractComponentPackage to verify it before an authorized build-time load. buildComponentPackage remains the unchanged v1 metadata-only descriptor. See the format-2 wire contract for path, ordering, digest, entry and module-graph rules.

createPrismRegionHost maps materialized layouts to stable component content containers; its named-region contract covers nested and responsive layouts, invalid mappings, resize and teardown. No variant switch is passed to component code. npm run example:regions runs the complete shipped fixture; npm run consumer:clean installs the tarball in an isolated consumer, loads its actual module graph and verifies mounting. To verify the published release, run npm run consumer:clean -- @zephytiju/[email protected].