@amqp-contract/contract 0.5.0 → 0.7.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
@@ -23,36 +23,43 @@ pnpm add @amqp-contract/contract
23
23
  For robust contract definitions with guaranteed consistency, use `definePublisherFirst` (for events) or `defineConsumerFirst` (for commands):
24
24
 
25
25
  ```typescript
26
- import { definePublisherFirst, defineContract, defineExchange, defineQueue, defineMessage } from '@amqp-contract/contract';
27
- import { z } from 'zod';
26
+ import {
27
+ definePublisherFirst,
28
+ defineContract,
29
+ defineExchange,
30
+ defineQueue,
31
+ defineMessage,
32
+ } from "@amqp-contract/contract";
33
+ import { z } from "zod";
28
34
 
29
35
  // Event-oriented pattern: publisher doesn't need to know about queues
30
- const ordersExchange = defineExchange('orders', 'topic', { durable: true });
31
- const orderMessage = defineMessage(z.object({
32
- orderId: z.string(),
33
- amount: z.number(),
34
- }));
35
-
36
- const orderCreatedEvent = definePublisherFirst(
37
- ordersExchange,
38
- orderMessage,
39
- { routingKey: 'order.created' }
36
+ const ordersExchange = defineExchange("orders", "topic", { durable: true });
37
+ const orderMessage = defineMessage(
38
+ z.object({
39
+ orderId: z.string(),
40
+ amount: z.number(),
41
+ }),
40
42
  );
41
43
 
44
+ const { publisher: orderCreatedPublisher, createConsumer: createOrderCreatedConsumer } =
45
+ definePublisherFirst(ordersExchange, orderMessage, { routingKey: "order.created" });
46
+
42
47
  // Multiple queues can consume the same event
43
- const orderQueue = defineQueue('order-processing', { durable: true });
44
- const { consumer, binding } = orderCreatedEvent.createConsumer(orderQueue);
48
+ const orderQueue = defineQueue("order-processing", { durable: true });
49
+ const { consumer, binding } = createOrderCreatedConsumer(orderQueue);
45
50
 
46
51
  // For topic exchanges, consumers can override with their own pattern
47
- const analyticsQueue = defineQueue('analytics', { durable: true });
48
- const { consumer: analyticsConsumer, binding: analyticsBinding } =
49
- orderCreatedEvent.createConsumer(analyticsQueue, 'order.*'); // Subscribe to all order events
52
+ const analyticsQueue = defineQueue("analytics", { durable: true });
53
+ const { consumer: analyticsConsumer, binding: analyticsBinding } = createOrderCreatedConsumer(
54
+ analyticsQueue,
55
+ "order.*",
56
+ ); // Subscribe to all order events
50
57
 
51
58
  const contract = defineContract({
52
59
  exchanges: { orders: ordersExchange },
53
60
  queues: { orderQueue, analyticsQueue },
54
61
  bindings: { orderBinding: binding, analyticsBinding },
55
- publishers: { orderCreated: orderCreatedEvent.publisher },
62
+ publishers: { orderCreated: orderCreatedPublisher },
56
63
  consumers: {
57
64
  processOrder: consumer,
58
65
  trackOrders: analyticsConsumer,
package/dist/index.cjs CHANGED
@@ -31,24 +31,54 @@ 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.maxPriority - Maximum priority level for priority queue (1-255, recommended: 1-10). Sets x-max-priority argument.
36
+ * @param options.arguments - Additional AMQP arguments (e.g., x-message-ttl)
35
37
  * @returns A queue definition
36
38
  *
37
39
  * @example
38
40
  * ```typescript
