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

@uscreen.de/cqrs-kit-2

v0.14.0

Published

> CQRS Starter Kit. Eventsourcing included. Some soldering required.

Readme

cqrs-kit

CQRS Starter Kit. Eventsourcing included. Some soldering required.

Alpha-Warning: work in progress, not tested in production and subject of change in api, features and options

Abstract

Goal of this module is to adopt CQRS/ES in a straight and reusable pattern to node applications. It should not provide a framework or make strong assumptions on infrastructure. That being said, the initial release will target frameworks like fastify, express and alike to use this package within their ecosystem. And it will target mongoDB and Nats as primary defaults.

To get to a production ready setup it should provied a working example within a setup of

Assumptions

  • storage and message adapters COULD handle their connections, pools, reconnections within this module
  • storage and message adapters COULD reuse their clients as injected from the outside
  • storage and message adapters COULD be injectable (basic reference implementations inlcluded)
  • this module SHOULD NOT provide a framework,
  • this module SHOULD NOT require a specific framework,
  • this module SHOULD NOT depend on any given framework
  • this module SHOULD NOT assume any filestructure
  • this module SHOULD NOT implicitly setup a domain

Terminology

TBD

Roadmap

  • add "saga/processmanager/story"
  • add "DomainRegistry"

Changelog

0.14.0

  • switch to ESM
  • switch to pnpm
  • replace tap with native node tests
  • upgrade packages

0.13.0

  • added optional query parameter to Projection.rebuild method.

0.12.0

  • use util.debuglog() for debug output docs
  • add Projection.onAfter hook to provide handler result as 3rd parameter, ie. onAfter: (event, payload, result) => {}

0.11.0

  • return result of command.emit locally and remote

0.10.0

  • add Projection.onAfter hook
  • update aggregated state after event is emitted

0.9.0

  • allow commands to emit multiple events

0.8.0

  • add method EventStore.removeAggregate

0.5.0

Added

  • set Projection.collection to false to skip collection creation

Changed

  • dep [email protected] replaced deprecated returnOriginal: false with returnDocument: 'after'

0.1.0

Changed

  • store.update now defaults to upsert:false. Replace with store.createOrUpdate which defaults to upsert:true

Tools:

Those are helpfull for development but should not be added as dependencies:

  • npx nats-cli - listen to nats channels
  • npx natsboard - monitoring dashboard