@amqp-contract/contract 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -867,6 +867,26 @@ type BridgedPublisherConfigBase = {
867
867
  bridgeExchange: ExchangeDefinition;
868
868
  targetExchange: ExchangeDefinition;
869
869
  };
870
+ /**
871
+ * Definition of an RPC operation: a request/response pair flowing over a
872
+ * request queue with replies routed back via direct reply-to.
873
+ *
874
+ * An RPC is bidirectional on both ends — the server consumes requests and
875
+ * publishes responses; the client publishes requests and consumes responses —
876
+ * so it has its own slot in the contract (`rpcs`) rather than being shoehorned
877
+ * into `consumers` or `publishers`.
878
+ *
879
+ * @template TRequestMessage - The request message definition
880
+ * @template TResponseMessage - The response message definition
881
+ * @template TQueue - The request queue entry
882
+ *
883
+ * @see defineRpc for creating RPC definitions
884
+ */
885
+ type RpcDefinition<TRequestMessage extends MessageDefinition = MessageDefinition, TResponseMessage extends MessageDefinition = MessageDefinition, TQueue extends QueueEntry = QueueEntry> = {
886
+ /** The queue that receives RPC requests. Replies are routed back via direct reply-to. */queue: TQueue; /** Schema for the request payload (validated on both publish and consume). */
887
+ request: TRequestMessage; /** Schema for the response payload (validated on both worker reply and client receive). */
888
+ response: TResponseMessage;
889
+ };
870
890
  /**
871
891
  * Complete AMQP contract definition (output type).
872
892
  *
@@ -931,6 +951,16 @@ type ContractDefinition = {
931
951
  * The handler will be fully typed based on the message schema.
932
952
  */
933
953
  consumers?: Record<string, ConsumerDefinition>;
954
+ /**
955
+ * Named RPC definitions. Each key gets:
956
+ * - A handler in the TypedAmqpWorker that returns the typed response.
957
+ * - A `client.call(name, request, options)` method on the TypedAmqpClient.
958
+ *
959
+ * RPC entries do not appear in `publishers` or `consumers` because each
960
+ * end of an RPC plays both roles (publisher of one direction, consumer of
961
+ * the other).
962
+ */
963
+ rpcs?: Record<string, RpcDefinition>;
934
964
  };
935
965
  /**
936
966
  * Publisher entry that can be passed to defineContract's publishers section.
@@ -992,6 +1022,12 @@ type ContractDefinitionInput = {
992
1022
  * - CommandConsumerConfig from defineCommandConsumer (binding auto-extracted)
993
1023
  */
994
1024
  consumers?: Record<string, ConsumerEntry>;
1025
+ /**
1026
+ * Named RPC definitions from `defineRpc`. Each entry contributes its queue
1027
+ * (and DLX if any) to the contract topology and exposes a typed
1028
+ * `client.call(name, ...)` / worker handler pair.
1029
+ */
1030
+ rpcs?: Record<string, RpcDefinition>;
995
1031
  };
996
1032
  /**
997
1033
  * Extract the exchange from a publisher entry.
@@ -1146,6 +1182,16 @@ type ExtractPublisherExchangeBinding<T extends PublisherEntry> = T extends Bridg
1146
1182
  * @internal
1147
1183
  */
1148
1184
  type ExtractExchangeBindingsFromPublishers<TPublishers extends Record<string, PublisherEntry>> = { [K in keyof TPublishers as HasPublisherExchangeBinding<TPublishers[K]> extends true ? `${K & string}ExchangeBinding` : never]: ExtractPublisherExchangeBinding<TPublishers[K]> };
