Skip to content

Releases: haskou/ddd-kernel

v2.0.0

29 Jun 11:21

Choose a tag to compare

Changes

  • break(kernel): 💥 Improve kernel contracts and environment schema

Release details

Pull request notes

Summary

  • Add typed environment schema choices with runtime validation and literal TypeScript inference.
  • Add environment schema metadata fields for documentation and operational tooling.
  • Move kernel consumer and route registration types to core contracts with KernelConsumer and KernelRoute.
  • Make adapter Consumer and Route implement/extend those kernel contracts.
  • Document adapter-specific install/import paths and the registration contracts.
  • Keep coverage focused on runtime kernel files instead of excluding all src/kernel.

Breaking changes

  • Kernel consumer registration is now typed against KernelConsumer instead of the pub/sub adapter Consumer base class.
  • Kernel route registration is now typed against KernelRoute instead of the UI adapter Route base class.
  • Custom registered consumers must expose queueName and init(). Adapter consumers already comply.
  • Custom registered routes should extend or be assignable to KernelRoute. Adapter routes already comply.

Validation

  • yarn typecheck
  • yarn lint
  • yarn build
  • yarn test:coverage
  • yarn docs:build
  • yarn format:check
  • yarn --cwd example typecheck

v1.2.1

29 Jun 11:00

Choose a tag to compare

Changes

  • fix(deps): ⬆️ update non-major dependencies - autoclosed - abandoned

Release details

Pull request notes

This PR contains the following updates:

Package Change Age Confidence Type Update
@haskou/eslint-config ^0.1.2^0.2.1 age confidence devDependencies minor
@haskou/value-objects (source) ^2.12.0^2.13.1 age confidence dependencies minor
class-validator ^0.14.4^0.15.1 age confidence peerDependencies minor
class-validator ^0.14.4^0.15.1 age confidence devDependencies minor
class-validator ^0.14.4^0.15.1 age confidence dependencies minor
eslint (source) ^10.5.0^10.6.0 age confidence devDependencies minor
mongodb ^7.3.0^7.4.0 age confidence peerDependencies minor
mongodb ^7.3.0^7.4.0 age confidence devDependencies minor
node 2222.23.1 age confidence uses-with minor
node 2424.18.0 age confidence uses-with minor
node-dependency-injection 3.2.63.8.0 age confidence dependencies minor
prettier (source) ^3.8.4^3.9.1 age confidence devDependencies minor
tsup (source) ^8.5.0^8.5.1 age confidence devDependencies patch
tsx (source) ^4.21.0^4.22.4 age confidence devDependencies patch

Release Notes

haskou/eslint-config (@​haskou/eslint-config)

v0.2.1

Compare Source

Changes

  • fix(lockfile): 🐛 Remove npm lockfile

Release details

Pull request notes

Summary

  • Remove package-lock.json because this repository uses yarn.lock.
  • Keep yarn.lock as the single tracked package manager lockfile.

Validation

  • Checked that yarn.lock exists and package-lock.json is removed.

v0.2.0

Compare Source

Changes

  • chore(deps): ⬆️ Add Renovate updates

Release details

Pull request notes

Summary

Add Renovate configuration for automated dependency update pull requests, document project status with README badges, and update the current dependency set.

Details

  • Configure Renovate with the recommended preset, dependency dashboard, and semantic commits.
  • Label dependency update pull requests with dependencies.
  • Use rangeStrategy: bump for non-peer dependencies so dependency ranges are updated in manifests.
  • Use rangeStrategy: widen for peerDependencies to preserve the published compatibility contract.
  • Set Renovate commit messages to use chore(deps): ⬆️ update ... formatting.
  • Group non-major dependency updates into a single pull request.
  • Add README badges for CI, npm version, Renovate, and MIT license.
  • Update outdated dependencies and refresh both package-lock.json and yarn.lock.

Validation

  • Parsed renovate.json with Node and verified peer dependencies use rangeStrategy: widen without a root rangeStrategy override.
  • Ran npm outdated --json; no outdated packages were reported after the update.
  • Ran npm run lint.
  • Ran npm run pack:dry.
