@amqp-contract/contract 0.21.0 → 0.22.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/README.md CHANGED
@@ -26,6 +26,7 @@ For robust contract definitions with guaranteed consistency, use Event or Comman
26
26
  | ----------- | ------------------------------------------ | -------------------------------------------------- |
27
27
  | **Event** | One publisher, many consumers (broadcast) | `defineEventPublisher` → `defineEventConsumer` |
28
28
  | **Command** | Many publishers, one consumer (task queue) | `defineCommandConsumer` → `defineCommandPublisher` |
29
+ | **RPC** | Request / response with typed reply | `defineRpc` (single bidirectional definition) |
29
30
 
30
31
  ```typescript
31
32
  import {
@@ -75,12 +76,41 @@ const contract = defineContract({
75
76
  });
76
77
  ```
77
78
 
79
+ ### RPC Pattern
80
+
81
+ Use `defineRpc` for typed request/response calls. RPC is bidirectional on both
82
+ ends — the worker handler consumes the request and produces a typed response;
83
+ the client awaits it via `client.call(name, request, { timeoutMs })`. Both
84
+ ends share the same definition, and RPCs live in their own `rpcs` slot of the
85
+ contract (not `publishers` or `consumers`). RabbitMQ direct reply-to is used
86
+ under the hood, so no reply queue declaration is needed.
87
+
88
+ ```typescript
89
+ import { defineContract, defineMessage, defineQueue, defineRpc } from "@amqp-contract/contract";
90
+ import { z } from "zod";
91
+
92
+ const calculate = defineRpc(defineQueue("rpc.calculate"), {
93
+ request: defineMessage(z.object({ a: z.number(), b: z.number() })),
94
+ response: defineMessage(z.object({ sum: z.number() })),
95
+ });
96
+
97
+ const contract = defineContract({
98
+ rpcs: { calculate },
99
+ });
100
+
101
+ // Server handler returns the response value, not void:
102
+ // handlers: { calculate: ({ payload }) => Future.value(Result.Ok({ sum: payload.a + payload.b })) }
103
+ //
104
+ // Client invokes with a required timeout:
105
+ // const result = await client.call("calculate", { a: 1, b: 2 }, { timeoutMs: 5_000 }).toPromise();
106
+ ```
107
+
78
108
  **Benefits:**
79
109
 
80
110
  - ✅ Guaranteed message schema consistency between publishers and consumers
81
111
  - ✅ Routing key validation and type safety
82
112
  - ✅ Full type safety with TypeScript inference
83
- - ✅ Event-oriented and command-oriented patterns
113
+ - ✅ Event, command, and RPC patterns
84
114
  - ✅ Flexible routing key patterns for topic exchanges
85
115
 
86
116
  ## Documentation