1185
+ /**
1186
+ * Extract queues from all RPC entries in a contract.
1187
+ * @internal
1188
+ */
1189
+ type ExtractQueuesFromRpcs<TRpcs extends Record<string, RpcDefinition>> = { [K in keyof TRpcs as ExtractQueueFromEntry<TRpcs[K]["queue"]>["name"]]: TRpcs[K]["queue"] };
1190
+ /**
1191
+ * Extract dead letter exchanges from all RPC entries in a contract.
1192
+ * @internal
1193
+ */
1194
+ type ExtractDeadLetterExchangesFromRpcs<TRpcs extends Record<string, RpcDefinition>> = { [K in keyof TRpcs as ExtractDlxFromEntry<TRpcs[K]["queue"]> extends never ? never : ExtractDlxFromEntry<TRpcs[K]["queue"]>["name"]]: ExtractDlxFromEntry<TRpcs[K]["queue"]> };
1149
1195
  /**
1150
1196
  * Contract output type with all resources extracted and properly typed.
1151
1197
  *
@@ -1157,11 +1203,12 @@ type ExtractExchangeBindingsFromPublishers<TPublishers extends Record<string, Pu
1157
1203
  * - consumers: Normalized consumer definitions
1158
1204
  */
1159
1205
  type ContractOutput<TContract extends ContractDefinitionInput> = {
1160
- exchanges: (TContract["publishers"] extends Record<string, PublisherEntry> ? ExtractExchangesFromPublishers<TContract["publishers"]> : {}) & (TContract["consumers"] extends Record<string, ConsumerEntry> ? ExtractExchangesFromConsumers<TContract["consumers"]> : {}) & (TContract["consumers"] extends Record<string, ConsumerEntry> ? ExtractDeadLetterExchangesFromConsumers<TContract["consumers"]> : {}) & (TContract["consumers"] extends Record<string, ConsumerEntry> ? ExtractBridgeExchangesFromConsumers<TContract["consumers"]> : {}) & (TContract["publishers"] extends Record<string, PublisherEntry> ? ExtractTargetExchangesFromPublishers<TContract["publishers"]> : {});
1161
- queues: TContract["consumers"] extends Record<string, ConsumerEntry> ? ExtractQueuesFromConsumers<TContract["consumers"]> : {};
1206
+ exchanges: (TContract["publishers"] extends Record<string, PublisherEntry> ? ExtractExchangesFromPublishers<TContract["publishers"]> : {}) & (TContract["consumers"] extends Record<string, ConsumerEntry> ? ExtractExchangesFromConsumers<TContract["consumers"]> : {}) & (TContract["consumers"] extends Record<string, ConsumerEntry> ? ExtractDeadLetterExchangesFromConsumers<TContract["consumers"]> : {}) & (TContract["consumers"] extends Record<string, ConsumerEntry> ? ExtractBridgeExchangesFromConsumers<TContract["consumers"]> : {}) & (TContract["publishers"] extends Record<string, PublisherEntry> ? ExtractTargetExchangesFromPublishers<TContract["publishers"]> : {}) & (TContract["rpcs"] extends Record<string, RpcDefinition> ? ExtractDeadLetterExchangesFromRpcs<TContract["rpcs"]> : {});
1207
+ queues: (TContract["consumers"] extends Record<string, ConsumerEntry> ? ExtractQueuesFromConsumers<TContract["consumers"]> : {}) & (TContract["rpcs"] extends Record<string, RpcDefinition> ? ExtractQueuesFromRpcs<TContract["rpcs"]> : {});
1162
1208
  bindings: (TContract["consumers"] extends Record<string, ConsumerEntry> ? ExtractBindingsFromConsumers<TContract["consumers"]> : {}) & (TContract["consumers"] extends Record<string, ConsumerEntry> ? ExtractExchangeBindingsFromConsumers<TContract["consumers"]> : {}) & (TContract["publishers"] extends Record<string, PublisherEntry> ? ExtractExchangeBindingsFromPublishers<TContract["publishers"]> : {});
1163
1209
  publishers: TContract["publishers"] extends Record<string, PublisherEntry> ? ExtractPublisherDefinitions<TContract["publishers"]> : {};
1164
1210
  consumers: TContract["consumers"] extends Record<string, ConsumerEntry> ? ExtractConsumerDefinitions<TContract["consumers"]> : {};
1211
+ rpcs: TContract["rpcs"] extends Record<string, RpcDefinition> ? TContract["rpcs"] : {};
1165
1212
  };
