@amqp-contract/contract 0.19.0 → 0.20.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.
Files changed (2) hide show
  1. package/docs/index.md +194 -194
  2. package/package.json +2 -2
package/docs/index.md CHANGED
@@ -12,7 +12,7 @@
12
12
  type AnySchema = StandardSchemaV1;
13
13
  ```
14
14
 
15
- Defined in: [types.ts:12](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L12)
15
+ Defined in: [types.ts:12](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L12)
16
16
 
17
17
  Any schema that conforms to Standard Schema v1.
18
18
 
@@ -32,7 +32,7 @@ https://github.com/standard-schema/standard-schema
32
32
  type BaseExchangeDefinition<TName> = object;
33
33
  ```
34
34
 
35
- Defined in: [types.ts:376](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L376)
35
+ Defined in: [types.ts:376](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L376)
36
36
 
37
37
  Base definition of an AMQP exchange.
38
38
 
@@ -49,11 +49,11 @@ type and routing rules. This type contains properties common to all exchange typ
49
49
 
50
50
  | Property | Type | Description | Defined in |
51
51
  | ------ | ------ | ------ | ------ |
52
- | <a id="arguments"></a> `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments for advanced configuration. Common arguments include alternate-exchange for handling unroutable messages. | [types.ts:405](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L405) |
53
- | <a id="autodelete"></a> `autoDelete?` | `boolean` | If true, the exchange is deleted when all queues have finished using it. **Default** `false` | [types.ts:392](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L392) |
54
- | <a id="durable"></a> `durable?` | `boolean` | If true, the exchange survives broker restarts. Durable exchanges are persisted to disk. **Default** `false` | [types.ts:386](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L386) |
55
- | <a id="internal"></a> `internal?` | `boolean` | If true, the exchange cannot be directly published to by clients. It can only receive messages from other exchanges via exchange-to-exchange bindings. **Default** `false` | [types.ts:399](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L399) |
56
- | <a id="name"></a> `name` | `TName` | The name of the exchange. Must be unique within the RabbitMQ virtual host. | [types.ts:380](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L380) |
52
+ | <a id="arguments"></a> `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments for advanced configuration. Common arguments include alternate-exchange for handling unroutable messages. | [types.ts:405](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L405) |
53
+ | <a id="autodelete"></a> `autoDelete?` | `boolean` | If true, the exchange is deleted when all queues have finished using it. **Default** `false` | [types.ts:392](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L392) |
54
+ | <a id="durable"></a> `durable?` | `boolean` | If true, the exchange survives broker restarts. Durable exchanges are persisted to disk. **Default** `false` | [types.ts:386](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L386) |
55
+ | <a id="internal"></a> `internal?` | `boolean` | If true, the exchange cannot be directly published to by clients. It can only receive messages from other exchanges via exchange-to-exchange bindings. **Default** `false` | [types.ts:399](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L399) |
56
+ | <a id="name"></a> `name` | `TName` | The name of the exchange. Must be unique within the RabbitMQ virtual host. | [types.ts:380](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L380) |
57
57
 
58
58
  ***
59
59
 
@@ -65,7 +65,7 @@ type BindingDefinition =
65
65
  | ExchangeBindingDefinition;
66
66
  ```
67
67
 
68
- Defined in: [types.ts:833](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L833)
68
+ Defined in: [types.ts:833](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L833)
69
69
 
70
70
  Union type of all binding definitions.
71
71
 
@@ -81,7 +81,7 @@ A binding can be either:
81
81
  type BindingPattern<S> = S extends "" ? never : S;
82
82
  ```
83
83
 
84
- Defined in: [builder/routing-types.ts:52](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/routing-types.ts#L52)
84
+ Defined in: [builder/routing-types.ts:52](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/routing-types.ts#L52)
85
85
 
86
86
  Type-safe binding pattern that validates basic format and wildcards.
87
87
 
@@ -116,7 +116,7 @@ type Invalid = BindingPattern<"">; // never (empty string)
116
116
  type BridgedPublisherConfig<TMessage, TBridgeExchange, TTargetExchange> = object;
117
117
  ```
118
118
 
119
- Defined in: [builder/command.ts:66](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L66)
119
+ Defined in: [builder/command.ts:66](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L66)
120
120
 
121
121
  Configuration for a bridged command publisher.
122
122
 
@@ -135,11 +135,11 @@ messages to the target exchange (remote domain) via an exchange-to-exchange bind
135
135
 
136
136
  | Property | Type | Description | Defined in |
137
137
  | ------ | ------ | ------ | ------ |
138
- | <a id="__brand"></a> `__brand` | `"BridgedPublisherConfig"` | Discriminator to identify this as a bridged publisher config | [builder/command.ts:72](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L72) |
139
- | <a id="bridgeexchange"></a> `bridgeExchange` | `TBridgeExchange` | The bridge (local domain) exchange | [builder/command.ts:78](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L78) |
140
- | <a id="exchangebinding"></a> `exchangeBinding` | [`ExchangeBindingDefinition`](#exchangebindingdefinition) | The exchange-to-exchange binding (bridge → target) | [builder/command.ts:76](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L76) |
141
- | <a id="publisher"></a> `publisher` | [`PublisherDefinition`](#publisherdefinition)&lt;`TMessage`&gt; | The publisher definition (publishes to bridge exchange) | [builder/command.ts:74](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L74) |
142
- | <a id="targetexchange"></a> `targetExchange` | `TTargetExchange` | The target (remote domain) exchange | [builder/command.ts:80](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L80) |
138
+ | <a id="__brand"></a> `__brand` | `"BridgedPublisherConfig"` | Discriminator to identify this as a bridged publisher config | [builder/command.ts:72](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L72) |
139
+ | <a id="bridgeexchange"></a> `bridgeExchange` | `TBridgeExchange` | The bridge (local domain) exchange | [builder/command.ts:78](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L78) |
140
+ | <a id="exchangebinding"></a> `exchangeBinding` | [`ExchangeBindingDefinition`](#exchangebindingdefinition) | The exchange-to-exchange binding (bridge → target) | [builder/command.ts:76](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L76) |
141
+ | <a id="publisher"></a> `publisher` | [`PublisherDefinition`](#publisherdefinition)&lt;`TMessage`&gt; | The publisher definition (publishes to bridge exchange) | [builder/command.ts:74](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L74) |
142
+ | <a id="targetexchange"></a> `targetExchange` | `TTargetExchange` | The target (remote domain) exchange | [builder/command.ts:80](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L80) |
143
143
 
144
144
  ***
145
145
 
@@ -149,7 +149,7 @@ messages to the target exchange (remote domain) via an exchange-to-exchange bind
149
149
  type BridgedPublisherConfigBase = object;
150
150
  ```
151
151
 
152
- Defined in: [types.ts:968](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L968)
152
+ Defined in: [types.ts:968](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L968)
153
153
 
154
154
  Base type for bridged publisher configuration.
155
155
 
@@ -164,11 +164,11 @@ defineCommandPublisher with bridgeExchange option
164
164
 
165
165
  | Property | Type | Defined in |
166
166
  | ------ | ------ | ------ |
167
- | <a id="__brand-1"></a> `__brand` | `"BridgedPublisherConfig"` | [types.ts:969](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L969) |
168
- | <a id="bridgeexchange-1"></a> `bridgeExchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:972](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L972) |
169
- | <a id="exchangebinding-1"></a> `exchangeBinding` | [`ExchangeBindingDefinition`](#exchangebindingdefinition) | [types.ts:971](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L971) |
170
- | <a id="publisher-1"></a> `publisher` | [`PublisherDefinition`](#publisherdefinition) | [types.ts:970](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L970) |
171
- | <a id="targetexchange-1"></a> `targetExchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:973](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L973) |
167
+ | <a id="__brand-1"></a> `__brand` | `"BridgedPublisherConfig"` | [types.ts:969](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L969) |
168
+ | <a id="bridgeexchange-1"></a> `bridgeExchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:972](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L972) |
169
+ | <a id="exchangebinding-1"></a> `exchangeBinding` | [`ExchangeBindingDefinition`](#exchangebindingdefinition) | [types.ts:971](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L971) |
170
+ | <a id="publisher-1"></a> `publisher` | [`PublisherDefinition`](#publisherdefinition) | [types.ts:970](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L970) |
171
+ | <a id="targetexchange-1"></a> `targetExchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:973](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L973) |
172
172
 
173
173
  ***
174
174
 
@@ -178,7 +178,7 @@ defineCommandPublisher with bridgeExchange option
178
178
  type ClassicQueueDefinition<TName> = BaseQueueDefinition<TName> & object;
179
179
  ```
180
180
 
181
- Defined in: [types.ts:595](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L595)
181
+ Defined in: [types.ts:595](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L595)
182
182
 
183
183
  Definition of a classic queue.
184
184
 
@@ -189,10 +189,10 @@ specific features not supported by quorum queues (e.g., exclusive queues, priori
189
189
 
190
190
  | Name | Type | Description | Defined in |
191
191
  | ------ | ------ | ------ | ------ |
192
- | `deliveryLimit?` | `never` | Classic queues do not support delivery limits. Use type: 'quorum' if you need native retry with delivery limits. | [types.ts:605](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L605) |
193
- | `exclusive?` | `boolean` | If true, the queue can only be used by the declaring connection and is deleted when that connection closes. Exclusive queues are private to the connection. **Default** `false` | [types.ts:612](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L612) |
194
- | `retry` | `ResolvedTtlBackoffRetryOptions` | Retry configuration for handling failed message processing. Classic queues only support TTL-backoff retry mode (default). When the queue is created, defaults are applied. | [types.ts:620](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L620) |
195
- | `type` | `"classic"` | Queue type discriminator: classic queue. | [types.ts:599](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L599) |
192
+ | `deliveryLimit?` | `never` | Classic queues do not support delivery limits. Use type: 'quorum' if you need native retry with delivery limits. | [types.ts:605](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L605) |
193
+ | `exclusive?` | `boolean` | If true, the queue can only be used by the declaring connection and is deleted when that connection closes. Exclusive queues are private to the connection. **Default** `false` | [types.ts:612](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L612) |
194
+ | `retry` | `ResolvedTtlBackoffRetryOptions` | Retry configuration for handling failed message processing. Classic queues only support TTL-backoff retry mode (default). When the queue is created, defaults are applied. | [types.ts:620](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L620) |
195
+ | `type` | `"classic"` | Queue type discriminator: classic queue. | [types.ts:599](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L599) |
196
196
 
197
197
  #### Type Parameters
198
198
 
@@ -208,7 +208,7 @@ specific features not supported by quorum queues (e.g., exclusive queues, priori
208
208
  type ClassicQueueOptions = BaseQueueOptions & object;
209
209
  ```
210
210
 
211
- Defined in: [types.ts:318](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L318)
211
+ Defined in: [types.ts:318](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L318)
212
212
 
213
213
  Options for creating a classic queue.
214
214
 
@@ -221,10 +221,10 @@ Classic queues support all traditional RabbitMQ features including:
221
221
 
222
222
  | Name | Type | Description | Defined in |
223
223
  | ------ | ------ | ------ | ------ |
