@amqp-contract/core 0.15.0 → 0.16.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 +13 -10
- package/docs/index.md +62 -62
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -32,27 +32,30 @@ The core package exports an `AmqpClient` class that handles the creation of all
|
|
|
32
32
|
import { AmqpClient } from "@amqp-contract/core";
|
|
33
33
|
import {
|
|
34
34
|
defineContract,
|
|
35
|
+
defineEventPublisher,
|
|
36
|
+
defineEventConsumer,
|
|
35
37
|
defineExchange,
|
|
36
38
|
defineQueue,
|
|
37
|
-
|
|
39
|
+
defineMessage,
|
|
38
40
|
} from "@amqp-contract/contract";
|
|
41
|
+
import { z } from "zod";
|
|
39
42
|
|
|
40
43
|
// Define resources
|
|
41
44
|
const ordersExchange = defineExchange("orders", "topic", { durable: true });
|
|
42
45
|
const orderProcessingQueue = defineQueue("order-processing", { durable: true });
|
|
46
|
+
const orderMessage = defineMessage(z.object({ orderId: z.string() }));
|
|
47
|
+
|
|
48
|
+
const orderCreatedEvent = defineEventPublisher(ordersExchange, orderMessage, {
|
|
49
|
+
routingKey: "order.created",
|
|
50
|
+
});
|
|
43
51
|
|
|
44
52
|
// Define your contract
|
|
45
53
|
const contract = defineContract({
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
},
|
|
49
|
-
queues: {
|
|
50
|
-
orderProcessing: orderProcessingQueue,
|
|
54
|
+
publishers: {
|
|
55
|
+
orderCreated: orderCreatedEvent,
|
|
51
56
|
},
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
routingKey: "order.created",
|
|
55
|
-
}),
|
|
57
|
+
consumers: {
|
|
58
|
+
processOrder: defineEventConsumer(orderCreatedEvent, orderProcessingQueue),
|
|
56
59
|
},
|
|
57
60
|
});
|
|
58
61
|
|
package/docs/index.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
### AmqpClient
|
|
10
10
|
|
|
11
|
-
Defined in: [packages/core/src/amqp-client.ts:61](https://github.com/btravers/amqp-contract/blob/
|
|
11
|
+
Defined in: [packages/core/src/amqp-client.ts:61](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L61)
|
|
12
12
|
|
|
13
13
|
AMQP client that manages connections and channels with automatic topology setup.
|
|
14
14
|
|
|
@@ -46,7 +46,7 @@ await client.close().resultToPromise();
|
|
|
46
46
|
new AmqpClient(contract, options): AmqpClient;
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
Defined in: [packages/core/src/amqp-client.ts:78](https://github.com/btravers/amqp-contract/blob/
|
|
49
|
+
Defined in: [packages/core/src/amqp-client.ts:78](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L78)
|
|
50
50
|
|
|
51
51
|
Create a new AMQP client instance.
|
|
52
52
|
|
|
@@ -74,7 +74,7 @@ The client will automatically:
|
|
|
74
74
|
ack(msg, allUpTo): void;
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
Defined in: [packages/core/src/amqp-client.ts:212](https://github.com/btravers/amqp-contract/blob/
|
|
77
|
+
Defined in: [packages/core/src/amqp-client.ts:212](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L212)
|
|
78
78
|
|
|
79
79
|
Acknowledge a message.
|
|
80
80
|
|
|
@@ -95,7 +95,7 @@ Acknowledge a message.
|
|
|
95
95
|
addSetup(setup): void;
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
Defined in: [packages/core/src/amqp-client.ts:234](https://github.com/btravers/amqp-contract/blob/
|
|
98
|
+
Defined in: [packages/core/src/amqp-client.ts:234](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L234)
|
|
99
99
|
|
|
100
100
|
Add a setup function to be called when the channel is created or reconnected.
|
|
101
101
|
|
|
@@ -117,7 +117,7 @@ This is useful for setting up channel-level configuration like prefetch.
|
|
|
117
117
|
cancel(consumerTag): Future<Result<void, TechnicalError>>;
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
-
Defined in: [packages/core/src/amqp-client.ts:200](https://github.com/btravers/amqp-contract/blob/
|
|
120
|
+
Defined in: [packages/core/src/amqp-client.ts:200](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L200)
|
|
121
121
|
|
|
122
122
|
Cancel a consumer by its consumer tag.
|
|
123
123
|
|
|
@@ -139,7 +139,7 @@ A Future that resolves when the consumer is cancelled
|
|
|
139
139
|
close(): Future<Result<void, TechnicalError>>;
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
Defined in: [packages/core/src/amqp-client.ts:263](https://github.com/btravers/amqp-contract/blob/
|
|
142
|
+
Defined in: [packages/core/src/amqp-client.ts:263](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L263)
|
|
143
143
|
|
|
144
144
|
Close the channel and release the connection reference.
|
|
145
145
|
|
|
@@ -163,7 +163,7 @@ consume(
|
|
|
163
163
|
options?): Future<Result<string, TechnicalError>>;
|
|
164
164
|
```
|
|
165
165
|
|
|
166
|
-
Defined in: [packages/core/src/amqp-client.ts:184](https://github.com/btravers/amqp-contract/blob/
|
|
166
|
+
Defined in: [packages/core/src/amqp-client.ts:184](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L184)
|
|
167
167
|
|
|
168
168
|
Start consuming messages from a queue.
|
|
169
169
|
|
|
@@ -187,7 +187,7 @@ A Future with `Result<string>` - the consumer tag
|
|
|
187
187
|
getConnection(): IAmqpConnectionManager;
|
|
188
188
|
```
|
|
189
189
|
|
|
190
|
-
Defined in: [packages/core/src/amqp-client.ts:141](https://github.com/btravers/amqp-contract/blob/
|
|
190
|
+
Defined in: [packages/core/src/amqp-client.ts:141](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L141)
|
|
191
191
|
|
|
192
192
|
Get the underlying connection manager
|
|
193
193
|
|
|
@@ -210,7 +210,7 @@ nack(
|
|
|
210
210
|
requeue): void;
|
|
211
211
|
```
|
|
212
212
|
|
|
213
|
-
Defined in: [packages/core/src/amqp-client.ts:223](https://github.com/btravers/amqp-contract/blob/
|
|
213
|
+
Defined in: [packages/core/src/amqp-client.ts:223](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L223)
|
|
214
214
|
|
|
215
215
|
Negative acknowledge a message.
|
|
216
216
|
|
|
@@ -232,7 +232,7 @@ Negative acknowledge a message.
|
|
|
232
232
|
on(event, listener): void;
|
|
233
233
|
```
|
|
234
234
|
|
|
235
|
-
Defined in: [packages/core/src/amqp-client.ts:249](https://github.com/btravers/amqp-contract/blob/
|
|
235
|
+
Defined in: [packages/core/src/amqp-client.ts:249](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L249)
|
|
236
236
|
|
|
237
237
|
Register an event listener on the channel wrapper.
|
|
238
238
|
|
|
@@ -262,7 +262,7 @@ publish(
|
|
|
262
262
|
options?): Future<Result<boolean, TechnicalError>>;
|
|
263
263
|
```
|
|
264
264
|
|
|
265
|
-
Defined in: [packages/core/src/amqp-client.ts:165](https://github.com/btravers/amqp-contract/blob/
|
|
265
|
+
Defined in: [packages/core/src/amqp-client.ts:165](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L165)
|
|
266
266
|
|
|
267
267
|
Publish a message to an exchange.
|
|
268
268
|
|
|
@@ -287,7 +287,7 @@ A Future with `Result<boolean>` - true if message was sent, false if channel buf
|
|
|
287
287
|
waitForConnect(): Future<Result<void, TechnicalError>>;
|
|
288
288
|
```
|
|
289
289
|
|
|
290
|
-
Defined in: [packages/core/src/amqp-client.ts:150](https://github.com/btravers/amqp-contract/blob/
|
|
290
|
+
Defined in: [packages/core/src/amqp-client.ts:150](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L150)
|
|
291
291
|
|
|
292
292
|
Wait for the channel to be connected and ready.
|
|
293
293
|
|
|
@@ -301,7 +301,7 @@ A Future that resolves when the channel is connected
|
|
|
301
301
|
|
|
302
302
|
### ConnectionManagerSingleton
|
|
303
303
|
|
|
304
|
-
Defined in: [packages/core/src/connection-manager.ts:23](https://github.com/btravers/amqp-contract/blob/
|
|
304
|
+
Defined in: [packages/core/src/connection-manager.ts:23](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/connection-manager.ts#L23)
|
|
305
305
|
|
|
306
306
|
Connection manager singleton for sharing AMQP connections across clients.
|
|
307
307
|
|
|
@@ -327,7 +327,7 @@ await manager.releaseConnection(['amqp://localhost']);
|
|
|
327
327
|
getConnection(urls, connectionOptions?): IAmqpConnectionManager;
|
|
328
328
|
```
|
|
329
329
|
|
|
330
|
-
Defined in: [packages/core/src/connection-manager.ts:52](https://github.com/btravers/amqp-contract/blob/
|
|
330
|
+
Defined in: [packages/core/src/connection-manager.ts:52](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/connection-manager.ts#L52)
|
|
331
331
|
|
|
332
332
|
Get or create a connection for the given URLs and options.
|
|
333
333
|
|
|
@@ -353,7 +353,7 @@ The AMQP connection manager instance
|
|
|
353
353
|
releaseConnection(urls, connectionOptions?): Promise<void>;
|
|
354
354
|
```
|
|
355
355
|
|
|
356
|
-
Defined in: [packages/core/src/connection-manager.ts:81](https://github.com/btravers/amqp-contract/blob/
|
|
356
|
+
Defined in: [packages/core/src/connection-manager.ts:81](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/connection-manager.ts#L81)
|
|
357
357
|
|
|
358
358
|
Release a connection reference.
|
|
359
359
|
|
|
@@ -379,7 +379,7 @@ A promise that resolves when the connection is released (and closed if necessary
|
|
|
379
379
|
static getInstance(): ConnectionManagerSingleton;
|
|
380
380
|
```
|
|
381
381
|
|
|
382
|
-
Defined in: [packages/core/src/connection-manager.ts:35](https://github.com/btravers/amqp-contract/blob/
|
|
382
|
+
Defined in: [packages/core/src/connection-manager.ts:35](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/connection-manager.ts#L35)
|
|
383
383
|
|
|
384
384
|
Get the singleton instance of the connection manager.
|
|
385
385
|
|
|
@@ -393,7 +393,7 @@ The singleton instance
|
|
|
393
393
|
|
|
394
394
|
### TechnicalError
|
|
395
395
|
|
|
396
|
-
Defined in: [packages/core/src/errors.ts:7](https://github.com/btravers/amqp-contract/blob/
|
|
396
|
+
Defined in: [packages/core/src/errors.ts:7](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/errors.ts#L7)
|
|
397
397
|
|
|
398
398
|
Error for technical/runtime failures that cannot be prevented by TypeScript.
|
|
399
399
|
|
|
@@ -412,7 +412,7 @@ and other runtime errors. This error is shared across core, worker, and client p
|
|
|
412
412
|
new TechnicalError(message, cause?): TechnicalError;
|
|
413
413
|
```
|
|
414
414
|
|
|
415
|
-
Defined in: [packages/core/src/errors.ts:8](https://github.com/btravers/amqp-contract/blob/
|
|
415
|
+
Defined in: [packages/core/src/errors.ts:8](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/errors.ts#L8)
|
|
416
416
|
|
|
417
417
|
###### Parameters
|
|
418
418
|
|
|
@@ -435,7 +435,7 @@ Error.constructor
|
|
|
435
435
|
|
|
436
436
|
| Property | Modifier | Type | Description | Inherited from | Defined in |
|
|
437
437
|
| ------ | ------ | ------ | ------ | ------ | ------ |
|
|
438
|
-
| <a id="cause"></a> `cause?` | `readonly` | `unknown` | - | `Error.cause` | [packages/core/src/errors.ts:10](https://github.com/btravers/amqp-contract/blob/
|
|
438
|
+
| <a id="cause"></a> `cause?` | `readonly` | `unknown` | - | `Error.cause` | [packages/core/src/errors.ts:10](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/errors.ts#L10) |
|
|
439
439
|
| <a id="message"></a> `message` | `public` | `string` | - | `Error.message` | node\_modules/.pnpm/typescript@5.9.3/node\_modules/typescript/lib/lib.es5.d.ts:1077 |
|
|
440
440
|
| <a id="name"></a> `name` | `public` | `string` | - | `Error.name` | node\_modules/.pnpm/typescript@5.9.3/node\_modules/typescript/lib/lib.es5.d.ts:1076 |
|
|
441
441
|
| <a id="stack"></a> `stack?` | `public` | `string` | - | `Error.stack` | node\_modules/.pnpm/typescript@5.9.3/node\_modules/typescript/lib/lib.es5.d.ts:1078 |
|
|
@@ -549,7 +549,7 @@ Error.prepareStackTrace
|
|
|
549
549
|
type AmqpClientOptions = object;
|
|
550
550
|
```
|
|
551
551
|
|
|
552
|
-
Defined in: [packages/core/src/amqp-client.ts:22](https://github.com/btravers/amqp-contract/blob/
|
|
552
|
+
Defined in: [packages/core/src/amqp-client.ts:22](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L22)
|
|
553
553
|
|
|
554
554
|
Options for creating an AMQP client.
|
|
555
555
|
|
|
@@ -557,9 +557,9 @@ Options for creating an AMQP client.
|
|
|
557
557
|
|
|
558
558
|
| Property | Type | Description | Defined in |
|
|
559
559
|
| ------ | ------ | ------ | ------ |
|
|
560
|
-
| <a id="channeloptions"></a> `channelOptions?` | `Partial`<`CreateChannelOpts`> | Optional channel configuration options. | [packages/core/src/amqp-client.ts:25](https://github.com/btravers/amqp-contract/blob/
|
|
561
|
-
| <a id="connectionoptions"></a> `connectionOptions?` | `AmqpConnectionManagerOptions` | Optional connection configuration (heartbeat, reconnect settings, etc.). | [packages/core/src/amqp-client.ts:24](https://github.com/btravers/amqp-contract/blob/
|
|
562
|
-
| <a id="urls"></a> `urls` | `ConnectionUrl`[] | AMQP broker URL(s). Multiple URLs provide failover support. | [packages/core/src/amqp-client.ts:23](https://github.com/btravers/amqp-contract/blob/
|
|
560
|
+
| <a id="channeloptions"></a> `channelOptions?` | `Partial`<`CreateChannelOpts`> | Optional channel configuration options. | [packages/core/src/amqp-client.ts:25](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L25) |
|
|
561
|
+
| <a id="connectionoptions"></a> `connectionOptions?` | `AmqpConnectionManagerOptions` | Optional connection configuration (heartbeat, reconnect settings, etc.). | [packages/core/src/amqp-client.ts:24](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L24) |
|
|
562
|
+
| <a id="urls"></a> `urls` | `ConnectionUrl`[] | AMQP broker URL(s). Multiple URLs provide failover support. | [packages/core/src/amqp-client.ts:23](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L23) |
|
|
563
563
|
|
|
564
564
|
***
|
|
565
565
|
|
|
@@ -569,7 +569,7 @@ Options for creating an AMQP client.
|
|
|
569
569
|
type ConsumeCallback = (msg) => void | Promise<void>;
|
|
570
570
|
```
|
|
571
571
|
|
|
572
|
-
Defined in: [packages/core/src/amqp-client.ts:31](https://github.com/btravers/amqp-contract/blob/
|
|
572
|
+
Defined in: [packages/core/src/amqp-client.ts:31](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/amqp-client.ts#L31)
|
|
573
573
|
|
|
574
574
|
Callback type for consuming messages.
|
|
575
575
|
|
|
@@ -591,7 +591,7 @@ Callback type for consuming messages.
|
|
|
591
591
|
type Logger = object;
|
|
592
592
|
```
|
|
593
593
|
|
|
594
|
-
Defined in: [packages/core/src/logger.ts:30](https://github.com/btravers/amqp-contract/blob/
|
|
594
|
+
Defined in: [packages/core/src/logger.ts:30](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/logger.ts#L30)
|
|
595
595
|
|
|
596
596
|
Logger interface for amqp-contract packages.
|
|
597
597
|
|
|
@@ -618,7 +618,7 @@ const logger: Logger = {
|
|
|
618
618
|
debug(message, context?): void;
|
|
619
619
|
```
|
|
620
620
|
|
|
621
|
-
Defined in: [packages/core/src/logger.ts:36](https://github.com/btravers/amqp-contract/blob/
|
|
621
|
+
Defined in: [packages/core/src/logger.ts:36](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/logger.ts#L36)
|
|
622
622
|
|
|
623
623
|
Log debug level messages
|
|
624
624
|
|
|
@@ -639,7 +639,7 @@ Log debug level messages
|
|
|
639
639
|
error(message, context?): void;
|
|
640
640
|
```
|
|
641
641
|
|
|
642
|
-
Defined in: [packages/core/src/logger.ts:57](https://github.com/btravers/amqp-contract/blob/
|
|
642
|
+
Defined in: [packages/core/src/logger.ts:57](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/logger.ts#L57)
|
|
643
643
|
|
|
644
644
|
Log error level messages
|
|
645
645
|
|
|
@@ -660,7 +660,7 @@ Log error level messages
|
|
|
660
660
|
info(message, context?): void;
|
|
661
661
|
```
|
|
662
662
|
|
|
663
|
-
Defined in: [packages/core/src/logger.ts:43](https://github.com/btravers/amqp-contract/blob/
|
|
663
|
+
Defined in: [packages/core/src/logger.ts:43](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/logger.ts#L43)
|
|
664
664
|
|
|
665
665
|
Log info level messages
|
|
666
666
|
|
|
@@ -681,7 +681,7 @@ Log info level messages
|
|
|
681
681
|
warn(message, context?): void;
|
|
682
682
|
```
|
|
683
683
|
|
|
684
|
-
Defined in: [packages/core/src/logger.ts:50](https://github.com/btravers/amqp-contract/blob/
|
|
684
|
+
Defined in: [packages/core/src/logger.ts:50](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/logger.ts#L50)
|
|
685
685
|
|
|
686
686
|
Log warning level messages
|
|
687
687
|
|
|
@@ -704,7 +704,7 @@ Log warning level messages
|
|
|
704
704
|
type LoggerContext = Record<string, unknown> & object;
|
|
705
705
|
```
|
|
706
706
|
|
|
707
|
-
Defined in: [packages/core/src/logger.ts:9](https://github.com/btravers/amqp-contract/blob/
|
|
707
|
+
Defined in: [packages/core/src/logger.ts:9](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/logger.ts#L9)
|
|
708
708
|
|
|
709
709
|
Context object for logger methods.
|
|
710
710
|
|
|
@@ -715,7 +715,7 @@ for common logging context properties.
|
|
|
715
715
|
|
|
716
716
|
| Name | Type | Defined in |
|
|
717
717
|
| ------ | ------ | ------ |
|
|
718
|
-
| `error?` | `unknown` | [packages/core/src/logger.ts:10](https://github.com/btravers/amqp-contract/blob/
|
|
718
|
+
| `error?` | `unknown` | [packages/core/src/logger.ts:10](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/logger.ts#L10) |
|
|
719
719
|
|
|
720
720
|
***
|
|
721
721
|
|
|
@@ -725,7 +725,7 @@ for common logging context properties.
|
|
|
725
725
|
type TelemetryProvider = object;
|
|
726
726
|
```
|
|
727
727
|
|
|
728
|
-
Defined in: [packages/core/src/telemetry.ts:55](https://github.com/btravers/amqp-contract/blob/
|
|
728
|
+
Defined in: [packages/core/src/telemetry.ts:55](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L55)
|
|
729
729
|
|
|
730
730
|
Telemetry provider for AMQP operations.
|
|
731
731
|
Uses lazy loading to gracefully handle cases where OpenTelemetry is not installed.
|
|
@@ -734,11 +734,11 @@ Uses lazy loading to gracefully handle cases where OpenTelemetry is not installe
|
|
|
734
734
|
|
|
735
735
|
| Property | Type | Description | Defined in |
|
|
736
736
|
| ------ | ------ | ------ | ------ |
|
|
737
|
-
| <a id="getconsumecounter"></a> `getConsumeCounter` | () => `Counter` \| `undefined` | Get a counter for messages consumed. Returns undefined if OpenTelemetry is not available. | [packages/core/src/telemetry.ts:72](https://github.com/btravers/amqp-contract/blob/
|
|
738
|
-
| <a id="getconsumelatencyhistogram"></a> `getConsumeLatencyHistogram` | () => `Histogram` \| `undefined` | Get a histogram for consume/process latency. Returns undefined if OpenTelemetry is not available. | [packages/core/src/telemetry.ts:84](https://github.com/btravers/amqp-contract/blob/
|
|
739
|
-
| <a id="getpublishcounter"></a> `getPublishCounter` | () => `Counter` \| `undefined` | Get a counter for messages published. Returns undefined if OpenTelemetry is not available. | [packages/core/src/telemetry.ts:66](https://github.com/btravers/amqp-contract/blob/
|
|
740
|
-
| <a id="getpublishlatencyhistogram"></a> `getPublishLatencyHistogram` | () => `Histogram` \| `undefined` | Get a histogram for publish latency. Returns undefined if OpenTelemetry is not available. | [packages/core/src/telemetry.ts:78](https://github.com/btravers/amqp-contract/blob/
|
|
741
|
-
| <a id="gettracer"></a> `getTracer` | () => `Tracer` \| `undefined` | Get a tracer instance for creating spans. Returns undefined if OpenTelemetry is not available. | [packages/core/src/telemetry.ts:60](https://github.com/btravers/amqp-contract/blob/
|
|
737
|
+
| <a id="getconsumecounter"></a> `getConsumeCounter` | () => `Counter` \| `undefined` | Get a counter for messages consumed. Returns undefined if OpenTelemetry is not available. | [packages/core/src/telemetry.ts:72](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L72) |
|
|
738
|
+
| <a id="getconsumelatencyhistogram"></a> `getConsumeLatencyHistogram` | () => `Histogram` \| `undefined` | Get a histogram for consume/process latency. Returns undefined if OpenTelemetry is not available. | [packages/core/src/telemetry.ts:84](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L84) |
|
|
739
|
+
| <a id="getpublishcounter"></a> `getPublishCounter` | () => `Counter` \| `undefined` | Get a counter for messages published. Returns undefined if OpenTelemetry is not available. | [packages/core/src/telemetry.ts:66](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L66) |
|
|
740
|
+
| <a id="getpublishlatencyhistogram"></a> `getPublishLatencyHistogram` | () => `Histogram` \| `undefined` | Get a histogram for publish latency. Returns undefined if OpenTelemetry is not available. | [packages/core/src/telemetry.ts:78](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L78) |
|
|
741
|
+
| <a id="gettracer"></a> `getTracer` | () => `Tracer` \| `undefined` | Get a tracer instance for creating spans. Returns undefined if OpenTelemetry is not available. | [packages/core/src/telemetry.ts:60](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L60) |
|
|
742
742
|
|
|
743
743
|
## Variables
|
|
744
744
|
|
|
@@ -748,7 +748,7 @@ Uses lazy loading to gracefully handle cases where OpenTelemetry is not installe
|
|
|
748
748
|
const defaultTelemetryProvider: TelemetryProvider;
|
|
749
749
|
```
|
|
750
750
|
|
|
751
|
-
Defined in: [packages/core/src/telemetry.ts:196](https://github.com/btravers/amqp-contract/blob/
|
|
751
|
+
Defined in: [packages/core/src/telemetry.ts:196](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L196)
|
|
752
752
|
|
|
753
753
|
Default telemetry provider that uses OpenTelemetry API if available.
|
|
754
754
|
|
|
@@ -760,7 +760,7 @@ Default telemetry provider that uses OpenTelemetry API if available.
|
|
|
760
760
|
const MessagingSemanticConventions: object;
|
|
761
761
|
```
|
|
762
762
|
|
|
763
|
-
Defined in: [packages/core/src/telemetry.ts:25](https://github.com/btravers/amqp-contract/blob/
|
|
763
|
+
Defined in: [packages/core/src/telemetry.ts:25](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L25)
|
|
764
764
|
|
|
765
765
|
Semantic conventions for AMQP messaging following OpenTelemetry standards.
|
|
766
766
|
|
|
@@ -768,22 +768,22 @@ Semantic conventions for AMQP messaging following OpenTelemetry standards.
|
|
|
768
768
|
|
|
769
769
|
| Name | Type | Default value | Defined in |
|
|
770
770
|
| ------ | ------ | ------ | ------ |
|
|
771
|
-
| <a id="error_type"></a> `ERROR_TYPE` | `"error.type"` | `"error.type"` | [packages/core/src/telemetry.ts:40](https://github.com/btravers/amqp-contract/blob/
|
|
772
|
-
| <a id="messaging_destination"></a> `MESSAGING_DESTINATION` | `"messaging.destination.name"` | `"messaging.destination.name"` | [packages/core/src/telemetry.ts:28](https://github.com/btravers/amqp-contract/blob/
|
|
773
|
-
| <a id="messaging_destination_kind"></a> `MESSAGING_DESTINATION_KIND` | `"messaging.destination.kind"` | `"messaging.destination.kind"` | [packages/core/src/telemetry.ts:29](https://github.com/btravers/amqp-contract/blob/
|
|
774
|
-
| <a id="messaging_destination_kind_exchange"></a> `MESSAGING_DESTINATION_KIND_EXCHANGE` | `"exchange"` | `"exchange"` | [packages/core/src/telemetry.ts:44](https://github.com/btravers/amqp-contract/blob/
|
|
775
|
-
| <a id="messaging_destination_kind_queue"></a> `MESSAGING_DESTINATION_KIND_QUEUE` | `"queue"` | `"queue"` | [packages/core/src/telemetry.ts:45](https://github.com/btravers/amqp-contract/blob/
|
|
776
|
-
| <a id="messaging_message_conversation_id"></a> `MESSAGING_MESSAGE_CONVERSATION_ID` | `"messaging.message.conversation_id"` | `"messaging.message.conversation_id"` | [packages/core/src/telemetry.ts:33](https://github.com/btravers/amqp-contract/blob/
|
|
777
|
-
| <a id="messaging_message_id"></a> `MESSAGING_MESSAGE_ID` | `"messaging.message.id"` | `"messaging.message.id"` | [packages/core/src/telemetry.ts:31](https://github.com/btravers/amqp-contract/blob/
|
|
778
|
-
| <a id="messaging_message_payload_size"></a> `MESSAGING_MESSAGE_PAYLOAD_SIZE` | `"messaging.message.body.size"` | `"messaging.message.body.size"` | [packages/core/src/telemetry.ts:32](https://github.com/btravers/amqp-contract/blob/
|
|
779
|
-
| <a id="messaging_operation"></a> `MESSAGING_OPERATION` | `"messaging.operation"` | `"messaging.operation"` | [packages/core/src/telemetry.ts:30](https://github.com/btravers/amqp-contract/blob/
|
|
780
|
-
| <a id="messaging_operation_process"></a> `MESSAGING_OPERATION_PROCESS` | `"process"` | `"process"` | [packages/core/src/telemetry.ts:48](https://github.com/btravers/amqp-contract/blob/
|
|
781
|
-
| <a id="messaging_operation_publish"></a> `MESSAGING_OPERATION_PUBLISH` | `"publish"` | `"publish"` | [packages/core/src/telemetry.ts:46](https://github.com/btravers/amqp-contract/blob/
|
|
782
|
-
| <a id="messaging_operation_receive"></a> `MESSAGING_OPERATION_RECEIVE` | `"receive"` | `"receive"` | [packages/core/src/telemetry.ts:47](https://github.com/btravers/amqp-contract/blob/
|
|
783
|
-
| <a id="messaging_rabbitmq_message_delivery_tag"></a> `MESSAGING_RABBITMQ_MESSAGE_DELIVERY_TAG` | `"messaging.rabbitmq.message.delivery_tag"` | `"messaging.rabbitmq.message.delivery_tag"` | [packages/core/src/telemetry.ts:37](https://github.com/btravers/amqp-contract/blob/
|
|
784
|
-
| <a id="messaging_rabbitmq_routing_key"></a> `MESSAGING_RABBITMQ_ROUTING_KEY` | `"messaging.rabbitmq.destination.routing_key"` | `"messaging.rabbitmq.destination.routing_key"` | [packages/core/src/telemetry.ts:36](https://github.com/btravers/amqp-contract/blob/
|
|
785
|
-
| <a id="messaging_system"></a> `MESSAGING_SYSTEM` | `"messaging.system"` | `"messaging.system"` | [packages/core/src/telemetry.ts:27](https://github.com/btravers/amqp-contract/blob/
|
|
786
|
-
| <a id="messaging_system_rabbitmq"></a> `MESSAGING_SYSTEM_RABBITMQ` | `"rabbitmq"` | `"rabbitmq"` | [packages/core/src/telemetry.ts:43](https://github.com/btravers/amqp-contract/blob/
|
|
771
|
+
| <a id="error_type"></a> `ERROR_TYPE` | `"error.type"` | `"error.type"` | [packages/core/src/telemetry.ts:40](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L40) |
|
|
772
|
+
| <a id="messaging_destination"></a> `MESSAGING_DESTINATION` | `"messaging.destination.name"` | `"messaging.destination.name"` | [packages/core/src/telemetry.ts:28](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L28) |
|
|
773
|
+
| <a id="messaging_destination_kind"></a> `MESSAGING_DESTINATION_KIND` | `"messaging.destination.kind"` | `"messaging.destination.kind"` | [packages/core/src/telemetry.ts:29](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L29) |
|
|
774
|
+
| <a id="messaging_destination_kind_exchange"></a> `MESSAGING_DESTINATION_KIND_EXCHANGE` | `"exchange"` | `"exchange"` | [packages/core/src/telemetry.ts:44](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L44) |
|
|
775
|
+
| <a id="messaging_destination_kind_queue"></a> `MESSAGING_DESTINATION_KIND_QUEUE` | `"queue"` | `"queue"` | [packages/core/src/telemetry.ts:45](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L45) |
|
|
776
|
+
| <a id="messaging_message_conversation_id"></a> `MESSAGING_MESSAGE_CONVERSATION_ID` | `"messaging.message.conversation_id"` | `"messaging.message.conversation_id"` | [packages/core/src/telemetry.ts:33](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L33) |
|
|
777
|
+
| <a id="messaging_message_id"></a> `MESSAGING_MESSAGE_ID` | `"messaging.message.id"` | `"messaging.message.id"` | [packages/core/src/telemetry.ts:31](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L31) |
|
|
778
|
+
| <a id="messaging_message_payload_size"></a> `MESSAGING_MESSAGE_PAYLOAD_SIZE` | `"messaging.message.body.size"` | `"messaging.message.body.size"` | [packages/core/src/telemetry.ts:32](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L32) |
|
|
779
|
+
| <a id="messaging_operation"></a> `MESSAGING_OPERATION` | `"messaging.operation"` | `"messaging.operation"` | [packages/core/src/telemetry.ts:30](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L30) |
|
|
780
|
+
| <a id="messaging_operation_process"></a> `MESSAGING_OPERATION_PROCESS` | `"process"` | `"process"` | [packages/core/src/telemetry.ts:48](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L48) |
|
|
781
|
+
| <a id="messaging_operation_publish"></a> `MESSAGING_OPERATION_PUBLISH` | `"publish"` | `"publish"` | [packages/core/src/telemetry.ts:46](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L46) |
|
|
782
|
+
| <a id="messaging_operation_receive"></a> `MESSAGING_OPERATION_RECEIVE` | `"receive"` | `"receive"` | [packages/core/src/telemetry.ts:47](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L47) |
|
|
783
|
+
| <a id="messaging_rabbitmq_message_delivery_tag"></a> `MESSAGING_RABBITMQ_MESSAGE_DELIVERY_TAG` | `"messaging.rabbitmq.message.delivery_tag"` | `"messaging.rabbitmq.message.delivery_tag"` | [packages/core/src/telemetry.ts:37](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L37) |
|
|
784
|
+
| <a id="messaging_rabbitmq_routing_key"></a> `MESSAGING_RABBITMQ_ROUTING_KEY` | `"messaging.rabbitmq.destination.routing_key"` | `"messaging.rabbitmq.destination.routing_key"` | [packages/core/src/telemetry.ts:36](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L36) |
|
|
785
|
+
| <a id="messaging_system"></a> `MESSAGING_SYSTEM` | `"messaging.system"` | `"messaging.system"` | [packages/core/src/telemetry.ts:27](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L27) |
|
|
786
|
+
| <a id="messaging_system_rabbitmq"></a> `MESSAGING_SYSTEM_RABBITMQ` | `"rabbitmq"` | `"rabbitmq"` | [packages/core/src/telemetry.ts:43](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L43) |
|
|
787
787
|
|
|
788
788
|
#### See
|
|
789
789
|
|
|
@@ -797,7 +797,7 @@ https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/
|
|
|
797
797
|
function endSpanError(span, error): void;
|
|
798
798
|
```
|
|
799
799
|
|
|
800
|
-
Defined in: [packages/core/src/telemetry.ts:290](https://github.com/btravers/amqp-contract/blob/
|
|
800
|
+
Defined in: [packages/core/src/telemetry.ts:290](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L290)
|
|
801
801
|
|
|
802
802
|
End a span with error status.
|
|
803
803
|
|
|
@@ -820,7 +820,7 @@ End a span with error status.
|
|
|
820
820
|
function endSpanSuccess(span): void;
|
|
821
821
|
```
|
|
822
822
|
|
|
823
|
-
Defined in: [packages/core/src/telemetry.ts:275](https://github.com/btravers/amqp-contract/blob/
|
|
823
|
+
Defined in: [packages/core/src/telemetry.ts:275](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L275)
|
|
824
824
|
|
|
825
825
|
End a span with success status.
|
|
826
826
|
|
|
@@ -847,7 +847,7 @@ function recordConsumeMetric(
|
|
|
847
847
|
durationMs): void;
|
|
848
848
|
```
|
|
849
849
|
|
|
850
|
-
Defined in: [packages/core/src/telemetry.ts:334](https://github.com/btravers/amqp-contract/blob/
|
|
850
|
+
Defined in: [packages/core/src/telemetry.ts:334](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L334)
|
|
851
851
|
|
|
852
852
|
Record a consume metric.
|
|
853
853
|
|
|
@@ -878,7 +878,7 @@ function recordPublishMetric(
|
|
|
878
878
|
durationMs): void;
|
|
879
879
|
```
|
|
880
880
|
|
|
881
|
-
Defined in: [packages/core/src/telemetry.ts:307](https://github.com/btravers/amqp-contract/blob/
|
|
881
|
+
Defined in: [packages/core/src/telemetry.ts:307](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L307)
|
|
882
882
|
|
|
883
883
|
Record a publish metric.
|
|
884
884
|
|
|
@@ -904,7 +904,7 @@ Record a publish metric.
|
|
|
904
904
|
function setupAmqpTopology(channel, contract): Promise<void>;
|
|
905
905
|
```
|
|
906
906
|
|
|
907
|
-
Defined in: [packages/core/src/setup.ts:25](https://github.com/btravers/amqp-contract/blob/
|
|
907
|
+
Defined in: [packages/core/src/setup.ts:25](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/setup.ts#L25)
|
|
908
908
|
|
|
909
909
|
Setup AMQP topology (exchanges, queues, and bindings) from a contract definition.
|
|
910
910
|
|
|
@@ -952,7 +952,7 @@ function startConsumeSpan(
|
|
|
952
952
|
attributes?): Span | undefined;
|
|
953
953
|
```
|
|
954
954
|
|
|
955
|
-
Defined in: [packages/core/src/telemetry.ts:243](https://github.com/btravers/amqp-contract/blob/
|
|
955
|
+
Defined in: [packages/core/src/telemetry.ts:243](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L243)
|
|
956
956
|
|
|
957
957
|
Create a span for a consume/process operation.
|
|
958
958
|
Returns undefined if OpenTelemetry is not available.
|
|
@@ -982,7 +982,7 @@ function startPublishSpan(
|
|
|
982
982
|
attributes?): Span | undefined;
|
|
983
983
|
```
|
|
984
984
|
|
|
985
|
-
Defined in: [packages/core/src/telemetry.ts:208](https://github.com/btravers/amqp-contract/blob/
|
|
985
|
+
Defined in: [packages/core/src/telemetry.ts:208](https://github.com/btravers/amqp-contract/blob/14b3465c61d25678b908341226a86fc481470ac6/packages/core/src/telemetry.ts#L208)
|
|
986
986
|
|
|
987
987
|
Create a span for a publish operation.
|
|
988
988
|
Returns undefined if OpenTelemetry is not available.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amqp-contract/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Core utilities for AMQP setup and management in amqp-contract",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"amqp",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@swan-io/boxed": "3.2.1",
|
|
54
54
|
"amqp-connection-manager": "5.0.0",
|
|
55
55
|
"amqplib": "0.10.9",
|
|
56
|
-
"@amqp-contract/contract": "0.
|
|
56
|
+
"@amqp-contract/contract": "0.16.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@opentelemetry/api": "1.9.0",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"typescript": "5.9.3",
|
|
65
65
|
"vitest": "4.0.18",
|
|
66
66
|
"zod": "4.3.6",
|
|
67
|
-
"@amqp-contract/testing": "0.
|
|
67
|
+
"@amqp-contract/testing": "0.16.0",
|
|
68
68
|
"@amqp-contract/tsconfig": "0.1.0",
|
|
69
69
|
"@amqp-contract/typedoc": "0.1.0"
|
|
70
70
|
},
|