@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.
- package/docs/index.md +194 -194
- 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/
|
|
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/
|
|
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`<`string`, `unknown`> | 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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
52
|
+
| <a id="arguments"></a> `arguments?` | `Record`<`string`, `unknown`> | 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/
|
|
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/
|
|
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/
|
|
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/
|
|
139
|
-
| <a id="bridgeexchange"></a> `bridgeExchange` | `TBridgeExchange` | The bridge (local domain) exchange | [builder/command.ts:78](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
141
|
-
| <a id="publisher"></a> `publisher` | [`PublisherDefinition`](#publisherdefinition)<`TMessage`> | The publisher definition (publishes to bridge exchange) | [builder/command.ts:74](https://github.com/btravers/amqp-contract/blob/
|
|
142
|
-
| <a id="targetexchange"></a> `targetExchange` | `TTargetExchange` | The target (remote domain) exchange | [builder/command.ts:80](https://github.com/btravers/amqp-contract/blob/
|
|
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)<`TMessage`> | 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/
|
|
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/
|
|
168
|
-
| <a id="bridgeexchange-1"></a> `bridgeExchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:972](https://github.com/btravers/amqp-contract/blob/
|
|
169
|
-
| <a id="exchangebinding-1"></a> `exchangeBinding` | [`ExchangeBindingDefinition`](#exchangebindingdefinition) | [types.ts:971](https://github.com/btravers/amqp-contract/blob/
|
|
170
|
-
| <a id="publisher-1"></a> `publisher` | [`PublisherDefinition`](#publisherdefinition) | [types.ts:970](https://github.com/btravers/amqp-contract/blob/
|
|
171
|
-
| <a id="targetexchange-1"></a> `targetExchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:973](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
195
|
-
| `type` | `"classic"` | Queue type discriminator: classic queue. | [types.ts:599](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
227
|
-
| `type` | `"classic"` | Queue type: classic (for special cases) | [types.ts:322](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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/
|
|
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/
|
|
270
|
-
| <a id="consumer"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition)<`TMessage`> | The consumer definition for processing commands | [builder/command.ts:41](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
272
|
-
| <a id="exchange"></a> `exchange` | `TExchange` | The exchange that receives commands | [builder/command.ts:45](https://github.com/btravers/amqp-contract/blob/
|
|
273
|
-
| <a id="message"></a> `message` | `TMessage` | The message definition | [builder/command.ts:51](https://github.com/btravers/amqp-contract/blob/
|
|
274
|
-
| <a id="queue"></a> `queue` | `TQueue` | The queue this consumer reads from | [builder/command.ts:47](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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)<`TMessage`> | 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/
|
|
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/
|
|
301
|
-
| <a id="binding-1"></a> `binding` | [`QueueBindingDefinition`](#queuebindingdefinition) | [types.ts:933](https://github.com/btravers/amqp-contract/blob/
|
|
302
|
-
| <a id="consumer-1"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition) | [types.ts:932](https://github.com/btravers/amqp-contract/blob/
|
|
303
|
-
| <a id="deadletterexchange-1"></a> `deadLetterExchange` | [`ExchangeDefinition`](#exchangedefinition) \| `undefined` | [types.ts:936](https://github.com/btravers/amqp-contract/blob/
|
|
304
|
-
| <a id="exchange-1"></a> `exchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:934](https://github.com/btravers/amqp-contract/blob/
|
|
305
|
-
| <a id="message-1"></a> `message` | [`MessageDefinition`](#messagedefinition) | [types.ts:937](https://github.com/btravers/amqp-contract/blob/
|
|
306
|
-
| <a id="queue-1"></a> `queue` | [`QueueDefinition`](#queuedefinition) | [types.ts:935](https://github.com/btravers/amqp-contract/blob/
|
|
307
|
-
| <a id="routingkey-1"></a> `routingKey` | `string` \| `undefined` | [types.ts:938](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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`<`string`, [`BindingDefinition`](#bindingdefinition)> | Named binding definitions. Bindings can be queue-to-exchange or exchange-to-exchange. | [types.ts:1029](https://github.com/btravers/amqp-contract/blob/
|
|
454
|
-
| <a id="consumers"></a> `consumers?` | `Record`<`string`, [`ConsumerDefinition`](#consumerdefinition)> | 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/
|
|
455
|
-
| <a id="exchanges"></a> `exchanges?` | `Record`<`string`, [`ExchangeDefinition`](#exchangedefinition)> | Named exchange definitions. Each key becomes available as a named resource in the contract. | [types.ts:1014](https://github.com/btravers/amqp-contract/blob/
|
|
456
|
-
| <a id="publishers"></a> `publishers?` | `Record`<`string`, [`PublisherDefinition`](#publisherdefinition)> | 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/
|
|
457
|
-
| <a id="queues"></a> `queues?` | `Record`<`string`, [`QueueEntry`](#queueentry)> | 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/
|
|
453
|
+
| <a id="bindings"></a> `bindings?` | `Record`<`string`, [`BindingDefinition`](#bindingdefinition)> | 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`<`string`, [`ConsumerDefinition`](#consumerdefinition)> | 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`<`string`, [`ExchangeDefinition`](#exchangedefinition)> | 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`<`string`, [`PublisherDefinition`](#publisherdefinition)> | 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`<`string`, [`QueueEntry`](#queueentry)> | 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/
|
|
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`<`string`, [`ConsumerEntry`](#consumerentry)> | 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/
|
|
500
|
-
| <a id="publishers-1"></a> `publishers?` | `Record`<`string`, [`PublisherEntry`](#publisherentry)> | 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/
|
|
499
|
+
| <a id="consumers-1"></a> `consumers?` | `Record`<`string`, [`ConsumerEntry`](#consumerentry)> | 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`<`string`, [`PublisherEntry`](#publisherentry)> | 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/
|
|
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`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractBindingsFromConsumers`<`TContract`\[`"consumers"`\]> : `object` & `TContract`\[`"consumers"`\] *extends* `Record`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractExchangeBindingsFromConsumers`<`TContract`\[`"consumers"`\]> : `object` & `TContract`\[`"publishers"`\] *extends* `Record`<`string`, [`PublisherEntry`](#publisherentry)> ? `ExtractExchangeBindingsFromPublishers`<`TContract`\[`"publishers"`\]> : `object` | [types.ts:1441](https://github.com/btravers/amqp-contract/blob/
|
|
532
|
-
| <a id="consumers-2"></a> `consumers` | `TContract`\[`"consumers"`\] *extends* `Record`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractConsumerDefinitions`<`TContract`\[`"consumers"`\]> : `object` | [types.ts:1453](https://github.com/btravers/amqp-contract/blob/
|
|
533
|
-
| <a id="exchanges-1"></a> `exchanges` | `TContract`\[`"publishers"`\] *extends* `Record`<`string`, [`PublisherEntry`](#publisherentry)> ? `ExtractExchangesFromPublishers`<`TContract`\[`"publishers"`\]> : `object` & `TContract`\[`"consumers"`\] *extends* `Record`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractExchangesFromConsumers`<`TContract`\[`"consumers"`\]> : `object` & `TContract`\[`"consumers"`\] *extends* `Record`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractDeadLetterExchangesFromConsumers`<`TContract`\[`"consumers"`\]> : `object` & `TContract`\[`"consumers"`\] *extends* `Record`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractBridgeExchangesFromConsumers`<`TContract`\[`"consumers"`\]> : `object` & `TContract`\[`"publishers"`\] *extends* `Record`<`string`, [`PublisherEntry`](#publisherentry)> ? `ExtractTargetExchangesFromPublishers`<`TContract`\[`"publishers"`\]> : `object` | [types.ts:1423](https://github.com/btravers/amqp-contract/blob/
|
|
534
|
-
| <a id="publishers-2"></a> `publishers` | `TContract`\[`"publishers"`\] *extends* `Record`<`string`, [`PublisherEntry`](#publisherentry)> ? `ExtractPublisherDefinitions`<`TContract`\[`"publishers"`\]> : `object` | [types.ts:1450](https://github.com/btravers/amqp-contract/blob/
|
|
535
|
-
| <a id="queues-1"></a> `queues` | `TContract`\[`"consumers"`\] *extends* `Record`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractQueuesFromConsumers`<`TContract`\[`"consumers"`\]> : `object` | [types.ts:1438](https://github.com/btravers/amqp-contract/blob/
|
|
531
|
+
| <a id="bindings-1"></a> `bindings` | `TContract`\[`"consumers"`\] *extends* `Record`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractBindingsFromConsumers`<`TContract`\[`"consumers"`\]> : `object` & `TContract`\[`"consumers"`\] *extends* `Record`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractExchangeBindingsFromConsumers`<`TContract`\[`"consumers"`\]> : `object` & `TContract`\[`"publishers"`\] *extends* `Record`<`string`, [`PublisherEntry`](#publisherentry)> ? `ExtractExchangeBindingsFromPublishers`<`TContract`\[`"publishers"`\]> : `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`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractConsumerDefinitions`<`TContract`\[`"consumers"`\]> : `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`<`string`, [`PublisherEntry`](#publisherentry)> ? `ExtractExchangesFromPublishers`<`TContract`\[`"publishers"`\]> : `object` & `TContract`\[`"consumers"`\] *extends* `Record`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractExchangesFromConsumers`<`TContract`\[`"consumers"`\]> : `object` & `TContract`\[`"consumers"`\] *extends* `Record`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractDeadLetterExchangesFromConsumers`<`TContract`\[`"consumers"`\]> : `object` & `TContract`\[`"consumers"`\] *extends* `Record`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractBridgeExchangesFromConsumers`<`TContract`\[`"consumers"`\]> : `object` & `TContract`\[`"publishers"`\] *extends* `Record`<`string`, [`PublisherEntry`](#publisherentry)> ? `ExtractTargetExchangesFromPublishers`<`TContract`\[`"publishers"`\]> : `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`<`string`, [`PublisherEntry`](#publisherentry)> ? `ExtractPublisherDefinitions`<`TContract`\[`"publishers"`\]> : `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`<`string`, [`ConsumerEntry`](#consumerentry)> ? `ExtractQueuesFromConsumers`<`TContract`\[`"consumers"`\]> : `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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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`<`string`, `unknown`> | Additional AMQP arguments for advanced configuration. | [builder/queue.ts:421](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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/
|
|
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/
|
|
598
|
+
| <a id="arguments-1"></a> `arguments?` | `Record`<`string`, `unknown`> | 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/
|
|
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`<`string`, `unknown`> | Additional AMQP arguments for advanced configuration. | [builder/queue.ts:532](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
625
|
-
| <a id="backoffmultiplier"></a> `backoffMultiplier?` | `number` | Exponential backoff multiplier. **Default** `2` | [builder/queue.ts:515](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
623
|
+
| <a id="arguments-2"></a> `arguments?` | `Record`<`string`, `unknown`> | 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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
701
|
-
| <a id="consumer-2"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition)<`TMessage`> | The consumer definition for processing messages | [builder/event.ts:69](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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)<`TMessage`> | 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/
|
|
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/
|
|
731
|
-
| <a id="binding-3"></a> `binding` | [`QueueBindingDefinition`](#queuebindingdefinition) | [types.ts:952](https://github.com/btravers/amqp-contract/blob/
|
|
732
|
-
| <a id="bridgeexchange-3"></a> `bridgeExchange` | [`ExchangeDefinition`](#exchangedefinition) \| `undefined` | [types.ts:957](https://github.com/btravers/amqp-contract/blob/
|
|
733
|
-
| <a id="consumer-3"></a> `consumer` | [`ConsumerDefinition`](#consumerdefinition) | [types.ts:951](https://github.com/btravers/amqp-contract/blob/
|
|
734
|
-
| <a id="deadletterexchange-3"></a> `deadLetterExchange` | [`ExchangeDefinition`](#exchangedefinition) \| `undefined` | [types.ts:955](https://github.com/btravers/amqp-contract/blob/
|
|
735
|
-
| <a id="exchange-4"></a> `exchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:953](https://github.com/btravers/amqp-contract/blob/
|
|
736
|
-
| <a id="exchangebinding-3"></a> `exchangeBinding` | [`ExchangeBindingDefinition`](#exchangebindingdefinition) \| `undefined` | [types.ts:956](https://github.com/btravers/amqp-contract/blob/
|
|
737
|
-
| <a id="queue-4"></a> `queue` | [`QueueDefinition`](#queuedefinition) | [types.ts:954](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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/
|
|
768
|
-
| <a id="arguments-3"></a> `arguments?` | `Record`<`string`, `unknown`> | Additional AMQP arguments | [builder/event.ts:44](https://github.com/btravers/amqp-contract/blob/
|
|
769
|
-
| <a id="exchange-5"></a> `exchange` | `TExchange` | The exchange to publish to | [builder/event.ts:38](https://github.com/btravers/amqp-contract/blob/
|
|
770
|
-
| <a id="message-3"></a> `message` | `TMessage` | The message definition | [builder/event.ts:40](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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`<`string`, `unknown`> | 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/
|
|
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/
|
|
797
|
-
| <a id="arguments-4"></a> `arguments?` | `Record`<`string`, `unknown`> | [types.ts:919](https://github.com/btravers/amqp-contract/blob/
|
|
798
|
-
| <a id="exchange-6"></a> `exchange` | [`ExchangeDefinition`](#exchangedefinition) | [types.ts:916](https://github.com/btravers/amqp-contract/blob/
|
|
799
|
-
| <a id="message-4"></a> `message` | [`MessageDefinition`](#messagedefinition) | [types.ts:917](https://github.com/btravers/amqp-contract/blob/
|
|
800
|
-
| <a id="routingkey-4"></a> `routingKey` | `string` \| `undefined` | [types.ts:918](https://github.com/btravers/amqp-contract/blob/
|
|
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`<`string`, `unknown`> | [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/
|
|
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`<`string`, `unknown`> | Additional AMQP arguments for the binding. | [types.ts:807](https://github.com/btravers/amqp-contract/blob/
|
|
831
|
-
| `destination` | [`ExchangeDefinition`](#exchangedefinition) | The destination exchange that will receive forwarded messages | [types.ts:802](https://github.com/btravers/amqp-contract/blob/
|
|
832
|
-
| `type` | `"exchange"` | Discriminator indicating this is an exchange-to-exchange binding | [types.ts:799](https://github.com/btravers/amqp-contract/blob/
|
|
830
|
+
| `arguments?` | `Record`<`string`, `unknown`> | 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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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`<`string`, `unknown`> | 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/
|
|
1126
|
-
| `queue` | [`QueueDefinition`](#queuedefinition) | The queue that will receive messages | [types.ts:754](https://github.com/btravers/amqp-contract/blob/
|
|
1127
|
-
| `type` | `"queue"` | Discriminator indicating this is a queue-to-exchange binding | [types.ts:751](https://github.com/btravers/amqp-contract/blob/
|
|
1125
|
+
| `arguments?` | `Record`<`string`, `unknown`> | 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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
1264
|
-
| <a id="queue-5"></a> `queue` | [`QueueDefinition`](#queuedefinition)<`TName`> | The main queue definition. | [types.ts:672](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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/
|
|
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)<`TName`> | 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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
1321
|
-
| `type` | `"quorum"` | Queue type discriminator: quorum queue. | [types.ts:549](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
1358
|
-
| `type?` | `"quorum"` | Queue type: quorum (default, recommended) | [types.ts:218](https://github.com/btravers/amqp-contract/blob/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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.
|
|
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.
|
|
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",
|