224
- | `exclusive?` | `boolean` | If true, the queue can only be used by the declaring connection and is deleted when that connection closes. Exclusive queues are private to the connection. **Default** `false` | [types.ts:329](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L329) |
225
- | `maxPriority?` | `number` | Maximum priority level for priority queue (1-255, recommended: 1-10). Sets x-max-priority argument. Only supported with classic queues. | [types.ts:336](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L336) |
226
- | `retry?` | [`TtlBackoffRetryOptions`](#ttlbackoffretryoptions) | Retry configuration for handling failed message processing. Classic queues only support TTL-backoff retry mode, which uses wait queues with exponential backoff. For quorum-native retry, use quorum queues instead. **Example** `const orderQueue = defineQueue('order-processing', { type: 'classic', durable: true, deadLetter: { exchange: dlx }, retry: { maxRetries: 5, initialDelayMs: 1000, maxDelayMs: 30000, }, });` | [types.ts:358](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L358) |
227
- | `type` | `"classic"` | Queue type: classic (for special cases) | [types.ts:322](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L322) |
224
+ | `exclusive?` | `boolean` | If true, the queue can only be used by the declaring connection and is deleted when that connection closes. Exclusive queues are private to the connection. **Default** `false` | [types.ts:329](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L329) |
225
+ | `maxPriority?` | `number` | Maximum priority level for priority queue (1-255, recommended: 1-10). Sets x-max-priority argument. Only supported with classic queues. | [types.ts:336](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L336) |
226
+ | `retry?` | [`TtlBackoffRetryOptions`](#ttlbackoffretryoptions) | Retry configuration for handling failed message processing. Classic queues only support TTL-backoff retry mode, which uses wait queues with exponential backoff. For quorum-native retry, use quorum queues instead. **Example** `const orderQueue = defineQueue('order-processing', { type: 'classic', durable: true, deadLetter: { exchange: dlx }, retry: { maxRetries: 5, initialDelayMs: 1000, maxDelayMs: 30000, }, });` | [types.ts:358](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L358) |
227
+ | `type` | `"classic"` | Queue type: classic (for special cases) | [types.ts:322](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L322) |
228
228
 
229
229
  #### Example
230
230
 
@@ -244,7 +244,7 @@ const priorityQueue = defineQueue('tasks', {
244
244
  type CommandConsumerConfig<TMessage, TExchange, TRoutingKey, TQueue, TDlxExchange> = object;
245
245
  ```
246
246
 
247
- Defined in: [builder/command.ts:31](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L31)
247
+ Defined in: [builder/command.ts:31](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L31)
248
248
 
249
249
  Configuration for a command consumer.
250
250
 
@@ -265,14 +265,14 @@ The consumer "owns" the queue, and publishers send commands to it.
265
265
 
266
266
  | Property | Type | Description | Defined in |
267
267
  | ------ | ------ | ------ | ------ |
268
- | <a id="__brand-2"></a> `__brand` | `"CommandConsumerConfig"` | Discriminator to identify this as a command consumer config | [builder/command.ts:39](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L39) |
269
- | <a id="binding"></a> `binding` | [`QueueBindingDefinition`](#queuebindingdefinition) | The binding connecting the queue to the exchange | [builder/command.ts:43](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L43) |
270
- | <a id="consumer"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition)&lt;`TMessage`&gt; | The consumer definition for processing commands | [builder/command.ts:41](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L41) |
271
- | <a id="deadletterexchange"></a> `deadLetterExchange` | `TDlxExchange` | The dead letter exchange from the queue, if configured | [builder/command.ts:49](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L49) |
272
- | <a id="exchange"></a> `exchange` | `TExchange` | The exchange that receives commands | [builder/command.ts:45](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L45) |
273
- | <a id="message"></a> `message` | `TMessage` | The message definition | [builder/command.ts:51](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L51) |
274
- | <a id="queue"></a> `queue` | `TQueue` | The queue this consumer reads from | [builder/command.ts:47](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L47) |
275
- | <a id="routingkey"></a> `routingKey` | `TRoutingKey` | The routing key pattern for the binding | [builder/command.ts:53](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L53) |
268
+ | <a id="__brand-2"></a> `__brand` | `"CommandConsumerConfig"` | Discriminator to identify this as a command consumer config | [builder/command.ts:39](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L39) |
269
+ | <a id="binding"></a> `binding` | [`QueueBindingDefinition`](#queuebindingdefinition) | The binding connecting the queue to the exchange | [builder/command.ts:43](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L43) |
270
+ | <a id="consumer"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition)&lt;`TMessage`&gt; | The consumer definition for processing commands | [builder/command.ts:41](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L41) |
271
+ | <a id="deadletterexchange"></a> `deadLetterExchange` | `TDlxExchange` | The dead letter exchange from the queue, if configured | [builder/command.ts:49](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L49) |
272
+ | <a id="exchange"></a> `exchange` | `TExchange` | The exchange that receives commands | [builder/command.ts:45](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L45) |
273
+ | <a id="message"></a> `message` | `TMessage` | The message definition | [builder/command.ts:51](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L51) |
274
+ | <a id="queue"></a> `queue` | `TQueue` | The queue this consumer reads from | [builder/command.ts:47](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L47) |
275
+ | <a id="routingkey"></a> `routingKey` | `TRoutingKey` | The routing key pattern for the binding | [builder/command.ts:53](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L53) |
276
276
 
277
277
  ***
278
278
 
@@ -282,7 +282,7 @@ The consumer "owns" the queue, and publishers send commands to it.
282
282
  type CommandConsumerConfigBase = object;
283
283
  ```
284
284
 
285
- Defined in: [types.ts:930](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L930)
285
+ Defined in: [types.ts:930](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L930)
286
286
 
287
287
  Base type for command consumer configuration.
288
288
 
@@ -297,14 +297,14 @@ defineCommandConsumer for creating command consumers
297
297
 
298
298
  | Property | Type | Defined in |
299
299
  | ------ | ------ | ------ |
300
- | <a id="__brand-3"></a> `__brand` | `"CommandConsumerConfig"` | [types.ts:931](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L931) |
301
- | <a id="binding-1"></a> `binding` | [`QueueBindingDefinition`](#queuebindingdefinition) | [types.ts:933](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L933) |
302
- | <a id="consumer-1"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition) | [types.ts:932](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L932) |
303
- | <a id="deadletterexchange-1"></a> `deadLetterExchange` | [`ExchangeDefinition`](#exchangedefinition) \| `undefined` | [types.ts:936](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L936) |
304
- | <a id="exchange-1"></a> `exchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:934](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L934) |
305
- | <a id="message-1"></a> `message` | [`MessageDefinition`](#messagedefinition) | [types.ts:937](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L937) |
306
- | <a id="queue-1"></a> `queue` | [`QueueDefinition`](#queuedefinition) | [types.ts:935](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L935) |
307
- | <a id="routingkey-1"></a> `routingKey` | `string` \| `undefined` | [types.ts:938](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L938) |
300
+ | <a id="__brand-3"></a> `__brand` | `"CommandConsumerConfig"` | [types.ts:931](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L931) |
301
+ | <a id="binding-1"></a> `binding` | [`QueueBindingDefinition`](#queuebindingdefinition) | [types.ts:933](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L933) |
302
+ | <a id="consumer-1"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition) | [types.ts:932](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L932) |
303
+ | <a id="deadletterexchange-1"></a> `deadLetterExchange` | [`ExchangeDefinition`](#exchangedefinition) \| `undefined` | [types.ts:936](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L936) |
304
+ | <a id="exchange-1"></a> `exchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:934](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L934) |
305
+ | <a id="message-1"></a> `message` | [`MessageDefinition`](#messagedefinition) | [types.ts:937](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L937) |
306
+ | <a id="queue-1"></a> `queue` | [`QueueDefinition`](#queuedefinition) | [types.ts:935](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L935) |
307
+ | <a id="routingkey-1"></a> `routingKey` | `string` \| `undefined` | [types.ts:938](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L938) |
308
308
 
309
309
  ***
310
310
 
@@ -314,7 +314,7 @@ defineCommandConsumer for creating command consumers
314
314
  type CompressionAlgorithm = "gzip" | "deflate";
315
315
  ```
316
316
 
317
- Defined in: [types.ts:134](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L134)
317
+ Defined in: [types.ts:134](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L134)
318
318
 
319
319
  Supported compression algorithms for message payloads.
320
320
 
@@ -352,7 +352,7 @@ await client.publish("orderCreated", payload, {
352
352
  type ConsumerDefinition<TMessage> = object;
353
353
  ```
354
354
 
355
- Defined in: [types.ts:894](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L894)
355
+ Defined in: [types.ts:894](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L894)
356
356
 
357
357
  Definition of a message consumer.
358
358
 
@@ -380,8 +380,8 @@ const consumer: ConsumerDefinition = {
380
380
 
381
381
  | Property | Type | Description | Defined in |
382
382
  | ------ | ------ | ------ | ------ |
383
- | <a id="message-2"></a> `message` | `TMessage` | The message definition including the payload schema | [types.ts:899](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L899) |
384
- | <a id="queue-2"></a> `queue` | [`QueueDefinition`](#queuedefinition) | The queue to consume messages from | [types.ts:896](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L896) |
383
+ | <a id="message-2"></a> `message` | `TMessage` | The message definition including the payload schema | [types.ts:899](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L899) |
384
+ | <a id="queue-2"></a> `queue` | [`QueueDefinition`](#queuedefinition) | The queue to consume messages from | [types.ts:896](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L896) |
385
385
 
386
386
  ***
387
387
 
@@ -394,7 +394,7 @@ type ConsumerEntry =
394
394
  | CommandConsumerConfigBase;
395
395
  ```
396
396
 
397
- Defined in: [types.ts:1066](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1066)
397
+ Defined in: [types.ts:1066](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1066)
398
398
 
399
399
  Consumer entry that can be passed to defineContract's consumers section.
400
400
 
@@ -411,7 +411,7 @@ Can be either:
411
411
  type ContractDefinition = object;
412
412
  ```
413
413
 
414
- Defined in: [types.ts:1009](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1009)
414
+ Defined in: [types.ts:1009](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1009)
415
415
 
416
416
  Complete AMQP contract definition (output type).
417
417
 
@@ -450,11 +450,11 @@ const contract: ContractDefinition = {
450
450
 
451
451
  | Property | Type | Description | Defined in |
452
452
  | ------ | ------ | ------ | ------ |
453
- | <a id="bindings"></a> `bindings?` | `Record`&lt;`string`, [`BindingDefinition`](#bindingdefinition)&gt; | Named binding definitions. Bindings can be queue-to-exchange or exchange-to-exchange. | [types.ts:1029](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1029) |
454
- | <a id="consumers"></a> `consumers?` | `Record`&lt;`string`, [`ConsumerDefinition`](#consumerdefinition)&gt; | Named consumer definitions. Each key requires a corresponding handler in the TypedAmqpWorker. The handler will be fully typed based on the message schema. | [types.ts:1043](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1043) |
455
- | <a id="exchanges"></a> `exchanges?` | `Record`&lt;`string`, [`ExchangeDefinition`](#exchangedefinition)&gt; | Named exchange definitions. Each key becomes available as a named resource in the contract. | [types.ts:1014](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1014) |
456
- | <a id="publishers"></a> `publishers?` | `Record`&lt;`string`, [`PublisherDefinition`](#publisherdefinition)&gt; | Named publisher definitions. Each key becomes a method on the TypedAmqpClient for publishing messages. The method will be fully typed based on the message schema. | [types.ts:1036](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1036) |
457
- | <a id="queues"></a> `queues?` | `Record`&lt;`string`, [`QueueEntry`](#queueentry)&gt; | Named queue definitions. Each key becomes available as a named resource in the contract. When a queue has TTL-backoff retry configured, pass the `QueueWithTtlBackoffInfrastructure` object returned by `defineQueue`. The wait queue and bindings will be automatically added. | [types.ts:1023](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1023) |
453
+ | <a id="bindings"></a> `bindings?` | `Record`&lt;`string`, [`BindingDefinition`](#bindingdefinition)&gt; | Named binding definitions. Bindings can be queue-to-exchange or exchange-to-exchange. | [types.ts:1029](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1029) |
454
+ | <a id="consumers"></a> `consumers?` | `Record`&lt;`string`, [`ConsumerDefinition`](#consumerdefinition)&gt; | Named consumer definitions. Each key requires a corresponding handler in the TypedAmqpWorker. The handler will be fully typed based on the message schema. | [types.ts:1043](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1043) |
455
+ | <a id="exchanges"></a> `exchanges?` | `Record`&lt;`string`, [`ExchangeDefinition`](#exchangedefinition)&gt; | Named exchange definitions. Each key becomes available as a named resource in the contract. | [types.ts:1014](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1014) |
456
+ | <a id="publishers"></a> `publishers?` | `Record`&lt;`string`, [`PublisherDefinition`](#publisherdefinition)&gt; | Named publisher definitions. Each key becomes a method on the TypedAmqpClient for publishing messages. The method will be fully typed based on the message schema. | [types.ts:1036](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1036) |
457
+ | <a id="queues"></a> `queues?` | `Record`&lt;`string`, [`QueueEntry`](#queueentry)&gt; | Named queue definitions. Each key becomes available as a named resource in the contract. When a queue has TTL-backoff retry configured, pass the `QueueWithTtlBackoffInfrastructure` object returned by `defineQueue`. The wait queue and bindings will be automatically added. | [types.ts:1023](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1023) |
458
458
 
459
459
  ***
460
460
 
@@ -464,7 +464,7 @@ const contract: ContractDefinition = {
464
464
  type ContractDefinitionInput = object;
465
465
  ```
466
466
 
467
- Defined in: [types.ts:1095](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1095)
467
+ Defined in: [types.ts:1095](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1095)
468
468
 
469
469
  Contract definition input type with automatic extraction of event/command patterns.
470
470
 
@@ -496,8 +496,8 @@ defineContract - Processes this input and returns a ContractDefinition
496
496
 
497
497
  | Property | Type | Description | Defined in |
498
498
  | ------ | ------ | ------ | ------ |
499
- | <a id="consumers-1"></a> `consumers?` | `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; | Named consumer definitions. Can accept: - ConsumerDefinition from defineConsumer - EventConsumerResult from defineEventConsumer (binding auto-extracted) - CommandConsumerConfig from defineCommandConsumer (binding auto-extracted) | [types.ts:1113](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1113) |
500
- | <a id="publishers-1"></a> `publishers?` | `Record`&lt;`string`, [`PublisherEntry`](#publisherentry)&gt; | Named publisher definitions. Can accept: - PublisherDefinition from definePublisher - EventPublisherConfig from defineEventPublisher (auto-extracted to publisher) | [types.ts:1103](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1103) |
499
+ | <a id="consumers-1"></a> `consumers?` | `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; | Named consumer definitions. Can accept: - ConsumerDefinition from defineConsumer - EventConsumerResult from defineEventConsumer (binding auto-extracted) - CommandConsumerConfig from defineCommandConsumer (binding auto-extracted) | [types.ts:1113](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1113) |
500
+ | <a id="publishers-1"></a> `publishers?` | `Record`&lt;`string`, [`PublisherEntry`](#publisherentry)&gt; | Named publisher definitions. Can accept: - PublisherDefinition from definePublisher - EventPublisherConfig from defineEventPublisher (auto-extracted to publisher) | [types.ts:1103](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1103) |
501
501
 
502
502
  ***
503
503
 
@@ -507,7 +507,7 @@ defineContract - Processes this input and returns a ContractDefinition
507
507
  type ContractOutput<TContract> = object;
508
508
  ```
509
509
 
510
- Defined in: [types.ts:1422](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1422)
510
+ Defined in: [types.ts:1422](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1422)
511
511
 
512
512
  Contract output type with all resources extracted and properly typed.
513
513
 
@@ -528,11 +528,11 @@ This type represents the fully expanded contract with:
528
528
 
529
529
  | Property | Type | Defined in |
530
530
  | ------ | ------ | ------ |
531
- | <a id="bindings-1"></a> `bindings` | `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractBindingsFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` & `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractExchangeBindingsFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` & `TContract`\[`"publishers"`\] *extends* `Record`&lt;`string`, [`PublisherEntry`](#publisherentry)&gt; ? `ExtractExchangeBindingsFromPublishers`&lt;`TContract`\[`"publishers"`\]&gt; : `object` | [types.ts:1441](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1441) |
532
- | <a id="consumers-2"></a> `consumers` | `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractConsumerDefinitions`&lt;`TContract`\[`"consumers"`\]&gt; : `object` | [types.ts:1453](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1453) |
533
- | <a id="exchanges-1"></a> `exchanges` | `TContract`\[`"publishers"`\] *extends* `Record`&lt;`string`, [`PublisherEntry`](#publisherentry)&gt; ? `ExtractExchangesFromPublishers`&lt;`TContract`\[`"publishers"`\]&gt; : `object` & `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractExchangesFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` & `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractDeadLetterExchangesFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` & `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractBridgeExchangesFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` & `TContract`\[`"publishers"`\] *extends* `Record`&lt;`string`, [`PublisherEntry`](#publisherentry)&gt; ? `ExtractTargetExchangesFromPublishers`&lt;`TContract`\[`"publishers"`\]&gt; : `object` | [types.ts:1423](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1423) |
534
- | <a id="publishers-2"></a> `publishers` | `TContract`\[`"publishers"`\] *extends* `Record`&lt;`string`, [`PublisherEntry`](#publisherentry)&gt; ? `ExtractPublisherDefinitions`&lt;`TContract`\[`"publishers"`\]&gt; : `object` | [types.ts:1450](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1450) |
535
- | <a id="queues-1"></a> `queues` | `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractQueuesFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` | [types.ts:1438](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1438) |
531
+ | <a id="bindings-1"></a> `bindings` | `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractBindingsFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` & `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractExchangeBindingsFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` & `TContract`\[`"publishers"`\] *extends* `Record`&lt;`string`, [`PublisherEntry`](#publisherentry)&gt; ? `ExtractExchangeBindingsFromPublishers`&lt;`TContract`\[`"publishers"`\]&gt; : `object` | [types.ts:1441](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1441) |
532
+ | <a id="consumers-2"></a> `consumers` | `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractConsumerDefinitions`&lt;`TContract`\[`"consumers"`\]&gt; : `object` | [types.ts:1453](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1453) |
533
+ | <a id="exchanges-1"></a> `exchanges` | `TContract`\[`"publishers"`\] *extends* `Record`&lt;`string`, [`PublisherEntry`](#publisherentry)&gt; ? `ExtractExchangesFromPublishers`&lt;`TContract`\[`"publishers"`\]&gt; : `object` & `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractExchangesFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` & `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractDeadLetterExchangesFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` & `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractBridgeExchangesFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` & `TContract`\[`"publishers"`\] *extends* `Record`&lt;`string`, [`PublisherEntry`](#publisherentry)&gt; ? `ExtractTargetExchangesFromPublishers`&lt;`TContract`\[`"publishers"`\]&gt; : `object` | [types.ts:1423](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1423) |
534
+ | <a id="publishers-2"></a> `publishers` | `TContract`\[`"publishers"`\] *extends* `Record`&lt;`string`, [`PublisherEntry`](#publisherentry)&gt; ? `ExtractPublisherDefinitions`&lt;`TContract`\[`"publishers"`\]&gt; : `object` | [types.ts:1450](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1450) |
535
+ | <a id="queues-1"></a> `queues` | `TContract`\[`"consumers"`\] *extends* `Record`&lt;`string`, [`ConsumerEntry`](#consumerentry)&gt; ? `ExtractQueuesFromConsumers`&lt;`TContract`\[`"consumers"`\]&gt; : `object` | [types.ts:1438](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1438) |
536
536
 
537
537
  ***
538
538
 
@@ -542,7 +542,7 @@ This type represents the fully expanded contract with:
542
542
  type DeadLetterConfig = object;
543
543
  ```
544
544
 
545
- Defined in: [types.ts:483](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L483)
545
+ Defined in: [types.ts:483](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L483)
546
546
 
547
547
  Configuration for dead letter exchange (DLX) on a queue.
548
548
 
@@ -554,8 +554,8 @@ or storage.
554
554
 
555
555
  | Property | Type | Description | Defined in |
556
556
  | ------ | ------ | ------ | ------ |
557
- | <a id="exchange-2"></a> `exchange` | [`ExchangeDefinition`](#exchangedefinition) | The exchange to send dead-lettered messages to. This exchange must be declared in the contract. | [types.ts:488](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L488) |
558
- | <a id="routingkey-2"></a> `routingKey?` | `string` | Optional routing key to use when forwarding messages to the dead letter exchange. If not specified, the original message routing key is used. | [types.ts:494](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L494) |
557
+ | <a id="exchange-2"></a> `exchange` | [`ExchangeDefinition`](#exchangedefinition) | The exchange to send dead-lettered messages to. This exchange must be declared in the contract. | [types.ts:488](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L488) |
558
+ | <a id="routingkey-2"></a> `routingKey?` | `string` | Optional routing key to use when forwarding messages to the dead letter exchange. If not specified, the original message routing key is used. | [types.ts:494](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L494) |
559
559
 
560
560
  ***
561
561
 
@@ -567,7 +567,7 @@ type DefineQueueOptions =
567
567
  | ClassicQueueOptions;
568
568
  ```
569
569
 
570
- Defined in: [types.ts:368](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L368)
570
+ Defined in: [types.ts:368](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L368)
571
571
 
572
572
  Options for defining a queue. Uses a discriminated union based on the `type` property
573
573
  to enforce quorum queue constraints at compile time.
@@ -583,7 +583,7 @@ to enforce quorum queue constraints at compile time.
583
583
  type DefineQuorumQueueOptions = object;
584
584
  ```
585
585
 
586
- Defined in: [builder/queue.ts:399](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L399)
586
+ Defined in: [builder/queue.ts:399](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L399)
587
587
 
588
588
  Options for creating a quorum queue with quorum-native retry.
589
589
 
@@ -595,10 +595,10 @@ This simplified helper enforces the required configuration for quorum-native ret
595
595
 
596
596
  | Property | Type | Description | Defined in |
597
597
  | ------ | ------ | ------ | ------ |
598
- | <a id="arguments-1"></a> `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments for advanced configuration. | [builder/queue.ts:421](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L421) |
599
- | <a id="autodelete-1"></a> `autoDelete?` | `boolean` | If true, the queue is deleted when the last consumer unsubscribes. **Default** `false` | [builder/queue.ts:416](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L416) |
600
- | <a id="deadletter"></a> `deadLetter` | [`DeadLetterConfig`](#deadletterconfig) | Dead letter configuration - required for retry support. Failed messages will be sent to this exchange. | [builder/queue.ts:404](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L404) |
601
- | <a id="deliverylimit"></a> `deliveryLimit` | `number` | Maximum number of delivery attempts before dead-lettering. **Minimum** 1 | [builder/queue.ts:410](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L410) |
598
+ | <a id="arguments-1"></a> `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments for advanced configuration. | [builder/queue.ts:421](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L421) |
599
+ | <a id="autodelete-1"></a> `autoDelete?` | `boolean` | If true, the queue is deleted when the last consumer unsubscribes. **Default** `false` | [builder/queue.ts:416](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L416) |
600
+ | <a id="deadletter"></a> `deadLetter` | [`DeadLetterConfig`](#deadletterconfig) | Dead letter configuration - required for retry support. Failed messages will be sent to this exchange. | [builder/queue.ts:404](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L404) |
601
+ | <a id="deliverylimit"></a> `deliveryLimit` | `number` | Maximum number of delivery attempts before dead-lettering. **Minimum** 1 | [builder/queue.ts:410](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L410) |
602
602
 
603
603
  ***
604
604
 
@@ -608,7 +608,7 @@ This simplified helper enforces the required configuration for quorum-native ret
608
608
  type DefineTtlBackoffQueueOptions = object;
609
609
  ```
610
610
 
611
- Defined in: [builder/queue.ts:486](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L486)
611
+ Defined in: [builder/queue.ts:486](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L486)
612
612
 
613
613
  Options for creating a queue with TTL-backoff retry.
614
614
 
@@ -620,14 +620,14 @@ This simplified helper enforces the required configuration for TTL-backoff retry
620
620
 
621
621
  | Property | Type | Description | Defined in |
622
622
  | ------ | ------ | ------ | ------ |
623
- | <a id="arguments-2"></a> `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments for advanced configuration. | [builder/queue.ts:532](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L532) |
624
- | <a id="autodelete-2"></a> `autoDelete?` | `boolean` | If true, the queue is deleted when the last consumer unsubscribes. **Default** `false` | [builder/queue.ts:527](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L527) |
625
- | <a id="backoffmultiplier"></a> `backoffMultiplier?` | `number` | Exponential backoff multiplier. **Default** `2` | [builder/queue.ts:515](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L515) |
626
- | <a id="deadletter-1"></a> `deadLetter` | [`DeadLetterConfig`](#deadletterconfig) | Dead letter configuration - required for TTL-backoff retry. Used for routing messages to the wait queue and back. | [builder/queue.ts:491](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L491) |
627
- | <a id="initialdelayms"></a> `initialDelayMs?` | `number` | Initial delay in ms before first retry. **Default** `1000` | [builder/queue.ts:503](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L503) |
628
- | <a id="jitter"></a> `jitter?` | `boolean` | Add jitter to prevent thundering herd. **Default** `true` | [builder/queue.ts:521](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L521) |
629
- | <a id="maxdelayms"></a> `maxDelayMs?` | `number` | Maximum delay in ms between retries. **Default** `30000` | [builder/queue.ts:509](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L509) |
630
- | <a id="maxretries"></a> `maxRetries?` | `number` | Maximum retry attempts before sending to DLQ. **Default** `3` | [builder/queue.ts:497](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L497) |
623
+ | <a id="arguments-2"></a> `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments for advanced configuration. | [builder/queue.ts:532](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L532) |
624
+ | <a id="autodelete-2"></a> `autoDelete?` | `boolean` | If true, the queue is deleted when the last consumer unsubscribes. **Default** `false` | [builder/queue.ts:527](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L527) |
625
+ | <a id="backoffmultiplier"></a> `backoffMultiplier?` | `number` | Exponential backoff multiplier. **Default** `2` | [builder/queue.ts:515](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L515) |
626
+ | <a id="deadletter-1"></a> `deadLetter` | [`DeadLetterConfig`](#deadletterconfig) | Dead letter configuration - required for TTL-backoff retry. Used for routing messages to the wait queue and back. | [builder/queue.ts:491](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L491) |
627
+ | <a id="initialdelayms"></a> `initialDelayMs?` | `number` | Initial delay in ms before first retry. **Default** `1000` | [builder/queue.ts:503](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L503) |
628
+ | <a id="jitter"></a> `jitter?` | `boolean` | Add jitter to prevent thundering herd. **Default** `true` | [builder/queue.ts:521](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L521) |
629
+ | <a id="maxdelayms"></a> `maxDelayMs?` | `number` | Maximum delay in ms between retries. **Default** `30000` | [builder/queue.ts:509](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L509) |
630
+ | <a id="maxretries"></a> `maxRetries?` | `number` | Maximum retry attempts before sending to DLQ. **Default** `3` | [builder/queue.ts:497](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L497) |
631
631
 
632
632
  ***
633
633
 
@@ -637,7 +637,7 @@ This simplified helper enforces the required configuration for TTL-backoff retry
637
637
  type DirectExchangeDefinition<TName> = BaseExchangeDefinition<TName> & object;
638
638
  ```
639
639
 
640
- Defined in: [types.ts:439](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L439)
640
+ Defined in: [types.ts:439](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L439)
641
641
 
642
642
  A direct exchange definition.
643
643
 
@@ -648,7 +648,7 @@ This is ideal for point-to-point messaging where each message should go to speci
648
648
 
649
649
  | Name | Type | Defined in |
650
650
  | ------ | ------ | ------ |
651
- | `type` | `"direct"` | [types.ts:441](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L441) |
651
+ | `type` | `"direct"` | [types.ts:441](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L441) |
652
652
 
653
653
  #### Type Parameters
654
654
 
@@ -672,7 +672,7 @@ const tasksExchange: DirectExchangeDefinition = defineExchange('tasks', 'direct'
672
672
  type EventConsumerResult<TMessage, TExchange, TQueue, TDlxExchange, TExchangeBinding, TBridgeExchange> = object;
673
673
  ```
674
674
 
675
- Defined in: [builder/event.ts:56](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L56)
675
+ Defined in: [builder/event.ts:56](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L56)
676
676
 
677
677
  Result from defineEventConsumer.
678
678
 
@@ -695,14 +695,14 @@ will be automatically extracted.
695
695
 
696
696
  | Property | Type | Description | Defined in |
697
697
  | ------ | ------ | ------ | ------ |
698
- | <a id="__brand-4"></a> `__brand` | `"EventConsumerResult"` | Discriminator to identify this as an event consumer result | [builder/event.ts:67](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L67) |
699
- | <a id="binding-2"></a> `binding` | [`QueueBindingDefinition`](#queuebindingdefinition) | The binding connecting the queue to the exchange | [builder/event.ts:71](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L71) |
700
- | <a id="bridgeexchange-2"></a> `bridgeExchange` | `TBridgeExchange` | The bridge (local domain) exchange when bridging, if configured | [builder/event.ts:81](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L81) |
701
- | <a id="consumer-2"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition)&lt;`TMessage`&gt; | The consumer definition for processing messages | [builder/event.ts:69](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L69) |
702
- | <a id="deadletterexchange-2"></a> `deadLetterExchange` | `TDlxExchange` | The dead letter exchange from the queue, if configured | [builder/event.ts:77](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L77) |
703
- | <a id="exchange-3"></a> `exchange` | `TExchange` | The source exchange this consumer subscribes to | [builder/event.ts:73](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L73) |
704
- | <a id="exchangebinding-2"></a> `exchangeBinding` | `TExchangeBinding` | The exchange-to-exchange binding when bridging, if configured | [builder/event.ts:79](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L79) |
705
- | <a id="queue-3"></a> `queue` | `TQueue` | The queue this consumer reads from | [builder/event.ts:75](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L75) |
698
+ | <a id="__brand-4"></a> `__brand` | `"EventConsumerResult"` | Discriminator to identify this as an event consumer result | [builder/event.ts:67](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L67) |
699
+ | <a id="binding-2"></a> `binding` | [`QueueBindingDefinition`](#queuebindingdefinition) | The binding connecting the queue to the exchange | [builder/event.ts:71](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L71) |
700
+ | <a id="bridgeexchange-2"></a> `bridgeExchange` | `TBridgeExchange` | The bridge (local domain) exchange when bridging, if configured | [builder/event.ts:81](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L81) |
701
+ | <a id="consumer-2"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition)&lt;`TMessage`&gt; | The consumer definition for processing messages | [builder/event.ts:69](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L69) |
702
+ | <a id="deadletterexchange-2"></a> `deadLetterExchange` | `TDlxExchange` | The dead letter exchange from the queue, if configured | [builder/event.ts:77](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L77) |
703
+ | <a id="exchange-3"></a> `exchange` | `TExchange` | The source exchange this consumer subscribes to | [builder/event.ts:73](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L73) |
704
+ | <a id="exchangebinding-2"></a> `exchangeBinding` | `TExchangeBinding` | The exchange-to-exchange binding when bridging, if configured | [builder/event.ts:79](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L79) |
705
+ | <a id="queue-3"></a> `queue` | `TQueue` | The queue this consumer reads from | [builder/event.ts:75](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L75) |
706
706
 
707
707
  ***
708
708
 
@@ -712,7 +712,7 @@ will be automatically extracted.
712
712
  type EventConsumerResultBase = object;
713
713
  ```
714
714
 
715
- Defined in: [types.ts:949](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L949)
715
+ Defined in: [types.ts:949](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L949)
716
716
 
717
717
  Base type for event consumer result.
718
718
 
@@ -727,14 +727,14 @@ defineEventConsumer for creating event consumers
727
727
 
728
728
  | Property | Type | Defined in |
729
729
  | ------ | ------ | ------ |
730
- | <a id="__brand-5"></a> `__brand` | `"EventConsumerResult"` | [types.ts:950](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L950) |
731
- | <a id="binding-3"></a> `binding` | [`QueueBindingDefinition`](#queuebindingdefinition) | [types.ts:952](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L952) |
732
- | <a id="bridgeexchange-3"></a> `bridgeExchange` | [`ExchangeDefinition`](#exchangedefinition) \| `undefined` | [types.ts:957](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L957) |
733
- | <a id="consumer-3"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition) | [types.ts:951](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L951) |
734
- | <a id="deadletterexchange-3"></a> `deadLetterExchange` | [`ExchangeDefinition`](#exchangedefinition) \| `undefined` | [types.ts:955](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L955) |
735
- | <a id="exchange-4"></a> `exchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:953](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L953) |
736
- | <a id="exchangebinding-3"></a> `exchangeBinding` | [`ExchangeBindingDefinition`](#exchangebindingdefinition) \| `undefined` | [types.ts:956](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L956) |
737
- | <a id="queue-4"></a> `queue` | [`QueueDefinition`](#queuedefinition) | [types.ts:954](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L954) |
730
+ | <a id="__brand-5"></a> `__brand` | `"EventConsumerResult"` | [types.ts:950](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L950) |
731
+ | <a id="binding-3"></a> `binding` | [`QueueBindingDefinition`](#queuebindingdefinition) | [types.ts:952](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L952) |
732
+ | <a id="bridgeexchange-3"></a> `bridgeExchange` | [`ExchangeDefinition`](#exchangedefinition) \| `undefined` | [types.ts:957](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L957) |
733
+ | <a id="consumer-3"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition) | [types.ts:951](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L951) |
734
+ | <a id="deadletterexchange-3"></a> `deadLetterExchange` | [`ExchangeDefinition`](#exchangedefinition) \| `undefined` | [types.ts:955](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L955) |
735
+ | <a id="exchange-4"></a> `exchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:953](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L953) |
736
+ | <a id="exchangebinding-3"></a> `exchangeBinding` | [`ExchangeBindingDefinition`](#exchangebindingdefinition) \| `undefined` | [types.ts:956](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L956) |
737
+ | <a id="queue-4"></a> `queue` | [`QueueDefinition`](#queuedefinition) | [types.ts:954](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L954) |
738
738
 
739
739
  ***
740
740
 
@@ -744,7 +744,7 @@ defineEventConsumer for creating event consumers
744
744
  type EventPublisherConfig<TMessage, TExchange, TRoutingKey> = object;
745
745
  ```
746
746
 
747
- Defined in: [builder/event.ts:30](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L30)
747
+ Defined in: [builder/event.ts:30](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L30)
748
748
 
749
749
  Configuration for an event publisher.
750
750
 
@@ -764,11 +764,11 @@ publishers broadcast events and consumers subscribe to receive them.
764
764
 
765
765
  | Property | Type | Description | Defined in |
766
766
  | ------ | ------ | ------ | ------ |
767
- | <a id="__brand-6"></a> `__brand` | `"EventPublisherConfig"` | Discriminator to identify this as an event publisher config | [builder/event.ts:36](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L36) |
768
- | <a id="arguments-3"></a> `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments | [builder/event.ts:44](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L44) |
769
- | <a id="exchange-5"></a> `exchange` | `TExchange` | The exchange to publish to | [builder/event.ts:38](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L38) |
770
- | <a id="message-3"></a> `message` | `TMessage` | The message definition | [builder/event.ts:40](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L40) |
771
- | <a id="routingkey-3"></a> `routingKey` | `TRoutingKey` | The routing key for direct/topic exchanges | [builder/event.ts:42](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L42) |
767
+ | <a id="__brand-6"></a> `__brand` | `"EventPublisherConfig"` | Discriminator to identify this as an event publisher config | [builder/event.ts:36](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L36) |
768
+ | <a id="arguments-3"></a> `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments | [builder/event.ts:44](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L44) |
769
+ | <a id="exchange-5"></a> `exchange` | `TExchange` | The exchange to publish to | [builder/event.ts:38](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L38) |
770
+ | <a id="message-3"></a> `message` | `TMessage` | The message definition | [builder/event.ts:40](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L40) |
771
+ | <a id="routingkey-3"></a> `routingKey` | `TRoutingKey` | The routing key for direct/topic exchanges | [builder/event.ts:42](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L42) |
772
772
 
773
773
  ***
774
774
 
@@ -778,7 +778,7 @@ publishers broadcast events and consumers subscribe to receive them.
778
778
  type EventPublisherConfigBase = object;
779
779
  ```
780
780
 
781
- Defined in: [types.ts:914](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L914)
781
+ Defined in: [types.ts:914](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L914)
782
782
 
783
783
  Base type for event publisher configuration.
784
784
 
@@ -793,11 +793,11 @@ defineEventPublisher for creating event publishers
793
793
 
794
794
  | Property | Type | Defined in |
795
795
  | ------ | ------ | ------ |
796
- | <a id="__brand-7"></a> `__brand` | `"EventPublisherConfig"` | [types.ts:915](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L915) |
797
- | <a id="arguments-4"></a> `arguments?` | `Record`&lt;`string`, `unknown`&gt; | [types.ts:919](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L919) |
798
- | <a id="exchange-6"></a> `exchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:916](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L916) |
799
- | <a id="message-4"></a> `message` | [`MessageDefinition`](#messagedefinition) | [types.ts:917](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L917) |
800
- | <a id="routingkey-4"></a> `routingKey` | `string` \| `undefined` | [types.ts:918](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L918) |
796
+ | <a id="__brand-7"></a> `__brand` | `"EventPublisherConfig"` | [types.ts:915](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L915) |
797
+ | <a id="arguments-4"></a> `arguments?` | `Record`&lt;`string`, `unknown`&gt; | [types.ts:919](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L919) |
798
+ | <a id="exchange-6"></a> `exchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:916](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L916) |
799
+ | <a id="message-4"></a> `message` | [`MessageDefinition`](#messagedefinition) | [types.ts:917](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L917) |
800
+ | <a id="routingkey-4"></a> `routingKey` | `string` \| `undefined` | [types.ts:918](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L918) |
801
801
 
802
802
  ***
803
803
 
@@ -816,7 +816,7 @@ type ExchangeBindingDefinition = object &
816
816
  };
817
817
  ```
818
818
 
819
- Defined in: [types.ts:797](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L797)
819
+ Defined in: [types.ts:797](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L797)
820
820
 
821
821
  Binding between two exchanges (exchange-to-exchange routing).
822
822
 
@@ -827,9 +827,9 @@ This allows for more complex routing topologies.
827
827
 
828
828
  | Name | Type | Description | Defined in |
829
829
  | ------ | ------ | ------ | ------ |
830
- | `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments for the binding. | [types.ts:807](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L807) |
831
- | `destination` | [`ExchangeDefinition`](#exchangedefinition) | The destination exchange that will receive forwarded messages | [types.ts:802](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L802) |
832
- | `type` | `"exchange"` | Discriminator indicating this is an exchange-to-exchange binding | [types.ts:799](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L799) |
830
+ | `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments for the binding. | [types.ts:807](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L807) |
831
+ | `destination` | [`ExchangeDefinition`](#exchangedefinition) | The destination exchange that will receive forwarded messages | [types.ts:802](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L802) |
832
+ | `type` | `"exchange"` | Discriminator indicating this is an exchange-to-exchange binding | [types.ts:799](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L799) |
833
833
 
834
834
  #### Example
835
835
 
@@ -854,7 +854,7 @@ type ExchangeDefinition<TName> =
854
854
  | TopicExchangeDefinition<TName>;
855
855
  ```
856
856
 
857
- Defined in: [types.ts:471](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L471)
857
+ Defined in: [types.ts:471](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L471)
858
858
 
859
859
  Union type of all exchange definitions.
860
860
 
@@ -874,7 +874,7 @@ Represents any type of AMQP exchange: fanout, direct, or topic.
874
874
  type FanoutExchangeDefinition<TName> = BaseExchangeDefinition<TName> & object;
875
875
  ```
876
876
 
877
- Defined in: [types.ts:421](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L421)
877
+ Defined in: [types.ts:421](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L421)
878
878
 
879
879
  A fanout exchange definition.
880
880
 
@@ -885,7 +885,7 @@ This is the simplest exchange type for pub/sub messaging patterns.
885
885
 
886
886
  | Name | Type | Defined in |
887
887
  | ------ | ------ | ------ |
888
- | `type` | `"fanout"` | [types.ts:423](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L423) |
888
+ | `type` | `"fanout"` | [types.ts:423](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L423) |
889
889
 
890
890
  #### Type Parameters
891
891
 
@@ -909,7 +909,7 @@ const logsExchange: FanoutExchangeDefinition = defineExchange('logs', 'fanout',
909
909
  type InferConsumerNames<TContract> = TContract["consumers"] extends Record<string, unknown> ? keyof TContract["consumers"] : never;
910
910
  ```
911
911
 
912
- Defined in: [types.ts:1491](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1491)
912
+ Defined in: [types.ts:1491](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1491)
913
913
 
914
914
  Extract consumer names from a contract.
915
915
 
@@ -941,7 +941,7 @@ type ConsumerNames = InferConsumerNames<typeof myContract>;
941
941
  type InferPublisherNames<TContract> = TContract["publishers"] extends Record<string, unknown> ? keyof TContract["publishers"] : never;
942
942
  ```
943
943
 
944
- Defined in: [types.ts:1473](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1473)
944
+ Defined in: [types.ts:1473](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1473)
945
945
 
946
946
  Extract publisher names from a contract.
947
947
 
@@ -973,7 +973,7 @@ type PublisherNames = InferPublisherNames<typeof myContract>;
973
973
  type MatchingRoutingKey<Pattern, Key> = RoutingKey<Key> extends never ? never : BindingPattern<Pattern> extends never ? never : MatchesPattern<Key, Pattern> extends true ? Key : never;
974
974
  ```
975
975
 
976
- Defined in: [builder/routing-types.ts:114](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/routing-types.ts#L114)
976
+ Defined in: [builder/routing-types.ts:114](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/routing-types.ts#L114)
977
977
 
978
978
  Validate that a routing key matches a binding pattern.
979
979
 
@@ -1005,7 +1005,7 @@ type InvalidKey = MatchingRoutingKey<"order.*", "user.created">; // never
1005
1005
  type MessageDefinition<TPayload, THeaders> = object;
1006
1006
  ```
1007
1007
 
1008
- Defined in: [types.ts:711](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L711)
1008
+ Defined in: [types.ts:711](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L711)
1009
1009
 
1010
1010
  Definition of a message with typed payload and optional headers.
1011
1011
 
@@ -1020,10 +1020,10 @@ Definition of a message with typed payload and optional headers.
1020
1020
 
1021
1021
  | Property | Type | Description | Defined in |
1022
1022
  | ------ | ------ | ------ | ------ |
1023
- | <a id="description"></a> `description?` | `string` | Detailed description of the message for documentation purposes. Used in AsyncAPI specification generation. | [types.ts:739](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L739) |
1024
- | <a id="headers"></a> `headers?` | `THeaders` | Optional headers schema for validating message metadata. Must be a Standard Schema v1 compatible schema. | [types.ts:727](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L727) |
1025
- | <a id="payload"></a> `payload` | `TPayload` | The payload schema for validating message content. Must be a Standard Schema v1 compatible schema (Zod, Valibot, ArkType, etc.). | [types.ts:721](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L721) |
1026
- | <a id="summary"></a> `summary?` | `string` | Brief description of the message for documentation purposes. Used in AsyncAPI specification generation. | [types.ts:733](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L733) |
1023
+ | <a id="description"></a> `description?` | `string` | Detailed description of the message for documentation purposes. Used in AsyncAPI specification generation. | [types.ts:739](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L739) |
1024
+ | <a id="headers"></a> `headers?` | `THeaders` | Optional headers schema for validating message metadata. Must be a Standard Schema v1 compatible schema. | [types.ts:727](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L727) |
1025
+ | <a id="payload"></a> `payload` | `TPayload` | The payload schema for validating message content. Must be a Standard Schema v1 compatible schema (Zod, Valibot, ArkType, etc.). | [types.ts:721](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L721) |
1026
+ | <a id="summary"></a> `summary?` | `string` | Brief description of the message for documentation purposes. Used in AsyncAPI specification generation. | [types.ts:733](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L733) |
1027
1027
 
1028
1028
  ***
1029
1029
 
@@ -1042,7 +1042,7 @@ type PublisherDefinition<TMessage> = object &
1042
1042
  };
1043
1043
  ```
1044
1044
 
1045
- Defined in: [types.ts:855](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L855)
1045
+ Defined in: [types.ts:855](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L855)
1046
1046
 
1047
1047
  Definition of a message publisher.
1048
1048
 
@@ -1056,7 +1056,7 @@ algorithm when calling the publish method.
1056
1056
 
1057
1057
  | Name | Type | Description | Defined in |
1058
1058
  | ------ | ------ | ------ | ------ |
1059
- | `message` | `TMessage` | The message definition including the payload schema | [types.ts:857](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L857) |
1059
+ | `message` | `TMessage` | The message definition including the payload schema | [types.ts:857](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L857) |
1060
1060
 
1061
1061
  #### Type Parameters
1062
1062
 
@@ -1085,7 +1085,7 @@ type PublisherEntry =
1085
1085
  | BridgedPublisherConfigBase;
1086
1086
  ```
1087
1087
 
1088
- Defined in: [types.ts:1053](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L1053)
1088
+ Defined in: [types.ts:1053](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L1053)
1089
1089
 
1090
1090
  Publisher entry that can be passed to defineContract's publishers section.
1091
1091
 
@@ -1110,7 +1110,7 @@ type QueueBindingDefinition = object &
1110
1110
  };
1111
1111
  ```
1112
1112
 
1113
- Defined in: [types.ts:749](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L749)
1113
+ Defined in: [types.ts:749](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L749)
1114
1114
 
1115
1115
  Binding between a queue and an exchange.
1116
1116
 
@@ -1122,9 +1122,9 @@ For fanout exchanges, no routing key is needed as all messages are broadcast.
1122
1122
 
1123
1123
  | Name | Type | Description | Defined in |
1124
1124
  | ------ | ------ | ------ | ------ |
1125
- | `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments for the binding. Can be used for advanced routing scenarios with the headers exchange type. | [types.ts:760](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L760) |
1126
- | `queue` | [`QueueDefinition`](#queuedefinition) | The queue that will receive messages | [types.ts:754](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L754) |
1127
- | `type` | `"queue"` | Discriminator indicating this is a queue-to-exchange binding | [types.ts:751](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L751) |
1125
+ | `arguments?` | `Record`&lt;`string`, `unknown`&gt; | Additional AMQP arguments for the binding. Can be used for advanced routing scenarios with the headers exchange type. | [types.ts:760](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L760) |
1126
+ | `queue` | [`QueueDefinition`](#queuedefinition) | The queue that will receive messages | [types.ts:754](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L754) |
1127
+ | `type` | `"queue"` | Discriminator indicating this is a queue-to-exchange binding | [types.ts:751](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L751) |
1128
1128
 
1129
1129
  ***
1130
1130
 
@@ -1136,7 +1136,7 @@ type QueueDefinition<TName> =
1136
1136
  | ClassicQueueDefinition<TName>;
1137
1137
  ```
1138
1138
 
1139
- Defined in: [types.ts:632](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L632)
1139
+ Defined in: [types.ts:632](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L632)
1140
1140
 
1141
1141
  Definition of an AMQP queue.
1142
1142
 
@@ -1162,7 +1162,7 @@ type QueueEntry<TName> =
1162
1162
  | QueueWithTtlBackoffInfrastructure<TName>;
1163
1163
  ```
1164
1164
 
1165
- Defined in: [types.ts:701](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L701)
1165
+ Defined in: [types.ts:701](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L701)
1166
1166
 
1167
1167
  A queue entry that can be passed to `defineContract`.
1168
1168
 
@@ -1182,7 +1182,7 @@ Can be either a plain queue definition or a queue with TTL-backoff infrastructur
1182
1182
  type QueueType = "quorum" | "classic";
1183
1183
  ```
1184
1184
 
1185
- Defined in: [types.ts:163](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L163)
1185
+ Defined in: [types.ts:163](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L163)
1186
1186
 
1187
1187
  Supported queue types in RabbitMQ.
1188
1188
 
@@ -1221,7 +1221,7 @@ const tempQueue = defineQueue('temp-queue', {
1221
1221
  type QueueWithTtlBackoffInfrastructure<TName> = object;
1222
1222
  ```
1223
1223
 
1224
- Defined in: [types.ts:662](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L662)
1224
+ Defined in: [types.ts:662](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L662)
1225
1225
 
1226
1226
  A queue with automatically generated TTL-backoff retry infrastructure.
1227
1227
 
@@ -1259,11 +1259,11 @@ const contract = defineContract({
1259
1259
 
1260
1260
  | Property | Type | Description | Defined in |
1261
1261
  | ------ | ------ | ------ | ------ |
1262
- | <a id="deadletter-2"></a> `deadLetter` | [`DeadLetterConfig`](#deadletterconfig) | Dead letter configuration from the main queue. Always present since TTL-backoff infrastructure requires a dead letter exchange. | [types.ts:678](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L678) |
1263
- | <a id="mainqueueretrybinding"></a> `mainQueueRetryBinding` | [`QueueBindingDefinition`](#queuebindingdefinition) | Binding that routes retried messages back to the main queue. | [types.ts:693](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L693) |
1264
- | <a id="queue-5"></a> `queue` | [`QueueDefinition`](#queuedefinition)&lt;`TName`&gt; | The main queue definition. | [types.ts:672](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L672) |
1265
- | <a id="waitqueue"></a> `waitQueue` | [`QueueDefinition`](#queuedefinition) | The wait queue for holding messages during backoff delay. | [types.ts:683](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L683) |
1266
- | <a id="waitqueuebinding"></a> `waitQueueBinding` | [`QueueBindingDefinition`](#queuebindingdefinition) | Binding that routes failed messages to the wait queue. | [types.ts:688](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L688) |
1262
+ | <a id="deadletter-2"></a> `deadLetter` | [`DeadLetterConfig`](#deadletterconfig) | Dead letter configuration from the main queue. Always present since TTL-backoff infrastructure requires a dead letter exchange. | [types.ts:678](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L678) |
1263
+ | <a id="mainqueueretrybinding"></a> `mainQueueRetryBinding` | [`QueueBindingDefinition`](#queuebindingdefinition) | Binding that routes retried messages back to the main queue. | [types.ts:693](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L693) |
1264
+ | <a id="queue-5"></a> `queue` | [`QueueDefinition`](#queuedefinition)&lt;`TName`&gt; | The main queue definition. | [types.ts:672](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L672) |
1265
+ | <a id="waitqueue"></a> `waitQueue` | [`QueueDefinition`](#queuedefinition) | The wait queue for holding messages during backoff delay. | [types.ts:683](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L683) |
1266
+ | <a id="waitqueuebinding"></a> `waitQueueBinding` | [`QueueBindingDefinition`](#queuebindingdefinition) | Binding that routes failed messages to the wait queue. | [types.ts:688](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L688) |
1267
1267
 
1268
1268
  ***
1269
1269
 
@@ -1273,7 +1273,7 @@ const contract = defineContract({
1273
1273
  type QuorumNativeRetryOptions = object;
1274
1274
  ```
1275
1275
 
1276
- Defined in: [types.ts:72](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L72)
1276
+ Defined in: [types.ts:72](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L72)
1277
1277
 
1278
1278
  Quorum-Native retry options using RabbitMQ's native delivery limit feature.
1279
1279
 
@@ -1293,7 +1293,7 @@ https://www.rabbitmq.com/docs/quorum-queues#poison-message-handling
1293
1293
 
1294
1294
  | Property | Type | Description | Defined in |
1295
1295
  | ------ | ------ | ------ | ------ |
1296
- | <a id="mode"></a> `mode` | `"quorum-native"` | Quorum-Native mode uses RabbitMQ's native delivery limit feature. Requires the queue to be a quorum queue with `deliveryLimit` configured. | [types.ts:77](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L77) |
1296
+ | <a id="mode"></a> `mode` | `"quorum-native"` | Quorum-Native mode uses RabbitMQ's native delivery limit feature. Requires the queue to be a quorum queue with `deliveryLimit` configured. | [types.ts:77](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L77) |
1297
1297
 
1298
1298
  ***
1299
1299
 
@@ -1303,7 +1303,7 @@ https://www.rabbitmq.com/docs/quorum-queues#poison-message-handling
1303
1303
  type QuorumQueueDefinition<TName> = BaseQueueDefinition<TName> & object;
1304
1304
  ```
1305
1305
 
1306
- Defined in: [types.ts:545](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L545)
1306
+ Defined in: [types.ts:545](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L545)
1307
1307
 
1308
1308
  Definition of a quorum queue.
1309
1309
 
@@ -1314,11 +1314,11 @@ They support native retry handling via `deliveryLimit` and both TTL-backoff and
1314
1314
 
1315
1315
  | Name | Type | Description | Defined in |
1316
1316
  | ------ | ------ | ------ | ------ |
1317
- | `deliveryLimit?` | `number` | Maximum number of delivery attempts before the message is dead-lettered. This is a quorum queue-specific feature. When a message is rejected (nacked) and requeued, RabbitMQ increments the `x-delivery-count` header. When this count reaches the delivery limit, the message is automatically dead-lettered (if DLX is configured) or dropped. **Minimum** 1 - Must be a positive integer (1 or greater) **See** https://www.rabbitmq.com/docs/quorum-queues#poison-message-handling | [types.ts:575](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L575) |
1318
- | `exclusive?` | `never` | Quorum queues do not support exclusive mode. Use type: 'classic' if you need exclusive queues. | [types.ts:555](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L555) |
1319
- | `maxPriority?` | `never` | Quorum queues do not support priority queues. Use type: 'classic' if you need priority queues. | [types.ts:561](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L561) |
1320
- | `retry` | [`ResolvedRetryOptions`](#resolvedretryoptions) | Retry configuration for handling failed message processing. Quorum queues support both: - `ttl-backoff`: Uses wait queues with exponential backoff (default) - `quorum-native`: Uses RabbitMQ's native delivery limit feature When the queue is created, defaults are applied for TTL-backoff options. | [types.ts:586](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L586) |
1321
- | `type` | `"quorum"` | Queue type discriminator: quorum queue. | [types.ts:549](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L549) |
1317
+ | `deliveryLimit?` | `number` | Maximum number of delivery attempts before the message is dead-lettered. This is a quorum queue-specific feature. When a message is rejected (nacked) and requeued, RabbitMQ increments the `x-delivery-count` header. When this count reaches the delivery limit, the message is automatically dead-lettered (if DLX is configured) or dropped. **Minimum** 1 - Must be a positive integer (1 or greater) **See** https://www.rabbitmq.com/docs/quorum-queues#poison-message-handling | [types.ts:575](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L575) |
1318
+ | `exclusive?` | `never` | Quorum queues do not support exclusive mode. Use type: 'classic' if you need exclusive queues. | [types.ts:555](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L555) |
1319
+ | `maxPriority?` | `never` | Quorum queues do not support priority queues. Use type: 'classic' if you need priority queues. | [types.ts:561](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L561) |
1320
+ | `retry` | [`ResolvedRetryOptions`](#resolvedretryoptions) | Retry configuration for handling failed message processing. Quorum queues support both: - `ttl-backoff`: Uses wait queues with exponential backoff (default) - `quorum-native`: Uses RabbitMQ's native delivery limit feature When the queue is created, defaults are applied for TTL-backoff options. | [types.ts:586](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L586) |
1321
+ | `type` | `"quorum"` | Queue type discriminator: quorum queue. | [types.ts:549](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L549) |
1322
1322
 
1323
1323
  #### Type Parameters
1324
1324
 
@@ -1334,7 +1334,7 @@ They support native retry handling via `deliveryLimit` and both TTL-backoff and
1334
1334
  type QuorumQueueOptions = BaseQueueOptions & object;
1335
1335
  ```
1336
1336
 
1337
- Defined in: [types.ts:214](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L214)
1337
+ Defined in: [types.ts:214](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L214)
1338
1338
 
1339
1339
  Options for creating a quorum queue.
1340
1340
 
@@ -1351,11 +1351,11 @@ Quorum queues provide native retry support via `deliveryLimit`:
1351
1351
 
1352
1352
  | Name | Type | Description | Defined in |
1353
1353
  | ------ | ------ | ------ | ------ |
1354
- | `deliveryLimit?` | `number` | Maximum number of delivery attempts before the message is dead-lettered. When a message is rejected (nacked) and requeued, RabbitMQ increments the `x-delivery-count` header. When this count reaches the delivery limit, the message is automatically dead-lettered (if DLX is configured) or dropped. This is a quorum queue-specific feature that provides native retry handling without the complexity of TTL-based wait queues. **Benefits over TTL-based retry:** - Simpler architecture (no wait queues needed) - No head-of-queue blocking issues (TTL only works at queue head) - Native RabbitMQ feature with atomic guarantees **Minimum** 1 - Must be a positive integer (1 or greater) **See** https://www.rabbitmq.com/docs/quorum-queues#poison-message-handling **Example** `const orderQueue = defineQueue('order-processing', { type: 'quorum', deliveryLimit: 5, // Allow up to 5 delivery attempts deadLetter: { exchange: dlx, routingKey: 'order.failed', }, });` | [types.ts:263](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L263) |
1355
- | `exclusive?` | `never` | Quorum queues do not support exclusive mode. Use type: 'classic' if you need exclusive queues. | [types.ts:224](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L224) |
1356
- | `maxPriority?` | `never` | Quorum queues do not support priority queues. Use type: 'classic' if you need priority queues. | [types.ts:230](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L230) |
1357
- | `retry?` | \| [`TtlBackoffRetryOptions`](#ttlbackoffretryoptions) \| [`QuorumNativeRetryOptions`](#quorumnativeretryoptions) | Retry configuration for handling failed message processing. Determines how the worker handles retries for consumers using this queue: - `"ttl-backoff"` (default): Uses wait queues with exponential backoff - `"quorum-native"`: Uses RabbitMQ's native delivery limit feature When using `"ttl-backoff"` mode, the core package will automatically create a wait queue (`{queueName}-wait`) and the necessary bindings. **Example** `// TTL-backoff mode with custom options const orderQueue = defineQueue('order-processing', { type: 'quorum', deadLetter: { exchange: dlx }, retry: { mode: 'ttl-backoff', maxRetries: 5, initialDelayMs: 1000, maxDelayMs: 30000, }, }); // Quorum-native mode const orderQueue = defineQueue('order-processing', { type: 'quorum', deliveryLimit: 5, deadLetter: { exchange: dlx }, retry: { mode: 'quorum-native' }, });` | [types.ts:298](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L298) |
1358
- | `type?` | `"quorum"` | Queue type: quorum (default, recommended) | [types.ts:218](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L218) |
1354
+ | `deliveryLimit?` | `number` | Maximum number of delivery attempts before the message is dead-lettered. When a message is rejected (nacked) and requeued, RabbitMQ increments the `x-delivery-count` header. When this count reaches the delivery limit, the message is automatically dead-lettered (if DLX is configured) or dropped. This is a quorum queue-specific feature that provides native retry handling without the complexity of TTL-based wait queues. **Benefits over TTL-based retry:** - Simpler architecture (no wait queues needed) - No head-of-queue blocking issues (TTL only works at queue head) - Native RabbitMQ feature with atomic guarantees **Minimum** 1 - Must be a positive integer (1 or greater) **See** https://www.rabbitmq.com/docs/quorum-queues#poison-message-handling **Example** `const orderQueue = defineQueue('order-processing', { type: 'quorum', deliveryLimit: 5, // Allow up to 5 delivery attempts deadLetter: { exchange: dlx, routingKey: 'order.failed', }, });` | [types.ts:263](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L263) |
1355
+ | `exclusive?` | `never` | Quorum queues do not support exclusive mode. Use type: 'classic' if you need exclusive queues. | [types.ts:224](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L224) |
1356
+ | `maxPriority?` | `never` | Quorum queues do not support priority queues. Use type: 'classic' if you need priority queues. | [types.ts:230](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L230) |
1357
+ | `retry?` | \| [`TtlBackoffRetryOptions`](#ttlbackoffretryoptions) \| [`QuorumNativeRetryOptions`](#quorumnativeretryoptions) | Retry configuration for handling failed message processing. Determines how the worker handles retries for consumers using this queue: - `"ttl-backoff"` (default): Uses wait queues with exponential backoff - `"quorum-native"`: Uses RabbitMQ's native delivery limit feature When using `"ttl-backoff"` mode, the core package will automatically create a wait queue (`{queueName}-wait`) and the necessary bindings. **Example** `// TTL-backoff mode with custom options const orderQueue = defineQueue('order-processing', { type: 'quorum', deadLetter: { exchange: dlx }, retry: { mode: 'ttl-backoff', maxRetries: 5, initialDelayMs: 1000, maxDelayMs: 30000, }, }); // Quorum-native mode const orderQueue = defineQueue('order-processing', { type: 'quorum', deliveryLimit: 5, deadLetter: { exchange: dlx }, retry: { mode: 'quorum-native' }, });` | [types.ts:298](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L298) |
1358
+ | `type?` | `"quorum"` | Queue type: quorum (default, recommended) | [types.ts:218](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L218) |
1359
1359
 
1360
1360
  #### Example
1361
1361
 
@@ -1377,7 +1377,7 @@ type ResolvedRetryOptions =
1377
1377
  | QuorumNativeRetryOptions;
1378
1378
  ```
1379
1379
 
1380
- Defined in: [types.ts:104](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L104)
1380
+ Defined in: [types.ts:104](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L104)
1381
1381
 
1382
1382
  Resolved retry configuration stored in queue definitions.
1383
1383
 
@@ -1393,7 +1393,7 @@ This is a discriminated union based on the `mode` field:
1393
1393
  type RoutingKey<S> = S extends "" ? never : S extends `${string}*${string}` | `${string}#${string}` ? never : S;
1394
1394
  ```
1395
1395
 
1396
- Defined in: [builder/routing-types.ts:25](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/routing-types.ts#L25)
1396
+ Defined in: [builder/routing-types.ts:25](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/routing-types.ts#L25)
1397
1397
 
1398
1398
  Type-safe routing key that validates basic format.
1399
1399
 
@@ -1427,7 +1427,7 @@ type Invalid2 = RoutingKey<"">; // never (empty string)
1427
1427
  type TopicExchangeDefinition<TName> = BaseExchangeDefinition<TName> & object;
1428
1428
  ```
1429
1429
 
1430
- Defined in: [types.ts:461](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L461)
1430
+ Defined in: [types.ts:461](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L461)
1431
1431
 
1432
1432
  A topic exchange definition.
1433
1433
 
@@ -1441,7 +1441,7 @@ Words are separated by dots (e.g., `order.created.high-value`).
1441
1441
 
1442
1442
  | Name | Type | Defined in |
1443
1443
  | ------ | ------ | ------ |
1444
- | `type` | `"topic"` | [types.ts:463](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L463) |
1444
+ | `type` | `"topic"` | [types.ts:463](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L463) |
1445
1445
 
1446
1446
  #### Type Parameters
1447
1447
 
@@ -1466,7 +1466,7 @@ const ordersExchange: TopicExchangeDefinition = defineExchange('orders', 'topic'
1466
1466
  type TtlBackoffRetryInfrastructure = object;
1467
1467
  ```
1468
1468
 
1469
- Defined in: [builder/ttl-backoff.ts:9](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/ttl-backoff.ts#L9)
1469
+ Defined in: [builder/ttl-backoff.ts:9](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/ttl-backoff.ts#L9)
1470
1470
 
1471
1471
  Result type for TTL-backoff retry infrastructure builder.
1472
1472
 
@@ -1476,9 +1476,9 @@ Contains the wait queue and bindings needed for TTL-backoff retry.
1476
1476
 
1477
1477
  | Property | Type | Description | Defined in |
1478
1478
  | ------ | ------ | ------ | ------ |
1479
- | <a id="mainqueueretrybinding-1"></a> `mainQueueRetryBinding` | [`QueueBindingDefinition`](#queuebindingdefinition) | Binding that routes retried messages back to the main queue. | [builder/ttl-backoff.ts:22](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/ttl-backoff.ts#L22) |
1480
- | <a id="waitqueue-1"></a> `waitQueue` | [`QueueDefinition`](#queuedefinition) | The wait queue for holding messages during backoff delay. This is a classic queue with a dead letter exchange pointing back to the main queue. | [builder/ttl-backoff.ts:14](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/ttl-backoff.ts#L14) |
1481
- | <a id="waitqueuebinding-1"></a> `waitQueueBinding` | [`QueueBindingDefinition`](#queuebindingdefinition) | Binding that routes failed messages to the wait queue. | [builder/ttl-backoff.ts:18](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/ttl-backoff.ts#L18) |
1479
+ | <a id="mainqueueretrybinding-1"></a> `mainQueueRetryBinding` | [`QueueBindingDefinition`](#queuebindingdefinition) | Binding that routes retried messages back to the main queue. | [builder/ttl-backoff.ts:22](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/ttl-backoff.ts#L22) |
1480
+ | <a id="waitqueue-1"></a> `waitQueue` | [`QueueDefinition`](#queuedefinition) | The wait queue for holding messages during backoff delay. This is a classic queue with a dead letter exchange pointing back to the main queue. | [builder/ttl-backoff.ts:14](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/ttl-backoff.ts#L14) |
1481
+ | <a id="waitqueuebinding-1"></a> `waitQueueBinding` | [`QueueBindingDefinition`](#queuebindingdefinition) | Binding that routes failed messages to the wait queue. | [builder/ttl-backoff.ts:18](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/ttl-backoff.ts#L18) |
1482
1482
 
1483
1483
  ***
1484
1484
 
@@ -1488,7 +1488,7 @@ Contains the wait queue and bindings needed for TTL-backoff retry.
1488
1488
  type TtlBackoffRetryOptions = object;
1489
1489
  ```
1490
1490
 
1491
- Defined in: [types.ts:27](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L27)
1491
+ Defined in: [types.ts:27](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L27)
1492
1492
 
1493
1493
  TTL-Backoff retry options for exponential backoff with configurable delays.
1494
1494
 
@@ -1502,12 +1502,12 @@ per-message TTL, then dead-lettered back to the main queue after the TTL expires
1502
1502
 
1503
1503
  | Property | Type | Description | Defined in |
1504
1504
  | ------ | ------ | ------ | ------ |
1505
- | <a id="backoffmultiplier-1"></a> `backoffMultiplier?` | `number` | Exponential backoff multiplier. **Default** `2` | [types.ts:51](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L51) |
1506
- | <a id="initialdelayms-1"></a> `initialDelayMs?` | `number` | Initial delay in ms before first retry. **Default** `1000` | [types.ts:41](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L41) |
1507
- | <a id="jitter-1"></a> `jitter?` | `boolean` | Add jitter to prevent thundering herd. **Default** `true` | [types.ts:56](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L56) |
1508
- | <a id="maxdelayms-1"></a> `maxDelayMs?` | `number` | Maximum delay in ms between retries. **Default** `30000` | [types.ts:46](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L46) |
1509
- | <a id="maxretries-1"></a> `maxRetries?` | `number` | Maximum retry attempts before sending to DLQ. **Default** `3` | [types.ts:36](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L36) |
1510
- | <a id="mode-1"></a> `mode` | `"ttl-backoff"` | TTL-Backoff mode uses wait queues with per-message TTL for exponential backoff. | [types.ts:31](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/types.ts#L31) |
1505
+ | <a id="backoffmultiplier-1"></a> `backoffMultiplier?` | `number` | Exponential backoff multiplier. **Default** `2` | [types.ts:51](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L51) |
1506
+ | <a id="initialdelayms-1"></a> `initialDelayMs?` | `number` | Initial delay in ms before first retry. **Default** `1000` | [types.ts:41](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L41) |
1507
+ | <a id="jitter-1"></a> `jitter?` | `boolean` | Add jitter to prevent thundering herd. **Default** `true` | [types.ts:56](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L56) |
1508
+ | <a id="maxdelayms-1"></a> `maxDelayMs?` | `number` | Maximum delay in ms between retries. **Default** `30000` | [types.ts:46](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L46) |
1509
+ | <a id="maxretries-1"></a> `maxRetries?` | `number` | Maximum retry attempts before sending to DLQ. **Default** `3` | [types.ts:36](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L36) |
1510
+ | <a id="mode-1"></a> `mode` | `"ttl-backoff"` | TTL-Backoff mode uses wait queues with per-message TTL for exponential backoff. | [types.ts:31](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/types.ts#L31) |
1511
1511
 
1512
1512
  ## Functions
1513
1513
 
@@ -1520,7 +1520,7 @@ function defineConsumer<TMessage>(
1520
1520
  options?): ConsumerDefinition<TMessage>;
1521
1521
  ```
1522
1522
 
1523
- Defined in: [builder/consumer.ts:121](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/consumer.ts#L121)
1523
+ Defined in: [builder/consumer.ts:121](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/consumer.ts#L121)
1524
1524
 
1525
1525
  Define a message consumer.
1526
1526
 
@@ -1605,7 +1605,7 @@ const processOrderConsumer = defineConsumer(orderQueue, orderMessage);
1605
1605
  function defineContract<TContract>(definition): ContractOutput<TContract>;
1606
1606
  ```
1607
1607
 
1608
- Defined in: [builder/contract.ts:82](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/contract.ts#L82)
1608
+ Defined in: [builder/contract.ts:82](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/contract.ts#L82)
1609
1609
 
1610
1610
  Define an AMQP contract.
1611
1611
 
@@ -1694,7 +1694,7 @@ export const contract = defineContract({
1694
1694
  function defineMessage<TPayload, THeaders>(payload, options?): MessageDefinition<TPayload, THeaders>;
1695
1695
  ```
1696
1696
 
1697
- Defined in: [builder/message.ts:39](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/message.ts#L39)
1697
+ Defined in: [builder/message.ts:39](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/message.ts#L39)
1698
1698
 
1699
1699
  Define a message definition with payload and optional headers/metadata.
1700
1700
 
@@ -1757,7 +1757,7 @@ const orderMessage = defineMessage(
1757
1757
  function defineQueue<TName, TDlx>(name, options): QueueDefinition<TName> | QueueWithTtlBackoffInfrastructure<TName> & object;
1758
1758
  ```
1759
1759
 
1760
- Defined in: [builder/queue.ts:255](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L255)
1760
+ Defined in: [builder/queue.ts:255](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L255)
1761
1761
 
1762
1762
  Define an AMQP queue.
1763
1763
 
@@ -1838,7 +1838,7 @@ function defineQueue<TName>(name, options?):
1838
1838
  | QueueWithTtlBackoffInfrastructure<TName>;
1839
1839
  ```
1840
1840
 
1841
- Defined in: [builder/queue.ts:262](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L262)
1841
+ Defined in: [builder/queue.ts:262](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L262)
1842
1842
 
1843
1843
  Define an AMQP queue.
1844
1844
 
@@ -1919,7 +1919,7 @@ const orderQueue = defineQueue('order-processing', {
1919
1919
  function defineQuorumQueue<TName>(name, options): QuorumQueueDefinition<TName>;
1920
1920
  ```
1921
1921
 
1922
- Defined in: [builder/queue.ts:460](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L460)
1922
+ Defined in: [builder/queue.ts:460](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L460)
1923
1923
 
1924
1924
  Create a quorum queue with quorum-native retry.
1925
1925
 
@@ -1982,7 +1982,7 @@ const contract = defineContract({
1982
1982
  function defineTtlBackoffQueue<TName>(name, options): QueueWithTtlBackoffInfrastructure<TName>;
1983
1983
  ```
1984
1984
 
1985
- Defined in: [builder/queue.ts:583](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L583)
1985
+ Defined in: [builder/queue.ts:583](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L583)
1986
1986
 
1987
1987
  Create a queue with TTL-backoff retry (exponential backoff).
1988
1988
 
@@ -2057,7 +2057,7 @@ const queueName = extractQueue(orderQueue).name;
2057
2057
  function defineTtlBackoffRetryInfrastructure(queueEntry, options?): TtlBackoffRetryInfrastructure;
2058
2058
  ```
2059
2059
 
2060
- Defined in: [builder/ttl-backoff.ts:67](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/ttl-backoff.ts#L67)
2060
+ Defined in: [builder/ttl-backoff.ts:67](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/ttl-backoff.ts#L67)
2061
2061
 
2062
2062
  Create TTL-backoff retry infrastructure for a queue.
2063
2063
 
@@ -2121,7 +2121,7 @@ const retryInfra = defineTtlBackoffRetryInfrastructure(orderQueue);
2121
2121
  function extractConsumer(entry): ConsumerDefinition;
2122
2122
  ```
2123
2123
 
2124
- Defined in: [builder/consumer.ts:55](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/consumer.ts#L55)
2124
+ Defined in: [builder/consumer.ts:55](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/consumer.ts#L55)
2125
2125
 
2126
2126
  Extract the ConsumerDefinition from any ConsumerEntry type.
2127
2127
 
@@ -2170,7 +2170,7 @@ extractConsumer(consumer3).queue.name; // "my-queue"
2170
2170
  function extractQueue<T>(entry): ExtractQueueFromEntry<T>;
2171
2171
  ```
2172
2172
 
2173
- Defined in: [builder/queue.ts:127](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L127)
2173
+ Defined in: [builder/queue.ts:127](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L127)
2174
2174
 
2175
2175
  Extract the plain QueueDefinition from a QueueEntry.
2176
2176
 
@@ -2245,7 +2245,7 @@ console.log(queueDef.deadLetter); // { exchange: dlx, ... }
2245
2245
  function isBridgedPublisherConfig(value): value is BridgedPublisherConfig<MessageDefinition, ExchangeDefinition, ExchangeDefinition>;
2246
2246
  ```
2247
2247
 
2248
- Defined in: [builder/command.ts:460](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L460)
2248
+ Defined in: [builder/command.ts:460](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L460)
2249
2249
 
2250
2250
  Type guard to check if a value is a BridgedPublisherConfig.
2251
2251
 
@@ -2269,7 +2269,7 @@ True if the value is a BridgedPublisherConfig
2269
2269
  function isCommandConsumerConfig(value): value is CommandConsumerConfig<MessageDefinition, ExchangeDefinition, string | undefined, QueueDefinition, ExchangeDefinition | undefined>;
2270
2270
  ```
2271
2271
 
2272
- Defined in: [builder/command.ts:443](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/command.ts#L443)
2272
+ Defined in: [builder/command.ts:443](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/command.ts#L443)
2273
2273
 
2274
2274
  Type guard to check if a value is a CommandConsumerConfig.
2275
2275
 
@@ -2293,7 +2293,7 @@ True if the value is a CommandConsumerConfig
2293
2293
  function isEventConsumerResult(value): value is EventConsumerResult<MessageDefinition, ExchangeDefinition, QueueDefinition, ExchangeDefinition | undefined, ExchangeBindingDefinition | undefined, ExchangeDefinition | undefined>;
2294
2294
  ```
2295
2295
 
2296
- Defined in: [builder/event.ts:526](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L526)
2296
+ Defined in: [builder/event.ts:526](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L526)
2297
2297
 
2298
2298
  Type guard to check if a value is an EventConsumerResult.
2299
2299
 
@@ -2317,7 +2317,7 @@ True if the value is an EventConsumerResult
2317
2317
  function isEventPublisherConfig(value): value is EventPublisherConfig<MessageDefinition, ExchangeDefinition, string | undefined>;
2318
2318
  ```
2319
2319
 
2320
- Defined in: [builder/event.ts:509](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/event.ts#L509)
2320
+ Defined in: [builder/event.ts:509](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/event.ts#L509)
2321
2321
 
2322
2322
  Type guard to check if a value is an EventPublisherConfig.
2323
2323
 
@@ -2341,7 +2341,7 @@ True if the value is an EventPublisherConfig
2341
2341
  function isQueueWithTtlBackoffInfrastructure(entry): entry is QueueWithTtlBackoffInfrastructure;
2342
2342
  ```
2343
2343
 
2344
- Defined in: [builder/queue.ts:73](https://github.com/btravers/amqp-contract/blob/a5ff0e58db355e3410ea3b765884871c3b44c87d/packages/contract/src/builder/queue.ts#L73)
2344
+ Defined in: [builder/queue.ts:73](https://github.com/btravers/amqp-contract/blob/04791f62e768b84b07aa5288adb8ab72296d6663/packages/contract/src/builder/queue.ts#L73)
2345
2345
 
2346
2346
  Type guard to check if a queue entry is a QueueWithTtlBackoffInfrastructure.
2347
2347
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amqp-contract/contract",
3
- "version": "0.19.0",
3
+ "version": "0.20.0",
4
4
  "description": "Contract builder for amqp-contract",
5
5
  "keywords": [
6
6
  "amqp",
@@ -54,7 +54,7 @@
54
54
  "devDependencies": {
55
55
  "@vitest/coverage-v8": "4.0.18",
56
56
  "tsdown": "0.20.3",
57
- "typedoc": "0.28.16",
57
+ "typedoc": "0.28.17",
58
58
  "typedoc-plugin-markdown": "4.10.0",
59
59
  "typescript": "5.9.3",
60
60
  "vitest": "4.0.18",