juicycleff/nestjs-event-store
51.6
Weak · 21 September 2026
1.2k
lines of production code
TypeScript
primary language
4
measurements over time
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.