1166
1213
  /**
1167
1214
  * Extract publisher names from a contract.
@@ -1195,6 +1242,16 @@ type InferPublisherNames<TContract extends ContractDefinition> = TContract["publ
1195
1242
  * ```
1196
1243
  */
1197
1244
  type InferConsumerNames<TContract extends ContractDefinition> = TContract["consumers"] extends Record<string, unknown> ? keyof TContract["consumers"] : never;
1245
+ /**
1246
+ * Extract RPC names from a contract.
1247
+ *
1248
+ * Each name in this union has a typed worker handler and a `client.call(name, ...)`
1249
+ * method. RPC names are disjoint from `InferConsumerNames` and `InferPublisherNames`.
1250
+ *
1251
+ * @template TContract - The contract definition
1252
+ * @returns Union of RPC names, or never if no RPCs defined
1253
+ */
1254
+ type InferRpcNames<TContract extends ContractDefinition> = TContract["rpcs"] extends Record<string, RpcDefinition> ? keyof TContract["rpcs"] : never;
1198
1255
  //#endregion
1199
1256
  //#region src/builder/exchange.d.ts
1200
1257
  /**
@@ -2540,6 +2597,50 @@ declare function isCommandConsumerConfig(value: unknown): value is CommandConsum
2540
2597
  */
2541
2598
  declare function isBridgedPublisherConfig(value: unknown): value is BridgedPublisherConfig<MessageDefinition, ExchangeDefinition, ExchangeDefinition>;
2542
2599
  //#endregion
2600
+ //#region src/builder/rpc.d.ts
2601
+ /**
2602
+ * Define an RPC operation: a request/response pair flowing over a request
2603
+ * queue with replies routed back via RabbitMQ direct reply-to.
2604
+ *
2605
+ * RPC is bidirectional on both ends — the worker handler consumes the request
2606
+ * and produces the response; `client.call(name, request, options)` publishes
2607
+ * the request and awaits the typed response. Both sides share the same
2608
+ * definition, so request and response schemas cannot drift between them.
2609
+ *
2610
+ * Plug the result into `defineContract({ rpcs: { name: ... } })`. RPCs do not
2611
+ * appear in `publishers` or `consumers`.
2612
+ *
2613
+ * @param queue - The queue that receives RPC requests. The queue name is
2614
+ * used as the routing key on the AMQP default direct exchange.
2615
+ * @param messages.request - Schema validated against incoming request payloads
2616
+ * (server side) and outgoing requests (client side).
2617
+ * @param messages.response - Schema validated against handler return values
2618
+ * (server side) and incoming replies (client side).
2619
+ *
2620
+ * @example
2621
+ * ```typescript
2622
+ * import { defineQueue, defineMessage, defineRpc, defineContract } from '@amqp-contract/contract';
2623
+ * import { z } from 'zod';
2624
+ *
2625
+ * const calculate = defineRpc(defineQueue('rpc.calculate'), {
2626
+ * request: defineMessage(z.object({ a: z.number(), b: z.number() })),
2627
+ * response: defineMessage(z.object({ sum: z.number() })),
2628
+ * });
2629
+ *
2630
+ * const contract = defineContract({ rpcs: { calculate } });
2631
+ *
2632
+ * // Server (worker): handler returns the typed response
2633
+ * // handlers: { calculate: ({ payload }) => Future.value(Result.Ok({ sum: payload.a + payload.b })) }
2634
+ *
2635
+ * // Client: typed call with required timeout
2636
+ * // const result = await client.call('calculate', { a: 1, b: 2 }, { timeoutMs: 5_000 }).toPromise();
2637
+ * ```
2638
+ */
2639
+ declare function defineRpc<TRequestMessage extends MessageDefinition, TResponseMessage extends MessageDefinition, TQueue extends QueueEntry>(queue: TQueue, messages: {
2640
+ request: TRequestMessage;
2641
+ response: TResponseMessage;
2642
+ }): RpcDefinition<TRequestMessage, TResponseMessage, TQueue>;
2643
+ //#endregion
2543
2644
  //#region src/builder/ttl-backoff.d.ts
