@amqp-contract/contract 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -33,7 +33,10 @@ const orderMessage = defineMessage(z.object({
33
33
  amount: z.number(),
34
34
  }));
35
35
 
36
- const orderCreatedEvent = definePublisherFirst(
36
+ const {
37
+ publisher: orderCreatedPublisher,
38
+ createConsumer: createOrderCreatedConsumer,
39
+ } = definePublisherFirst(
37
40
  ordersExchange,
38
41
  orderMessage,
39
42
  { routingKey: 'order.created' }
@@ -41,18 +44,18 @@ const orderCreatedEvent = definePublisherFirst(
41
44
 
42
45
  // Multiple queues can consume the same event
43
46
  const orderQueue = defineQueue('order-processing', { durable: true });
44
- const { consumer, binding } = orderCreatedEvent.createConsumer(orderQueue);
47
+ const { consumer, binding } = createOrderCreatedConsumer(orderQueue);
45
48
 
46
49
  // For topic exchanges, consumers can override with their own pattern
47
50
  const analyticsQueue = defineQueue('analytics', { durable: true });
48
51
  const { consumer: analyticsConsumer, binding: analyticsBinding } =
49
- orderCreatedEvent.createConsumer(analyticsQueue, 'order.*'); // Subscribe to all order events
52
+ createOrderCreatedConsumer(analyticsQueue, 'order.*'); // Subscribe to all order events
50
53
 
51
54
  const contract = defineContract({
52
55
  exchanges: { orders: ordersExchange },
53
56
  queues: { orderQueue, analyticsQueue },
54
57
  bindings: { orderBinding: binding, analyticsBinding },
55
- publishers: { orderCreated: orderCreatedEvent.publisher },
58
+ publishers: { orderCreated: orderCreatedPublisher },
56
59
  consumers: {
57
60
  processOrder: consumer,
58
61
  trackOrders: analyticsConsumer,
package/dist/index.cjs CHANGED
@@ -31,16 +31,27 @@ function defineExchange(name, type, options) {
31
31
  * @param options.durable - If true, the queue survives broker restarts (default: false)
32
32
  * @param options.exclusive - If true, the queue can only be used by the declaring connection (default: false)
33
33
  * @param options.autoDelete - If true, the queue is deleted when the last consumer unsubscribes (default: false)
34
- * @param options.arguments - Additional AMQP arguments (e.g., x-message-ttl, x-dead-letter-exchange)
34
+ * @param options.deadLetter - Dead letter configuration for handling failed messages
35
+ * @param options.arguments - Additional AMQP arguments (e.g., x-message-ttl, x-max-priority)
35
36
  * @returns A queue definition
36
37
  *
37
38
  * @example
38
39
  * ```typescript
39
- * const orderProcessingQueue = defineQueue('order-processing', {
40
+ * // Basic queue
41
+ * const orderQueue = defineQueue('order-processing', {
40
42
  * durable: true,
43
+ * });
44
+ *
45
+ * // Queue with dead letter exchange
46
+ * const dlx = defineExchange('orders-dlx', 'topic', { durable: true });
47
+ * const orderQueueWithDLX = defineQueue('order-processing', {
48
+ * durable: true,
49
+ * deadLetter: {
50
+ * exchange: dlx,
51
+ * routingKey: 'order.failed'
52
+ * },
41
53
  * arguments: {
42
54
  * 'x-message-ttl': 86400000, // 24 hours
43
- * 'x-dead-letter-exchange': 'orders-dlx'
44
55
  * }
45
56
  * });
46
57
  * ```
package/dist/index.d.cts CHANGED
@@ -103,6 +103,25 @@ type TopicExchangeDefinition = BaseExchangeDefinition & {
103
103
  * Represents any type of AMQP exchange: fanout, direct, or topic.
104
104
  */
105
105
  type ExchangeDefinition = FanoutExchangeDefinition | DirectExchangeDefinition | TopicExchangeDefinition;
106
+ /**
107
+ * Configuration for dead letter exchange (DLX) on a queue.
108
+ *
109
+ * When a message in a queue is rejected, expires, or exceeds the queue length limit,
110
+ * it can be automatically forwarded to a dead letter exchange for further processing
111
+ * or storage.
112
+ */
113
+ type DeadLetterConfig = {
114
+ /**
115
+ * The exchange to send dead-lettered messages to.
116
+ * This exchange must be declared in the contract.
117
+ */
118
+ exchange: ExchangeDefinition;
119
+ /**
120
+ * Optional routing key to use when forwarding messages to the dead letter exchange.
121
+ * If not specified, the original message routing key is used.
122
+ */
123
+ routingKey?: string;
124
+ };
106
125
  /**
107
126
  * Definition of an AMQP queue.
108
127
  *
@@ -130,6 +149,25 @@ type QueueDefinition = {
130
149
  * @default false
131
150
  */
132
151
  autoDelete?: boolean;
152
+ /**
153
+ * Dead letter configuration for handling failed or rejected messages.
154
+ *
155
+ * When configured, messages that are rejected, expire, or exceed queue limits
156
+ * will be automatically forwarded to the specified dead letter exchange.
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * const dlx = defineExchange('orders-dlx', 'topic', { durable: true });
161
+ * const queue = defineQueue('order-processing', {
162
+ * durable: true,
163
+ * deadLetter: {
164
+ * exchange: dlx,
165
+ * routingKey: 'order.failed'
166
+ * }
167
+ * });
168
+ * ```
169
+ */
170
+ deadLetter?: DeadLetterConfig;
133
171
  /**
134
172
  * Additional AMQP arguments for advanced configuration.
135
173
  *
@@ -138,15 +176,16 @@ type QueueDefinition = {
138
176
  * - `x-expires`: Queue expiration time in milliseconds
139
177
  * - `x-max-length`: Maximum number of messages in the queue
140
178
  * - `x-max-length-bytes`: Maximum size of the queue in bytes
141
- * - `x-dead-letter-exchange`: Exchange for dead-lettered messages
142
- * - `x-dead-letter-routing-key`: Routing key for dead-lettered messages
143
179
  * - `x-max-priority`: Maximum priority level for priority queues
144
180
  *
181
+ * Note: When using the `deadLetter` property, the `x-dead-letter-exchange` and
182
+ * `x-dead-letter-routing-key` arguments are automatically set and should not be
183
+ * specified in this arguments object.
184
+ *
145
185
  * @example
146
186
  * ```typescript
147
187
  * {
148
188
  * 'x-message-ttl': 86400000, // 24 hours
149
- * 'x-dead-letter-exchange': 'dlx',
150
189
  * 'x-max-priority': 10
151
190
  * }
152
191
  * ```
@@ -494,16 +533,27 @@ declare function defineExchange(name: string, type: "topic", options?: Omit<Base
494
533
  * @param options.durable - If true, the queue survives broker restarts (default: false)
495
534
  * @param options.exclusive - If true, the queue can only be used by the declaring connection (default: false)
496
535
  * @param options.autoDelete - If true, the queue is deleted when the last consumer unsubscribes (default: false)
497
- * @param options.arguments - Additional AMQP arguments (e.g., x-message-ttl, x-dead-letter-exchange)
536
+ * @param options.deadLetter - Dead letter configuration for handling failed messages
537
+ * @param options.arguments - Additional AMQP arguments (e.g., x-message-ttl, x-max-priority)
498
538
  * @returns A queue definition
499
539
  *
500
540
  * @example
501
541
  * ```typescript
502
- * const orderProcessingQueue = defineQueue('order-processing', {
542
+ * // Basic queue
543
+ * const orderQueue = defineQueue('order-processing', {
503
544
  * durable: true,
545
+ * });
546
+ *
547
+ * // Queue with dead letter exchange
548
+ * const dlx = defineExchange('orders-dlx', 'topic', { durable: true });
549
+ * const orderQueueWithDLX = defineQueue('order-processing', {
550
+ * durable: true,
551
+ * deadLetter: {
552
+ * exchange: dlx,
553
+ * routingKey: 'order.failed'
554
+ * },
504
555
  * arguments: {
505
556
  * 'x-message-ttl': 86400000, // 24 hours
506
- * 'x-dead-letter-exchange': 'orders-dlx'
507
557
  * }
508
558
  * });
509
559
  * ```
@@ -1013,15 +1063,15 @@ type PublisherFirstResultWithRoutingKey<TMessage extends MessageDefinition, TPub
1013
1063
  * );
1014
1064
  *
1015
1065
  * // Create publisher-first relationship (event pattern)
1016
- * const logEvent = definePublisherFirst(logsExchange, logMessage);
1066
+ * const { publisher: publishLog, createConsumer: createLogConsumer } = definePublisherFirst(logsExchange, logMessage);
1017
1067
  *
1018
1068
  * // Multiple queues can consume the same event
1019
1069
  * const logsQueue1 = defineQueue('logs-queue-1', { durable: true });
1020
1070
  * const logsQueue2 = defineQueue('logs-queue-2', { durable: true });
1021
1071
  *
1022
1072
  * // Use in contract
1023
- * const { consumer: consumer1, binding: binding1 } = logEvent.createConsumer(logsQueue1);
1024
- * const { consumer: consumer2, binding: binding2 } = logEvent.createConsumer(logsQueue2);
1073
+ * const { consumer: consumer1, binding: binding1 } = createLogConsumer(logsQueue1);
1074
+ * const { consumer: consumer2, binding: binding2 } = createLogConsumer(logsQueue2);
1025
1075
  *
1026
1076
  * const contract = defineContract({
1027
1077
  * exchanges: { logs: logsExchange },
@@ -1030,7 +1080,7 @@ type PublisherFirstResultWithRoutingKey<TMessage extends MessageDefinition, TPub
1030
1080
  * logBinding1: binding1,
1031
1081
  * logBinding2: binding2,
1032
1082
  * },
1033
- * publishers: { publishLog: logEvent.publisher },
1083
+ * publishers: { publishLog },
1034
1084
  * consumers: {
1035
1085
  * consumeLog1: consumer1,
1036
1086
  * consumeLog2: consumer2,
@@ -1072,7 +1122,7 @@ declare function definePublisherFirst<TMessage extends MessageDefinition>(exchan
1072
1122
  * );
1073
1123
  *
1074
1124
  * // Create publisher-first relationship with routing key
1075
- * const taskEvent = definePublisherFirst(
1125
+ * const { publisher: executeTaskPublisher, createConsumer: createTaskConsumer } = definePublisherFirst(
1076
1126
  * tasksExchange,
1077
1127
  * taskMessage,
1078
1128
  * { routingKey: 'task.execute' }
@@ -1080,13 +1130,13 @@ declare function definePublisherFirst<TMessage extends MessageDefinition>(exchan
1080
1130
  *
1081
1131
  * // Use in contract - routing key is consistent across publisher and bindings
1082
1132
  * const taskQueue = defineQueue('task-queue', { durable: true });
1083
- * const { consumer, binding } = taskEvent.createConsumer(taskQueue);
1133
+ * const { consumer, binding } = createTaskConsumer(taskQueue);
1084
1134
  *
1085
1135
  * const contract = defineContract({
1086
1136
  * exchanges: { tasks: tasksExchange },
1087
1137
  * queues: { taskQueue },
1088
1138
  * bindings: { taskBinding: binding },
1089
- * publishers: { executeTask: taskEvent.publisher },
1139
+ * publishers: { executeTask: executeTaskPublisher },
1090
1140
  * consumers: { processTask: consumer },
1091
1141
  * });
1092
1142
  * ```
@@ -1127,7 +1177,7 @@ declare function definePublisherFirst<TMessage extends MessageDefinition, TRouti
1127
1177
  * );
1128
1178
  *
1129
1179
  * // Create publisher-first relationship with concrete routing key
1130
- * const orderCreatedEvent = definePublisherFirst(
1180
+ * const { publisher: orderCreatedPublisher, createConsumer: createOrderCreatedConsumer } = definePublisherFirst(
1131
1181
  * ordersExchange,
1132
1182
  * orderMessage,
1133
1183
  * { routingKey: 'order.created' } // Concrete key
@@ -1139,9 +1189,9 @@ declare function definePublisherFirst<TMessage extends MessageDefinition, TRouti
1139
1189
  *
1140
1190
  * // Use in contract
1141
1191
  * const { consumer: processConsumer, binding: processBinding } =
1142
- * orderCreatedEvent.createConsumer(orderQueue); // Uses 'order.created'
1192
+ * createOrderCreatedConsumer(orderQueue); // Uses 'order.created'
1143
1193
  * const { consumer: allOrdersConsumer, binding: allOrdersBinding } =
1144
- * orderCreatedEvent.createConsumer(allOrdersQueue, 'order.*'); // Uses pattern
1194
+ * createOrderCreatedConsumer(allOrdersQueue, 'order.*'); // Uses pattern
1145
1195
  *
1146
1196
  * const contract = defineContract({
1147
1197
  * exchanges: { orders: ordersExchange },
@@ -1150,7 +1200,7 @@ declare function definePublisherFirst<TMessage extends MessageDefinition, TRouti
1150
1200
  * orderBinding: processBinding,
1151
1201
  * allOrdersBinding,
1152
1202
  * },
1153
- * publishers: { orderCreated: orderCreatedEvent.publisher },
1203
+ * publishers: { orderCreated: orderCreatedPublisher },
1154
1204
  * consumers: {
1155
1205
  * processOrder: processConsumer,
1156
1206
  * trackAllOrders: allOrdersConsumer,
@@ -1248,7 +1298,7 @@ type ConsumerFirstResultWithRoutingKey<TMessage extends MessageDefinition, TCons
1248
1298
  * );
1249
1299
  *
1250
1300
  * // Create consumer-first relationship
1251
- * const notificationConsumerFirst = defineConsumerFirst(
1301
+ * const { consumer: processNotificationConsumer, binding: notificationBinding, createPublisher: createNotificationPublisher } = defineConsumerFirst(
1252
1302
  * notificationsQueue,
1253
1303
  * notificationsExchange,
1254
1304
  * notificationMessage
@@ -1258,9 +1308,9 @@ type ConsumerFirstResultWithRoutingKey<TMessage extends MessageDefinition, TCons
1258
1308
  * const contract = defineContract({
1259
1309
  * exchanges: { notifications: notificationsExchange },
1260
1310
  * queues: { notificationsQueue },
1261
- * bindings: { notificationBinding: notificationConsumerFirst.binding },
1262
- * publishers: { sendNotification: notificationConsumerFirst.createPublisher() },
1263
- * consumers: { processNotification: notificationConsumerFirst.consumer },
1311
+ * bindings: { notificationBinding },
1312
+ * publishers: { sendNotification: createNotificationPublisher() },
1313
+ * consumers: { processNotification: processNotificationConsumer },
1264
1314
  * });
1265
1315
  * ```
1266
1316
  */
@@ -1301,7 +1351,7 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition>(queue:
1301
1351
  * );
1302
1352
  *
1303
1353
  * // Create consumer-first relationship with routing key
1304
- * const taskConsumerFirst = defineConsumerFirst(
1354
+ * const { consumer: processTaskConsumer, binding: taskBinding, createPublisher: createTaskPublisher } = defineConsumerFirst(
1305
1355
  * taskQueue,
1306
1356
  * tasksExchange,
1307
1357
  * taskMessage,
@@ -1312,9 +1362,9 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition>(queue:
1312
1362
  * const contract = defineContract({
1313
1363
  * exchanges: { tasks: tasksExchange },
1314
1364
  * queues: { taskQueue },
1315
- * bindings: { taskBinding: taskConsumerFirst.binding },
1316
- * publishers: { executeTask: taskConsumerFirst.createPublisher() },
1317
- * consumers: { processTask: taskConsumerFirst.consumer },
1365
+ * bindings: { taskBinding },
1366
+ * publishers: { executeTask: createTaskPublisher() },
1367
+ * consumers: { processTask: processTaskConsumer },
1318
1368
  * });
1319
1369
  * ```
1320
1370
  */
@@ -1356,7 +1406,7 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition, TRoutin
1356
1406
  * );
1357
1407
  *
1358
1408
  * // Create consumer-first relationship with pattern
1359
- * const orderConsumerFirst = defineConsumerFirst(
1409
+ * const { consumer: processOrderConsumer, binding: orderBinding, createPublisher: createOrderPublisher } = defineConsumerFirst(
1360
1410
  * orderQueue,
1361
1411
  * ordersExchange,
1362
1412
  * orderMessage,
@@ -1367,12 +1417,12 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition, TRoutin
1367
1417
  * const contract = defineContract({
1368
1418
  * exchanges: { orders: ordersExchange },
1369
1419
  * queues: { orderQueue },
1370
- * bindings: { orderBinding: orderConsumerFirst.binding },
1420
+ * bindings: { orderBinding },
1371
1421
  * publishers: {
1372
- * orderCreated: orderConsumerFirst.createPublisher('order.created'), // Concrete key
1373
- * orderUpdated: orderConsumerFirst.createPublisher('order.updated'), // Concrete key
1422
+ * orderCreated: createOrderPublisher('order.created'), // Concrete key
1423
+ * orderUpdated: createOrderPublisher('order.updated'), // Concrete key
1374
1424
  * },
1375
- * consumers: { processOrder: orderConsumerFirst.consumer },
1425
+ * consumers: { processOrder: processOrderConsumer },
1376
1426
  * });
1377
1427
  * ```
1378
1428
  */
@@ -1383,5 +1433,5 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition, TRoutin
1383
1433
  exchange: TopicExchangeDefinition;
1384
1434
  }>>;
1385
1435
  //#endregion
1386
- export { type AnySchema, type BaseExchangeDefinition, type BindingDefinition, type BindingPattern, type ConsumerDefinition, type ConsumerFirstResult, type ConsumerFirstResultWithRoutingKey, type ContractDefinition, type DirectExchangeDefinition, type ExchangeBindingDefinition, type ExchangeDefinition, type FanoutExchangeDefinition, type InferConsumerNames, type InferPublisherNames, type MatchingRoutingKey, type MessageDefinition, type PublisherDefinition, type PublisherFirstResult, type PublisherFirstResultWithRoutingKey, type QueueBindingDefinition, type QueueDefinition, type RoutingKey, type TopicExchangeDefinition, defineConsumer, defineConsumerFirst, defineContract, defineExchange, defineExchangeBinding, defineMessage, definePublisher, definePublisherFirst, defineQueue, defineQueueBinding };
1436
+ export { type AnySchema, type BaseExchangeDefinition, type BindingDefinition, type BindingPattern, type ConsumerDefinition, type ConsumerFirstResult, type ConsumerFirstResultWithRoutingKey, type ContractDefinition, type DeadLetterConfig, type DirectExchangeDefinition, type ExchangeBindingDefinition, type ExchangeDefinition, type FanoutExchangeDefinition, type InferConsumerNames, type InferPublisherNames, type MatchingRoutingKey, type MessageDefinition, type PublisherDefinition, type PublisherFirstResult, type PublisherFirstResultWithRoutingKey, type QueueBindingDefinition, type QueueDefinition, type RoutingKey, type TopicExchangeDefinition, defineConsumer, defineConsumerFirst, defineContract, defineExchange, defineExchangeBinding, defineMessage, definePublisher, definePublisherFirst, defineQueue, defineQueueBinding };
1387
1437
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -103,6 +103,25 @@ type TopicExchangeDefinition = BaseExchangeDefinition & {
103
103
  * Represents any type of AMQP exchange: fanout, direct, or topic.
104
104
  */
105
105
  type ExchangeDefinition = FanoutExchangeDefinition | DirectExchangeDefinition | TopicExchangeDefinition;
106
+ /**
107
+ * Configuration for dead letter exchange (DLX) on a queue.
108
+ *
109
+ * When a message in a queue is rejected, expires, or exceeds the queue length limit,
110
+ * it can be automatically forwarded to a dead letter exchange for further processing
111
+ * or storage.
112
+ */
113
+ type DeadLetterConfig = {
114
+ /**
115
+ * The exchange to send dead-lettered messages to.
116
+ * This exchange must be declared in the contract.
117
+ */
118
+ exchange: ExchangeDefinition;
119
+ /**
120
+ * Optional routing key to use when forwarding messages to the dead letter exchange.
121
+ * If not specified, the original message routing key is used.
122
+ */
123
+ routingKey?: string;
124
+ };
106
125
  /**
107
126
  * Definition of an AMQP queue.
108
127
  *
@@ -130,6 +149,25 @@ type QueueDefinition = {
130
149
  * @default false
131
150
  */
132
151
  autoDelete?: boolean;
152
+ /**
153
+ * Dead letter configuration for handling failed or rejected messages.
154
+ *
155
+ * When configured, messages that are rejected, expire, or exceed queue limits
156
+ * will be automatically forwarded to the specified dead letter exchange.
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * const dlx = defineExchange('orders-dlx', 'topic', { durable: true });
161
+ * const queue = defineQueue('order-processing', {
162
+ * durable: true,
163
+ * deadLetter: {
164
+ * exchange: dlx,
165
+ * routingKey: 'order.failed'
166
+ * }
167
+ * });
168
+ * ```
169
+ */
170
+ deadLetter?: DeadLetterConfig;
133
171
  /**
134
172
  * Additional AMQP arguments for advanced configuration.
135
173
  *
@@ -138,15 +176,16 @@ type QueueDefinition = {
138
176
  * - `x-expires`: Queue expiration time in milliseconds
139
177
  * - `x-max-length`: Maximum number of messages in the queue
140
178
  * - `x-max-length-bytes`: Maximum size of the queue in bytes
141
- * - `x-dead-letter-exchange`: Exchange for dead-lettered messages
142
- * - `x-dead-letter-routing-key`: Routing key for dead-lettered messages
143
179
  * - `x-max-priority`: Maximum priority level for priority queues
144
180
  *
181
+ * Note: When using the `deadLetter` property, the `x-dead-letter-exchange` and
182
+ * `x-dead-letter-routing-key` arguments are automatically set and should not be
183
+ * specified in this arguments object.
184
+ *
145
185
  * @example
146
186
  * ```typescript
147
187
  * {
148
188
  * 'x-message-ttl': 86400000, // 24 hours
149
- * 'x-dead-letter-exchange': 'dlx',
150
189
  * 'x-max-priority': 10
151
190
  * }
152
191
  * ```
@@ -494,16 +533,27 @@ declare function defineExchange(name: string, type: "topic", options?: Omit<Base
494
533
  * @param options.durable - If true, the queue survives broker restarts (default: false)
495
534
  * @param options.exclusive - If true, the queue can only be used by the declaring connection (default: false)
496
535
  * @param options.autoDelete - If true, the queue is deleted when the last consumer unsubscribes (default: false)
497
- * @param options.arguments - Additional AMQP arguments (e.g., x-message-ttl, x-dead-letter-exchange)
536
+ * @param options.deadLetter - Dead letter configuration for handling failed messages
537
+ * @param options.arguments - Additional AMQP arguments (e.g., x-message-ttl, x-max-priority)
498
538
  * @returns A queue definition
499
539
  *
500
540
  * @example
501
541
  * ```typescript
502
- * const orderProcessingQueue = defineQueue('order-processing', {
542
+ * // Basic queue
543
+ * const orderQueue = defineQueue('order-processing', {
503
544
  * durable: true,
545
+ * });
546
+ *
547
+ * // Queue with dead letter exchange
548
+ * const dlx = defineExchange('orders-dlx', 'topic', { durable: true });
549
+ * const orderQueueWithDLX = defineQueue('order-processing', {
550
+ * durable: true,
551
+ * deadLetter: {
552
+ * exchange: dlx,
553
+ * routingKey: 'order.failed'
554
+ * },
504
555
  * arguments: {
505
556
  * 'x-message-ttl': 86400000, // 24 hours
506
- * 'x-dead-letter-exchange': 'orders-dlx'
507
557
  * }
508
558
  * });
509
559
  * ```
@@ -1013,15 +1063,15 @@ type PublisherFirstResultWithRoutingKey<TMessage extends MessageDefinition, TPub
1013
1063
  * );
1014
1064
  *
1015
1065
  * // Create publisher-first relationship (event pattern)
1016
- * const logEvent = definePublisherFirst(logsExchange, logMessage);
1066
+ * const { publisher: publishLog, createConsumer: createLogConsumer } = definePublisherFirst(logsExchange, logMessage);
1017
1067
  *
1018
1068
  * // Multiple queues can consume the same event
1019
1069
  * const logsQueue1 = defineQueue('logs-queue-1', { durable: true });
1020
1070
  * const logsQueue2 = defineQueue('logs-queue-2', { durable: true });
1021
1071
  *
1022
1072
  * // Use in contract
1023
- * const { consumer: consumer1, binding: binding1 } = logEvent.createConsumer(logsQueue1);
1024
- * const { consumer: consumer2, binding: binding2 } = logEvent.createConsumer(logsQueue2);
1073
+ * const { consumer: consumer1, binding: binding1 } = createLogConsumer(logsQueue1);
1074
+ * const { consumer: consumer2, binding: binding2 } = createLogConsumer(logsQueue2);
1025
1075
  *
1026
1076
  * const contract = defineContract({
1027
1077
  * exchanges: { logs: logsExchange },
@@ -1030,7 +1080,7 @@ type PublisherFirstResultWithRoutingKey<TMessage extends MessageDefinition, TPub
1030
1080
  * logBinding1: binding1,
1031
1081
  * logBinding2: binding2,
1032
1082
  * },
1033
- * publishers: { publishLog: logEvent.publisher },
1083
+ * publishers: { publishLog },
1034
1084
  * consumers: {
1035
1085
  * consumeLog1: consumer1,
1036
1086
  * consumeLog2: consumer2,
@@ -1072,7 +1122,7 @@ declare function definePublisherFirst<TMessage extends MessageDefinition>(exchan
1072
1122
  * );
1073
1123
  *
1074
1124
  * // Create publisher-first relationship with routing key
1075
- * const taskEvent = definePublisherFirst(
1125
+ * const { publisher: executeTaskPublisher, createConsumer: createTaskConsumer } = definePublisherFirst(
1076
1126
  * tasksExchange,
1077
1127
  * taskMessage,
1078
1128
  * { routingKey: 'task.execute' }
@@ -1080,13 +1130,13 @@ declare function definePublisherFirst<TMessage extends MessageDefinition>(exchan
1080
1130
  *
1081
1131
  * // Use in contract - routing key is consistent across publisher and bindings
1082
1132
  * const taskQueue = defineQueue('task-queue', { durable: true });
1083
- * const { consumer, binding } = taskEvent.createConsumer(taskQueue);
1133
+ * const { consumer, binding } = createTaskConsumer(taskQueue);
1084
1134
  *
1085
1135
  * const contract = defineContract({
1086
1136
  * exchanges: { tasks: tasksExchange },
1087
1137
  * queues: { taskQueue },
1088
1138
  * bindings: { taskBinding: binding },
1089
- * publishers: { executeTask: taskEvent.publisher },
1139
+ * publishers: { executeTask: executeTaskPublisher },
1090
1140
  * consumers: { processTask: consumer },
1091
1141
  * });
1092
1142
  * ```
@@ -1127,7 +1177,7 @@ declare function definePublisherFirst<TMessage extends MessageDefinition, TRouti
1127
1177
  * );
1128
1178
  *
1129
1179
  * // Create publisher-first relationship with concrete routing key
1130
- * const orderCreatedEvent = definePublisherFirst(
1180
+ * const { publisher: orderCreatedPublisher, createConsumer: createOrderCreatedConsumer } = definePublisherFirst(
1131
1181
  * ordersExchange,
1132
1182
  * orderMessage,
1133
1183
  * { routingKey: 'order.created' } // Concrete key
@@ -1139,9 +1189,9 @@ declare function definePublisherFirst<TMessage extends MessageDefinition, TRouti
1139
1189
  *
1140
1190
  * // Use in contract
1141
1191
  * const { consumer: processConsumer, binding: processBinding } =
1142
- * orderCreatedEvent.createConsumer(orderQueue); // Uses 'order.created'
1192
+ * createOrderCreatedConsumer(orderQueue); // Uses 'order.created'
1143
1193
  * const { consumer: allOrdersConsumer, binding: allOrdersBinding } =
1144
- * orderCreatedEvent.createConsumer(allOrdersQueue, 'order.*'); // Uses pattern
1194
+ * createOrderCreatedConsumer(allOrdersQueue, 'order.*'); // Uses pattern
1145
1195
  *
1146
1196
  * const contract = defineContract({
1147
1197
  * exchanges: { orders: ordersExchange },
@@ -1150,7 +1200,7 @@ declare function definePublisherFirst<TMessage extends MessageDefinition, TRouti
1150
1200
  * orderBinding: processBinding,
1151
1201
  * allOrdersBinding,
1152
1202
  * },
1153
- * publishers: { orderCreated: orderCreatedEvent.publisher },
1203
+ * publishers: { orderCreated: orderCreatedPublisher },
1154
1204
  * consumers: {
1155
1205
  * processOrder: processConsumer,
1156
1206
  * trackAllOrders: allOrdersConsumer,
@@ -1248,7 +1298,7 @@ type ConsumerFirstResultWithRoutingKey<TMessage extends MessageDefinition, TCons
1248
1298
  * );
1249
1299
  *
1250
1300
  * // Create consumer-first relationship
1251
- * const notificationConsumerFirst = defineConsumerFirst(
1301
+ * const { consumer: processNotificationConsumer, binding: notificationBinding, createPublisher: createNotificationPublisher } = defineConsumerFirst(
1252
1302
  * notificationsQueue,
1253
1303
  * notificationsExchange,
1254
1304
  * notificationMessage
@@ -1258,9 +1308,9 @@ type ConsumerFirstResultWithRoutingKey<TMessage extends MessageDefinition, TCons
1258
1308
  * const contract = defineContract({
1259
1309
  * exchanges: { notifications: notificationsExchange },
1260
1310
  * queues: { notificationsQueue },
1261
- * bindings: { notificationBinding: notificationConsumerFirst.binding },
1262
- * publishers: { sendNotification: notificationConsumerFirst.createPublisher() },
1263
- * consumers: { processNotification: notificationConsumerFirst.consumer },
1311
+ * bindings: { notificationBinding },
1312
+ * publishers: { sendNotification: createNotificationPublisher() },
1313
+ * consumers: { processNotification: processNotificationConsumer },
1264
1314
  * });
1265
1315
  * ```
1266
1316
  */
@@ -1301,7 +1351,7 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition>(queue:
1301
1351
  * );
1302
1352
  *
1303
1353
  * // Create consumer-first relationship with routing key
1304
- * const taskConsumerFirst = defineConsumerFirst(
1354
+ * const { consumer: processTaskConsumer, binding: taskBinding, createPublisher: createTaskPublisher } = defineConsumerFirst(
1305
1355
  * taskQueue,
1306
1356
  * tasksExchange,
1307
1357
  * taskMessage,
@@ -1312,9 +1362,9 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition>(queue:
1312
1362
  * const contract = defineContract({
1313
1363
  * exchanges: { tasks: tasksExchange },
1314
1364
  * queues: { taskQueue },
1315
- * bindings: { taskBinding: taskConsumerFirst.binding },
1316
- * publishers: { executeTask: taskConsumerFirst.createPublisher() },
1317
- * consumers: { processTask: taskConsumerFirst.consumer },
1365
+ * bindings: { taskBinding },
1366
+ * publishers: { executeTask: createTaskPublisher() },
1367
+ * consumers: { processTask: processTaskConsumer },
1318
1368
  * });
1319
1369
  * ```
1320
1370
  */
@@ -1356,7 +1406,7 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition, TRoutin
1356
1406
  * );
1357
1407
  *
1358
1408
  * // Create consumer-first relationship with pattern
1359
- * const orderConsumerFirst = defineConsumerFirst(
1409
+ * const { consumer: processOrderConsumer, binding: orderBinding, createPublisher: createOrderPublisher } = defineConsumerFirst(
1360
1410
  * orderQueue,
1361
1411
  * ordersExchange,
1362
1412
  * orderMessage,
@@ -1367,12 +1417,12 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition, TRoutin
1367
1417
  * const contract = defineContract({
1368
1418
  * exchanges: { orders: ordersExchange },
1369
1419
  * queues: { orderQueue },
1370
- * bindings: { orderBinding: orderConsumerFirst.binding },
1420
+ * bindings: { orderBinding },
1371
1421
  * publishers: {
1372
- * orderCreated: orderConsumerFirst.createPublisher('order.created'), // Concrete key
1373
- * orderUpdated: orderConsumerFirst.createPublisher('order.updated'), // Concrete key
1422
+ * orderCreated: createOrderPublisher('order.created'), // Concrete key
1423
+ * orderUpdated: createOrderPublisher('order.updated'), // Concrete key
1374
1424
  * },
1375
- * consumers: { processOrder: orderConsumerFirst.consumer },
1425
+ * consumers: { processOrder: processOrderConsumer },
1376
1426
  * });
1377
1427
  * ```
1378
1428
  */
@@ -1383,5 +1433,5 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition, TRoutin
1383
1433
  exchange: TopicExchangeDefinition;
1384
1434
  }>>;
1385
1435
  //#endregion
1386
- export { type AnySchema, type BaseExchangeDefinition, type BindingDefinition, type BindingPattern, type ConsumerDefinition, type ConsumerFirstResult, type ConsumerFirstResultWithRoutingKey, type ContractDefinition, type DirectExchangeDefinition, type ExchangeBindingDefinition, type ExchangeDefinition, type FanoutExchangeDefinition, type InferConsumerNames, type InferPublisherNames, type MatchingRoutingKey, type MessageDefinition, type PublisherDefinition, type PublisherFirstResult, type PublisherFirstResultWithRoutingKey, type QueueBindingDefinition, type QueueDefinition, type RoutingKey, type TopicExchangeDefinition, defineConsumer, defineConsumerFirst, defineContract, defineExchange, defineExchangeBinding, defineMessage, definePublisher, definePublisherFirst, defineQueue, defineQueueBinding };
1436
+ export { type AnySchema, type BaseExchangeDefinition, type BindingDefinition, type BindingPattern, type ConsumerDefinition, type ConsumerFirstResult, type ConsumerFirstResultWithRoutingKey, type ContractDefinition, type DeadLetterConfig, type DirectExchangeDefinition, type ExchangeBindingDefinition, type ExchangeDefinition, type FanoutExchangeDefinition, type InferConsumerNames, type InferPublisherNames, type MatchingRoutingKey, type MessageDefinition, type PublisherDefinition, type PublisherFirstResult, type PublisherFirstResultWithRoutingKey, type QueueBindingDefinition, type QueueDefinition, type RoutingKey, type TopicExchangeDefinition, defineConsumer, defineConsumerFirst, defineContract, defineExchange, defineExchangeBinding, defineMessage, definePublisher, definePublisherFirst, defineQueue, defineQueueBinding };
1387
1437
  //# sourceMappingURL=index.d.mts.map