1.2.0-beta.1 (2026-07-17)
1.2.0-beta.0 (2026-06-17)
Features
- Add sqlite-workers submodule for async SQLite reads (1987a40)
- Allow SQLite worker connections to be created with a custom factory (fb39cf1)
Internal Fixes
- Move duplicate worker utils into src/shared/worker-utils/ (8b3c383)
1.1.1 (2026-07-17)
Fixes
- Chained pipelines not preserving FIFO action start order (ba27d1d)
1.2.0-beta.0 (2026-06-17)
Features
- Add sqlite-workers submodule for async SQLite reads (1987a40)
- Allow SQLite worker connections to be created with a custom factory (fb39cf1)
Internal Fixes
- Move duplicate worker utils into src/shared/worker-utils/ (8b3c383)
1.1.0 (2026-05-26)
Features
- Integrate OpenTelemetry for command and event tracing (b03997f)
- RabbitMQ trace context propagation via W3C TraceContext AMQP headers (1db354a)
- Redis-backed projection views with distributed locking (experimental) (8ff0f1e)
- SqliteEventStorage (ffaf766)
- MongoDB-backed event storage (53fb5e1)
- MongoDb-backed view model (
MongoObjectView,AbstractMongoObjectProjection) (4995bfe) - Option for rabbitmq queue-level message TTL (d4461e6)
Changes
- Remove “md5” from peer dependencies (87600bc)
- Expose
restorePromiseson DI container for tracking async projection restoring processes (ebdaa2c) - Use
Identifieras id type in redis and sqlite views (dfbe964) - Add default queueName for RabbitMqCommandBus (ee4b5a1)
- Add error handling and drain functionality to event publishing process (d23ea62)
- Allow extra command parameters to be passed to AbstractAggregate handler as 3rd argument (ae11b7e)
- Deliver events to worker in batches during restoring phase (212e353)
Fixes
- Defer aggregate cache pre-warm to avoid orphaned async operations on command error (677ed29)
Documentation
- Remove readme code samples in favor of runnable ./examples/ (73417c3)
- Rearrange examples to use same aggregate and projection implementation (5325901)
- Add detailed documentation for redis and mongodb modules (72e66f5)
- Detailed sqlite and rabbitmq instructions (dd242fd)
- Minor spec update (6a2883a)
- Add index.html for publishing with gh pages (cac88ed)
- Fix homepage styles cdn (6ab1ff2)
Build System
- Add “rebuild” npm script (2e5e977)
Internal Fixes
- Rename telemetry metadata span field to
otelSpan, enhance typings (2ca2494) - Compiled AbstractWorkerProjection type compatibility (bf8ca08)
- Enhance message payload typing (7911acc)
- Expose
viewLockeron WorkerProxyProjection (628fbe3) - Make
getHandlerto throw error if handler is not defined (ecbd73e) - Allow disposing worker projection proxy more than once (768f73a)
1.0.2 (2026-04-03)
Changes
- Set
x-consumer-timeouton MQ according to configuredhandlerProcessTimeout(3e272ea) - Disable DLQ setup for RabbitMqEventBus by default (b953829)
Internal Fixes
1.0.1 (2026-03-31)
Fixes
- Use setImmediate in Node.js for nextCycle to avoid setTimeout performance overhead (4b63706)
Internal Fixes
- Fix vulnerability in dev dependency (610757b)
1.0.0 (2026-03-21)
Features
- RabbitMQ integration classes to support event publishing and subscription (991c223)
- Run projections derived from AbstractWorkerProjection in worker threads with remote view access (3d4c56a)
- Support selective restore event loading (3a74da6)
- Multi-saga correlation via
message.sagaOrigins+ simplified ISaga (mutate/handle) with AbstractSaga state support (ae67594) - Re-process commands on concurrency errors in EventStorage (8a60560)
- Add RabbitMQ command bus implementation and enhance MQ configuration options (a565c59)
Changes
- Remove
publishAsyncsetting, simplify publishing sequence (79257e5) - Support persistent views; Add SQLite infrastructure (c235573)
- Move validation, snapshot and event persistence to EventDispatcher pipeline (e781f7c)
- Cache immediate aggregates to handle concurrent commands (e193c4c)
- Enhance type safety in CqrsContainerBuilder with generics (025765c)
- Move reconnect logic to rabbitMqConnectionFactory; re-establish subscriptions on reconnect (a42d138)
- Auto-reconnect to RabbitMQ (ba80536)
- Apache-2.0 License (576869b)
- Publish events asynchronously without awaiting for subscribers to complete (025edb8)
- Make saga
startsWithoptional to reduce boilerplate (34cc162) - Exclude
getHandledMessageTypesfrom export (afa1cf6) - Use di0 resolvers to avoid explicit type alias declarations (efcbc77)
- Add an option for ES concurrency errors ignoring (5189ba0)
- Allow extending WorkerProxyProjection via workerProxyFactory custom proxy type (c9860b6)
- Resolve RabbitMQ appId from injected
rabbitMqAppIdprovider (56c2fe1) - Return established subscription details from
subscribemethod of RabbitMqGateway (7768256) - Add option for queue expiration (7073832)
- Add option to disable handler timeout on rabbitmq subscription (dd76d5e)
- Pass event meta through projection chain, allow skipping last event update for internal-origin events (dd36395)
Fixes
- Asserting db connection in prolongLock and unlock methods (b272473)
- Proper milliseconds calculation for Event Locker (ca4016a)
- Concurrent operations handling in SqliteObjectStorage updateEnforcingNew (bab7807)
- Failing synchronous event handler may prevent execution of other handlers (fb026e5)
- All errors being ignored with concurrency resolution set to ‘ignore’ (0cb10bc)
- Avoid finalization of already finalized MQ messages (a9a1ea6)
Documentation
- Rename GH workflow and corresponding badge (8dd82df)
- Add CONTRIBUTING.md symlinks for coding agents (878f25f)
- Update package description and keywords (15ef847)
- Add AbstractWorkerProjection description to readme.md (dd3952c)
Tests
- Improve test coverage (b13e51d)
- Allow running individual integration tests with
npm t(cfef9a8) - Fix broken AbstractWorkerProjection example (5320b97)
- Migrate chai+sinon tests to pure jest and remove legacy deps (86840dd)
Build System
- Update changelog titles and commit message prefixes (8c6ead0)
- Add ESM, CJS, and Browser builds (e83018f)
- Add pull_request trigger to Coveralls workflow (8c7b95a)
- Add eslint to github actions; cleanup eslint rules (405efb0)
- Update the CI workflow to request an OIDC ID token (f4f86c7)
- Remove comments from compiled dists (d7124bd)
- Refactor NPM publish step to handle pre-release and release tagging dynamically (3f35a79)
- Fix browser build with rollup (cc70f71)
- Default npm publish tag to “alpha” for numeric pre-ids; rework tag cleanup hierarchy (6d89e7b)
Internal Fixes
- Use
structuredClonefor snapshot creation (1d0e827) - Simplify aggregate interface (3e141fd)
- Use “quorum” type for durable queues (f617149)
- Vulnerability in js-yaml dev dependency (0e9b25e)
- Ensure proper subscription management in TerminationHandler (506acc2)
- Refactor subscription handling, improve logging on subscription removing (72c5370)
- Close rabbitmq connection on SIGINT/SIGTERM (21686be)
- MQ consumption starts before handler is properly recorded (35a974b)
- Enhance logging in RabbitMqGateway and AbstractProjection for better traceability (57d3f30)
- RabbitMQ connection not auto-closing on SIGTERM (63b4f48)
- Update Lock interface to support resource management with
usingkeyword (196332e) - Expose connection state events on RabbitMqGateway (42fe349)
- Move workers tests to “integration/”, letting unit tests to run without build (9038356)
- Update di0 with fixed resolvers (c4dcb4f)
- Split AbstractWorkerProjection into worker-side and main-thread proxy (751bfcf)
- Rename InMemoryLock event to match IViewLocker interface (1fe2eb1)
- Separate projection restoring from subscription; start explicitly in DI container (3ddc649)
- Allow EventStore to resolve reader from eventStorage alias (91cd778)
- Update dependencies (8c7478e)
- Consolidate CommandBus into InMemoryMessageBus (62b1b0a)
- Upgrade di0 to latest stable version with resolvers (5f2c9ad)
- Enable “x-single-active-consumer” on event queues (6cf8e74)
0.17.0 (2025-08-12)
Changes
- Add
InMemoryView.prototype.getSyncmethod (5d4adb9)
Fixes
- Vulnerability in minimist dependency (07b8c68)
Build System
Internal Fixes
0.16.4 (2022-08-28)
Internal Fixes
- Use di package from npm (0e8db91)
0.16.3 (2022-01-28)
Changes
0.16.2 (2021-07-06)
Fixes
- Vulnerabilities in dependencies (1bdd491)
0.16.1 (2021-05-28)
Changes
- Postpone view.get responses to next loop iteration (950c2e4)
Fixes
- Mark aggregateId optional on command send (f496ecf)
0.16.0 (2020-03-18)
Features
- Accept logger as an optional dependency (65fe5ad)
- Detect circular dependencies in DI container (1490b51)
Changes
- Move DI container to a separate package (350f3f4)
- Do not bind masterHandler to observer automatically (d2ec79d)
- Remove deprecated InMemoryView..markAsReady method (23015ec)
- Remove IProjectionView interface (eb8e723)
- Remove dependency to nodejs EventEmitter (3fd7cd8)
- Wrap types in NodeCqrs namespace (74e9b67)
Fixes
- Debug output not using toString in Node 12 (ca0d32f)
- Debug output on one time subscriptions (2fd7601)
- Correctly set type of the extended container builder created from container (1f2f632)
- Moderate security issue in “minimist” dev dependency (579d523)
Documentation
- Add saga documentation (e27d1e3)
Tests
- Fix tests in Node 12 (beeb471)
- Run example domain tests with unit tests (5ffdb43)
- Run eslint for entire project folder (d9055a1)
Build System
- Prevent git push on version (3ea9e38)
- Add conventional-changelog script (da26a1c)
- Run tests in NodeJS 12 env (1d4239c)
- Replace changelog eslint preset with custom one (8507262)
- Exclude unnecessary files from package (47b6797)
- Do not install global dependencies (158783c)
0.15.1 (2019-08-26)
Changes
- Upgrade dev dependencies to fix audit script (ef01cc3)