Skip to content

Releases: albe/node-event-storage

v1.3.2 makeReadOnly API

08 Jun 18:44
388cb5d

Choose a tag to compare

  • Added EventStore.makeReadOnly([callback]) as a niche handover API for switching a running writer process into read-only mode without restarting it. For the common case, creating a fresh read-only EventStore instance remains the recommended approach.
  • Added public VERSION export at the package root and mirrored it on EventStore.VERSION so dependent layers can read the event-storage version directly without resolving/parsing package.json at runtime.
  • Fixed ReadOnlyStorage.open() to keep the same opened-event semantics as the readable and writable storage variants, so read-only reopen paths and the makeReadOnly() callback now work consistently.

v1.3.1 Type information

07 Jun 17:43
c9960ef

Choose a tag to compare

  • Added published TypeScript declarations (index.d.ts) and package-level types metadata so consumers can reference EventStore and related public APIs from event-storage.
  • EventStream now exposes where() for matcher-based filtering.
  • EventStream.filter() now supports Readable.filter(callback, options) delegation when options are provided.
  • Matcher-style EventStream.filter(matcher) remains supported for backward compatibility but now emits a deprecation warning and should be migrated to where().

v1.3.0 Operator Matchers

06 Jun 21:28
95f3ad0

Choose a tag to compare

  • Object matcher syntax now supports scalar operators: $gt, $gte, $lt, $lte, $eq, $ne.
  • Operator matchers work consistently across object mode, raw-buffer mode, and DCB/query filters.
  • $eq-only operator matchers are folded into the scalar fast path for raw matching (same hot path as plain equality).
  • Public low-level matcher utilities are now exported from the package root (matches, buildRawBufferMatcher) for reuse by dependent layers.

v1.2.0 Raw EventStreams

27 May 18:59
13cec6b

Choose a tag to compare

Breaking changes:

  • scanConsumers() now returns parsed consumer descriptors ({ name, stream, identifier }) instead of filename strings.
  • Stream/type names produced via typeAccessor are validated more strictly; invalid names (for example with whitespace) now fail fast.

New in 1.2:

  • Raw EventStreams (raw=true) across stream/category/query APIs, emitting NDJSON Buffer chunks for zero-deserialization transport paths.
  • Raw predicates and object matchers for byte-level filtering, plus fixes for NDJSON/raw behavior in EventStream and JoinEventStream.
  • Read-path performance and correctness improvements (readRange, merge/backwards iteration fixes, index sync optimization, partition identifier caching).
  • Consumer lifecycle improvements (in-memory registry lookup, progress events).

v1.1.0 DCB

10 May 15:27

Choose a tag to compare

What's Changed

  • Skip reindexing when commit() creates a new write stream by @Copilot in #300
  • feat: O(1) secondary-index dispatch via discriminant lookup table + LRU partition fd pool by @Copilot in #302
  • Support hierarchical slash-separated stream names alongside existing dash-separated category streams by @Copilot in #301
  • feat: DCB support via CommitCondition API, query() improvements, and typeAccessor string path by @Copilot in #304
  • feat(Storage): async partition + index scan in open() with 'opened' event and callback hook by @Copilot in #303

Full Changelog: v1.0.0...v1.1.0

v1.0.0 Switch to ESM

02 Apr 14:44
911d58d

Choose a tag to compare

This only contains a shift from old CJS to ESM exports. It is otherwise functionally equivalent to 0.9.1

v0.9.1 Fix npm publish workflow

01 Apr 15:10
0dd3bc0

Choose a tag to compare

This is just a workflow release. No functional changes.

v0.9.0 Full auto repair

01 Apr 10:55
785e4ae

Choose a tag to compare

This release now contains full crash recovery and repairs corrupted files, brings lagging indexes up to sync and guarantees commits are only written in full.
The repair behavior is tested with a stress test writing to storage in a tight loop and artificially crashing the process. An upper bound on potential data loss is guaranteed and only depends on write buffer size, hence is configurable.

The documentation has received an overhaul and is available at https://node-event-storage.readthedocs.io/en/latest/

This release also drops official support for nodejs < 18, though it should still be functional.

This project is now considered production ready.

The next release will be a breaking change, moving the code base to ESM.

Full change log:
v0.8.0...v0.9.0

v0.8.0

01 Apr 10:53
95a0730

Choose a tag to compare

What's Changed

Full Changelog: v0.7.2...v0.8.0

Fix missing utils in package

27 Feb 14:39
1f00011

Choose a tag to compare