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

@jetci/sdk

v0.1.4-alpha.3

Published

Readme

@jetci/sdk

Baseline workflow author SDK for JETCI.

Workflow files import this package when they only need the core JETCI CI capabilities. Provider SDKs, such as a future @jetci/github-sdk, should re-export this package and add provider-specific events or job APIs on top.

Baseline Usage

import {onPush, defineJob} from "@jetci/sdk"

const test = defineJob(
  "Test",
  {runsOn: "ubuntu-latest"},
  async ctx => {
    await ctx.run("pnpm test")
  },
)

onPush({fromBranches: ["*"], toBranches: ["main"]}, async () => {
  await test({})
})

Extending Events

Provider SDKs should use createSdkScope() from @jetci/sdk/extend to define new event emitters and jobs with a provider origin. All event emitters share the same base structure: workflow code passes serializable event params plus an async event handler.

import {createSdkScope} from "@jetci/sdk/extend"

const GitHubSDK = createSdkScope("@jetci/github-sdk")

export const onPush = GitHubSDK.createEventEmitter<{
  fromBranches: string[]
  toBranches: string[]
}>("push")
export const defineJob = GitHubSDK.defineJob
export const onPullRequest = GitHubSDK.createEventEmitter<{
  branches: string[]
  actions?: Array<"opened" | "synchronize" | "closed">
}>("github.pull_request")

The provider SDK is the author-facing package. It should not need a provider-specific runtime shim. During discovery, @jetci/ir bundles the provider SDK and aliases trusted @jetci/sdk extension imports to @jetci/runtime-shim. Registrations are tagged with the scope origin, and IR only accepts origins allowed by the active host.

Secrets

Event registrations may declare the secrets their orchestrator needs. The host sees these declarations during discovery and is responsible for resolving them before the event handler runs.

onPush(
  {fromBranches: ["*"], toBranches: ["main"]},
  {secrets: ["NPM_TOKEN"]},
  async ctx => {
    const token = ctx.secrets?.NPM_TOKEN
  },
)

Secrets belong to event/orchestrator context. Jobs do not have a separate secrets API; pass only the values a job should receive through normal job params.

Exports

  • @jetci/sdk: baseline onPush and defineJob APIs.
  • @jetci/sdk/extend: createSdkScope, createEventEmitter, event helper types, and job helpers for provider SDKs.
  • @jetci/sdk/registrar: stable registrar contract for hosts and provider SDK bridges. Workflow code should not import this directly; @jetci/ir enforces that during bundling.

Build

pnpm --dir packages/sdk build