2544
2645
  /**
2545
2646
  * Type guard to check if a queue entry is a QueueWithTtlBackoffInfrastructure.
@@ -2575,5 +2676,5 @@ declare function isBridgedPublisherConfig(value: unknown): value is BridgedPubli
2575
2676
  */
2576
2677
  declare function isQueueWithTtlBackoffInfrastructure(entry: QueueEntry): entry is QueueWithTtlBackoffInfrastructure;
2577
2678
  //#endregion
2578
- export { type AnySchema, type BaseExchangeDefinition, type BindingDefinition, type BindingPattern, type BridgedPublisherConfig, type BridgedPublisherConfigBase, type ClassicQueueDefinition, type ClassicQueueOptions, type CommandConsumerConfig, type CommandConsumerConfigBase, type CompressionAlgorithm, type ConsumerDefinition, type ConsumerEntry, type ContractDefinition, type ContractDefinitionInput, type ContractOutput, type DeadLetterConfig, type DefineQueueOptions, type DirectExchangeDefinition, type EventConsumerResult, type EventConsumerResultBase, type EventPublisherConfig, type EventPublisherConfigBase, type ExchangeBindingDefinition, type ExchangeDefinition, type FanoutExchangeDefinition, type HeadersExchangeDefinition, type ImmediateRequeueRetryOptions, type InferConsumerNames, type InferPublisherNames, type MatchingRoutingKey, type MessageDefinition, type PublisherDefinition, type PublisherEntry, type QueueBindingDefinition, type QueueDefinition, type QueueEntry, type QueueType, type QueueWithTtlBackoffInfrastructure, type QuorumQueueDefinition, type QuorumQueueOptions, type ResolvedImmediateRequeueRetryOptions, type ResolvedRetryOptions, type ResolvedTtlBackoffRetryOptions, type RoutingKey, type TopicExchangeDefinition, type TtlBackoffRetryOptions, defineCommandConsumer, defineCommandPublisher, defineConsumer, defineContract, defineEventConsumer, defineEventPublisher, defineExchange, defineExchangeBinding, defineMessage, definePublisher, defineQueue, defineQueueBinding, extractConsumer, extractQueue, isBridgedPublisherConfig, isCommandConsumerConfig, isEventConsumerResult, isEventPublisherConfig, isQueueWithTtlBackoffInfrastructure };
2679
+ export { type AnySchema, type BaseExchangeDefinition, type BindingDefinition, type BindingPattern, type BridgedPublisherConfig, type BridgedPublisherConfigBase, type ClassicQueueDefinition, type ClassicQueueOptions, type CommandConsumerConfig, type CommandConsumerConfigBase, type CompressionAlgorithm, type ConsumerDefinition, type ConsumerEntry, type ContractDefinition, type ContractDefinitionInput, type ContractOutput, type DeadLetterConfig, type DefineQueueOptions, type DirectExchangeDefinition, type EventConsumerResult, type EventConsumerResultBase, type EventPublisherConfig, type EventPublisherConfigBase, type ExchangeBindingDefinition, type ExchangeDefinition, type FanoutExchangeDefinition, type HeadersExchangeDefinition, type ImmediateRequeueRetryOptions, type InferConsumerNames, type InferPublisherNames, type InferRpcNames, type MatchingRoutingKey, type MessageDefinition, type PublisherDefinition, type PublisherEntry, type QueueBindingDefinition, type QueueDefinition, type QueueEntry, type QueueType, type QueueWithTtlBackoffInfrastructure, type QuorumQueueDefinition, type QuorumQueueOptions, type ResolvedImmediateRequeueRetryOptions, type ResolvedRetryOptions, type ResolvedTtlBackoffRetryOptions, type RoutingKey, type RpcDefinition, type TopicExchangeDefinition, type TtlBackoffRetryOptions, defineCommandConsumer, defineCommandPublisher, defineConsumer, defineContract, defineEventConsumer, defineEventPublisher, defineExchange, defineExchangeBinding, defineMessage, definePublisher, defineQueue, defineQueueBinding, defineRpc, extractConsumer, extractQueue, isBridgedPublisherConfig, isCommandConsumerConfig, isEventConsumerResult, isEventPublisherConfig, isQueueWithTtlBackoffInfrastructure };
2579
2680
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/builder/exchange.ts","../src/builder/message.ts","../src/builder/queue.ts","../src/builder/queue-utils.ts","../src/builder/binding.ts","../src/builder/publisher.ts","../src/builder/consumer.ts","../src/builder/contract.ts","../src/builder/routing-types.ts","../src/builder/event.ts","../src/builder/command.ts","../src/builder/ttl-backoff.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/builder/exchange.ts","../src/builder/message.ts","../src/builder/queue.ts","../src/builder/queue-utils.ts","../src/builder/binding.ts","../src/builder/publisher.ts","../src/builder/consumer.ts","../src/builder/contract.ts","../src/builder/routing-types.ts","../src/builder/event.ts","../src/builder/command.ts","../src/builder/rpc.ts","../src/builder/ttl-backoff.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -661,6 +661,39 @@ function isEventConsumerResult(value) {
661
661
  //#endregion
662
662
  //#region src/builder/contract.ts
663
663
  /**
664
+ * Structural equality for resource definitions. We compare on a JSON projection
665
+ * after stripping non-comparable fields (Standard Schema instances, branded
666
+ * symbols) so that, e.g., two `defineExchange("orders")` calls in different
667
+ * files are treated as the same exchange.
668
+ */
669
+ function resourcesEqual(a, b) {
670
+ if (a === b) return true;
671
+ try {
672
+ return JSON.stringify(a, replacer) === JSON.stringify(b, replacer);
673
+ } catch {
674
+ return false;
675
+ }
676
+ }
677
+ function replacer(_key, value) {
678
+ if (typeof value === "function") return "[function]";
679
+ if (value && typeof value === "object" && "~standard" in value) return "[standard-schema]";
680
+ return value;
681
+ }
682
+ /**
683
+ * Add an entry to a name-keyed map, throwing if the name is already taken by a
684
+ * structurally-different definition. Identical re-declarations are silently
685
+ * deduplicated — that's how the same exchange can flow into the contract via
686
+ * both a publisher and a consumer.
687
+ */
688
+ function addResource(bucket, name, value, kind) {
689
+ const existing = bucket[name];
690
+ if (existing === void 0) {
691
+ bucket[name] = value;
692
+ return;
693
+ }
694
+ if (!resourcesEqual(existing, value)) throw new Error(`defineContract: ${kind} "${name}" was declared with conflicting definitions. Two ${kind}s sharing a name must be the exact same definition; define the ${kind} once and reference it from every publisher/consumer that needs it.`);
695
+ }
696
+ /**
664
697
  * Define an AMQP contract.
665
698
  *
666
699
  * A contract is the central definition of your AMQP messaging topology. It brings together
@@ -726,99 +759,146 @@ function isEventConsumerResult(value) {
726
759
  * ```
727
760
  */
728
761
  function defineContract(definition) {
729
- const { publishers: inputPublishers, consumers: inputConsumers } = definition;
762
+ const { publishers: inputPublishers, consumers: inputConsumers, rpcs: inputRpcs } = definition;
763
+ if (inputConsumers && inputRpcs) {
764
+ const collisions = Object.keys(inputConsumers).filter((name) => Object.hasOwn(inputRpcs, name));
765
+ if (collisions.length > 0) throw new Error(`defineContract: name collision between consumers and rpcs — keys must be disjoint. Conflicting names: ${collisions.join(", ")}`);
766
+ }
730
767
  const result = {
731
768
  exchanges: {},
732
769
  queues: {},
733
770
  bindings: {},
734
771
  publishers: {},
735
- consumers: {}
772
+ consumers: {},
773
+ rpcs: {}
736
774
  };
775
+ const exchanges = {};
776
+ const queues = {};
777
+ const bindings = {};
737
778
  if (inputPublishers && Object.keys(inputPublishers).length > 0) {
738
779
  const processedPublishers = {};
739
- const exchanges = {};
740
- const publisherBindings = {};
741
780
  for (const [name, entry] of Object.entries(inputPublishers)) if (isBridgedPublisherConfig(entry)) {
742
- exchanges[entry.bridgeExchange.name] = entry.bridgeExchange;
743
- exchanges[entry.targetExchange.name] = entry.targetExchange;
744
- publisherBindings[`${name}ExchangeBinding`] = entry.exchangeBinding;
781
+ addResource(exchanges, entry.bridgeExchange.name, entry.bridgeExchange, "exchange");
782
+ addResource(exchanges, entry.targetExchange.name, entry.targetExchange, "exchange");
783
+ addResource(bindings, `${name}ExchangeBinding`, entry.exchangeBinding, "binding");
745
784
  processedPublishers[name] = entry.publisher;
746
785
  } else if (isEventPublisherConfig(entry)) {
747
- exchanges[entry.exchange.name] = entry.exchange;
786
+ addResource(exchanges, entry.exchange.name, entry.exchange, "exchange");
748
787
  const publisherOptions = {};
749
788
  if (entry.routingKey !== void 0) publisherOptions.routingKey = entry.routingKey;
750
789
  processedPublishers[name] = definePublisherInternal(entry.exchange, entry.message, publisherOptions);
751
790
  } else {
752
791
  const publisher = entry;
753
- exchanges[publisher.exchange.name] = publisher.exchange;
792
+ addResource(exchanges, publisher.exchange.name, publisher.exchange, "exchange");
754
793
  processedPublishers[name] = publisher;
755
794
  }
756
795
  result.publishers = processedPublishers;
757
- result.exchanges = {
758
- ...result.exchanges,
759
- ...exchanges
760
- };
761
- result.bindings = {
762
- ...result.bindings,
763
- ...publisherBindings
764
- };
765
796
  }
766
797
  if (inputConsumers && Object.keys(inputConsumers).length > 0) {
767
798
  const processedConsumers = {};
768
- const consumerBindings = {};
769
- const queues = {};
770
- const exchanges = {};
799
+ const consumerQueueEntries = [];
771
800
  for (const [name, entry] of Object.entries(inputConsumers)) if (isEventConsumerResult(entry)) {
772
801
  processedConsumers[name] = entry.consumer;
773
- consumerBindings[`${name}Binding`] = entry.binding;
802
+ addResource(bindings, `${name}Binding`, entry.binding, "binding");
774
803
  const queueEntry = entry.consumer.queue;
775
804
  const queueDef = extractQueue(queueEntry);
776
- queues[queueDef.name] = queueEntry;
777
- exchanges[entry.binding.exchange.name] = entry.binding.exchange;
778
- if (queueDef.deadLetter?.exchange) exchanges[queueDef.deadLetter.exchange.name] = queueDef.deadLetter.exchange;
779
- if (entry.exchangeBinding) consumerBindings[`${name}ExchangeBinding`] = entry.exchangeBinding;
780
- if (entry.bridgeExchange) exchanges[entry.bridgeExchange.name] = entry.bridgeExchange;
781
- if (entry.exchange) exchanges[entry.exchange.name] = entry.exchange;
805
+ addResource(queues, queueDef.name, queueEntry, "queue");
806
+ consumerQueueEntries.push(queueEntry);
807
+ addResource(exchanges, entry.binding.exchange.name, entry.binding.exchange, "exchange");
808
+ if (queueDef.deadLetter?.exchange) addResource(exchanges, queueDef.deadLetter.exchange.name, queueDef.deadLetter.exchange, "exchange");
809
+ if (entry.exchangeBinding) addResource(bindings, `${name}ExchangeBinding`, entry.exchangeBinding, "binding");
810
+ if (entry.bridgeExchange) addResource(exchanges, entry.bridgeExchange.name, entry.bridgeExchange, "exchange");
811
+ if (entry.exchange) addResource(exchanges, entry.exchange.name, entry.exchange, "exchange");
782
812
  } else if (isCommandConsumerConfig(entry)) {
783
813
  processedConsumers[name] = entry.consumer;
784
- consumerBindings[`${name}Binding`] = entry.binding;
814
+ addResource(bindings, `${name}Binding`, entry.binding, "binding");
785
815
  const queueEntry = entry.consumer.queue;
786
816
  const queueDef = extractQueue(queueEntry);
787
- queues[queueDef.name] = queueEntry;
788
- exchanges[entry.exchange.name] = entry.exchange;
789
- if (queueDef.deadLetter?.exchange) exchanges[queueDef.deadLetter.exchange.name] = queueDef.deadLetter.exchange;
817
+ addResource(queues, queueDef.name, queueEntry, "queue");
818
+ consumerQueueEntries.push(queueEntry);
819
+ addResource(exchanges, entry.exchange.name, entry.exchange, "exchange");
820
+ if (queueDef.deadLetter?.exchange) addResource(exchanges, queueDef.deadLetter.exchange.name, queueDef.deadLetter.exchange, "exchange");
790
821
  } else {
791
822
  const consumer = entry;
792
823
  processedConsumers[name] = consumer;
793
824
  const queueEntry = consumer.queue;
794
825
  const queueDef = extractQueue(queueEntry);
795
- queues[queueDef.name] = queueEntry;
796
- if (queueDef.deadLetter?.exchange) exchanges[queueDef.deadLetter.exchange.name] = queueDef.deadLetter.exchange;
826
+ addResource(queues, queueDef.name, queueEntry, "queue");
827
+ consumerQueueEntries.push(queueEntry);
828
+ if (queueDef.deadLetter?.exchange) addResource(exchanges, queueDef.deadLetter.exchange.name, queueDef.deadLetter.exchange, "exchange");
797
829
  }
798
- for (const queueEntry of Object.values(queues)) if (isQueueWithTtlBackoffInfrastructure(queueEntry)) {
799
- queues[queueEntry.waitQueue.name] = queueEntry.waitQueue;
800
- consumerBindings[`${queueEntry.queue.name}WaitBinding`] = queueEntry.waitQueueBinding;
801
- consumerBindings[`${queueEntry.queue.name}RetryBinding`] = queueEntry.retryQueueBinding;
802
- exchanges[queueEntry.waitExchange.name] = queueEntry.waitExchange;
803
- exchanges[queueEntry.retryExchange.name] = queueEntry.retryExchange;
830
+ for (const queueEntry of consumerQueueEntries) if (isQueueWithTtlBackoffInfrastructure(queueEntry)) {
831
+ addResource(queues, queueEntry.waitQueue.name, queueEntry.waitQueue, "queue");
832
+ addResource(bindings, `${queueEntry.queue.name}WaitBinding`, queueEntry.waitQueueBinding, "binding");
833
+ addResource(bindings, `${queueEntry.queue.name}RetryBinding`, queueEntry.retryQueueBinding, "binding");
834
+ addResource(exchanges, queueEntry.waitExchange.name, queueEntry.waitExchange, "exchange");
835
+ addResource(exchanges, queueEntry.retryExchange.name, queueEntry.retryExchange, "exchange");
804
836
  }
805
837
  result.consumers = processedConsumers;
806
- result.bindings = {
807
- ...result.bindings,
808
- ...consumerBindings
809
- };
810
- result.queues = {
811
- ...result.queues,
812
- ...queues
813
- };
814
- result.exchanges = {
815
- ...result.exchanges,
816
- ...exchanges
817
- };
818
838
  }
839
+ if (inputRpcs && Object.keys(inputRpcs).length > 0) {
840
+ const processedRpcs = {};
841
+ for (const [name, rpc] of Object.entries(inputRpcs)) {
842
+ processedRpcs[name] = rpc;
843
+ const queueDef = extractQueue(rpc.queue);
844
+ addResource(queues, queueDef.name, rpc.queue, "queue");
845
+ if (queueDef.deadLetter?.exchange) addResource(exchanges, queueDef.deadLetter.exchange.name, queueDef.deadLetter.exchange, "exchange");
846
+ }
847
+ result.rpcs = processedRpcs;
848
+ }
849
+ result.exchanges = exchanges;
850
+ result.queues = queues;
851
+ result.bindings = bindings;
819
852
  return result;
820
853
  }
821
854
  //#endregion
822
- export { defineCommandConsumer, defineCommandPublisher, defineConsumer, defineContract, defineEventConsumer, defineEventPublisher, defineExchange, defineExchangeBinding, defineMessage, definePublisher, defineQueue, defineQueueBinding, extractConsumer, extractQueue, isBridgedPublisherConfig, isCommandConsumerConfig, isEventConsumerResult, isEventPublisherConfig, isQueueWithTtlBackoffInfrastructure };
855
+ //#region src/builder/rpc.ts
856
+ /**
857
+ * Define an RPC operation: a request/response pair flowing over a request
858
+ * queue with replies routed back via RabbitMQ direct reply-to.
859
+ *
860
+ * RPC is bidirectional on both ends — the worker handler consumes the request
861
+ * and produces the response; `client.call(name, request, options)` publishes
862
+ * the request and awaits the typed response. Both sides share the same
863
+ * definition, so request and response schemas cannot drift between them.
864
+ *
865
+ * Plug the result into `defineContract({ rpcs: { name: ... } })`. RPCs do not
866
+ * appear in `publishers` or `consumers`.
867
+ *
868
+ * @param queue - The queue that receives RPC requests. The queue name is
869
+ * used as the routing key on the AMQP default direct exchange.
870
+ * @param messages.request - Schema validated against incoming request payloads
871
+ * (server side) and outgoing requests (client side).
872
+ * @param messages.response - Schema validated against handler return values
873
+ * (server side) and incoming replies (client side).
874
+ *
875
+ * @example
876
+ * ```typescript
877
+ * import { defineQueue, defineMessage, defineRpc, defineContract } from '@amqp-contract/contract';
878
+ * import { z } from 'zod';
879
+ *
880
+ * const calculate = defineRpc(defineQueue('rpc.calculate'), {
881
+ * request: defineMessage(z.object({ a: z.number(), b: z.number() })),
882
+ * response: defineMessage(z.object({ sum: z.number() })),
883
+ * });
884
+ *
885
+ * const contract = defineContract({ rpcs: { calculate } });
886
+ *
887
+ * // Server (worker): handler returns the typed response
888
+ * // handlers: { calculate: ({ payload }) => Future.value(Result.Ok({ sum: payload.a + payload.b })) }
889
+ *
890
+ * // Client: typed call with required timeout
891
+ * // const result = await client.call('calculate', { a: 1, b: 2 }, { timeoutMs: 5_000 }).toPromise();
892
+ * ```
893
+ */
894
+ function defineRpc(queue, messages) {
895
+ return {
896
+ queue,
897
+ request: messages.request,
898
+ response: messages.response
899
+ };
900
+ }
901
+ //#endregion
902
+ export { defineCommandConsumer, defineCommandPublisher, defineConsumer, defineContract, defineEventConsumer, defineEventPublisher, defineExchange, defineExchangeBinding, defineMessage, definePublisher, defineQueue, defineQueueBinding, defineRpc, extractConsumer, extractQueue, isBridgedPublisherConfig, isCommandConsumerConfig, isEventConsumerResult, isEventPublisherConfig, isQueueWithTtlBackoffInfrastructure };
823
903
 
824
904
  //# sourceMappingURL=index.mjs.map