@amqp-contract/contract 0.10.0 → 0.11.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -25,33 +25,30 @@ function defineExchange(name, type, options) {
25
25
  * A queue stores messages until they are consumed by workers. Queues can be bound to exchanges
26
26
  * to receive messages based on routing rules.
27
27
  *
28
+ * By default, queues are created as quorum queues which provide better durability and
29
+ * high-availability. Use `type: 'classic'` for special cases like non-durable queues
30
+ * or priority queues.
31
+ *
28
32
  * @param name - The name of the queue
29
33
  * @param options - Optional queue configuration
30
- * @param options.durable - If true, the queue survives broker restarts (default: false)
31
- * @param options.exclusive - If true, the queue can only be used by the declaring connection (default: false)
34
+ * @param options.type - Queue type: 'quorum' (default, recommended) or 'classic'
35
+ * @param options.durable - If true, the queue survives broker restarts. Quorum queues are always durable.
36
+ * @param options.exclusive - If true, the queue can only be used by the declaring connection. Only supported with classic queues.
32
37
  * @param options.autoDelete - If true, the queue is deleted when the last consumer unsubscribes (default: false)
33
38
  * @param options.deadLetter - Dead letter configuration for handling failed messages
34
- * @param options.maxPriority - Maximum priority level for priority queue (1-255, recommended: 1-10). Sets x-max-priority argument.
39
+ * @param options.maxPriority - Maximum priority level for priority queue (1-255, recommended: 1-10). Only supported with classic queues.
35
40
  * @param options.arguments - Additional AMQP arguments (e.g., x-message-ttl)
36
41
  * @returns A queue definition
37
42
  *
38
43
  * @example
39
44
  * ```typescript
40
- * // Basic queue
41
- * const orderQueue = defineQueue('order-processing', {
42
- * durable: true,
43
- * });
44
- *
45
- * // Priority queue with max priority of 10
46
- * const taskQueue = defineQueue('urgent-tasks', {
47
- * durable: true,
48
- * maxPriority: 10,
49
- * });
45
+ * // Quorum queue (default, recommended for production)
46
+ * const orderQueue = defineQueue('order-processing');
50
47
  *
51
- * // Queue with dead letter exchange
48
+ * // Explicit quorum queue with dead letter exchange
52
49
  * const dlx = defineExchange('orders-dlx', 'topic', { durable: true });
53
50
  * const orderQueueWithDLX = defineQueue('order-processing', {
54
- * durable: true,
51
+ * type: 'quorum',
55
52
  * deadLetter: {
56
53
  * exchange: dlx,
57
54
  * routingKey: 'order.failed'
@@ -60,24 +57,92 @@ function defineExchange(name, type, options) {
60
57
  * 'x-message-ttl': 86400000, // 24 hours
61
58
  * }
62
59
  * });
60
+ *
61
+ * // Classic queue (for special cases)
62
+ * const tempQueue = defineQueue('temp-queue', {
63
+ * type: 'classic',
64
+ * durable: false,
65
+ * autoDelete: true,
66
+ * });
67
+ *
68
+ * // Priority queue (requires classic type)
69
+ * const taskQueue = defineQueue('urgent-tasks', {
70
+ * type: 'classic',
71
+ * durable: true,
72
+ * maxPriority: 10,
73
+ * });
74
+ *
75
+ * // Queue with TTL-backoff retry (returns infrastructure automatically)
76
+ * const dlx = defineExchange('orders-dlx', 'direct', { durable: true });
77
+ * const orderQueue = defineQueue('order-processing', {
78
+ * deadLetter: { exchange: dlx },
79
+ * retry: { mode: 'ttl-backoff', maxRetries: 5 },
80
+ * });
81
+ * // orderQueue is QueueWithTtlBackoffInfrastructure, pass directly to defineContract
63
82
  * ```
64
83
  */
65
84
  function defineQueue(name, options) {
66
- const { maxPriority, ...queueOptions } = options ?? {};
67
- if (maxPriority !== void 0) {
68
- if (maxPriority < 1 || maxPriority > 255) throw new Error(`Invalid maxPriority: ${maxPriority}. Must be between 1 and 255. Recommended range: 1-10.`);
69
- return {
70
- name,
71
- ...queueOptions,
72
- arguments: {
73
- ...queueOptions.arguments,
74
- "x-max-priority": maxPriority
75
- }
85
+ const opts = options ?? {};
86
+ const type = opts.type ?? "quorum";
87
+ const baseProps = { name };
88
+ if (opts.durable !== void 0) baseProps.durable = opts.durable;
89
+ if (opts.autoDelete !== void 0) baseProps.autoDelete = opts.autoDelete;
90
+ if (opts.deadLetter !== void 0) baseProps.deadLetter = opts.deadLetter;
91
+ if (opts.arguments !== void 0) baseProps.arguments = opts.arguments;
92
+ if (type === "quorum") {
93
+ const quorumOpts = opts;
94
+ const queueDefinition$1 = {
95
+ ...baseProps,
96
+ type: "quorum"
97
+ };
98
+ if (quorumOpts.deliveryLimit !== void 0) {
99
+ if (quorumOpts.deliveryLimit < 1 || !Number.isInteger(quorumOpts.deliveryLimit)) throw new Error(`Invalid deliveryLimit: ${quorumOpts.deliveryLimit}. Must be a positive integer.`);
100
+ queueDefinition$1.deliveryLimit = quorumOpts.deliveryLimit;
101
+ }
102
+ if (quorumOpts.retry !== void 0) queueDefinition$1.retry = quorumOpts.retry;
103
+ if (quorumOpts.retry?.mode === "ttl-backoff" && queueDefinition$1.deadLetter) return wrapWithTtlBackoffInfrastructure(queueDefinition$1);
104
+ return queueDefinition$1;
105
+ }
106
+ const classicOpts = opts;
107
+ const queueDefinition = {
108
+ ...baseProps,
109
+ type: "classic"
110
+ };
111
+ if (classicOpts.exclusive !== void 0) queueDefinition.exclusive = classicOpts.exclusive;
112
+ if (classicOpts.maxPriority !== void 0) {
113
+ if (classicOpts.maxPriority < 1 || classicOpts.maxPriority > 255) throw new Error(`Invalid maxPriority: ${classicOpts.maxPriority}. Must be between 1 and 255. Recommended range: 1-10.`);
114
+ queueDefinition.arguments = {
115
+ ...queueDefinition.arguments,
116
+ "x-max-priority": classicOpts.maxPriority
76
117
  };
77
118
  }
119
+ if (classicOpts.retry !== void 0) queueDefinition.retry = classicOpts.retry;
120
+ if (classicOpts.retry?.mode === "ttl-backoff" && queueDefinition.deadLetter) return wrapWithTtlBackoffInfrastructure(queueDefinition);
121
+ return queueDefinition;
122
+ }
123
+ /**
124
+ * Wrap a queue definition with TTL-backoff retry infrastructure.
125
+ * @internal
126
+ */
127
+ function wrapWithTtlBackoffInfrastructure(queue) {
128
+ if (!queue.deadLetter) throw new Error(`Queue "${queue.name}" does not have a dead letter exchange configured. TTL-backoff retry requires deadLetter to be set on the queue.`);
129
+ const dlx = queue.deadLetter.exchange;
130
+ const waitQueueName = `${queue.name}-wait`;
131
+ const waitQueue = {
132
+ name: waitQueueName,
133
+ type: "quorum",
134
+ durable: queue.durable ?? true,
135
+ deadLetter: {
136
+ exchange: dlx,
137
+ routingKey: queue.name
138
+ }
139
+ };
78
140
  return {
79
- name,
80
- ...queueOptions
141
+ __brand: "QueueWithTtlBackoffInfrastructure",
142
+ queue,
143
+ waitQueue,
144
+ waitQueueBinding: callDefineQueueBinding(waitQueue, dlx, { routingKey: waitQueueName }),
145
+ mainQueueRetryBinding: callDefineQueueBinding(queue, dlx, { routingKey: queue.name })
81
146
  };
82
147
  }
83
148
  /**
@@ -126,22 +191,23 @@ function defineMessage(payload, options) {
126
191
  *
127
192
  * This is the implementation function - use the type-specific overloads for better type safety.
128
193
  *
129
- * @param queue - The queue definition to bind
194
+ * @param queue - The queue definition or queue with infrastructure to bind
130
195
  * @param exchange - The exchange definition
131
196
  * @param options - Optional binding configuration
132
197
  * @returns A queue binding definition
133
198
  * @internal
134
199
  */
135
200
  function defineQueueBinding(queue, exchange, options) {
201
+ const queueDef = extractQueue(queue);
136
202
  if (exchange.type === "fanout") return {
137
203
  type: "queue",
138
- queue,
204
+ queue: queueDef,
139
205
  exchange,
140
206
  ...options?.arguments && { arguments: options.arguments }
141
207
  };
142
208
  return {
143
209
  type: "queue",
144
- queue,
210
+ queue: queueDef,
145
211
  exchange,
146
212
  routingKey: options?.routingKey,
147
213
  ...options?.arguments && { arguments: options.arguments }
@@ -239,7 +305,7 @@ function definePublisher(exchange, message, options) {
239
305
  */
240
306
  function defineConsumer(queue, message, options) {
241
307
  return {
242
- queue,
308
+ queue: extractQueue(queue),
243
309
  message,
244
310
  ...options
245
311
  };
@@ -314,7 +380,56 @@ function defineConsumer(queue, message, options) {
314
380
  * ```
315
381
  */
316
382
  function defineContract(definition) {
317
- return definition;
383
+ if (!definition.queues || Object.keys(definition.queues).length === 0) return definition;
384
+ const queues = definition.queues;
385
+ const expandedQueues = {};
386
+ const autoBindings = {};
387
+ for (const [name, entry] of Object.entries(queues)) if (isQueueWithTtlBackoffInfrastructure(entry)) {
388
+ expandedQueues[name] = entry.queue;
389
+ expandedQueues[`${name}Wait`] = entry.waitQueue;
390
+ autoBindings[`${name}WaitBinding`] = entry.waitQueueBinding;
391
+ autoBindings[`${name}RetryBinding`] = entry.mainQueueRetryBinding;
392
+ } else expandedQueues[name] = entry;
393
+ if (Object.keys(autoBindings).length > 0) {
394
+ const mergedBindings = {
395
+ ...definition.bindings,
396
+ ...autoBindings
397
+ };
398
+ return {
399
+ ...definition,
400
+ queues: expandedQueues,
401
+ bindings: mergedBindings
402
+ };
403
+ }
404
+ return {
405
+ ...definition,
406
+ queues: expandedQueues
407
+ };
408
+ }
409
+ /**
410
+ * Type guard to check if a queue entry is a QueueWithTtlBackoffInfrastructure.
411
+ * @internal
412
+ */
413
+ function isQueueWithTtlBackoffInfrastructure(entry) {
414
+ return typeof entry === "object" && entry !== null && "__brand" in entry && entry.__brand === "QueueWithTtlBackoffInfrastructure";
415
+ }
416
+ /**
417
+ * Extract the plain QueueDefinition from a QueueEntry.
418
+ * If the entry is a QueueWithTtlBackoffInfrastructure, returns the inner queue.
419
+ * Otherwise, returns the entry as-is.
420
+ *
421
+ * @param entry - The queue entry (either plain QueueDefinition or QueueWithTtlBackoffInfrastructure)
422
+ * @returns The plain QueueDefinition
423
+ *
424
+ * @example
425
+ * ```typescript
426
+ * const queue = defineQueue('orders', { retry: { mode: 'ttl-backoff' }, deadLetter: { exchange: dlx } });
427
+ * const plainQueue = extractQueue(queue); // Returns the inner QueueDefinition
428
+ * ```
429
+ */
430
+ function extractQueue(entry) {
431
+ if (isQueueWithTtlBackoffInfrastructure(entry)) return entry.queue;
432
+ return entry;
318
433
  }
319
434
  /**
320
435
  * Helper to call definePublisher with proper type handling.
@@ -397,7 +512,76 @@ function defineConsumerFirst(queue, exchange, message, options) {
397
512
  createPublisher
398
513
  };
399
514
  }
515
+ /**
516
+ * Create TTL-backoff retry infrastructure for a queue.
517
+ *
518
+ * This builder helper generates the wait queue and bindings needed for TTL-backoff retry.
519
+ * The generated infrastructure can be spread into a contract definition.
520
+ *
521
+ * TTL-backoff retry works by:
522
+ * 1. Failed messages are sent to the DLX with routing key `{queueName}-wait`
523
+ * 2. The wait queue receives these messages and holds them for a TTL period
524
+ * 3. After TTL expires, messages are dead-lettered back to the DLX with routing key `{queueName}`
525
+ * 4. The main queue receives the retried message via its binding to the DLX
526
+ *
527
+ * @param queue - The main queue definition (must have deadLetter configured)
528
+ * @param options - Optional configuration for the wait queue
529
+ * @param options.waitQueueDurable - Whether the wait queue should be durable (default: same as main queue)
530
+ * @returns TTL-backoff retry infrastructure containing wait queue and bindings
531
+ * @throws {Error} If the queue does not have a dead letter exchange configured
532
+ *
533
+ * @example
534
+ * ```typescript
535
+ * const dlx = defineExchange('orders-dlx', 'direct', { durable: true });
536
+ * const orderQueue = defineQueue('order-processing', {
537
+ * type: 'quorum',
538
+ * deadLetter: { exchange: dlx },
539
+ * retry: {
540
+ * mode: 'ttl-backoff',
541
+ * maxRetries: 5,
542
+ * initialDelayMs: 1000,
543
+ * },
544
+ * });
545
+ *
546
+ * // Generate TTL-backoff infrastructure
547
+ * const retryInfra = defineTtlBackoffRetryInfrastructure(orderQueue);
548
+ *
549
+ * // Spread into contract
550
+ * const contract = defineContract({
551
+ * exchanges: { dlx },
552
+ * queues: {
553
+ * orderProcessing: orderQueue,
554
+ * orderProcessingWait: retryInfra.waitQueue,
555
+ * },
556
+ * bindings: {
557
+ * ...// your other bindings
558
+ * orderWaitBinding: retryInfra.waitQueueBinding,
559
+ * orderRetryBinding: retryInfra.mainQueueRetryBinding,
560
+ * },
561
+ * // ... publishers and consumers
562
+ * });
563
+ * ```
564
+ */
565
+ function defineTtlBackoffRetryInfrastructure(queueEntry, options) {
566
+ const queue = extractQueue(queueEntry);
567
+ if (!queue.deadLetter) throw new Error(`Queue "${queue.name}" does not have a dead letter exchange configured. TTL-backoff retry requires deadLetter to be set on the queue.`);
568
+ const dlx = queue.deadLetter.exchange;
569
+ const waitQueueName = `${queue.name}-wait`;
570
+ const waitQueue = defineQueue(waitQueueName, {
571
+ type: "quorum",
572
+ durable: options?.waitQueueDurable ?? queue.durable ?? true,
573
+ deadLetter: {
574
+ exchange: dlx,
575
+ routingKey: queue.name
576
+ }
577
+ });
578
+ return {
579
+ waitQueue,
580
+ waitQueueBinding: callDefineQueueBinding(waitQueue, dlx, { routingKey: waitQueueName }),
581
+ mainQueueRetryBinding: callDefineQueueBinding(queue, dlx, { routingKey: queue.name })
582
+ };
583
+ }
400
584
 
401
585
  //#endregion
402
- export { defineConsumer, defineConsumerFirst, defineContract, defineExchange, defineExchangeBinding, defineMessage, definePublisher, definePublisherFirst, defineQueue, defineQueueBinding };
586
+ export { defineConsumer, defineConsumerFirst, defineContract, defineExchange, defineExchangeBinding, defineMessage, definePublisher, definePublisherFirst, defineQueue, defineQueueBinding, defineTtlBackoffRetryInfrastructure, extractQueue };
403
587
  //# sourceMappingURL=index.mjs.map