Proto commits in EventStore/EventStore-Client-NodeJS

These 35 commits are when the Protocol Buffers files have changed:

Commit:c61be39
Author:github-actions[bot]
Committer:GitHub

[release/v1.2] [DEV-1654] Support V2 projection engine on createProjection (#504)

The documentation is generated from this commit.

Commit:81bfb39
Author:William Chong
Committer:GitHub

[DEV-1654] Support V2 projection engine on createProjection (#502)

The documentation is generated from this commit.

Commit:78ad637
Author:github-actions[bot]
Committer:GitHub

feat: add appendRecords operation with consistency checks (#460) Co-authored-by: William Chong <william-chong@outlook.com>

Commit:2da4ec9
Author:William Chong
Committer:GitHub

feat: add appendRecords operation with consistency checks (#459)

Commit:2769a37
Author:William Chong

Format

Commit:d72f2c5
Author:William Chong

Account for eventual consistency

Commit:353a5b9
Author:William Chong
Committer:William Chong

Add schema registry api

Commit:73e524d
Author:William Chong
Committer:William Chong

Refactor multi stream append to use v2 protocol (#439) * Refactor multi stream append to use v2 protocol

Commit:01c3491
Author:William Chong
Committer:GitHub

Refactor multi stream append to use v2 protocol (#439) * Refactor multi stream append to use v2 protocol

Commit:8cd30ba
Author:William Chong

Refactor multi stream append to use v2 protocol

Commit:2d893f9
Author:Yo Eight
Committer:GitHub

feat: add multi stream append feature (#422)

Commit:5a8d27e
Author:William Chong
Committer:William Chong

Update paths

Commit:7de61c2
Author:William Chong

Rename some proto files

Commit:f442119
Author:William Chong

Change folder structure of proto files

Commit:6fa8ea4
Author:YoEight

feat: add multi stream append feature

Commit:fba5bb3
Author:Yo Eight
Committer:GitHub

feat: supports new caught up and fell behind events. (#413) * feat: supports new caught up and fell behind events.

Commit:b29fe05
Author:YoEight

feat: supports new caught up and fell behind events.

Commit:a50837c
Author:William Chong

Add version 2 of Streams and add new Registry proto definitions

Commit:9e15b0a
Author:William Chong
Committer:GitHub

[DEVEX-189] Rebrand Client (#392) # Highlights 1. Use Rust client for read operations 2. Added a benchmark workflow in GitHub Actions. You can run the benchmark on GitHub by dispatching it manually ```mermaid xychart-beta title "KurrentDB NodeJS Client Performance Comparison" x-axis ["EventStoreDB Client v6.2.1", "KurrentDB Client 1.0.0", "KurrentDB bridge"] y-axis "Events per millisecond" 0 --> 70 bar [31.33, 60.66, 65.58] ``` ## Breaking Changes This document outlines the breaking changes introduced in the upcoming release of the KurrentDB client, which includes a performance boost for read operations as it now uses the Rust client for these operations. **Upgrading users must address these changes to ensure compatibility.** --- ## 1. Client Initialization via Connection String ### What Changed We've removed the class constructor method for initializing `KurrentDBClient`. Clients must now be created using a **connection string**, aligning with patterns used in other clients in our ecosystem. ### Migration Guide #### Old Approach ```typescript // Legacy constructor-based initialization const client = new KurrentDBClient({ { endpoint: "localhost:2113" }, { rootCertificate: node.certs.root }, { username: "admin", password: "changeit" } }); ``` #### Change to ```typescript const client = KurrentDBClient.connectionString`kdb://localhost:2113?tls=false`; ``` > **_NOTE:_** If you were using connection string, the code will remain unchanged. --- ## 2. Node.js 14 Deprecation ### What Changed We've officially dropped support for Node.js 14 following the [Node.js Release Schedule](https://github.com/nodejs/Release?tab=readme-ov-file#release-schedule). ### Action Required - Upgrade to Node.js **v20** or higher (LTS) - If maintaining multiple Node versions, use a version manager like `nvm`: ```bash nvm install --lts nvm use --lts ``` ### Impact - CI/CD pipelines using Node 14 will fail - TypeScript definitions now use features from ES2021+ --- ## 3. Stream Handling Migration to Async Iterables ### What Changed Previously, we supported both event emitter pattern and async iteration. In this release, we've **removed event emitter pattern** and now support only async iteration. ### Migration Guide #### Previously Supported Approaches ```typescript // Event Emitter Pattern client .readAll() .on("data", (event) => handleEvent(event)) .on("error", (err) => handleError(err)); // Async Iteration Pattern try { const stream = client.readAll(); for await (const event of stream) { handleEvent(event); } } catch (err) { handleError(err); } ``` #### Now Required ```typescript try { const stream = client.readAll(); for await (const event of stream) { handleEvent(event); } } catch (err) { handleError(err); } ``` ## 4. Removed the certChain and privateKey options from the KurrentDB client settings constructor ## 5. Rename otel tags Previously, we were using esdb as prefix in opentelemetry tags. With the rebranding efforts, we now changed it to kurrent. **Before** ``` db.esdb.user db.esdb.system db.esdb.operation db.esdb.subscription.id db.esdb.event db.esdb.event.type db.esdb.stream ``` **After** ``` db.kurrent.user db.kurrent.system db.kurrent.operation db.kurrent.subscription.id db.kurrent.event db.kurrent.event.type db.kurrent.stream ```

Commit:565956d
Author:William Chong
Committer:William Chong

feat: support kurrentdb protocol and rename package name

Commit:d2b2874
Author:William Chong
Committer:GitHub

Convert into monorepo (#367) * Convert into monorepo * Using lerna for managing packages * Add incremental and composite options in tsconfig to improve build optimization and project referencing * Isolate tests into a separate package

Commit:5d11c69
Author:William Chong
Committer:GitHub

Deprecate unused protobuf messages (#372) * Deprecate unused protobuf messages

Commit:e00beb1
Author:William Chong
Committer:GitHub

Add support for caught up and fell behind subscription message (#354) * Add support for caught up and fell behind subscription message * Remove redundant listener arguments in event handling * Rename RegularSubscription to CatchupSubscription

Commit:a9988a2
Author:George Payne

update projections proto to latest

Commit:90b78c4
Author:George Payne
Committer:George Payne

Update `persistent` proto to latest - Regenerate code - Fix build for grpcSettings util

Commit:eff05f5
Author:George Payne
Committer:George Payne

Update client capabilities to updated serverFeatures api - remove in-client version matching - move version matching to tests only - update tests

Commit:85c7ae3
Author:George Payne
Committer:George Payne

Update protos to latest - add extra sed for adding JS_STRING to deprecated uint64 - generate code - update streamname -> streamName

Commit:33efa20
Author:George Payne

update protos to latest

Commit:ef0143b
Author:George Payne
Committer:George Payne

Update write events to give correct expected version - update to new proto - enable previously failing test

Commit:1e711bd
Author:George Payne
Committer:George Payne

[19] Force grpc to use strings for 64bit ints - add `generate:replace` script to add `[jstype = JS_STRING]` if not present - regenerate proto files

Commit:65f0442
Author:George Payne

update to latest protos

Commit:04e6837
Author:YoEight

Update code generation.

Commit:b8aa349
Author:Mat McLoughlin

Some refactorings and the addition of stream revision

Commit:fffb575
Author:Mat McLoughlin

Fleshing out the append test

Commit:12f0788
Author:Mat McLoughlin

Creating scripts for generating js from protos