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

@chimpbase/runtime

v0.7.0

Published

Runtime DSL and public primitives for Chimpbase applications.

Readme

@chimpbase/runtime

Public runtime DSL for Chimpbase applications.

This is the package application code uses to declare:

  • action(...)
  • cron(...)
  • subscription(...)
  • worker(...)
  • workflow(...)

It also exports the public context and durable workflow contracts that hosts consume.

Typical usage

import { action, cron, v, worker } from "@chimpbase/runtime";

const createCustomer = action({
  args: v.object({
    email: v.string(),
    name: v.string(),
  }),
  async handler(ctx, input) {
    await ctx.enqueue("customer.sync", input);
    return { ok: true };
  },
  name: "createCustomer",
});

const seedCustomers = action({
  args: v.array(
    v.object({
      email: v.string(),
      name: v.string(),
    }),
  ),
  async handler(_ctx, input) {
    return await Promise.all(input.map((customer) => createCustomer(customer)));
  },
  name: "seedCustomers",
});

chimpbase.register(
  createCustomer,
  seedCustomers,
  cron("customer.rollup", "0 * * * *", async (ctx, invocation) => {
    await ctx.collection.insert("customer_rollups", {
      capturedAt: invocation.fireAt,
      schedule: invocation.name,
    });
  }),
  worker("customer.sync", async (ctx, payload) => {
    ctx.log.info("syncing customer", payload);
  }),
);

Inside an active chimpbase runtime scope, action refs are directly callable, so one action can invoke another with await createCustomer(input).

When an unnamed action is exported from chimpbase.app.ts, the loader infers a durable id from module path + export name, for example chimpbase.app.ts#createCustomer. That keeps workflow, CLI and persistence references stable without requiring a manual name.

Outside app module loading, host.register({ createCustomer }) also infers the action id from the object key and assigns createCustomer as the action name. Only the bare host.register(createCustomer) form still requires an explicit name.

Per-handler telemetry persistence

The action(), worker(), subscription() and cron() factories accept an optional telemetry override:

action("createCustomer", handler, { telemetry: { log: true, metric: true } });
worker("sync", handler, undefined, { telemetry: false });

This overrides the global telemetry.persist setting from createChimpbase. See @chimpbase/bun docs for the full configuration shape.

Distribution model

@chimpbase/runtime is published as TypeScript source for the alpha release.

That keeps the public DSL close to the implementation and avoids introducing a build pipeline before the package surface settles.