package/dist/index.cjs CHANGED
@@ -727,13 +727,18 @@ function isEventConsumerResult(value) {
727
727
  * ```
728
728
  */
729
729
  function defineContract(definition) {
730
- const { publishers: inputPublishers, consumers: inputConsumers } = definition;
730
+ const { publishers: inputPublishers, consumers: inputConsumers, rpcs: inputRpcs } = definition;
731
+ if (inputConsumers && inputRpcs) {
732
+ const collisions = Object.keys(inputConsumers).filter((name) => Object.hasOwn(inputRpcs, name));
733
+ if (collisions.length > 0) throw new Error(`defineContract: name collision between consumers and rpcs — keys must be disjoint. Conflicting names: ${collisions.join(", ")}`);
734
+ }
731
735
  const result = {
732
736
  exchanges: {},
733
737
  queues: {},
734
738
  bindings: {},
735
739
  publishers: {},
736
- consumers: {}
740
+ consumers: {},
741
+ rpcs: {}
737
742
  };
738
743
  if (inputPublishers && Object.keys(inputPublishers).length > 0) {
739
744
  const processedPublishers = {};
@@ -817,9 +822,76 @@ function defineContract(definition) {
817
822
  ...exchanges
818
823
  };
819
824
  }
825
+ if (inputRpcs && Object.keys(inputRpcs).length > 0) {
826
+ const processedRpcs = {};
827
+ const rpcQueues = {};
828
+ const rpcExchanges = {};
829
+ for (const [name, rpc] of Object.entries(inputRpcs)) {
830
+ processedRpcs[name] = rpc;
831
+ const queueDef = extractQueue(rpc.queue);
832
+ rpcQueues[queueDef.name] = rpc.queue;
833
+ if (queueDef.deadLetter?.exchange) rpcExchanges[queueDef.deadLetter.exchange.name] = queueDef.deadLetter.exchange;
834
+ }
835
+ result.rpcs = processedRpcs;
836
+ result.queues = {
837
+ ...result.queues,
838
+ ...rpcQueues
839
+ };
840
+ result.exchanges = {
841
+ ...result.exchanges,
842
+ ...rpcExchanges
843
+ };
844
+ }
820
845
  return result;
821
846
  }
822
847
  //#endregion
848
+ //#region src/builder/rpc.ts
849
+ /**
850
+ * Define an RPC operation: a request/response pair flowing over a request
851
+ * queue with replies routed back via RabbitMQ direct reply-to.
852
+ *
853
+ * RPC is bidirectional on both ends — the worker handler consumes the request
854
+ * and produces the response; `client.call(name, request, options)` publishes
855
+ * the request and awaits the typed response. Both sides share the same
856
+ * definition, so request and response schemas cannot drift between them.
857
+ *
858
+ * Plug the result into `defineContract({ rpcs: { name: ... } })`. RPCs do not
859
+ * appear in `publishers` or `consumers`.
860
+ *
861
+ * @param queue - The queue that receives RPC requests. The queue name is
862
+ * used as the routing key on the AMQP default direct exchange.
863
+ * @param messages.request - Schema validated against incoming request payloads
864
+ * (server side) and outgoing requests (client side).
865
+ * @param messages.response - Schema validated against handler return values
866
+ * (server side) and incoming replies (client side).
867
+ *
868
+ * @example
869
+ * ```typescript
870
+ * import { defineQueue, defineMessage, defineRpc, defineContract } from '@amqp-contract/contract';
871
+ * import { z } from 'zod';
872
+ *
873
+ * const calculate = defineRpc(defineQueue('rpc.calculate'), {
874
+ * request: defineMessage(z.object({ a: z.number(), b: z.number() })),
875
+ * response: defineMessage(z.object({ sum: z.number() })),
876
+ * });
877
+ *
878
+ * const contract = defineContract({ rpcs: { calculate } });
879
+ *
880
+ * // Server (worker): handler returns the typed response
881
+ * // handlers: { calculate: ({ payload }) => Future.value(Result.Ok({ sum: payload.a + payload.b })) }
882
+ *
883
+ * // Client: typed call with required timeout
884
+ * // const result = await client.call('calculate', { a: 1, b: 2 }, { timeoutMs: 5_000 }).toPromise();
885
+ * ```
886
+ */
887
+ function defineRpc(queue, messages) {
888
+ return {
889
+ queue,
890
+ request: messages.request,
891
+ response: messages.response
892
+ };
893
+ }
894
+ //#endregion
823
895
  exports.defineCommandConsumer = defineCommandConsumer;
824
896
  exports.defineCommandPublisher = defineCommandPublisher;
825
897
  exports.defineConsumer = defineConsumer;
@@ -832,6 +904,7 @@ exports.defineMessage = defineMessage;
832
904
  exports.definePublisher = definePublisher;
833
905
  exports.defineQueue = defineQueue;
834
906
  exports.defineQueueBinding = defineQueueBinding;
907
+ exports.defineRpc = defineRpc;
835
908
  exports.extractConsumer = extractConsumer;
836
909
  exports.extractQueue = extractQueue;
837
910
  exports.isBridgedPublisherConfig = isBridgedPublisherConfig;
package/dist/index.d.cts 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.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","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.cts","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.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