node-ts/ddd
53.5
Adequate · 21 September 2026
649
lines of production code
TypeScript
primary language
4
measurements over time
What this system is
This system is a Domain-Driven Design (DDD) library and example application focused on managing alarm states. It provides a modular architecture that separates core domain types from the main library to facilitate API and message transmission. The example application demonstrates this by handling alarm registration, triggering, and silencing via a CLI interface. The codebase also includes test infrastructure for reflection metadata and has been migrated to use pnpm as its package manager.
Features
Add DDD example application for alarm system
The ddd-example package now includes a complete domain-driven design example simulating a remote security monitoring system. The application allows users to register an alarm system, trigger alarms, and silence sirens via a CLI interface. The domain logic is separated from the CLI layer, with specific commands like SilenceAlarmSiren and events like AlarmSirenSilenced handling the core business rules for managing alarm states.
packages/ddd-example · medium confidence
Split DDD types into a separate package
The base DDD types (such as \AggregateRootProperties\, \EntityProperties\, and \Uuid\) have been extracted into a new \@node-ts/ddd-types\ package. This separation allows the domain contract types to be transmitted via APIs or messages without requiring the core DDD library and its peer dependencies. The \@node-ts/ddd\ package now depends on \@node-ts/ddd-types\ for these shared interfaces.
packages/ddd · high confidence
Behavioural changes
Removed empty AggregateRoot test and abstract class
The placeholder test file (src/aggregate-root.spec.ts) and the corresponding abstract class (src/aggregate-root.ts) have been removed from the codebase. This cleanup eliminates unused code and associated test scaffolding that did not contribute to the application's functionality.
src · high confidence
Test coverage
Added test setup file for reflection metadata
Added a new test setup file (test/setup.ts) that imports 'reflect-metadata' to support reflection-based testing.
test · high confidence
Dependencies
Migrated build system from Yarn to pnpm
The repository's package manager has been switched from Yarn to pnpm, evidenced by the removal of the yarn.lock file and the addition of pnpm-lock.yaml files across the workspace. The root package.json has been updated to use pnpm for all scripts, and dev dependencies such as Jest and ts-jest have been upgraded to version 28, with the Jest configuration updated to support pnpm's resolution and test patterns.
(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 55 → 53 (-1.9)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 80 → 80 (+0.2)
- Architecture 69 → 69 (+0.0)
- Maturity 49 → 53 (+3.1)
- Readiness 51 → 49 (-2.3)
- Security 60 → 53 (-6.8)
Resolved (28)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- Low CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- Low CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- …and 8 more
New (42)
- Coverage not measured — JavaScript/TypeScript suite
- Critical CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (the committed lockfile resolved no direct production dependency)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- End-of-life runtime: Node.js 12
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- High CVE: [GHSA redacted] (packages/ddd-example/pnpm-lock.yaml)
- …and 22 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
node-ts/ddd 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 fe1a37d353b9ec97c1245def50b727894e8b276c — 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.