#!/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" "NewJSClusterRequiredError|ClusterRequired" "NewJSClusterServerMemberChangeInflightError|ClusterServerMemberChangeInflight" "NewJSClusterServerNotMemberError|ClusterServerNotMember" "NewJSClusterTagsError|ClusterTags" "NewJSClusterUnSupportFeatureError|ClusterUnSupportFeature" "NewJSConsumerAckPolicyInvalidError|ConsumerAckPolicyInvalid" "NewJSConsumerAckWaitNegativeError|ConsumerAckWaitNegative" "NewJSConsumerAlreadyExistsError|ConsumerAlreadyExists" "NewJSConsumerBackOffNegativeError|ConsumerBackOffNegative" "NewJSConsumerBadDurableNameError|ConsumerBadDurableName" "NewJSConsumerConfigRequiredError|ConsumerConfigRequired" "NewJSConsumerCreateDurableAndNameMismatchError|ConsumerCreateDurableAndNameMismatch" "NewJSConsumerCreateFilterSubjectMismatchError|ConsumerCreateFilterSubjectMismatch" "NewJSConsumerDeliverCycleError|ConsumerDeliverCycle" "NewJSConsumerDeliverToWildcardsError|ConsumerDeliverToWildcards" "NewJSConsumerDirectRequiresEphemeralError|ConsumerDirectRequiresEphemeral" "NewJSConsumerDirectRequiresPushError|ConsumerDirectRequiresPush" "NewJSConsumerDoesNotExistError|ConsumerDoesNotExist" "NewJSConsumerDuplicateFilterSubjectsError|ConsumerDuplicateFilterSubjects" "NewJSConsumerDurableNameNotInSubjectError|ConsumerDurableNameNotInSubject" "NewJSConsumerDurableNameNotMatchSubjectError|ConsumerDurableNameNotMatchSubject" "NewJSConsumerDurableNameNotSetError|ConsumerDurableNameNotSet" "NewJSConsumerEmptyFilterError|ConsumerEmptyFilter" "NewJSConsumerEmptyGroupNameError|ConsumerEmptyGroupName" "NewJSConsumerEphemeralWithDurableInSubjectError|ConsumerEphemeralWithDurableInSubject" "NewJSConsumerEphemeralWithDurableNameError|ConsumerEphemeralWithDurableName" "NewJSConsumerExistingActiveError|ConsumerExistingActive" "NewJSConsumerFCRequiresPushError|ConsumerFCRequiresPush" "NewJSConsumerFilterNotSubsetError|ConsumerFilterNotSubset" "NewJSConsumerHBRequiresPushError|ConsumerHBRequiresPush" "NewJSConsumerInvalidDeliverSubjectError|ConsumerInvalidDeliverSubject" "NewJSConsumerInvalidGroupNameError|ConsumerInvalidGroupName" "NewJSConsumerInvalidPriorityGroupError|ConsumerInvalidPriorityGroup" "NewJSConsumerMaxDeliverBackoffError|ConsumerMaxDeliverBackoff" "NewJSConsumerMaxPendingAckPolicyRequiredError|ConsumerMaxPendingAckPolicyRequired" "NewJSConsumerMaxRequestBatchNegativeError|ConsumerMaxRequestBatchNegative" "NewJSConsumerMaxRequestExpiresTooSmallError|ConsumerMaxRequestExpiresTooSmall" "NewJSConsumerMaxWaitingNegativeError|ConsumerMaxWaitingNegative" "NewJSConsumerMultipleFiltersNotAllowedError|ConsumerMultipleFiltersNotAllowed" "NewJSConsumerNameContainsPathSeparatorsError|ConsumerNameContainsPathSeparators" "NewJSConsumerNameExistError|ConsumerNameExist" "NewJSConsumerNotFoundError|ConsumerNotFound" "NewJSConsumerOfflineError|ConsumerOffline" "NewJSConsumerOnMappedError|ConsumerOnMapped" "NewJSConsumerOverlappingSubjectFiltersError|ConsumerOverlappingSubjectFilters" "NewJSConsumerPinnedTTLWithoutPriorityPolicyNoneError|ConsumerPinnedTTLWithoutPriorityPolicyNone" "NewJSConsumerPriorityGroupWithPolicyNoneError|ConsumerPriorityGroupWithPolicyNone" "NewJSConsumerPriorityPolicyWithoutGroupError|ConsumerPriorityPolicyWithoutGroup" "NewJSConsumerPullNotDurableError|ConsumerPullNotDurable" "NewJSConsumerPullRequiresAckError|ConsumerPullRequiresAck" "NewJSConsumerPullWithRateLimitError|ConsumerPullWithRateLimit" "NewJSConsumerPushMaxWaitingError|ConsumerPushMaxWaiting" "NewJSConsumerPushWithPriorityGroupError|ConsumerPushWithPriorityGroup" "NewJSConsumerReplacementWithDifferentNameError|ConsumerReplacementWithDifferentName" "NewJSConsumerReplayPolicyInvalidError|ConsumerReplayPolicyInvalid" "NewJSConsumerReplicasExceedsStreamError|ConsumerReplicasExceedsStream" "NewJSConsumerReplicasShouldMatchStreamError|ConsumerReplicasShouldMatchStream" "NewJSConsumerSmallHeartbeatError|ConsumerSmallHeartbeat" "NewJSConsumerWQConsumerNotDeliverAllError|ConsumerWQConsumerNotDeliverAll" "NewJSConsumerWQConsumerNotUniqueError|ConsumerWQConsumerNotUnique" "NewJSConsumerWQMultipleUnfilteredError|ConsumerWQMultipleUnfiltered" "NewJSConsumerWQRequiresExplicitAckError|ConsumerWQRequiresExplicitAck" "NewJSConsumerWithFlowControlNeedsHeartbeatsError|ConsumerWithFlowControlNeedsHeartbeats" "NewJSInsufficientResourcesError|InsufficientResources" "NewJSMaximumConsumersLimitError|MaximumConsumersLimit" "NewJSMaximumStreamsLimitError|MaximumStreamsLimit" "NewJSMemoryResourcesExceededError|MemoryResourcesExceeded" ) templated_methods=( "NewJSAtomicPublishTooLargeBatchError|object?|size|AtomicPublishTooLargeBatch|{size}" "NewJSAtomicPublishUnsupportedHeaderBatchError|object?|header|AtomicPublishUnsupportedHeaderBatch|{header}" "NewJSClusterNoPeersError|Exception|err|ClusterNoPeers|{err}" "NewJSConsumerCreateError|Exception|err|ConsumerCreateErr|{err}" "NewJSConsumerDescriptionTooLongError|object?|max|ConsumerDescriptionTooLong|{max}" "NewJSConsumerInactiveThresholdExcessError|object?|limit|ConsumerInactiveThresholdExcess|{limit}" "NewJSConsumerInvalidPolicyError|Exception|err|ConsumerInvalidPolicy|{err}" "NewJSConsumerInvalidResetError|Exception|err|ConsumerInvalidReset|{err}" "NewJSConsumerInvalidSamplingError|Exception|err|ConsumerInvalidSampling|{err}" "NewJSConsumerMaxPendingAckExcessError|object?|limit|ConsumerMaxPendingAckExcess|{limit}" "NewJSConsumerMaxRequestBatchExceededError|object?|limit|ConsumerMaxRequestBatchExceeded|{limit}" "NewJSConsumerMetadataLengthError|object?|limit|ConsumerMetadataLength|{limit}" "NewJSConsumerNameTooLongError|object?|max|ConsumerNameTooLong|{max}" "NewJSConsumerOfflineReasonError|Exception|err|ConsumerOfflineReason|{err}" "NewJSConsumerStoreFailedError|Exception|err|ConsumerStoreFailed|{err}" "NewJSInvalidJSONError|Exception|err|InvalidJSON|{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"