haskou/value-objects (@​haskou/value-objects)

v2.13.1

Compare Source

Changes

  • fix(docs): 🐛 separate documentation sections

Release details

Pull request notes

What changed

  • Split documentation navigation into separate Getting Started, Guide, and Reference sections.
  • Added a Guide index page.
  • Removed the VitePress logo configuration and deleted the unused logo asset.
  • Simplified the reference overview copy.

Why

The previous documentation sidebar mixed unrelated sections, which made the docs feel harder to navigate.

Validation

  • Ran yarn docs:build.

v2.13.0

Compare Source

Changes

  • feat(deps): ⬆️ add Renovate dependency updates

Release details

Read more

v1.2.0

26 Jun 13:03

Choose a tag to compare

Changes

  • feat(kernel): ✨ Add typed environment schema

Release details

Pull request notes

Summary

  • Adds typed environment schemas for Kernel so applications can declare expected variables, types and required/default values.
  • Parses string, number and boolean environment values after loading dotenv files.
  • Throws KernelEnvironmentValidationError when required variables are missing or values cannot be parsed.
  • Updates the example and docs to use kernel.environment with inferred types.

Validation

  • yarn format:check
  • yarn lint
  • yarn typecheck
  • yarn test:coverage (100%)
  • yarn docs:build
  • yarn build
  • yarn --cwd example typecheck
  • npx -y depcheck --json

v1.1.0

26 Jun 08:42

Choose a tag to compare

Changes

  • feat(kernel): ✨ Add environment variable loader

Release details

Pull request notes

Summary

  • Adds kernel.loadEnvironmentVariables(environment?) and Kernel.loadEnvironmentVariables(environment?) backed by dotenv.
  • Adds kernel.environment and Kernel.environment as typed access points over process.env.
  • Documents environment loading, typed NodeJS.ProcessEnv augmentation and startup usage.
  • Updates the example to load environment variables before DI and adapter setup.

Validation

  • yarn format:check
  • yarn lint
  • yarn typecheck
  • yarn test:coverage (100%)
  • yarn docs:build
  • yarn build
  • yarn --cwd example typecheck
  • npx -y depcheck --json

v1.0.3

25 Jun 22:25

Choose a tag to compare

Changes

  • fix(docs): 🐛 Clarify container build usage

Release details

Pull request notes

Summary

  • Corrects containerBuild examples so production loads the generated YAML instead of trying to rebuild from src.
  • Documents when containerBuild: true should be used.
  • Adds the npm package link to the docs navbar.

Validation

  • yarn format:check
  • yarn docs:build

v1.0.2

25 Jun 22:16

Choose a tag to compare

Changes

  • docs: 📝 Clarify contracts and adapters

Release details

Pull request notes

Summary

  • Adds a package map explaining core, contracts/domain primitives and optional adapters.
  • Reworks installation by adapter group instead of listing random packages without context.
  • Reorganizes VitePress reference navigation by Kernel, Contracts/Domain, Pub/Sub, DB, UI, Scheduling, Logs and WebSocket.
  • Expands Kernel, DependencyInjection, ConsoleKernelLogger, Route and adapters docs with clearer responsibilities and options.

Validation

  • yarn format:check
  • yarn lint
  • yarn typecheck
  • yarn test:coverage (100%)
  • yarn docs:build
  • yarn --cwd example typecheck
  • yarn build

v1.0.1

25 Jun 20:21

Choose a tag to compare

Changes

  • fix(deps): 🐛 Bundle core DI dependencies

Release details

Pull request notes

Summary

  • Moves core DI runtime packages node-dependency-injection and fs-extra into package dependencies.
  • Removes those packages from optional peers so applications do not need to install them explicitly.
  • Declares class-transformer and class-validator as optional Express/routing-controllers peers and updates installation docs.

Validation

  • yarn format:check
  • yarn lint
  • yarn typecheck
  • yarn test:coverage (100%)
  • yarn docs:build
  • yarn --cwd example typecheck
  • yarn build
  • npx -y depcheck --json

v1.0.0

25 Jun 20:03

