Skip to content
CAI
Software that uses CAICheck a score

juicycleff/nestjs-event-store

51.6

Weak · 21 September 2026

1.2k

lines of production code

TypeScript

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a NestJS library that provides an event-driven architecture using the CQRS pattern. It abstracts event storage and streaming capabilities by supporting both EventStore and NATS as backend brokers. The library manages connections, subscriptions, and event publishing for these technologies, while also handling dynamic module registration and configuration.

Features

Added EventStore and NATS streaming broker implementations

New broker implementations for EventStore and NATS Streaming have been introduced to the system. The EventStore broker manages connections to an EventStore node, handling connection states and event creation. The NATS Streaming broker provides similar functionality for NATS-based event streaming, including connection management and event building. Both brokers expose methods for connecting, creating events, and closing connections, expanding the system's event handling capabilities.

src/lib/brokers · high confidence

Added event store implementations for EventStore and NATS

New event store implementations have been added to the application, providing support for both EventStore and NATS as backend event storage mechanisms. The \event-store.ts\ file introduces a class that manages catch-up, persistent, and volatile subscriptions for EventStore, while \nats-event-store.ts\ provides a similar structure for NATS, including stream publishing and subscription handling. These changes enable the application to publish and subscribe to events using either of these two distinct event store technologies, with the \index.ts\ file exporting both implementations for use throughout the application.

src/lib/stores · high confidence

Introduce event-store contract interfaces for EventStore and NATS

Added a new \src/lib/contract\ module that defines the configuration and subscription interfaces for connecting to event stores. The diff introduces TypeScript interfaces and types for both EventStore (supporting Persistent, CatchUp, and Volatile subscriptions) and NATS (supporting Persistent and Volatile subscriptions), along with module options and provider constants. This establishes the shared contract for event store connectivity and subscription handling.

src/lib/contract · high confidence

Behavioural changes

Migrated to NestJS Event Store module with new adapter interface

The library's core has been refactored into a NestJS-specific module structure. A new \IAdapterStore\ interface and \EventStoreCoreModule\ provide dynamic registration for event store and NATS brokers, supporting both synchronous and asynchronous configuration. The previous generic utility functions (\asyncABC\, \sha256\, \double\, \power\) and their tests have been removed, and the main entry point now exclusively exports the new library module.

src/lib · high confidence

Removed custom type definitions for sha.js

The custom TypeScript type definitions for the 'sha.js' package have been removed from the project. This means the project no longer provides its own type declarations for this dependency, which may affect TypeScript's ability to provide type checking and autocompletion for 'sha.js' unless the package includes its own types or a separate @types package is installed.

src/types · high confidence

Dependencies

Upgrade to NestJS v9 and migrate to Jest testing

The project has been upgraded to support NestJS v9, with corresponding peer dependencies for @nestjs/common, @nestjs/core, and @nestjs/cqrs set to ^9.0.0. The test runner has been migrated from Ava to Jest, and the Node.js engine requirement has been raised to \>=14. Additionally, the package name and description have been updated to reflect the shift to an event-store CQRS module, and dev dependencies like TypeScript and linting tools have been updated to their latest compatible versions.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 43 → 52 (+8.1)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 88 → 94 (+6.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 44 → 46 (+2.1)
  • Readiness 26 → 42 (+15.8)
  • Security 63 → 73 (+10.2)

Resolved (58)

  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • …and 38 more

New (90)

  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Documentation: no usage examples (README.md)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • …and 70 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

juicycleff/nestjs-event-store was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit dbe512174aabc5ba6c03fc0e21a301c2219eddfa — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b84573e22831.