@amqp-contract/worker 0.20.0 → 0.22.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 +6 -7
- package/dist/index.cjs +415 -291
- package/dist/index.d.cts +123 -149
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +122 -148
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +409 -284
- package/dist/index.mjs.map +1 -1
- package/docs/index.md +90 -115
- package/package.json +29 -29
package/docs/index.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
### MessageValidationError
|
|
10
10
|
|
|
11
|
-
Defined in: packages/core/dist/index.d.mts:
|
|
11
|
+
Defined in: packages/core/dist/index.d.mts:27
|
|
12
12
|
|
|
13
13
|
Error thrown when message validation fails (payload or headers).
|
|
14
14
|
|
|
@@ -35,7 +35,7 @@ The validation issues from the Standard Schema validation
|
|
|
35
35
|
new MessageValidationError(source, issues): MessageValidationError;
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
Defined in: packages/core/dist/index.d.mts:
|
|
38
|
+
Defined in: packages/core/dist/index.d.mts:30
|
|
39
39
|
|
|
40
40
|
###### Parameters
|
|
41
41
|
|
|
@@ -58,13 +58,13 @@ Error.constructor
|
|
|
58
58
|
|
|
59
59
|
| Property | Modifier | Type | Description | Inherited from | Defined in |
|
|
60
60
|
| ------ | ------ | ------ | ------ | ------ | ------ |
|
|
61
|
-
| <a id="cause"></a> `cause?` | `public` | `unknown` | - | `Error.cause` | node\_modules/.pnpm/typescript@
|
|
62
|
-
| <a id="issues"></a> `issues` | `readonly` | `unknown` | - | - | packages/core/dist/index.d.mts:
|
|
63
|
-
| <a id="message"></a> `message` | `public` | `string` | - | `Error.message` | node\_modules/.pnpm/typescript@
|
|
64
|
-
| <a id="name"></a> `name` | `public` | `string` | - | `Error.name` | node\_modules/.pnpm/typescript@
|
|
65
|
-
| <a id="source"></a> `source` | `readonly` | `string` | - | - | packages/core/dist/index.d.mts:
|
|
66
|
-
| <a id="stack"></a> `stack?` | `public` | `string` | - | `Error.stack` | node\_modules/.pnpm/typescript@
|
|
67
|
-
| <a id="stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | `Error.stackTraceLimit` | node\_modules/.pnpm/@types+node@
|
|
61
|
+
| <a id="cause"></a> `cause?` | `public` | `unknown` | - | `Error.cause` | node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:24 |
|
|
62
|
+
| <a id="issues"></a> `issues` | `readonly` | `unknown` | - | - | packages/core/dist/index.d.mts:29 |
|
|
63
|
+
| <a id="message"></a> `message` | `public` | `string` | - | `Error.message` | node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075 |
|
|
64
|
+
| <a id="name"></a> `name` | `public` | `string` | - | `Error.name` | node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074 |
|
|
65
|
+
| <a id="source"></a> `source` | `readonly` | `string` | - | - | packages/core/dist/index.d.mts:28 |
|
|
66
|
+
| <a id="stack"></a> `stack?` | `public` | `string` | - | `Error.stack` | node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076 |
|
|
67
|
+
| <a id="stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | `Error.stackTraceLimit` | node\_modules/.pnpm/@types+node@24.12.2/node\_modules/@types/node/globals.d.ts:68 |
|
|
68
68
|
|
|
69
69
|
#### Methods
|
|
70
70
|
|
|
@@ -74,7 +74,7 @@ Error.constructor
|
|
|
74
74
|
static captureStackTrace(targetObject, constructorOpt?): void;
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
Defined in: node\_modules/.pnpm/@types+node@
|
|
77
|
+
Defined in: node\_modules/.pnpm/@types+node@24.12.2/node\_modules/@types/node/globals.d.ts:52
|
|
78
78
|
|
|
79
79
|
Creates a `.stack` property on `targetObject`, which when accessed returns
|
|
80
80
|
a string representing the location in the code at which
|
|
@@ -143,7 +143,7 @@ Error.captureStackTrace
|
|
|
143
143
|
static prepareStackTrace(err, stackTraces): any;
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
-
Defined in: node\_modules/.pnpm/@types+node@
|
|
146
|
+
Defined in: node\_modules/.pnpm/@types+node@24.12.2/node\_modules/@types/node/globals.d.ts:56
|
|
147
147
|
|
|
148
148
|
###### Parameters
|
|
149
149
|
|
|
@@ -170,7 +170,7 @@ Error.prepareStackTrace
|
|
|
170
170
|
|
|
171
171
|
### NonRetryableError
|
|
172
172
|
|
|
173
|
-
Defined in: [packages/worker/src/errors.ts:34](https://github.com/btravers/amqp-contract/blob/
|
|
173
|
+
Defined in: [packages/worker/src/errors.ts:34](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L34)
|
|
174
174
|
|
|
175
175
|
Non-retryable errors - permanent failures that should not be retried
|
|
176
176
|
Examples: invalid data, business rule violations, permanent external failures
|
|
@@ -190,7 +190,7 @@ immediately sent to the dead letter queue (DLQ) if configured.
|
|
|
190
190
|
new NonRetryableError(message, cause?): NonRetryableError;
|
|
191
191
|
```
|
|
192
192
|
|
|
193
|
-
Defined in: [packages/worker/src/errors.ts:35](https://github.com/btravers/amqp-contract/blob/
|
|
193
|
+
Defined in: [packages/worker/src/errors.ts:35](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L35)
|
|
194
194
|
|
|
195
195
|
###### Parameters
|
|
196
196
|
|
|
@@ -213,11 +213,11 @@ Error.constructor
|
|
|
213
213
|
|
|
214
214
|
| Property | Modifier | Type | Description | Inherited from | Defined in |
|
|
215
215
|
| ------ | ------ | ------ | ------ | ------ | ------ |
|
|
216
|
-
| <a id="cause-1"></a> `cause?` | `readonly` | `unknown` | - | `Error.cause` | [packages/worker/src/errors.ts:37](https://github.com/btravers/amqp-contract/blob/
|
|
217
|
-
| <a id="message-1"></a> `message` | `public` | `string` | - | `Error.message` | node\_modules/.pnpm/typescript@
|
|
218
|
-
| <a id="name-1"></a> `name` | `public` | `string` | - | `Error.name` | node\_modules/.pnpm/typescript@
|
|
219
|
-
| <a id="stack-1"></a> `stack?` | `public` | `string` | - | `Error.stack` | node\_modules/.pnpm/typescript@
|
|
220
|
-
| <a id="stacktracelimit-1"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | `Error.stackTraceLimit` | node\_modules/.pnpm/@types+node@
|
|
216
|
+
| <a id="cause-1"></a> `cause?` | `readonly` | `unknown` | - | `Error.cause` | [packages/worker/src/errors.ts:37](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L37) |
|
|
217
|
+
| <a id="message-1"></a> `message` | `public` | `string` | - | `Error.message` | node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075 |
|
|
218
|
+
| <a id="name-1"></a> `name` | `public` | `string` | - | `Error.name` | node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074 |
|
|
219
|
+
| <a id="stack-1"></a> `stack?` | `public` | `string` | - | `Error.stack` | node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076 |
|
|
220
|
+
| <a id="stacktracelimit-1"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | `Error.stackTraceLimit` | node\_modules/.pnpm/@types+node@24.12.2/node\_modules/@types/node/globals.d.ts:68 |
|
|
221
221
|
|
|
222
222
|
#### Methods
|
|
223
223
|
|
|
@@ -227,7 +227,7 @@ Error.constructor
|
|
|
227
227
|
static captureStackTrace(targetObject, constructorOpt?): void;
|
|
228
228
|
```
|
|
229
229
|
|
|
230
|
-
Defined in: node\_modules/.pnpm/@types+node@
|
|
230
|
+
Defined in: node\_modules/.pnpm/@types+node@24.12.2/node\_modules/@types/node/globals.d.ts:52
|
|
231
231
|
|
|
232
232
|
Creates a `.stack` property on `targetObject`, which when accessed returns
|
|
233
233
|
a string representing the location in the code at which
|
|
@@ -296,7 +296,7 @@ Error.captureStackTrace
|
|
|
296
296
|
static prepareStackTrace(err, stackTraces): any;
|
|
297
297
|
```
|
|
298
298
|
|
|
299
|
-
Defined in: node\_modules/.pnpm/@types+node@
|
|
299
|
+
Defined in: node\_modules/.pnpm/@types+node@24.12.2/node\_modules/@types/node/globals.d.ts:56
|
|
300
300
|
|
|
301
301
|
###### Parameters
|
|
302
302
|
|
|
@@ -323,7 +323,7 @@ Error.prepareStackTrace
|
|
|
323
323
|
|
|
324
324
|
### RetryableError
|
|
325
325
|
|
|
326
|
-
Defined in: [packages/worker/src/errors.ts:10](https://github.com/btravers/amqp-contract/blob/
|
|
326
|
+
Defined in: [packages/worker/src/errors.ts:10](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L10)
|
|
327
327
|
|
|
328
328
|
Retryable errors - transient failures that may succeed on retry
|
|
329
329
|
Examples: network timeouts, rate limiting, temporary service unavailability
|
|
@@ -343,7 +343,7 @@ The worker will apply exponential backoff and retry the message.
|
|
|
343
343
|
new RetryableError(message, cause?): RetryableError;
|
|
344
344
|
```
|
|
345
345
|
|
|
346
|
-
Defined in: [packages/worker/src/errors.ts:11](https://github.com/btravers/amqp-contract/blob/
|
|
346
|
+
Defined in: [packages/worker/src/errors.ts:11](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L11)
|
|
347
347
|
|
|
348
348
|
###### Parameters
|
|
349
349
|
|
|
@@ -366,11 +366,11 @@ Error.constructor
|
|
|
366
366
|
|
|
367
367
|
| Property | Modifier | Type | Description | Inherited from | Defined in |
|
|
368
368
|
| ------ | ------ | ------ | ------ | ------ | ------ |
|
|
369
|
-
| <a id="cause-2"></a> `cause?` | `readonly` | `unknown` | - | `Error.cause` | [packages/worker/src/errors.ts:13](https://github.com/btravers/amqp-contract/blob/
|
|
370
|
-
| <a id="message-2"></a> `message` | `public` | `string` | - | `Error.message` | node\_modules/.pnpm/typescript@
|
|
371
|
-
| <a id="name-2"></a> `name` | `public` | `string` | - | `Error.name` | node\_modules/.pnpm/typescript@
|
|
372
|
-
| <a id="stack-2"></a> `stack?` | `public` | `string` | - | `Error.stack` | node\_modules/.pnpm/typescript@
|
|
373
|
-
| <a id="stacktracelimit-2"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | `Error.stackTraceLimit` | node\_modules/.pnpm/@types+node@
|
|
369
|
+
| <a id="cause-2"></a> `cause?` | `readonly` | `unknown` | - | `Error.cause` | [packages/worker/src/errors.ts:13](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L13) |
|
|
370
|
+
| <a id="message-2"></a> `message` | `public` | `string` | - | `Error.message` | node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1075 |
|
|
371
|
+
| <a id="name-2"></a> `name` | `public` | `string` | - | `Error.name` | node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1074 |
|
|
372
|
+
| <a id="stack-2"></a> `stack?` | `public` | `string` | - | `Error.stack` | node\_modules/.pnpm/typescript@6.0.3/node\_modules/typescript/lib/lib.es5.d.ts:1076 |
|
|
373
|
+
| <a id="stacktracelimit-2"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | `Error.stackTraceLimit` | node\_modules/.pnpm/@types+node@24.12.2/node\_modules/@types/node/globals.d.ts:68 |
|
|
374
374
|
|
|
375
375
|
#### Methods
|
|
376
376
|
|
|
@@ -380,7 +380,7 @@ Error.constructor
|
|
|
380
380
|
static captureStackTrace(targetObject, constructorOpt?): void;
|
|
381
381
|
```
|
|
382
382
|
|
|
383
|
-
Defined in: node\_modules/.pnpm/@types+node@
|
|
383
|
+
Defined in: node\_modules/.pnpm/@types+node@24.12.2/node\_modules/@types/node/globals.d.ts:52
|
|
384
384
|
|
|
385
385
|
Creates a `.stack` property on `targetObject`, which when accessed returns
|
|
386
386
|
a string representing the location in the code at which
|
|
@@ -449,7 +449,7 @@ Error.captureStackTrace
|
|
|
449
449
|
static prepareStackTrace(err, stackTraces): any;
|
|
450
450
|
```
|
|
451
451
|
|
|
452
|
-
Defined in: node\_modules/.pnpm/@types+node@
|
|
452
|
+
Defined in: node\_modules/.pnpm/@types+node@24.12.2/node\_modules/@types/node/globals.d.ts:56
|
|
453
453
|
|
|
454
454
|
###### Parameters
|
|
455
455
|
|
|
@@ -476,7 +476,7 @@ Error.prepareStackTrace
|
|
|
476
476
|
|
|
477
477
|
### TypedAmqpWorker
|
|
478
478
|
|
|
479
|
-
Defined in: [packages/worker/src/worker.ts:
|
|
479
|
+
Defined in: [packages/worker/src/worker.ts:177](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L177)
|
|
480
480
|
|
|
481
481
|
Type-safe AMQP worker for consuming messages from RabbitMQ.
|
|
482
482
|
|
|
@@ -490,7 +490,7 @@ import { TypedAmqpWorker } from '@amqp-contract/worker';
|
|
|
490
490
|
import { defineQueue, defineMessage, defineContract, defineConsumer } from '@amqp-contract/contract';
|
|
491
491
|
import { z } from 'zod';
|
|
492
492
|
|
|
493
|
-
const orderQueue = defineQueue('order-processing'
|
|
493
|
+
const orderQueue = defineQueue('order-processing');
|
|
494
494
|
const orderMessage = defineMessage(z.object({
|
|
495
495
|
orderId: z.string(),
|
|
496
496
|
amount: z.number()
|
|
@@ -531,7 +531,7 @@ await worker.close().resultToPromise();
|
|
|
531
531
|
close(): Future<Result<void, TechnicalError>>;
|
|
532
532
|
```
|
|
533
533
|
|
|
534
|
-
Defined in: [packages/worker/src/worker.ts:
|
|
534
|
+
Defined in: [packages/worker/src/worker.ts:339](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L339)
|
|
535
535
|
|
|
536
536
|
Close the AMQP channel and connection.
|
|
537
537
|
|
|
@@ -559,7 +559,7 @@ if (closeResult.isOk()) {
|
|
|
559
559
|
static create<TContract>(options): Future<Result<TypedAmqpWorker<TContract>, TechnicalError>>;
|
|
560
560
|
```
|
|
561
561
|
|
|
562
|
-
Defined in: [packages/worker/src/worker.ts:
|
|
562
|
+
Defined in: [packages/worker/src/worker.ts:277](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L277)
|
|
563
563
|
|
|
564
564
|
Create a type-safe AMQP worker from a contract.
|
|
565
565
|
|
|
@@ -603,13 +603,23 @@ const worker = await TypedAmqpWorker.create({
|
|
|
603
603
|
|
|
604
604
|
## Type Aliases
|
|
605
605
|
|
|
606
|
+
### ConsumerOptions
|
|
607
|
+
|
|
608
|
+
```ts
|
|
609
|
+
type ConsumerOptions = AmqpClientConsumerOptions;
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
Defined in: [packages/worker/src/worker.ts:49](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L49)
|
|
613
|
+
|
|
614
|
+
***
|
|
615
|
+
|
|
606
616
|
### CreateWorkerOptions
|
|
607
617
|
|
|
608
618
|
```ts
|
|
609
619
|
type CreateWorkerOptions<TContract> = object;
|
|
610
620
|
```
|
|
611
621
|
|
|
612
|
-
Defined in: [packages/worker/src/worker.ts:
|
|
622
|
+
Defined in: [packages/worker/src/worker.ts:96](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L96)
|
|
613
623
|
|
|
614
624
|
Options for creating a type-safe AMQP worker.
|
|
615
625
|
|
|
@@ -634,6 +644,9 @@ const options: CreateWorkerOptions<typeof contract> = {
|
|
|
634
644
|
]
|
|
635
645
|
},
|
|
636
646
|
urls: ['amqp://localhost'],
|
|
647
|
+
defaultConsumerOptions: {
|
|
648
|
+
prefetch: 5,
|
|
649
|
+
},
|
|
637
650
|
connectionOptions: {
|
|
638
651
|
heartbeatIntervalInSeconds: 30
|
|
639
652
|
},
|
|
@@ -654,12 +667,14 @@ not at the handler level. See `QueueDefinition.retry` for configuration options.
|
|
|
654
667
|
|
|
655
668
|
| Property | Type | Description | Defined in |
|
|
656
669
|
| ------ | ------ | ------ | ------ |
|
|
657
|
-
| <a id="connectionoptions"></a> `connectionOptions?` | `AmqpConnectionManagerOptions` | Optional connection configuration (heartbeat, reconnect settings, etc.) | [packages/worker/src/worker.ts:
|
|
658
|
-
| <a id="
|
|
659
|
-
| <a id="
|
|
660
|
-
| <a id="
|
|
661
|
-
| <a id="
|
|
662
|
-
| <a id="
|
|
670
|
+
| <a id="connectionoptions"></a> `connectionOptions?` | `AmqpConnectionManagerOptions` | Optional connection configuration (heartbeat, reconnect settings, etc.) | [packages/worker/src/worker.ts:113](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L113) |
|
|
671
|
+
| <a id="connecttimeoutms"></a> `connectTimeoutMs?` | `number` | Maximum time in ms to wait for the AMQP connection to become ready before `create()` resolves to `Result.Error<TechnicalError>`. Without this option, `create()` waits forever — the underlying amqp-connection-manager retries indefinitely. | [packages/worker/src/worker.ts:133](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L133) |
|
|
672
|
+
| <a id="contract"></a> `contract` | `TContract` | The AMQP contract definition specifying consumers and their message schemas | [packages/worker/src/worker.ts:98](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L98) |
|
|
673
|
+
| <a id="defaultconsumeroptions"></a> `defaultConsumerOptions?` | [`ConsumerOptions`](#consumeroptions) | Optional default consumer options applied to all consumer handlers. Handler-specific options provided in tuple form override these defaults. | [packages/worker/src/worker.ts:126](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L126) |
|
|
674
|
+
| <a id="handlers"></a> `handlers` | `WorkerInferHandlers`<`TContract`> | Handlers for each `consumers` and `rpcs` entry in the contract. - Regular consumers return `Future<Result<void, HandlerError>>`. - RPC handlers return `Future<Result<TResponse, HandlerError>>` where `TResponse` is inferred from the RPC's response message schema. Use `defineHandler` / `defineHandlers` to create handlers with full type inference. | [packages/worker/src/worker.ts:109](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L109) |
|
|
675
|
+
| <a id="logger"></a> `logger?` | `Logger` | Optional logger for logging message consumption and errors | [packages/worker/src/worker.ts:115](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L115) |
|
|
676
|
+
| <a id="telemetry"></a> `telemetry?` | `TelemetryProvider` | Optional telemetry provider for tracing and metrics. If not provided, uses the default provider which attempts to load OpenTelemetry. OpenTelemetry instrumentation is automatically enabled if @opentelemetry/api is installed. | [packages/worker/src/worker.ts:121](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L121) |
|
|
677
|
+
| <a id="urls"></a> `urls` | `ConnectionUrl`[] | AMQP broker URL(s). Multiple URLs provide failover support | [packages/worker/src/worker.ts:111](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/worker.ts#L111) |
|
|
663
678
|
|
|
664
679
|
***
|
|
665
680
|
|
|
@@ -671,7 +686,7 @@ type HandlerError =
|
|
|
671
686
|
| NonRetryableError;
|
|
672
687
|
```
|
|
673
688
|
|
|
674
|
-
Defined in: [packages/worker/src/errors.ts:55](https://github.com/btravers/amqp-contract/blob/
|
|
689
|
+
Defined in: [packages/worker/src/errors.ts:55](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L55)
|
|
675
690
|
|
|
676
691
|
Union type representing all handler errors.
|
|
677
692
|
Use this type when defining handlers that explicitly signal error outcomes.
|
|
@@ -684,7 +699,7 @@ Use this type when defining handlers that explicitly signal error outcomes.
|
|
|
684
699
|
type WorkerConsumedMessage<TPayload, THeaders> = object;
|
|
685
700
|
```
|
|
686
701
|
|
|
687
|
-
Defined in: [packages/worker/src/types.ts:
|
|
702
|
+
Defined in: [packages/worker/src/types.ts:156](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/types.ts#L156)
|
|
688
703
|
|
|
689
704
|
A consumed message containing parsed payload and headers.
|
|
690
705
|
|
|
@@ -694,7 +709,6 @@ It contains the validated payload and (if defined in the message schema) the val
|
|
|
694
709
|
#### Example
|
|
695
710
|
|
|
696
711
|
```typescript
|
|
697
|
-
// Handler receives the consumed message with typed payload and headers
|
|
698
712
|
const handler = defineHandler(contract, 'processOrder', (message, rawMessage) => {
|
|
699
713
|
console.log(message.payload.orderId); // Typed payload
|
|
700
714
|
console.log(message.headers?.priority); // Typed headers (if defined)
|
|
@@ -714,8 +728,8 @@ const handler = defineHandler(contract, 'processOrder', (message, rawMessage) =>
|
|
|
714
728
|
|
|
715
729
|
| Property | Type | Description | Defined in |
|
|
716
730
|
| ------ | ------ | ------ | ------ |
|
|
717
|
-
| <a id="headers"></a> `headers` | `THeaders` *extends* `undefined` ? `undefined` : `THeaders` | The validated message headers (present only when headers schema is defined) | [packages/worker/src/types.ts:
|
|
718
|
-
| <a id="payload"></a> `payload` | `TPayload` | The validated message payload | [packages/worker/src/types.ts:
|
|
731
|
+
| <a id="headers"></a> `headers` | `THeaders` *extends* `undefined` ? `undefined` : `THeaders` | The validated message headers (present only when headers schema is defined) | [packages/worker/src/types.ts:160](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/types.ts#L160) |
|
|
732
|
+
| <a id="payload"></a> `payload` | `TPayload` | The validated message payload | [packages/worker/src/types.ts:158](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/types.ts#L158) |
|
|
719
733
|
|
|
720
734
|
***
|
|
721
735
|
|
|
@@ -725,10 +739,9 @@ const handler = defineHandler(contract, 'processOrder', (message, rawMessage) =>
|
|
|
725
739
|
type WorkerInferConsumedMessage<TContract, TName> = WorkerConsumedMessage<WorkerInferConsumerPayload<TContract, TName>, WorkerInferConsumerHeaders<TContract, TName>>;
|
|
726
740
|
```
|
|
727
741
|
|
|
728
|
-
Defined in: [packages/worker/src/types.ts:
|
|
742
|
+
Defined in: [packages/worker/src/types.ts:166](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/types.ts#L166)
|
|
729
743
|
|
|
730
|
-
Infer the full consumed message type for a
|
|
731
|
-
Includes both payload and headers (if defined).
|
|
744
|
+
Infer the full consumed message type for a regular consumer.
|
|
732
745
|
|
|
733
746
|
#### Type Parameters
|
|
734
747
|
|
|
@@ -739,23 +752,16 @@ Includes both payload and headers (if defined).
|
|
|
739
752
|
|
|
740
753
|
***
|
|
741
754
|
|
|
742
|
-
### WorkerInferConsumerHandler
|
|
755
|
+
### WorkerInferConsumerHandler
|
|
743
756
|
|
|
744
757
|
```ts
|
|
745
758
|
type WorkerInferConsumerHandler<TContract, TName> = (message, rawMessage) => Future<Result<void, HandlerError>>;
|
|
746
759
|
```
|
|
747
760
|
|
|
748
|
-
Defined in: [packages/worker/src/types.ts:
|
|
761
|
+
Defined in: [packages/worker/src/types.ts:197](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/types.ts#L197)
|
|
749
762
|
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
Error handling:
|
|
754
|
-
- RetryableError: Message will be retried with exponential backoff
|
|
755
|
-
- NonRetryableError: Message will be immediately sent to DLQ
|
|
756
|
-
|
|
757
|
-
The `WorkerInfer*` naming pattern indicates type inference helpers that extract
|
|
758
|
-
types from a contract definition at compile time.
|
|
763
|
+
Handler signature for a regular consumer (event/command). Returns
|
|
764
|
+
`Future<Result<void, HandlerError>>` — there is no response message.
|
|
759
765
|
|
|
760
766
|
#### Type Parameters
|
|
761
767
|
|
|
@@ -766,26 +772,15 @@ types from a contract definition at compile time.
|
|
|
766
772
|
|
|
767
773
|
#### Parameters
|
|
768
774
|
|
|
769
|
-
| Parameter | Type |
|
|
770
|
-
| ------ | ------ |
|
|
771
|
-
| `message` | [`WorkerInferConsumedMessage`](#workerinferconsumedmessage)<`TContract`, `TName`> |
|
|
772
|
-
| `rawMessage` | `ConsumeMessage` |
|
|
775
|
+
| Parameter | Type |
|
|
776
|
+
| ------ | ------ |
|
|
777
|
+
| `message` | [`WorkerInferConsumedMessage`](#workerinferconsumedmessage)<`TContract`, `TName`> |
|
|
778
|
+
| `rawMessage` | `ConsumeMessage` |
|
|
773
779
|
|
|
774
780
|
#### Returns
|
|
775
781
|
|
|
776
782
|
`Future`<`Result`<`void`, [`HandlerError`](#handlererror)>>
|
|
777
783
|
|
|
778
|
-
#### Example
|
|
779
|
-
|
|
780
|
-
```typescript
|
|
781
|
-
const handler: WorkerInferConsumerHandler<typeof contract, 'processOrder'> =
|
|
782
|
-
({ payload }, rawMessage) => {
|
|
783
|
-
console.log(payload.orderId); // Typed payload
|
|
784
|
-
console.log(rawMessage.fields.deliveryTag); // Raw AMQP message
|
|
785
|
-
return Future.value(Result.Ok(undefined));
|
|
786
|
-
};
|
|
787
|
-
```
|
|
788
|
-
|
|
789
784
|
***
|
|
790
785
|
|
|
791
786
|
### WorkerInferConsumerHandlerEntry
|
|
@@ -793,21 +788,12 @@ const handler: WorkerInferConsumerHandler<typeof contract, 'processOrder'> =
|
|
|
793
788
|
```ts
|
|
794
789
|
type WorkerInferConsumerHandlerEntry<TContract, TName> =
|
|
795
790
|
| WorkerInferConsumerHandler<TContract, TName>
|
|
796
|
-
| readonly [WorkerInferConsumerHandler<TContract, TName>,
|
|
797
|
-
prefetch?: number;
|
|
798
|
-
}];
|
|
791
|
+
| readonly [WorkerInferConsumerHandler<TContract, TName>, ConsumerOptions];
|
|
799
792
|
```
|
|
800
793
|
|
|
801
|
-
Defined in: [packages/worker/src/types.ts:
|
|
794
|
+
Defined in: [packages/worker/src/types.ts:223](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/types.ts#L223)
|
|
802
795
|
|
|
803
|
-
Handler entry for a consumer
|
|
804
|
-
|
|
805
|
-
Two patterns are supported:
|
|
806
|
-
1. Simple handler: `({ payload }, rawMessage) => Future.value(Result.Ok(undefined))`
|
|
807
|
-
2. Handler with prefetch: `[({ payload }, rawMessage) => ..., { prefetch: 10 }]`
|
|
808
|
-
|
|
809
|
-
Note: Retry configuration is now defined at the queue level in the contract,
|
|
810
|
-
not at the handler level. See `QueueDefinition.retry` for configuration options.
|
|
796
|
+
Handler entry for a regular consumer — function or `[handler, options]`.
|
|
811
797
|
|
|
812
798
|
#### Type Parameters
|
|
813
799
|
|
|
@@ -818,16 +804,13 @@ not at the handler level. See `QueueDefinition.retry` for configuration options.
|
|
|
818
804
|
|
|
819
805
|
***
|
|
820
806
|
|
|
821
|
-
### WorkerInferConsumerHandlers
|
|
807
|
+
### ~~WorkerInferConsumerHandlers~~
|
|
822
808
|
|
|
823
809
|
```ts
|
|
824
|
-
type WorkerInferConsumerHandlers<TContract> =
|
|
810
|
+
type WorkerInferConsumerHandlers<TContract> = WorkerInferHandlers<TContract>;
|
|
825
811
|
```
|
|
826
812
|
|
|
827
|
-
Defined in: [packages/worker/src/types.ts:
|
|
828
|
-
|
|
829
|
-
Consumer handlers for a contract.
|
|
830
|
-
All handlers return `Future<Result<void, HandlerError>>` for explicit error control.
|
|
813
|
+
Defined in: [packages/worker/src/types.ts:269](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/types.ts#L269)
|
|
831
814
|
|
|
832
815
|
#### Type Parameters
|
|
833
816
|
|
|
@@ -835,29 +818,22 @@ All handlers return `Future<Result<void, HandlerError>>` for explicit error cont
|
|
|
835
818
|
| ------ |
|
|
836
819
|
| `TContract` *extends* `ContractDefinition` |
|
|
837
820
|
|
|
838
|
-
####
|
|
821
|
+
#### Deprecated
|
|
839
822
|
|
|
840
|
-
|
|
841
|
-
const handlers: WorkerInferConsumerHandlers<typeof contract> = {
|
|
842
|
-
processOrder: ({ payload }) =>
|
|
843
|
-
Future.fromPromise(processPayment(payload))
|
|
844
|
-
.mapOk(() => undefined)
|
|
845
|
-
.mapError((error) => new RetryableError('Payment failed', error)),
|
|
846
|
-
};
|
|
847
|
-
```
|
|
823
|
+
Use `WorkerInferHandlers` — handlers now span consumers ∪ rpcs.
|
|
848
824
|
|
|
849
825
|
***
|
|
850
826
|
|
|
851
827
|
### WorkerInferConsumerHeaders
|
|
852
828
|
|
|
853
829
|
```ts
|
|
854
|
-
type WorkerInferConsumerHeaders<TContract, TName> =
|
|
830
|
+
type WorkerInferConsumerHeaders<TContract, TName> = ConsumerInferHeadersOutput<InferConsumer<TContract, TName>>;
|
|
855
831
|
```
|
|
856
832
|
|
|
857
|
-
Defined in: [packages/worker/src/types.ts:
|
|
833
|
+
Defined in: [packages/worker/src/types.ts:85](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/types.ts#L85)
|
|
858
834
|
|
|
859
|
-
Infer the headers type for a
|
|
860
|
-
Returns undefined if no headers schema is defined
|
|
835
|
+
Infer the headers type for a regular consumer.
|
|
836
|
+
Returns undefined if no headers schema is defined.
|
|
861
837
|
|
|
862
838
|
#### Type Parameters
|
|
863
839
|
|
|
@@ -879,7 +855,7 @@ function defineHandler<TContract, TName>(
|
|
|
879
855
|
handler): WorkerInferConsumerHandlerEntry<TContract, TName>;
|
|
880
856
|
```
|
|
881
857
|
|
|
882
|
-
Defined in: [packages/worker/src/handlers.ts:
|
|
858
|
+
Defined in: [packages/worker/src/handlers.ts:104](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/handlers.ts#L104)
|
|
883
859
|
|
|
884
860
|
Define a type-safe handler for a specific consumer in a contract.
|
|
885
861
|
|
|
@@ -952,7 +928,7 @@ function defineHandler<TContract, TName>(
|
|
|
952
928
|
options): WorkerInferConsumerHandlerEntry<TContract, TName>;
|
|
953
929
|
```
|
|
954
930
|
|
|
955
|
-
Defined in: [packages/worker/src/handlers.ts:
|
|
931
|
+
Defined in: [packages/worker/src/handlers.ts:112](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/handlers.ts#L112)
|
|
956
932
|
|
|
957
933
|
Define a type-safe handler for a specific consumer in a contract.
|
|
958
934
|
|
|
@@ -977,8 +953,7 @@ Supports two patterns:
|
|
|
977
953
|
| `contract` | `TContract` | The contract definition containing the consumer |
|
|
978
954
|
| `consumerName` | `TName` | The name of the consumer from the contract |
|
|
979
955
|
| `handler` | [`WorkerInferConsumerHandler`](#workerinferconsumerhandler)<`TContract`, `TName`> | The handler function that returns `Future<Result<void, HandlerError>>` |
|
|
980
|
-
| `options` |
|
|
981
|
-
| `options.prefetch?` | `number` | - |
|
|
956
|
+
| `options` | `ConsumerOptions` | Optional consumer options (prefetch) |
|
|
982
957
|
|
|
983
958
|
##### Returns
|
|
984
959
|
|
|
@@ -1025,7 +1000,7 @@ const validateOrderHandler = defineHandler(
|
|
|
1025
1000
|
function defineHandlers<TContract>(contract, handlers): WorkerInferConsumerHandlers<TContract>;
|
|
1026
1001
|
```
|
|
1027
1002
|
|
|
1028
|
-
Defined in: [packages/worker/src/handlers.ts:
|
|
1003
|
+
Defined in: [packages/worker/src/handlers.ts:167](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/handlers.ts#L167)
|
|
1029
1004
|
|
|
1030
1005
|
Define multiple type-safe handlers for consumers in a contract.
|
|
1031
1006
|
|
|
@@ -1078,7 +1053,7 @@ const handlers = defineHandlers(orderContract, {
|
|
|
1078
1053
|
function isHandlerError(error): error is HandlerError;
|
|
1079
1054
|
```
|
|
1080
1055
|
|
|
1081
|
-
Defined in: [packages/worker/src/errors.ts:131](https://github.com/btravers/amqp-contract/blob/
|
|
1056
|
+
Defined in: [packages/worker/src/errors.ts:131](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L131)
|
|
1082
1057
|
|
|
1083
1058
|
Type guard to check if an error is any HandlerError (RetryableError or NonRetryableError).
|
|
1084
1059
|
|
|
@@ -1115,7 +1090,7 @@ function handleError(error: unknown) {
|
|
|
1115
1090
|
function isNonRetryableError(error): error is NonRetryableError;
|
|
1116
1091
|
```
|
|
1117
1092
|
|
|
1118
|
-
Defined in: [packages/worker/src/errors.ts:109](https://github.com/btravers/amqp-contract/blob/
|
|
1093
|
+
Defined in: [packages/worker/src/errors.ts:109](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L109)
|
|
1119
1094
|
|
|
1120
1095
|
Type guard to check if an error is a NonRetryableError.
|
|
1121
1096
|
|
|
@@ -1155,7 +1130,7 @@ try {
|
|
|
1155
1130
|
function isRetryableError(error): error is RetryableError;
|
|
1156
1131
|
```
|
|
1157
1132
|
|
|
1158
|
-
Defined in: [packages/worker/src/errors.ts:84](https://github.com/btravers/amqp-contract/blob/
|
|
1133
|
+
Defined in: [packages/worker/src/errors.ts:84](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L84)
|
|
1159
1134
|
|
|
1160
1135
|
Type guard to check if an error is a RetryableError.
|
|
1161
1136
|
|
|
@@ -1197,7 +1172,7 @@ try {
|
|
|
1197
1172
|
function nonRetryable(message, cause?): NonRetryableError;
|
|
1198
1173
|
```
|
|
1199
1174
|
|
|
1200
|
-
Defined in: [packages/worker/src/errors.ts:193](https://github.com/btravers/amqp-contract/blob/
|
|
1175
|
+
Defined in: [packages/worker/src/errors.ts:193](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L193)
|
|
1201
1176
|
|
|
1202
1177
|
Create a NonRetryableError with less verbosity.
|
|
1203
1178
|
|
|
@@ -1242,7 +1217,7 @@ const handler = ({ payload }) => {
|
|
|
1242
1217
|
function retryable(message, cause?): RetryableError;
|
|
1243
1218
|
```
|
|
1244
1219
|
|
|
1245
|
-
Defined in: [packages/worker/src/errors.ts:163](https://github.com/btravers/amqp-contract/blob/
|
|
1220
|
+
Defined in: [packages/worker/src/errors.ts:163](https://github.com/btravers/amqp-contract/blob/da9b95c747db8d5af9183ca6fe2a6e0af558d1fa/packages/worker/src/errors.ts#L163)
|
|
1246
1221
|
|
|
1247
1222
|
Create a RetryableError with less verbosity.
|
|
1248
1223
|
|
package/package.json
CHANGED
|
@@ -1,34 +1,41 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amqp-contract/worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Worker utilities for consuming messages using amqp-contract",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"amqp",
|
|
7
|
+
"consumer",
|
|
7
8
|
"contract",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"worker",
|
|
11
|
-
"nodejs",
|
|
9
|
+
"message-broker",
|
|
10
|
+
"message-queue",
|
|
12
11
|
"messaging",
|
|
13
|
-
"
|
|
12
|
+
"nodejs",
|
|
13
|
+
"rabbitmq",
|
|
14
14
|
"schema",
|
|
15
|
+
"type-safe",
|
|
16
|
+
"typescript",
|
|
15
17
|
"validation",
|
|
16
|
-
"
|
|
17
|
-
"message-queue",
|
|
18
|
-
"consumer"
|
|
18
|
+
"worker"
|
|
19
19
|
],
|
|
20
20
|
"homepage": "https://github.com/btravers/amqp-contract#readme",
|
|
21
21
|
"bugs": {
|
|
22
22
|
"url": "https://github.com/btravers/amqp-contract/issues"
|
|
23
23
|
},
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"author": "Benoit TRAVERS <benoit.travers.fr@gmail.com>",
|
|
24
26
|
"repository": {
|
|
25
27
|
"type": "git",
|
|
26
28
|
"url": "https://github.com/btravers/amqp-contract.git",
|
|
27
29
|
"directory": "packages/worker"
|
|
28
30
|
},
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
+
"files": [
|
|
32
|
+
"dist",
|
|
33
|
+
"docs"
|
|
34
|
+
],
|
|
31
35
|
"type": "module",
|
|
36
|
+
"main": "./dist/index.cjs",
|
|
37
|
+
"module": "./dist/index.mjs",
|
|
38
|
+
"types": "./dist/index.d.mts",
|
|
32
39
|
"exports": {
|
|
33
40
|
".": {
|
|
34
41
|
"import": {
|
|
@@ -42,32 +49,25 @@
|
|
|
42
49
|
},
|
|
43
50
|
"./package.json": "./package.json"
|
|
44
51
|
},
|
|
45
|
-
"main": "./dist/index.cjs",
|
|
46
|
-
"module": "./dist/index.mjs",
|
|
47
|
-
"types": "./dist/index.d.mts",
|
|
48
|
-
"files": [
|
|
49
|
-
"dist",
|
|
50
|
-
"docs"
|
|
51
|
-
],
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@standard-schema/spec": "1.1.0",
|
|
54
54
|
"@swan-io/boxed": "3.2.1",
|
|
55
|
-
"@amqp-contract/
|
|
56
|
-
"@amqp-contract/
|
|
55
|
+
"@amqp-contract/contract": "0.22.0",
|
|
56
|
+
"@amqp-contract/core": "0.22.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/amqplib": "0.10.8",
|
|
60
|
-
"@types/node": "
|
|
61
|
-
"@vitest/coverage-v8": "4.
|
|
60
|
+
"@types/node": "24.12.2",
|
|
61
|
+
"@vitest/coverage-v8": "4.1.5",
|
|
62
62
|
"amqp-connection-manager": "5.0.0",
|
|
63
|
-
"amqplib": "0.
|
|
64
|
-
"tsdown": "0.
|
|
65
|
-
"typedoc": "0.28.
|
|
66
|
-
"typedoc-plugin-markdown": "4.
|
|
67
|
-
"typescript": "
|
|
68
|
-
"vitest": "4.
|
|
63
|
+
"amqplib": "1.0.3",
|
|
64
|
+
"tsdown": "0.21.10",
|
|
65
|
+
"typedoc": "0.28.19",
|
|
66
|
+
"typedoc-plugin-markdown": "4.11.0",
|
|
67
|
+
"typescript": "6.0.3",
|
|
68
|
+
"vitest": "4.1.5",
|
|
69
69
|
"zod": "4.3.6",
|
|
70
|
-
"@amqp-contract/testing": "0.
|
|
70
|
+
"@amqp-contract/testing": "0.22.0",
|
|
71
71
|
"@amqp-contract/tsconfig": "0.1.0",
|
|
72
72
|
"@amqp-contract/typedoc": "0.1.0"
|
|
73
73
|
},
|