#!/usr/bin/env bash set -euo pipefail repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" output_file="$repo_root/dotnet/src/ZB.MOM.NatsNet.Server/JetStream/JetStreamErrors.GeneratedConstructors.cs" simple_methods=( "NewJSAccountResourcesExceededError|AccountResourcesExceeded" "NewJSAtomicPublishContainsDuplicateMessageError|AtomicPublishContainsDuplicateMessage" "NewJSAtomicPublishDisabledError|AtomicPublishDisabled" "NewJSAtomicPublishIncompleteBatchError|AtomicPublishIncompleteBatch" "NewJSAtomicPublishInvalidBatchCommitError|AtomicPublishInvalidBatchCommit" "NewJSAtomicPublishInvalidBatchIDError|AtomicPublishInvalidBatchID" "NewJSAtomicPublishMissingSeqError|AtomicPublishMissingSeq" "NewJSBadRequestError|BadRequest" "NewJSClusterIncompleteError|ClusterIncomplete" "NewJSClusterNotActiveError|ClusterNotActive" "NewJSClusterNotAssignedError|ClusterNotAssigned" "NewJSClusterNotAvailError|ClusterNotAvail" "NewJSClusterNotLeaderError|ClusterNotLeader" "NewJSClusterPeerNotMemberError|ClusterPeerNotMember" ) templated_methods=( "NewJSAtomicPublishTooLargeBatchError|object?|size|AtomicPublishTooLargeBatch|{size}" "NewJSAtomicPublishUnsupportedHeaderBatchError|object?|header|AtomicPublishUnsupportedHeaderBatch|{header}" "NewJSClusterNoPeersError|Exception|err|ClusterNoPeers|{err}" ) { cat <<'EOF' // Copyright 2020-2026 The NATS Authors // Licensed under the Apache License, Version 2.0 (the "License"); // // Generated constructor surface for JetStream API errors. // Source parity: server/jetstream_errors_generated.go namespace ZB.MOM.NatsNet.Server; public static partial class JsApiErrors { EOF for entry in "${simple_methods[@]}"; do IFS='|' read -r method field <<<"$entry" cat <"$output_file" echo "Generated $output_file"