Choose a tag to compare

Changes

  • break(kernel): 💥 Add integration extension points

Release details

Pull request notes

Summary

  • Adds a consumer middleware pipeline with built-in idempotency, correlation/causation and retry middleware.
  • Adds metadata-aware consumer execution context and AMQP transport metadata propagation.
  • Adds publisher hooks, domain-aware publish context and configurable post-publish hook error policy.
  • Separates generic MessageBus from domain-specific DomainMessageBus.
  • Extends ExpressKernelServer with external controllers, phase hooks, configurable middleware, controller DI integration, duplicate-run protection and an imperative HTTP pipeline registration API.
  • Adds routingControllersOptions passthrough for useExpressServer, including cors, defaultErrorHandler and routing-controllers middleware classes.
  • Resolves express and routing-controllers from the consumer application root so local file: installs do not accidentally use a nested package runtime.
  • Adds a shared HttpErrorHandler for Express/routing-controllers applications, covering malformed JSON, payload-too-large errors, custom app handlers, HTTP status errors, flattened validation errors and unhandled 500 responses.
  • Adds dependency injection overrides with useClass, useValue and useFactory, including support for unresolved references generated from external package imports.
  • Keeps the instance kernel active during dependency injection so the instance API and legacy static facade stay aligned.
  • Adds kernel.dependencyInjection({ containerBuild }) so applications can choose container generation explicitly, while keeping CONTAINER_BUILD=true as fallback.
  • Adds TypeScript moduleResolution: node support coverage.
  • Polishes the example app with constructor injection, consumer middleware registration, HTTP middleware/hooks/error handling, shutdown hooks and explicit DI build configuration.
  • Removes the README stability section now that this is intentionally a major-impact API change.
  • Raises coverage thresholds to 100% for statements, branches, functions and lines.
  • Adds Renovate dependency automation, a README dependency automation badge and compatible dependency updates.

Breaking changes

  • MessageBus in @haskou/ddd-kernel/contracts/pubsub is now a generic pub/sub contract. Domain-event buses should use DomainMessageBus from @haskou/ddd-kernel/domain.
  • Route/controller construction can now be delegated to the kernel DI container through ExpressKernelServer, which changes the recommended route wiring style to constructor injection.
  • The Express adapter now exposes explicit registration APIs for controllers, middleware, hooks and error handlers; applications should prefer those over ad-hoc local wrappers.

Documentation

Updated docs cover:

  • consumer middleware pipeline, metadata and idempotency store expectations
  • message bus publisher hooks and hook error policy
  • Express phase hooks, external controller registration, HTTP middleware registration, routingControllersOptions, optional cors peer usage and HttpErrorHandler
  • app-specific HTTP error mappings through HttpErrorHandler({ handlers })
  • scheduler error policy usage
  • dependency injection build configuration through kernel.dependencyInjection({ containerBuild })
  • dependency injection overrides for swapping adapters in tests/runtime bootstrap
  • external package contract overrides for generated node-dependency-injection references
  • TypeScript classic moduleResolution: node compatibility
  • Renovate dependency automation and README badges
  • README branch/release positioning without the old stability section

Validation

  • yarn format:check
  • yarn lint
  • yarn typecheck
  • yarn test
  • yarn test:coverage (100% statements, branches, functions and lines)
  • yarn docs:build
  • yarn --cwd example typecheck
  • yarn --cwd example build
  • NODE_ENV=development PORT=0 timeout 8 yarn --cwd example start

v0.1.1

25 Jun 09:42

Choose a tag to compare

Changes

  • test(coverage): ✅ Raise Codecov coverage to 100%

Release details

Pull request notes

Summary

  • Aligns the coverage command used by CI with the covered runtime surface.
  • Adds focused tests for route adapters and AMQP DLX error handling.
  • Updates the README so it presents the package purpose, scope and release branch policy instead of duplicating usage docs.

Validation

  • yarn lint
  • yarn typecheck
  • yarn test
  • yarn test:coverage
  • yarn docs:build

Notes

The branch follows the repository release convention: fix/codecov-100-coverage.