39
- * const orderProcessingQueue = defineQueue('order-processing', {
41
+ * // Basic queue
42
+ * const orderQueue = defineQueue('order-processing', {
40
43
  * durable: true,
44
+ * });
45
+ *
46
+ * // Priority queue with max priority of 10
47
+ * const taskQueue = defineQueue('urgent-tasks', {
48
+ * durable: true,
49
+ * maxPriority: 10,
50
+ * });
51
+ *
52
+ * // Queue with dead letter exchange
53
+ * const dlx = defineExchange('orders-dlx', 'topic', { durable: true });
54
+ * const orderQueueWithDLX = defineQueue('order-processing', {
55
+ * durable: true,
56
+ * deadLetter: {
57
+ * exchange: dlx,
58
+ * routingKey: 'order.failed'
59
+ * },
41
60
  * arguments: {
42
61
  * 'x-message-ttl': 86400000, // 24 hours
43
- * 'x-dead-letter-exchange': 'orders-dlx'
44
62
  * }
45
63
  * });
46
64
  * ```
47
65
  */
48
66
  function defineQueue(name, options) {
67
+ const { maxPriority, ...queueOptions } = options ?? {};
68
+ if (maxPriority !== void 0) {
69
+ if (maxPriority < 1 || maxPriority > 255) throw new Error(`Invalid maxPriority: ${maxPriority}. Must be between 1 and 255. Recommended range: 1-10.`);
70
+ return {
71
+ name,
72
+ ...queueOptions,
73
+ arguments: {
74
+ ...queueOptions.arguments,
75
+ "x-max-priority": maxPriority
76
+ }
77
+ };
78
+ }
49
79
  return {
50
80
  name,
51
- ...options
81
+ ...queueOptions
52
82
  };
53
83
  }
54
84
  /**
package/dist/index.d.cts CHANGED
@@ -12,6 +12,35 @@ import { StandardSchemaV1 } from "@standard-schema/spec";
12
12
  * @see https://github.com/standard-schema/standard-schema
13
13
  */
14
14
  type AnySchema = StandardSchemaV1;
15
+ /**
16
+ * Supported compression algorithms for message payloads.
17
+ *
18
+ * - `gzip`: GZIP compression (standard, widely supported, good compression ratio)
19
+ * - `deflate`: DEFLATE compression (faster than gzip, slightly less compression)
20
+ *
21
+ * Compression is configured at runtime via PublishOptions when calling
22
+ * AmqpClient.publish, not at publisher definition time.
23
+ *
24
+ * When compression is enabled, the message payload is compressed before publishing
25
+ * and automatically decompressed when consuming. The `content-encoding` AMQP
26
+ * message property is set to indicate the compression algorithm used.
27
+ *
28
+ * To disable compression, simply omit the `compression` option (it's optional).
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * // Define a publisher without compression configuration
33
+ * const orderCreatedPublisher = definePublisher(exchange, message, {
34
+ * routingKey: "order.created",
35
+ * });
36
+ *
37
+ * // Later, choose whether to compress at publish time
38
+ * await client.publish("orderCreated", payload, {
39
+ * compression: "gzip",
40
+ * });
41
+ * ```
42
+ */
43
+ type CompressionAlgorithm = "gzip" | "deflate";
15
44
  /**
16
45
  * Base definition of an AMQP exchange.
17
46
  *
@@ -103,6 +132,25 @@ type TopicExchangeDefinition = BaseExchangeDefinition & {
103
132
  * Represents any type of AMQP exchange: fanout, direct, or topic.
104
133
  */
105
134
  type ExchangeDefinition = FanoutExchangeDefinition | DirectExchangeDefinition | TopicExchangeDefinition;
135
+ /**
136
+ * Configuration for dead letter exchange (DLX) on a queue.
137
+ *
138
+ * When a message in a queue is rejected, expires, or exceeds the queue length limit,
139
+ * it can be automatically forwarded to a dead letter exchange for further processing
140
+ * or storage.
141
+ */
142
+ type DeadLetterConfig = {
143
+ /**
144
+ * The exchange to send dead-lettered messages to.
145
+ * This exchange must be declared in the contract.
146
+ */
147
+ exchange: ExchangeDefinition;
148
+ /**
149
+ * Optional routing key to use when forwarding messages to the dead letter exchange.
150
+ * If not specified, the original message routing key is used.
151
+ */
152
+ routingKey?: string;
153
+ };
106
154
  /**
107
155
  * Definition of an AMQP queue.
108
156
  *
@@ -130,6 +178,25 @@ type QueueDefinition = {
130
178
  * @default false
131
179
  */
132
180
  autoDelete?: boolean;
181
+ /**
182
+ * Dead letter configuration for handling failed or rejected messages.
183
+ *
184
+ * When configured, messages that are rejected, expire, or exceed queue limits
185
+ * will be automatically forwarded to the specified dead letter exchange.
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * const dlx = defineExchange('orders-dlx', 'topic', { durable: true });
190
+ * const queue = defineQueue('order-processing', {
191
+ * durable: true,
192
+ * deadLetter: {
193
+ * exchange: dlx,
194
+ * routingKey: 'order.failed'
195
+ * }
196
+ * });
197
+ * ```
198
+ */
199
+ deadLetter?: DeadLetterConfig;
133
200
  /**
134
201
  * Additional AMQP arguments for advanced configuration.
135
202
  *
@@ -138,15 +205,16 @@ type QueueDefinition = {
138
205
  * - `x-expires`: Queue expiration time in milliseconds
139
206
  * - `x-max-length`: Maximum number of messages in the queue
140
207
  * - `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
208
  * - `x-max-priority`: Maximum priority level for priority queues
144
209
  *
210
+ * Note: When using the `deadLetter` property, the `x-dead-letter-exchange` and
211
+ * `x-dead-letter-routing-key` arguments are automatically set and should not be
212
+ * specified in this arguments object.
213
+ *
145
214
  * @example
146
215
  * ```typescript
147
216
  * {
148
217
  * 'x-message-ttl': 86400000, // 24 hours
149
- * 'x-dead-letter-exchange': 'dlx',
150
218
  * 'x-max-priority': 10
151
219
  * }
152
220
  * ```
@@ -267,6 +335,9 @@ type BindingDefinition = QueueBindingDefinition | ExchangeBindingDefinition;
267
335
  * A publisher sends messages to an exchange with automatic schema validation.
268
336
  * The message payload is validated against the schema before being sent to RabbitMQ.
269
337
  *
338
+ * Compression can be optionally applied at publish time by specifying a compression
339
+ * algorithm when calling the publish method.
340
+ *
270
341
  * @template TMessage - The message definition with payload schema
271
342
  *
272
343
  * @example
@@ -300,6 +371,8 @@ type PublisherDefinition<TMessage extends MessageDefinition = MessageDefinition>
300
371
  *
301
372
  * A consumer receives and processes messages from a queue with automatic schema validation.
302
373
  * The message payload is validated against the schema before being passed to your handler.
374
+ * If the message is compressed (indicated by the content-encoding header), it will be
375
+ * automatically decompressed before validation.
303
376
  *
304
377
  * @template TMessage - The message definition with payload schema
305
378
  *
@@ -494,21 +567,41 @@ declare function defineExchange(name: string, type: "topic", options?: Omit<Base
494
567
  * @param options.durable - If true, the queue survives broker restarts (default: false)
495
568
  * @param options.exclusive - If true, the queue can only be used by the declaring connection (default: false)
496
569
  * @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)
570
+ * @param options.deadLetter - Dead letter configuration for handling failed messages
571
+ * @param options.maxPriority - Maximum priority level for priority queue (1-255, recommended: 1-10). Sets x-max-priority argument.
572
+ * @param options.arguments - Additional AMQP arguments (e.g., x-message-ttl)
498
573
  * @returns A queue definition
499
574
  *
500
575
  * @example
501
576
  * ```typescript
502
- * const orderProcessingQueue = defineQueue('order-processing', {
577
+ * // Basic queue
578
+ * const orderQueue = defineQueue('order-processing', {
579
+ * durable: true,
580
+ * });
581
+ *
582
+ * // Priority queue with max priority of 10
583
+ * const taskQueue = defineQueue('urgent-tasks', {
503
584
  * durable: true,
585
+ * maxPriority: 10,
586
+ * });
587
+ *
588
+ * // Queue with dead letter exchange
589
+ * const dlx = defineExchange('orders-dlx', 'topic', { durable: true });
590
+ * const orderQueueWithDLX = defineQueue('order-processing', {
591
+ * durable: true,
592
+ * deadLetter: {
593
+ * exchange: dlx,
594
+ * routingKey: 'order.failed'
595
+ * },
504
596
  * arguments: {
505
597
  * 'x-message-ttl': 86400000, // 24 hours
506
- * 'x-dead-letter-exchange': 'orders-dlx'
507
598
  * }
508
599
  * });
509
600
  * ```
510
601
  */
511
- declare function defineQueue(name: string, options?: Omit<QueueDefinition, "name">): QueueDefinition;
602
+ declare function defineQueue(name: string, options?: Omit<QueueDefinition, "name"> & {
603
+ maxPriority?: number;
604
+ }): QueueDefinition;
512
605
  /**
513
606
  * Define a message definition with payload and optional headers/metadata.
514
607
  *
@@ -1013,15 +1106,15 @@ type PublisherFirstResultWithRoutingKey<TMessage extends MessageDefinition, TPub
1013
1106
  * );
1014
1107
  *
1015
1108
  * // Create publisher-first relationship (event pattern)
1016
- * const logEvent = definePublisherFirst(logsExchange, logMessage);
1109
+ * const { publisher: publishLog, createConsumer: createLogConsumer } = definePublisherFirst(logsExchange, logMessage);
1017
1110
  *
1018
1111
  * // Multiple queues can consume the same event
1019
1112
  * const logsQueue1 = defineQueue('logs-queue-1', { durable: true });
1020
1113
  * const logsQueue2 = defineQueue('logs-queue-2', { durable: true });
1021
1114
  *
1022
1115
  * // Use in contract
1023
- * const { consumer: consumer1, binding: binding1 } = logEvent.createConsumer(logsQueue1);
1024
- * const { consumer: consumer2, binding: binding2 } = logEvent.createConsumer(logsQueue2);
1116
+ * const { consumer: consumer1, binding: binding1 } = createLogConsumer(logsQueue1);
1117
+ * const { consumer: consumer2, binding: binding2 } = createLogConsumer(logsQueue2);
1025
1118
  *
1026
1119
  * const contract = defineContract({
1027
1120
  * exchanges: { logs: logsExchange },
@@ -1030,7 +1123,7 @@ type PublisherFirstResultWithRoutingKey<TMessage extends MessageDefinition, TPub
1030
1123
  * logBinding1: binding1,
1031
1124
  * logBinding2: binding2,
1032
1125
  * },
1033
- * publishers: { publishLog: logEvent.publisher },
1126
+ * publishers: { publishLog },
1034
1127
  * consumers: {
1035
1128
  * consumeLog1: consumer1,
1036
1129
  * consumeLog2: consumer2,
@@ -1072,7 +1165,7 @@ declare function definePublisherFirst<TMessage extends MessageDefinition>(exchan
1072
1165
  * );
1073
1166
  *
1074
1167
  * // Create publisher-first relationship with routing key
1075
- * const taskEvent = definePublisherFirst(
1168
+ * const { publisher: executeTaskPublisher, createConsumer: createTaskConsumer } = definePublisherFirst(
1076
1169
  * tasksExchange,
1077
1170
  * taskMessage,
1078
1171
  * { routingKey: 'task.execute' }
@@ -1080,13 +1173,13 @@ declare function definePublisherFirst<TMessage extends MessageDefinition>(exchan
1080
1173
  *
1081
1174
  * // Use in contract - routing key is consistent across publisher and bindings
1082
1175
  * const taskQueue = defineQueue('task-queue', { durable: true });
1083
- * const { consumer, binding } = taskEvent.createConsumer(taskQueue);
1176
+ * const { consumer, binding } = createTaskConsumer(taskQueue);
1084
1177
  *
1085
1178
  * const contract = defineContract({
1086
1179
  * exchanges: { tasks: tasksExchange },
1087
1180
  * queues: { taskQueue },
1088
1181
  * bindings: { taskBinding: binding },
1089
- * publishers: { executeTask: taskEvent.publisher },
1182
+ * publishers: { executeTask: executeTaskPublisher },
1090
1183
  * consumers: { processTask: consumer },
1091
1184
  * });
1092
1185
  * ```
@@ -1127,7 +1220,7 @@ declare function definePublisherFirst<TMessage extends MessageDefinition, TRouti
1127
1220
  * );
1128
1221
  *
1129
1222
  * // Create publisher-first relationship with concrete routing key
1130
- * const orderCreatedEvent = definePublisherFirst(
1223
+ * const { publisher: orderCreatedPublisher, createConsumer: createOrderCreatedConsumer } = definePublisherFirst(
1131
1224
  * ordersExchange,
1132
1225
  * orderMessage,
1133
1226
  * { routingKey: 'order.created' } // Concrete key
@@ -1139,9 +1232,9 @@ declare function definePublisherFirst<TMessage extends MessageDefinition, TRouti
1139
1232
  *
1140
1233
  * // Use in contract
1141
1234
  * const { consumer: processConsumer, binding: processBinding } =
1142
- * orderCreatedEvent.createConsumer(orderQueue); // Uses 'order.created'
1235
+ * createOrderCreatedConsumer(orderQueue); // Uses 'order.created'
1143
1236
  * const { consumer: allOrdersConsumer, binding: allOrdersBinding } =
1144
- * orderCreatedEvent.createConsumer(allOrdersQueue, 'order.*'); // Uses pattern
1237
+ * createOrderCreatedConsumer(allOrdersQueue, 'order.*'); // Uses pattern
1145
1238
  *
1146
1239
  * const contract = defineContract({
1147
1240
  * exchanges: { orders: ordersExchange },
@@ -1150,7 +1243,7 @@ declare function definePublisherFirst<TMessage extends MessageDefinition, TRouti
1150
1243
  * orderBinding: processBinding,
1151
1244
  * allOrdersBinding,
1152
1245
  * },
1153
- * publishers: { orderCreated: orderCreatedEvent.publisher },
1246
+ * publishers: { orderCreated: orderCreatedPublisher },
1154
1247
  * consumers: {
1155
1248
  * processOrder: processConsumer,
1156
1249
  * trackAllOrders: allOrdersConsumer,
@@ -1248,7 +1341,7 @@ type ConsumerFirstResultWithRoutingKey<TMessage extends MessageDefinition, TCons
1248
1341
  * );
1249
1342
  *
1250
1343
  * // Create consumer-first relationship
1251
- * const notificationConsumerFirst = defineConsumerFirst(
1344
+ * const { consumer: processNotificationConsumer, binding: notificationBinding, createPublisher: createNotificationPublisher } = defineConsumerFirst(
1252
1345
  * notificationsQueue,
1253
1346
  * notificationsExchange,
1254
1347
  * notificationMessage
@@ -1258,9 +1351,9 @@ type ConsumerFirstResultWithRoutingKey<TMessage extends MessageDefinition, TCons
1258
1351
  * const contract = defineContract({
1259
1352
  * exchanges: { notifications: notificationsExchange },
1260
1353
  * queues: { notificationsQueue },
1261
- * bindings: { notificationBinding: notificationConsumerFirst.binding },
1262
- * publishers: { sendNotification: notificationConsumerFirst.createPublisher() },
1263
- * consumers: { processNotification: notificationConsumerFirst.consumer },
1354
+ * bindings: { notificationBinding },
1355
+ * publishers: { sendNotification: createNotificationPublisher() },
1356
+ * consumers: { processNotification: processNotificationConsumer },
1264
1357
  * });
1265
1358
  * ```
1266
1359
  */
@@ -1301,7 +1394,7 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition>(queue:
1301
1394
  * );
1302
1395
  *
1303
1396
  * // Create consumer-first relationship with routing key
1304
- * const taskConsumerFirst = defineConsumerFirst(
1397
+ * const { consumer: processTaskConsumer, binding: taskBinding, createPublisher: createTaskPublisher } = defineConsumerFirst(
1305
1398
  * taskQueue,
1306
1399
  * tasksExchange,
1307
1400
  * taskMessage,
@@ -1312,9 +1405,9 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition>(queue:
1312
1405
  * const contract = defineContract({
1313
1406
  * exchanges: { tasks: tasksExchange },
1314
1407
  * queues: { taskQueue },
1315
- * bindings: { taskBinding: taskConsumerFirst.binding },
1316
- * publishers: { executeTask: taskConsumerFirst.createPublisher() },
1317
- * consumers: { processTask: taskConsumerFirst.consumer },
1408
+ * bindings: { taskBinding },
1409
+ * publishers: { executeTask: createTaskPublisher() },
1410
+ * consumers: { processTask: processTaskConsumer },
1318
1411
  * });
1319
1412
  * ```
1320
1413
  */
@@ -1356,7 +1449,7 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition, TRoutin
1356
1449
  * );
1357
1450
  *
1358
1451
  * // Create consumer-first relationship with pattern
1359
- * const orderConsumerFirst = defineConsumerFirst(
1452
+ * const { consumer: processOrderConsumer, binding: orderBinding, createPublisher: createOrderPublisher } = defineConsumerFirst(
1360
1453
  * orderQueue,
1361
1454
  * ordersExchange,
1362
1455
  * orderMessage,
@@ -1367,12 +1460,12 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition, TRoutin
1367
1460
  * const contract = defineContract({
1368
1461
  * exchanges: { orders: ordersExchange },
1369
1462
  * queues: { orderQueue },
1370
- * bindings: { orderBinding: orderConsumerFirst.binding },
1463
+ * bindings: { orderBinding },
1371
1464
  * publishers: {
1372
- * orderCreated: orderConsumerFirst.createPublisher('order.created'), // Concrete key
1373
- * orderUpdated: orderConsumerFirst.createPublisher('order.updated'), // Concrete key
1465
+ * orderCreated: createOrderPublisher('order.created'), // Concrete key
1466
+ * orderUpdated: createOrderPublisher('order.updated'), // Concrete key
1374
1467
  * },
1375
- * consumers: { processOrder: orderConsumerFirst.consumer },
1468
+ * consumers: { processOrder: processOrderConsumer },
1376
1469
  * });
1377
1470
  * ```
1378
1471
  */
@@ -1383,5 +1476,5 @@ declare function defineConsumerFirst<TMessage extends MessageDefinition, TRoutin
1383
1476
  exchange: TopicExchangeDefinition;
1384
1477
  }>>;
1385
1478
  //#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 };
1479
+ export { type AnySchema, type BaseExchangeDefinition, type BindingDefinition, type BindingPattern, type CompressionAlgorithm, 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
1480
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":";;;;;;AAWA;AAQA;AA6CA;AAiBA;AAqBA;AASA;;AAEI,KAtGQ,SAAA,GAAY,gBAsGpB;;;AASJ;AAuDA;;;AAEoC,KAhKxB,sBAAA,GAgKwB;EAAjB;;;EAYC,IAAA,EAAA,MAAA;EAsBR;;;;EAe+B,OAAA,CAAA,EAAA,OAAA;EAU3B;;AAuBhB;;EAUc,UAAA,CAAA,EAAA,OAAA;EAIA;;;;AAsBd;EAmBY,QAAA,CAAA,EAAA,OAAA;EAAqC;;;;EAMN,SAAA,CAAA,EAlR7B,MAkR6B,CAAA,MAAA,EAAA,OAAA,CAAA;CAS3B;;AAsBhB;;;;;;AAyCA;;;;;;AAiBa,KA3VD,wBAAA,GAA2B,sBA2V1B,GAAA;EAOiB,IAAA,EAAA,QAAA;CAAf;;;;AAyBf;;;;;;AAkBA;;;;AACiE,KA7XrD,wBAAA,GAA2B,sBA6X0B,GAAA;EAAS,IAAA,EAAA,QAAA;;;;ACxa1E;;;;;AA4BA;;;;;AA6BA;;;;;AAwDgB,KDjDJ,uBAAA,GAA0B,sBCiDX,GAAA;EAEV,IAAA,EAAA,OAAA;CAAL;;;AA2CZ;;;AAEmB,KDvFP,kBAAA,GACR,wBCsFe,GDrFf,wBCqFe,GDpFf,uBCoFe;;;;;;;AAmCH,KD/GJ,eAAA,GC+GsB;EACzB;;;EAGuC,IAAA,EAAA,MAAA;EAA5C;;;;EAGD,OAAA,CAAA,EAAA,OAAA;EAAO;AAoCV;;;;EAKM,SAAA,CAAA,EAAA,OAAA;EACY;;;;EAKhB,UAAA,CAAA,EAAA,OAAA;EACY;;;;AA6Dd;;;;;;;;;;;AAiCA;;;;;;EAM2C,SAAA,CAAA,ED5N7B,MC4N6B,CAAA,MAAA,EAAA,OAAA,CAAA;CAFvC;;;;;;;AA6EY,KD9RJ,iBC8RmB,CAAA,iBD7RZ,SC6RY,GD7RA,SC6RA,EAAA,iBD5RZ,gBC4RY,CD5RK,MC4RL,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA,SAAA,GAAA,SAAA,CAAA,GAAA;EAAkB;;;;EAIrC,OAAA,ED1RD,QC0RC;EAA2C;;;;EAG5C,OAAA,CAAA,EDvRC,QCuRD;EAA2C;;;AAqCtD;EAAiD,OAAA,CAAA,EAAA,MAAA;EACrC;;;;EAIN,WAAA,CAAA,EAAA,MAAA;CACY;;;;;;;;AAIf,KDhTS,sBAAA,GCgTT;EAAO;EA6EM,IAAA,EAAA,OAAA;EAAgC;EACvC,KAAA,EDzXA,eCyXA;EACE;;;;EAEW,SAAA,CAAA,EDtXR,MCsXQ,CAAA,MAAA,EAAA,OAAA,CAAA;CAAnB,GAAA,CAAA;EAAkB;EA6EL,QAAA,ED/bA,wBC+bc,GD/ba,uBC+bb;EAAmB;;;;AA0DjD;EACmB,UAAA,EAAA,MAAA;CACsB,GAAA;EAApB;EAGR,QAAA,EDpfG,wBCofH;EASa;EACO,UAAA,CAAA,EAAA,KAAA;CAAnB,CAAA;;;AA6Bd;;;;;AA2BA;AAAwE;;;;;;;;;AAqBnE,KDpjBO,yBAAA,GCojBO;EAGf;EAEmB,IAAA,EAAA,UAAA;EAAK;EAAtB,WAAA,EDpjBS,kBCojBT;EACA;;;EAEI,SAAA,CAAA,EDljBI,MCkjBJ,CAAA,MAAA,EAAA,OAAA,CAAA;CAEiB,GAAA,CAAA;EAAS;EAAxB,MAAA,EDhjBE,wBCgjBF,GDhjB6B,uBCgjB7B;EAGR;;;;EAMoB,UAAA,EAAA,MAAA;CAAG,GAAA;EAsBf;EACC,MAAA,EDvkBC,wBCukBD;EAAX;EAEmB,UAAA,CAAA,EAAA,KAAA;CAAf,CAAA;;;;;;AAgBN;;AAEyC,KD9kB7B,iBAAA,GAAoB,sBC8kBS,GD9kBgB,yBC8kBhB;;;;;;;;;;;AA2EzC;;;;;;;AAGY,KDzoBA,mBCyoBA,CAAA,iBDzoBqC,iBCyoBrC,GDzoByD,iBCyoBzD,CAAA,GAAA;EAKV;EAC4B,OAAA,ED7oBnB,QC6oBmB;CAApB,GAAA,CAAA;EAA2C;EAAnD,QAAA,EDzoBc,wBCyoBd,GDzoByC,uBCyoBzC;EAFC;;AAqDH;;EAIY,UAAA,EAAA,MAAA;CACD,GAAA;EAEgB;EAAX,QAAA,ED1rBA,wBC0rBA;EACA;EAGd,UAAA,CAAA,EAAA,KAAA;CAEsB,CAAA;;;;;;;AAkExB;;;;;;;;;;AAcgB,KD1vBJ,kBC0vBI,CAAA,iBD1vBgC,iBC0vBhC,GD1vBoD,iBC0vBpD,CAAA,GAAA;EAA2B;EAFzC,KAAA,EDtvBO,eCsvBP;EAIA;EANC,OAAA,EDjvBQ,QCivBR;CAAkC;AAsErC;;;;;;;;;;;;;;;;;;;AAiCA;;;;;;;;;;;;;;AAkBc,KDt0BF,kBAAA,GCs0BE;EAqDE;;;;EAGL,SAAA,CAAA,EDz3BG,MCy3BH,CAAA,MAAA,EDz3BkB,kBCy3BlB,CAAA;EAEC;;;;EAIV,MAAA,CAAA,EDz3BS,MCy3BT,CAAA,MAAA,EDz3BwB,eCy3BxB,CAAA;EACmB;;;;EACnB,QAAA,CAAA,EDr3BW,MCq3BX,CAAA,MAAA,EDr3B0B,iBCq3B1B,CAAA;EAHC;;AAuDH;;;EAEY,UAAA,CAAA,EDp6BG,MCo6BH,CAAA,MAAA,EDp6BkB,mBCo6BlB,CAAA;EACD;;;;;EAOU,SAAA,CAAA,EDr6BP,MCq6BO,CAAA,MAAA,EDr6BQ,kBCq6BR,CAAA;CAAnB;;;;;;AAwDF;;;;;;;;;;AAUE,KDr9BU,mBCq9BV,CAAA,kBDr9BgD,kBCq9BhD,CAAA,GDp9BA,SCo9BA,CAAA,YAAA,CAAA,SDp9BgC,MCo9BhC,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,MDp9BgE,SCo9BhE,CAAA,YAAA,CAAA,GAAA,KAAA;;;;;;;;;;;;;;;;KDn8BU,qCAAqC,sBAC/C,+BAA+B,gCAAgC;;;;AAncjE;AAQA;AA6CA;AAiBA;AAqBA;AASA;;;;;AAWA;AAuDA;;;;;;;;AAoCA;;AAWc,iBC1LE,cAAA,CD0LF,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,QAAA,EAAA,OAAA,CAAA,ECvLF,IDuLE,CCvLG,sBDuLH,EAAA,MAAA,GAAA,MAAA,CAAA,CAAA,ECtLX,wBDsLW;;;;;AAqCd;;;;;;;AAoCA;AAmBA;;;;;;;;AAqCA;;AAAoE,iBC/RpD,cAAA,CD+RoD,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EC5RxD,ID4RwD,CC5RnD,sBD4RmD,EAAA,MAAA,GAAA,MAAA,CAAA,CAAA,EC3RjE,wBD2RiE;;;;AAyCpE;;;;;;;;;;;;AAiDA;;;;;;AAkBA;;AACE,iBC/Wc,cAAA,CD+Wd,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EC5WU,ID4WV,CC5We,sBD4Wf,EAAA,MAAA,GAAA,MAAA,CAAA,CAAA,EC3WC,uBD2WD;;;;;;;ACxaF;;;;;AA4BA;;;;;AA6BA;;;;;AAwDA;;;;AAGkB,iBAHF,WAAA,CAGE,IAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EADN,IACM,CADD,eACC,EAAA,MAAA,CAAA,CAAA,EAAf,eAAe;AA0ClB;;;;;;;;;;AAqCA;;;;;;;;;;;AA2CA;;;;;;;;;;;;;;AAyEgB,iBAzJA,aAyJqB,CAAA,iBAxJlB,iBAwJkB,CAAA,SAAA,CAAA,EAAA,iBAvJlB,gBAuJkB,CAvJD,MAuJC,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA,OAAA,EArJ1B,QAqJ0B,EAAA,OAIY,CAJZ,EAAA;EACtB,OAAA,CAAA,EApJD,QAoJC;EACL,OAAA,CAAA,EAAA,MAAA;EAEE,WAAA,CAAA,EAAA,MAAA;CAAqC,CAAA,EAnJ9C,iBAmJ8C,CAnJ5B,QAmJ4B,EAnJlB,QAmJkB,CAAA;;;;;;;AA6BjD;;;;;;;;;;;;;;AAiFgB,iBAtOA,kBAAA,CAsOe,KAAA,EArOtB,eAqOsB,EAAA,QAAA,EApOnB,wBAoOmB,EAAA,OACnB,CADmB,EAnOnB,IAmOmB,CAlO3B,OAkO2B,CAlOnB,sBAkOmB,EAAA;EAAkB,QAAA,EAlOD,wBAkOC;CACrC,CAAA,EAAA,MAAA,GAAA,OAAA,GAAA,UAAA,GAAA,YAAA,CAAA,CAAA,EAhOT,OAgOS,CAhOD,sBAgOC,EAAA;EACD,QAAA,EAjOoC,wBAiOpC;CAEqB,CAAA;;;;;;;;;;AAwChC;;;;;;;;;;;;;;;;;AAuFA;;;;;;;;AAIG,iBAlUa,kBAAA,CAkUb,KAAA,EAjUM,eAiUN,EAAA,QAAA,EAhUS,wBAgUT,GAhUoC,uBAgUpC,EAAA,OAAA,EA/TQ,IA+TR,CA9TC,OA8TD,CA7TG,sBA6TH,EAAA;EAAkB,QAAA,EA5TH,wBA4TG,GA5TwB,uBA4TxB;AA6ErB,CAAA,CAAA,EAAgB,MAAA,GAAA,OAAA,GAAc,UAAA,CAAA,CAAA,EArY3B,OAqY2B,CApY5B,sBAoY4B,EAAA;EAAmB,QAAA,EAnYnC,wBAmYmC,GAnYR,uBAmYQ;CACnC,CAAA;;;AAyDd;;;;;;;;;;AA4CA;;;;;AA2BA;AAAwE;;;AAQtE,iBA/cc,qBAAA,CA+cd,WAAA,EA9ca,kBA8cb,EAAA,MAAA,EA7cQ,wBA6cR,EAAA,OAGuB,CAHvB,EA5cU,IA4cV,CA3cE,OA2cF,CA3cU,yBA2cV,EAAA;EAEI,MAAA,EA7c2C,wBA6c3C;CACmB,CAAA,EAAA,MAAA,GAAA,QAAA,GAAA,aAAA,GAAA,YAAA,CAAA,CAAA,EA3ctB,OA2csB,CA3cd,yBA2cc,EAAA;EAAS,MAAA,EA3cc,wBA2cd;CAA1B,CAAA;;AAAgB;;;;;;;;;;;;;;;;;;AAmDxB;;;;;AAKuB,iBAzeP,qBAAA,CAyeO,WAAA,EAxeR,kBAweQ,EAAA,MAAA,EAveb,wBAuea,GAvec,uBAued,EAAA,OAAA,EAteZ,IAseY,CArenB,OAqemB,CApejB,yBAoeiB,EAAA;EAAK,MAAA,EAneZ,wBAmeY,GAnee,uBAmef;CAApB,CAAA,EAAA,MAAA,GAAA,QAAA,GAAA,aAAA,CAAA,CAAA,EA/dL,OA+dK,CA9dN,yBA8dM,EAAA;EACE,MAAA,EA9dE,wBA8dF,GA9d6B,uBA8d7B;CAAG,CAAA;AAab;;;;;;;;;;;;;AA6EA;;;;;;;;;;;;;;;AA4DA;AACmB,iBAhjBH,eAgjBG,CAAA,iBAhjB8B,iBAgjB9B,CAAA,CAAA,QAAA,EA/iBP,wBA+iBO,EAAA,OAAA,EA9iBR,QA8iBQ,EAAA,OAIR,CAJQ,EA7iBP,IA6iBO,CA5iBf,OA4iBe,CA5iBP,mBA4iBO,CA5iBa,QA4iBb,CAAA,EAAA;EAGP,QAAA,EA/iB2C,wBA+iB3C;CACD,CAAA,EAAA,UAAA,GAAA,SAAA,GAAA,YAAA,CAAA,CAAA,EA7iBR,OA6iBQ,CA7iBA,mBA6iBA,CA7iBoB,QA6iBpB,CAAA,EAAA;EAEgB,QAAA,EA/iB2B,wBA+iB3B;CAAX,CAAA;;;;;;;;;;AAwEhB;;;;;;;;;;;;;;;;AAgFA;;;;;;;;;;AAgBc,iBAlrBE,eAkrBF,CAAA,iBAlrBmC,iBAkrBnC,CAAA,CAAA,QAAA,EAjrBF,wBAirBE,GAjrByB,uBAirBzB,EAAA,OAAA,EAhrBH,QAgrBG,EAAA,OAAA,EA/qBH,IA+qBG,CA9qBV,OA8qBU,CA7qBR,mBA6qBQ,CA7qBY,QA6qBZ,CAAA,EAAA;EAA2C,QAAA,EA5qBvC,wBA4qBuC,GA5qBZ,uBA4qBY;CAAnD,CAAA,EAAA,UAAA,GAAA,SAAA,CAAA,CAAA,EAxqBH,OAwqBG,CAvqBJ,mBAuqBI,CAvqBgB,QAuqBhB,CAAA,EAAA;EAEsB,QAAA,EAxqBd,wBAwqBc,GAxqBa,uBAwqBb;CAApB,CAAA;;;;;AAeR;;;;;;;;;;;;;;;AAuEA;;;;;;;;;;;;;;;;;AA+DA;;;;;;AAKgB,iBAvvBA,cAuvBA,CAAA,iBAvvBgC,iBAuvBhC,CAAA,CAAA,KAAA,EAtvBP,eAsvBO,EAAA,OAAA,EArvBL,QAqvBK,EAAA,OAAA,CAAA,EApvBJ,IAovBI,CApvBC,kBAovBD,CApvBoB,QAovBpB,CAAA,EAAA,OAAA,GAAA,SAAA,CAAA,CAAA,EAnvBb,kBAmvBa,CAnvBM,QAmvBN,CAAA;;;;;;;;;;AA6DhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAnuBgB,iCAAiC,gCACnC,YACX;;;;;;;;;;;;;KAwDS,sCACO,sCACE,oBAAoB;;aAG5B;;;;;;;;;0BASa;cACZ,mBAAmB;aACpB;;;;;;;;;;;;;;;;;;;;;;;KA4BD,+BAA+B,uBAEvC,kEAEE;;;;;;;;;;;;;;;;;;;;;;KAuBM,mCAAmC,uBAAuB;;;;;;KAOjE,qEACH,eAAe,KAAK,qCAEhB,2CACE,iBAAiB,SAAS;;;;;;;;KAU7B,6DAGD,wFAEE,iBAAiB,KAAK,eACtB,4EAEI,eAAe,SAAS,6CAEtB,eAAe,SAAS,+BAGhC,6BAEE,sBACE,mDAGA,gBAAgB;;;;;;;;;;;;;;;;;;;KAsBZ,iEACV,WAAW,6BAEP,eAAe,iCAEb,eAAe,KAAK,wBAClB;;;;;;;;;;;KAaE,oDACO,sCACE,oBAAoB;;aAI5B;;;;;;;;;wDAS2C,oBAC7C,8BACM,eAAe;cAElB,mBAAmB;aACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyDG,sCAAsC,6BAC1C,mCACD,oBACC,KACR,QAAQ;YAAoC;oDAG7C,qBACD,UACA,QAAQ,oBAAoB;YAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmDrC,sCACG,yDAGP,mCACD;cAEK,WAAW;cACX;IAEb,qBACD,UACA,QACE,oBAAoB;YACR,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiE3B,sCACG,yDAGP,kCACD;cAEK,WAAW;cACX;IAEb,mCACD,UACA,QACE,oBAAoB;YACR,2BAA2B;IAEzC;;;;;;;;;;;KAgEU,qCACO,qCACC,mBAAmB,4BACpB;;YAGP;;WAED;;;;;;;yBAOc,6BAA6B,2BAChD,QAAQ,oBAAoB;cAAuB;OACnD,QACE,oBAAoB;cACR,2BAA2B;;;;;;;;;;;;;KAcnC,mDACO,qCACC,mBAAmB,4BACpB;;YAGP;;WAED;;;;;;;;qEASK,WAAW,0BACpB,QACH,oBAAoB;cACR,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmD3B,qCAAqC,0BAC5C,2BACG,mCACD,oBACC,KACR,QAAQ;YAAoC;oDAG7C,oBACD,UACA,mBAAmB,WACnB,QAAQ;YAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoD9B,qCAAqC,sDAC5C,2BACG,mCACD;cAEK,WAAW;cACX;IAEb,oBACD,UACA,mBAAmB,WACnB,QAAQ;YAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuD9B,qCAAqC,sDAC5C,2BACG,kCACD;cAEK,eAAe;cACf;IAEb,kCACD,UACA,mBAAmB,WACnB,QAAQ;YAAoC"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":"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"}