Releases: albe/node-event-storage
v1.3.2 makeReadOnly API
- 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-onlyEventStoreinstance remains the recommended approach. - Added public
VERSIONexport at the package root and mirrored it onEventStore.VERSIONso dependent layers can read theevent-storageversion directly without resolving/parsingpackage.jsonat runtime. - Fixed
ReadOnlyStorage.open()to keep the same opened-event semantics as the readable and writable storage variants, so read-only reopen paths and themakeReadOnly()callback now work consistently.
v1.3.1 Type information
- Added published TypeScript declarations (
index.d.ts) and package-leveltypesmetadata so consumers can referenceEventStoreand related public APIs fromevent-storage. EventStreamnow exposeswhere()for matcher-based filtering.EventStream.filter()now supportsReadable.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 towhere().
v1.3.0 Operator Matchers
- 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
Breaking changes:
scanConsumers()now returns parsed consumer descriptors ({ name, stream, identifier }) instead of filename strings.- Stream/type names produced via
typeAccessorare 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 NDJSONBufferchunks for zero-deserialization transport paths. - Raw predicates and object matchers for byte-level filtering, plus fixes for NDJSON/raw behavior in
EventStreamandJoinEventStream. - Read-path performance and correctness improvements (
readRange, merge/backwards iteration fixes, index sync optimization, partition identifier caching). - Consumer lifecycle improvements (in-memory registry lookup,
progressevents).
v1.1.0 DCB
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
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
This is just a workflow release. No functional changes.
v0.9.0 Full auto repair
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
What's Changed
- Remove support for nodejs 8 by @albe in #117
- Bump mocha from 7.2.0 to 8.0.1 by @dependabot-preview[bot] in #113
- Bump fs-extra from 8.1.0 to 9.0.1 by @dependabot-preview[bot] in #112
- Allow overriding commitVersion on single event commit by @albe in #119
- Add API to get a category stream by @albe in #120
- Make indexes more robust by @albe in #121
- [Security] Bump lodash from 4.17.15 to 4.17.19 by @dependabot-preview[bot] in #123
- Bump mocha from 8.0.1 to 8.1.1 by @dependabot-preview[bot] in #128
- Bump mocha from 8.1.1 to 8.1.3 by @dependabot-preview[bot] in #131
- Bump mocha from 8.1.3 to 8.2.1 by @dependabot-preview[bot] in #133
- Add GH action for test coverage and remove travis-ci by @albe in #134
- Bump fs-extra from 9.0.1 to 9.1.0 by @dependabot-preview[bot] in #135
- Consumer improvements by @albe in #138
- Improve jsdoc blocks by @albe in #139
- Some code cleanup and fixes by @albe in #141
- Add nodejs 15.x to test matrix by @albe in #142
- Correctly recognize indexes stored in different directory in read-only storage by @albe in #143
- Fix matcher with undefined property checks by @albe in #144
- Bump mocha from 8.2.1 to 8.3.0 by @dependabot-preview[bot] in #147
- Newly created streams are recognized in read-only EventStore by @albe in #148
- Add support for reading partition backwards by @albe in #149
- Separate documents by a unique sequence and make partition backwards scannable by @albe in #145
- Truncate torn writes by @albe in #151
- Consumer persisted event receives (serialized) state by @albe in #154
- Add basic benchmark script and GH action by @albe in #153
- Fix index bench read range by @albe in #156
- Bump mocha from 8.3.0 to 8.3.1 by @dependabot-preview[bot] in #157
- Bump mocha from 8.3.1 to 8.3.2 by @dependabot-preview[bot] in #158
- Add commit size to store metadata by @albe in #159
- [Security] Bump y18n from 4.0.0 to 4.0.1 by @dependabot-preview[bot] in #160
- [Security] Bump lodash from 4.17.19 to 4.17.21 by @dependabot-preview[bot] in #163
- Upgrade to GitHub-native Dependabot by @dependabot-preview[bot] in #161
- Bump mocha from 8.3.2 to 8.4.0 by @dependabot-preview[bot] in #164
- Automatically repair torn writes on opening by @albe in #155
Full Changelog: v0.7.2...v0.8.0
Fix missing utils in package
v0.7.2 0.7.2