@amqp-contract/core 0.13.0 → 0.15.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/dist/index.cjs +2 -1
- package/dist/index.d.cts +0 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +0 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/docs/index.md +1001 -0
- package/package.json +9 -8
package/dist/index.cjs
CHANGED
package/dist/index.d.cts
CHANGED
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/logger.ts","../src/errors.ts","../src/amqp-client.ts","../src/connection-manager.ts","../src/setup.ts","../src/telemetry.ts"],"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/logger.ts","../src/errors.ts","../src/amqp-client.ts","../src/connection-manager.ts","../src/setup.ts","../src/telemetry.ts"],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/logger.ts","../src/errors.ts","../src/amqp-client.ts","../src/connection-manager.ts","../src/setup.ts","../src/telemetry.ts"],"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/logger.ts","../src/errors.ts","../src/amqp-client.ts","../src/connection-manager.ts","../src/setup.ts","../src/telemetry.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { Future } from "@swan-io/boxed";
|
|
|
3
3
|
import amqp from "amqp-connection-manager";
|
|
4
4
|
import { extractQueue } from "@amqp-contract/contract";
|
|
5
5
|
|
|
6
|
-
//#region
|
|
6
|
+
//#region \0rolldown/runtime.js
|
|
7
7
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
8
8
|
|
|
9
9
|
//#endregion
|
package/docs/index.md
ADDED
|
@@ -0,0 +1,1001 @@
|
|
|
1
|
+
**@amqp-contract/core**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
# @amqp-contract/core
|
|
6
|
+
|
|
7
|
+
## Classes
|
|
8
|
+
|
|
9
|
+
### AmqpClient
|
|
10
|
+
|
|
11
|
+
Defined in: [packages/core/src/amqp-client.ts:61](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L61)
|
|
12
|
+
|
|
13
|
+
AMQP client that manages connections and channels with automatic topology setup.
|
|
14
|
+
|
|
15
|
+
This class handles:
|
|
16
|
+
- Connection management with automatic reconnection via amqp-connection-manager
|
|
17
|
+
- Connection pooling and sharing across instances with the same URLs
|
|
18
|
+
- Automatic AMQP topology setup (exchanges, queues, bindings) from contract
|
|
19
|
+
- Channel creation with JSON serialization enabled by default
|
|
20
|
+
|
|
21
|
+
All operations return `Future<Result<T, TechnicalError>>` for consistent error handling.
|
|
22
|
+
|
|
23
|
+
#### Example
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
const client = new AmqpClient(contract, {
|
|
27
|
+
urls: ['amqp://localhost'],
|
|
28
|
+
connectionOptions: { heartbeatIntervalInSeconds: 30 }
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
// Wait for connection
|
|
32
|
+
await client.waitForConnect().resultToPromise();
|
|
33
|
+
|
|
34
|
+
// Publish a message
|
|
35
|
+
const result = await client.publish('exchange', 'routingKey', { data: 'value' }).resultToPromise();
|
|
36
|
+
|
|
37
|
+
// Close when done
|
|
38
|
+
await client.close().resultToPromise();
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### Constructors
|
|
42
|
+
|
|
43
|
+
##### Constructor
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
new AmqpClient(contract, options): AmqpClient;
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Defined in: [packages/core/src/amqp-client.ts:78](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L78)
|
|
50
|
+
|
|
51
|
+
Create a new AMQP client instance.
|
|
52
|
+
|
|
53
|
+
The client will automatically:
|
|
54
|
+
- Get or create a shared connection using the singleton pattern
|
|
55
|
+
- Set up AMQP topology (exchanges, queues, bindings) from the contract
|
|
56
|
+
- Create a channel with JSON serialization enabled
|
|
57
|
+
|
|
58
|
+
###### Parameters
|
|
59
|
+
|
|
60
|
+
| Parameter | Type | Description |
|
|
61
|
+
| ------ | ------ | ------ |
|
|
62
|
+
| `contract` | `ContractDefinition` | The contract definition specifying the AMQP topology |
|
|
63
|
+
| `options` | [`AmqpClientOptions`](#amqpclientoptions) | Client configuration options |
|
|
64
|
+
|
|
65
|
+
###### Returns
|
|
66
|
+
|
|
67
|
+
[`AmqpClient`](#amqpclient)
|
|
68
|
+
|
|
69
|
+
#### Methods
|
|
70
|
+
|
|
71
|
+
##### ack()
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
ack(msg, allUpTo): void;
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Defined in: [packages/core/src/amqp-client.ts:212](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L212)
|
|
78
|
+
|
|
79
|
+
Acknowledge a message.
|
|
80
|
+
|
|
81
|
+
###### Parameters
|
|
82
|
+
|
|
83
|
+
| Parameter | Type | Default value | Description |
|
|
84
|
+
| ------ | ------ | ------ | ------ |
|
|
85
|
+
| `msg` | `ConsumeMessage` | `undefined` | The message to acknowledge |
|
|
86
|
+
| `allUpTo` | `boolean` | `false` | If true, acknowledge all messages up to and including this one |
|
|
87
|
+
|
|
88
|
+
###### Returns
|
|
89
|
+
|
|
90
|
+
`void`
|
|
91
|
+
|
|
92
|
+
##### addSetup()
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
addSetup(setup): void;
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Defined in: [packages/core/src/amqp-client.ts:234](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L234)
|
|
99
|
+
|
|
100
|
+
Add a setup function to be called when the channel is created or reconnected.
|
|
101
|
+
|
|
102
|
+
This is useful for setting up channel-level configuration like prefetch.
|
|
103
|
+
|
|
104
|
+
###### Parameters
|
|
105
|
+
|
|
106
|
+
| Parameter | Type | Description |
|
|
107
|
+
| ------ | ------ | ------ |
|
|
108
|
+
| `setup` | (`channel`) => `void` \| `Promise`<`void`> | The setup function to add |
|
|
109
|
+
|
|
110
|
+
###### Returns
|
|
111
|
+
|
|
112
|
+
`void`
|
|
113
|
+
|
|
114
|
+
##### cancel()
|
|
115
|
+
|
|
116
|
+
```ts
|
|
117
|
+
cancel(consumerTag): Future<Result<void, TechnicalError>>;
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Defined in: [packages/core/src/amqp-client.ts:200](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L200)
|
|
121
|
+
|
|
122
|
+
Cancel a consumer by its consumer tag.
|
|
123
|
+
|
|
124
|
+
###### Parameters
|
|
125
|
+
|
|
126
|
+
| Parameter | Type | Description |
|
|
127
|
+
| ------ | ------ | ------ |
|
|
128
|
+
| `consumerTag` | `string` | The consumer tag to cancel |
|
|
129
|
+
|
|
130
|
+
###### Returns
|
|
131
|
+
|
|
132
|
+
`Future`<`Result`<`void`, [`TechnicalError`](#technicalerror)>>
|
|
133
|
+
|
|
134
|
+
A Future that resolves when the consumer is cancelled
|
|
135
|
+
|
|
136
|
+
##### close()
|
|
137
|
+
|
|
138
|
+
```ts
|
|
139
|
+
close(): Future<Result<void, TechnicalError>>;
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Defined in: [packages/core/src/amqp-client.ts:263](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L263)
|
|
143
|
+
|
|
144
|
+
Close the channel and release the connection reference.
|
|
145
|
+
|
|
146
|
+
This will:
|
|
147
|
+
- Close the channel wrapper
|
|
148
|
+
- Decrease the reference count on the shared connection
|
|
149
|
+
- Close the connection if this was the last client using it
|
|
150
|
+
|
|
151
|
+
###### Returns
|
|
152
|
+
|
|
153
|
+
`Future`<`Result`<`void`, [`TechnicalError`](#technicalerror)>>
|
|
154
|
+
|
|
155
|
+
A Future that resolves when the channel and connection are closed
|
|
156
|
+
|
|
157
|
+
##### consume()
|
|
158
|
+
|
|
159
|
+
```ts
|
|
160
|
+
consume(
|
|
161
|
+
queue,
|
|
162
|
+
callback,
|
|
163
|
+
options?): Future<Result<string, TechnicalError>>;
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Defined in: [packages/core/src/amqp-client.ts:184](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L184)
|
|
167
|
+
|
|
168
|
+
Start consuming messages from a queue.
|
|
169
|
+
|
|
170
|
+
###### Parameters
|
|
171
|
+
|
|
172
|
+
| Parameter | Type | Description |
|
|
173
|
+
| ------ | ------ | ------ |
|
|
174
|
+
| `queue` | `string` | The queue name |
|
|
175
|
+
| `callback` | [`ConsumeCallback`](#consumecallback) | The callback to invoke for each message |
|
|
176
|
+
| `options?` | `Consume` | Optional consume options |
|
|
177
|
+
|
|
178
|
+
###### Returns
|
|
179
|
+
|
|
180
|
+
`Future`<`Result`<`string`, [`TechnicalError`](#technicalerror)>>
|
|
181
|
+
|
|
182
|
+
A Future with `Result<string>` - the consumer tag
|
|
183
|
+
|
|
184
|
+
##### getConnection()
|
|
185
|
+
|
|
186
|
+
```ts
|
|
187
|
+
getConnection(): IAmqpConnectionManager;
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Defined in: [packages/core/src/amqp-client.ts:141](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L141)
|
|
191
|
+
|
|
192
|
+
Get the underlying connection manager
|
|
193
|
+
|
|
194
|
+
This method exposes the AmqpConnectionManager instance that this client uses.
|
|
195
|
+
The connection is automatically shared across all AmqpClient instances that
|
|
196
|
+
use the same URLs and connection options.
|
|
197
|
+
|
|
198
|
+
###### Returns
|
|
199
|
+
|
|
200
|
+
`IAmqpConnectionManager`
|
|
201
|
+
|
|
202
|
+
The AmqpConnectionManager instance used by this client
|
|
203
|
+
|
|
204
|
+
##### nack()
|
|
205
|
+
|
|
206
|
+
```ts
|
|
207
|
+
nack(
|
|
208
|
+
msg,
|
|
209
|
+
allUpTo,
|
|
210
|
+
requeue): void;
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Defined in: [packages/core/src/amqp-client.ts:223](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L223)
|
|
214
|
+
|
|
215
|
+
Negative acknowledge a message.
|
|
216
|
+
|
|
217
|
+
###### Parameters
|
|
218
|
+
|
|
219
|
+
| Parameter | Type | Default value | Description |
|
|
220
|
+
| ------ | ------ | ------ | ------ |
|
|
221
|
+
| `msg` | `ConsumeMessage` | `undefined` | The message to nack |
|
|
222
|
+
| `allUpTo` | `boolean` | `false` | If true, nack all messages up to and including this one |
|
|
223
|
+
| `requeue` | `boolean` | `true` | If true, requeue the message(s) |
|
|
224
|
+
|
|
225
|
+
###### Returns
|
|
226
|
+
|
|
227
|
+
`void`
|
|
228
|
+
|
|
229
|
+
##### on()
|
|
230
|
+
|
|
231
|
+
```ts
|
|
232
|
+
on(event, listener): void;
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Defined in: [packages/core/src/amqp-client.ts:249](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L249)
|
|
236
|
+
|
|
237
|
+
Register an event listener on the channel wrapper.
|
|
238
|
+
|
|
239
|
+
Available events:
|
|
240
|
+
- 'connect': Emitted when the channel is (re)connected
|
|
241
|
+
- 'close': Emitted when the channel is closed
|
|
242
|
+
- 'error': Emitted when an error occurs
|
|
243
|
+
|
|
244
|
+
###### Parameters
|
|
245
|
+
|
|
246
|
+
| Parameter | Type | Description |
|
|
247
|
+
| ------ | ------ | ------ |
|
|
248
|
+
| `event` | `string` | The event name |
|
|
249
|
+
| `listener` | (...`args`) => `void` | The event listener |
|
|
250
|
+
|
|
251
|
+
###### Returns
|
|
252
|
+
|
|
253
|
+
`void`
|
|
254
|
+
|
|
255
|
+
##### publish()
|
|
256
|
+
|
|
257
|
+
```ts
|
|
258
|
+
publish(
|
|
259
|
+
exchange,
|
|
260
|
+
routingKey,
|
|
261
|
+
content,
|
|
262
|
+
options?): Future<Result<boolean, TechnicalError>>;
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Defined in: [packages/core/src/amqp-client.ts:165](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L165)
|
|
266
|
+
|
|
267
|
+
Publish a message to an exchange.
|
|
268
|
+
|
|
269
|
+
###### Parameters
|
|
270
|
+
|
|
271
|
+
| Parameter | Type | Description |
|
|
272
|
+
| ------ | ------ | ------ |
|
|
273
|
+
| `exchange` | `string` | The exchange name |
|
|
274
|
+
| `routingKey` | `string` | The routing key |
|
|
275
|
+
| `content` | `unknown` | The message content (will be JSON serialized if json: true) |
|
|
276
|
+
| `options?` | `Publish` | Optional publish options |
|
|
277
|
+
|
|
278
|
+
###### Returns
|
|
279
|
+
|
|
280
|
+
`Future`<`Result`<`boolean`, [`TechnicalError`](#technicalerror)>>
|
|
281
|
+
|
|
282
|
+
A Future with `Result<boolean>` - true if message was sent, false if channel buffer is full
|
|
283
|
+
|
|
284
|
+
##### waitForConnect()
|
|
285
|
+
|
|
286
|
+
```ts
|
|
287
|
+
waitForConnect(): Future<Result<void, TechnicalError>>;
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
Defined in: [packages/core/src/amqp-client.ts:150](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L150)
|
|
291
|
+
|
|
292
|
+
Wait for the channel to be connected and ready.
|
|
293
|
+
|
|
294
|
+
###### Returns
|
|
295
|
+
|
|
296
|
+
`Future`<`Result`<`void`, [`TechnicalError`](#technicalerror)>>
|
|
297
|
+
|
|
298
|
+
A Future that resolves when the channel is connected
|
|
299
|
+
|
|
300
|
+
***
|
|
301
|
+
|
|
302
|
+
### ConnectionManagerSingleton
|
|
303
|
+
|
|
304
|
+
Defined in: [packages/core/src/connection-manager.ts:23](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/connection-manager.ts#L23)
|
|
305
|
+
|
|
306
|
+
Connection manager singleton for sharing AMQP connections across clients.
|
|
307
|
+
|
|
308
|
+
This singleton implements connection pooling to avoid creating multiple connections
|
|
309
|
+
to the same broker, which is a RabbitMQ best practice. Connections are identified
|
|
310
|
+
by their URLs and connection options, and reference counting ensures connections
|
|
311
|
+
are only closed when all clients have released them.
|
|
312
|
+
|
|
313
|
+
#### Example
|
|
314
|
+
|
|
315
|
+
```typescript
|
|
316
|
+
const manager = ConnectionManagerSingleton.getInstance();
|
|
317
|
+
const connection = manager.getConnection(['amqp://localhost']);
|
|
318
|
+
// ... use connection ...
|
|
319
|
+
await manager.releaseConnection(['amqp://localhost']);
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
#### Methods
|
|
323
|
+
|
|
324
|
+
##### getConnection()
|
|
325
|
+
|
|
326
|
+
```ts
|
|
327
|
+
getConnection(urls, connectionOptions?): IAmqpConnectionManager;
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
Defined in: [packages/core/src/connection-manager.ts:52](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/connection-manager.ts#L52)
|
|
331
|
+
|
|
332
|
+
Get or create a connection for the given URLs and options.
|
|
333
|
+
|
|
334
|
+
If a connection already exists with the same URLs and options, it is reused
|
|
335
|
+
and its reference count is incremented. Otherwise, a new connection is created.
|
|
336
|
+
|
|
337
|
+
###### Parameters
|
|
338
|
+
|
|
339
|
+
| Parameter | Type | Description |
|
|
340
|
+
| ------ | ------ | ------ |
|
|
341
|
+
| `urls` | `ConnectionUrl`[] | AMQP broker URL(s) |
|
|
342
|
+
| `connectionOptions?` | `AmqpConnectionManagerOptions` | Optional connection configuration |
|
|
343
|
+
|
|
344
|
+
###### Returns
|
|
345
|
+
|
|
346
|
+
`IAmqpConnectionManager`
|
|
347
|
+
|
|
348
|
+
The AMQP connection manager instance
|
|
349
|
+
|
|
350
|
+
##### releaseConnection()
|
|
351
|
+
|
|
352
|
+
```ts
|
|
353
|
+
releaseConnection(urls, connectionOptions?): Promise<void>;
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
Defined in: [packages/core/src/connection-manager.ts:81](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/connection-manager.ts#L81)
|
|
357
|
+
|
|
358
|
+
Release a connection reference.
|
|
359
|
+
|
|
360
|
+
Decrements the reference count for the connection. If the count reaches zero,
|
|
361
|
+
the connection is closed and removed from the pool.
|
|
362
|
+
|
|
363
|
+
###### Parameters
|
|
364
|
+
|
|
365
|
+
| Parameter | Type | Description |
|
|
366
|
+
| ------ | ------ | ------ |
|
|
367
|
+
| `urls` | `ConnectionUrl`[] | AMQP broker URL(s) used to identify the connection |
|
|
368
|
+
| `connectionOptions?` | `AmqpConnectionManagerOptions` | Optional connection configuration used to identify the connection |
|
|
369
|
+
|
|
370
|
+
###### Returns
|
|
371
|
+
|
|
372
|
+
`Promise`<`void`>
|
|
373
|
+
|
|
374
|
+
A promise that resolves when the connection is released (and closed if necessary)
|
|
375
|
+
|
|
376
|
+
##### getInstance()
|
|
377
|
+
|
|
378
|
+
```ts
|
|
379
|
+
static getInstance(): ConnectionManagerSingleton;
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
Defined in: [packages/core/src/connection-manager.ts:35](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/connection-manager.ts#L35)
|
|
383
|
+
|
|
384
|
+
Get the singleton instance of the connection manager.
|
|
385
|
+
|
|
386
|
+
###### Returns
|
|
387
|
+
|
|
388
|
+
[`ConnectionManagerSingleton`](#connectionmanagersingleton)
|
|
389
|
+
|
|
390
|
+
The singleton instance
|
|
391
|
+
|
|
392
|
+
***
|
|
393
|
+
|
|
394
|
+
### TechnicalError
|
|
395
|
+
|
|
396
|
+
Defined in: [packages/core/src/errors.ts:7](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/errors.ts#L7)
|
|
397
|
+
|
|
398
|
+
Error for technical/runtime failures that cannot be prevented by TypeScript.
|
|
399
|
+
|
|
400
|
+
This includes AMQP connection failures, channel issues, validation failures,
|
|
401
|
+
and other runtime errors. This error is shared across core, worker, and client packages.
|
|
402
|
+
|
|
403
|
+
#### Extends
|
|
404
|
+
|
|
405
|
+
- `Error`
|
|
406
|
+
|
|
407
|
+
#### Constructors
|
|
408
|
+
|
|
409
|
+
##### Constructor
|
|
410
|
+
|
|
411
|
+
```ts
|
|
412
|
+
new TechnicalError(message, cause?): TechnicalError;
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
Defined in: [packages/core/src/errors.ts:8](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/errors.ts#L8)
|
|
416
|
+
|
|
417
|
+
###### Parameters
|
|
418
|
+
|
|
419
|
+
| Parameter | Type |
|
|
420
|
+
| ------ | ------ |
|
|
421
|
+
| `message` | `string` |
|
|
422
|
+
| `cause?` | `unknown` |
|
|
423
|
+
|
|
424
|
+
###### Returns
|
|
425
|
+
|
|
426
|
+
[`TechnicalError`](#technicalerror)
|
|
427
|
+
|
|
428
|
+
###### Overrides
|
|
429
|
+
|
|
430
|
+
```ts
|
|
431
|
+
Error.constructor
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
#### Properties
|
|
435
|
+
|
|
436
|
+
| Property | Modifier | Type | Description | Inherited from | Defined in |
|
|
437
|
+
| ------ | ------ | ------ | ------ | ------ | ------ |
|
|
438
|
+
| <a id="cause"></a> `cause?` | `readonly` | `unknown` | - | `Error.cause` | [packages/core/src/errors.ts:10](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/errors.ts#L10) |
|
|
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
|
+
| <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
|
+
| <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 |
|
|
442
|
+
| <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@25.2.1/node\_modules/@types/node/globals.d.ts:67 |
|
|
443
|
+
|
|
444
|
+
#### Methods
|
|
445
|
+
|
|
446
|
+
##### captureStackTrace()
|
|
447
|
+
|
|
448
|
+
```ts
|
|
449
|
+
static captureStackTrace(targetObject, constructorOpt?): void;
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
Defined in: node\_modules/.pnpm/@types+node@25.2.1/node\_modules/@types/node/globals.d.ts:51
|
|
453
|
+
|
|
454
|
+
Creates a `.stack` property on `targetObject`, which when accessed returns
|
|
455
|
+
a string representing the location in the code at which
|
|
456
|
+
`Error.captureStackTrace()` was called.
|
|
457
|
+
|
|
458
|
+
```js
|
|
459
|
+
const myObject = {};
|
|
460
|
+
Error.captureStackTrace(myObject);
|
|
461
|
+
myObject.stack; // Similar to `new Error().stack`
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
The first line of the trace will be prefixed with
|
|
465
|
+
`${myObject.name}: ${myObject.message}`.
|
|
466
|
+
|
|
467
|
+
The optional `constructorOpt` argument accepts a function. If given, all frames
|
|
468
|
+
above `constructorOpt`, including `constructorOpt`, will be omitted from the
|
|
469
|
+
generated stack trace.
|
|
470
|
+
|
|
471
|
+
The `constructorOpt` argument is useful for hiding implementation
|
|
472
|
+
details of error generation from the user. For instance:
|
|
473
|
+
|
|
474
|
+
```js
|
|
475
|
+
function a() {
|
|
476
|
+
b();
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
function b() {
|
|
480
|
+
c();
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
function c() {
|
|
484
|
+
// Create an error without stack trace to avoid calculating the stack trace twice.
|
|
485
|
+
const { stackTraceLimit } = Error;
|
|
486
|
+
Error.stackTraceLimit = 0;
|
|
487
|
+
const error = new Error();
|
|
488
|
+
Error.stackTraceLimit = stackTraceLimit;
|
|
489
|
+
|
|
490
|
+
// Capture the stack trace above function b
|
|
491
|
+
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
|
|
492
|
+
throw error;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
a();
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
###### Parameters
|
|
499
|
+
|
|
500
|
+
| Parameter | Type |
|
|
501
|
+
| ------ | ------ |
|
|
502
|
+
| `targetObject` | `object` |
|
|
503
|
+
| `constructorOpt?` | `Function` |
|
|
504
|
+
|
|
505
|
+
###### Returns
|
|
506
|
+
|
|
507
|
+
`void`
|
|
508
|
+
|
|
509
|
+
###### Inherited from
|
|
510
|
+
|
|
511
|
+
```ts
|
|
512
|
+
Error.captureStackTrace
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
##### prepareStackTrace()
|
|
516
|
+
|
|
517
|
+
```ts
|
|
518
|
+
static prepareStackTrace(err, stackTraces): any;
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
Defined in: node\_modules/.pnpm/@types+node@25.2.1/node\_modules/@types/node/globals.d.ts:55
|
|
522
|
+
|
|
523
|
+
###### Parameters
|
|
524
|
+
|
|
525
|
+
| Parameter | Type |
|
|
526
|
+
| ------ | ------ |
|
|
527
|
+
| `err` | `Error` |
|
|
528
|
+
| `stackTraces` | `CallSite`[] |
|
|
529
|
+
|
|
530
|
+
###### Returns
|
|
531
|
+
|
|
532
|
+
`any`
|
|
533
|
+
|
|
534
|
+
###### See
|
|
535
|
+
|
|
536
|
+
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
|
|
537
|
+
|
|
538
|
+
###### Inherited from
|
|
539
|
+
|
|
540
|
+
```ts
|
|
541
|
+
Error.prepareStackTrace
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
## Type Aliases
|
|
545
|
+
|
|
546
|
+
### AmqpClientOptions
|
|
547
|
+
|
|
548
|
+
```ts
|
|
549
|
+
type AmqpClientOptions = object;
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
Defined in: [packages/core/src/amqp-client.ts:22](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L22)
|
|
553
|
+
|
|
554
|
+
Options for creating an AMQP client.
|
|
555
|
+
|
|
556
|
+
#### Properties
|
|
557
|
+
|
|
558
|
+
| Property | Type | Description | Defined in |
|
|
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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L23) |
|
|
563
|
+
|
|
564
|
+
***
|
|
565
|
+
|
|
566
|
+
### ConsumeCallback()
|
|
567
|
+
|
|
568
|
+
```ts
|
|
569
|
+
type ConsumeCallback = (msg) => void | Promise<void>;
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
Defined in: [packages/core/src/amqp-client.ts:31](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/amqp-client.ts#L31)
|
|
573
|
+
|
|
574
|
+
Callback type for consuming messages.
|
|
575
|
+
|
|
576
|
+
#### Parameters
|
|
577
|
+
|
|
578
|
+
| Parameter | Type |
|
|
579
|
+
| ------ | ------ |
|
|
580
|
+
| `msg` | `ConsumeMessage` \| `null` |
|
|
581
|
+
|
|
582
|
+
#### Returns
|
|
583
|
+
|
|
584
|
+
`void` \| `Promise`<`void`>
|
|
585
|
+
|
|
586
|
+
***
|
|
587
|
+
|
|
588
|
+
### Logger
|
|
589
|
+
|
|
590
|
+
```ts
|
|
591
|
+
type Logger = object;
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
Defined in: [packages/core/src/logger.ts:30](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/logger.ts#L30)
|
|
595
|
+
|
|
596
|
+
Logger interface for amqp-contract packages.
|
|
597
|
+
|
|
598
|
+
Provides a simple logging abstraction that can be implemented by users
|
|
599
|
+
to integrate with their preferred logging framework.
|
|
600
|
+
|
|
601
|
+
#### Example
|
|
602
|
+
|
|
603
|
+
```typescript
|
|
604
|
+
// Simple console logger implementation
|
|
605
|
+
const logger: Logger = {
|
|
606
|
+
debug: (message, context) => console.debug(message, context),
|
|
607
|
+
info: (message, context) => console.info(message, context),
|
|
608
|
+
warn: (message, context) => console.warn(message, context),
|
|
609
|
+
error: (message, context) => console.error(message, context),
|
|
610
|
+
};
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
#### Methods
|
|
614
|
+
|
|
615
|
+
##### debug()
|
|
616
|
+
|
|
617
|
+
```ts
|
|
618
|
+
debug(message, context?): void;
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
Defined in: [packages/core/src/logger.ts:36](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/logger.ts#L36)
|
|
622
|
+
|
|
623
|
+
Log debug level messages
|
|
624
|
+
|
|
625
|
+
###### Parameters
|
|
626
|
+
|
|
627
|
+
| Parameter | Type | Description |
|
|
628
|
+
| ------ | ------ | ------ |
|
|
629
|
+
| `message` | `string` | The log message |
|
|
630
|
+
| `context?` | [`LoggerContext`](#loggercontext) | Optional context to include with the log |
|
|
631
|
+
|
|
632
|
+
###### Returns
|
|
633
|
+
|
|
634
|
+
`void`
|
|
635
|
+
|
|
636
|
+
##### error()
|
|
637
|
+
|
|
638
|
+
```ts
|
|
639
|
+
error(message, context?): void;
|
|
640
|
+
```
|
|
641
|
+
|
|
642
|
+
Defined in: [packages/core/src/logger.ts:57](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/logger.ts#L57)
|
|
643
|
+
|
|
644
|
+
Log error level messages
|
|
645
|
+
|
|
646
|
+
###### Parameters
|
|
647
|
+
|
|
648
|
+
| Parameter | Type | Description |
|
|
649
|
+
| ------ | ------ | ------ |
|
|
650
|
+
| `message` | `string` | The log message |
|
|
651
|
+
| `context?` | [`LoggerContext`](#loggercontext) | Optional context to include with the log |
|
|
652
|
+
|
|
653
|
+
###### Returns
|
|
654
|
+
|
|
655
|
+
`void`
|
|
656
|
+
|
|
657
|
+
##### info()
|
|
658
|
+
|
|
659
|
+
```ts
|
|
660
|
+
info(message, context?): void;
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
Defined in: [packages/core/src/logger.ts:43](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/logger.ts#L43)
|
|
664
|
+
|
|
665
|
+
Log info level messages
|
|
666
|
+
|
|
667
|
+
###### Parameters
|
|
668
|
+
|
|
669
|
+
| Parameter | Type | Description |
|
|
670
|
+
| ------ | ------ | ------ |
|
|
671
|
+
| `message` | `string` | The log message |
|
|
672
|
+
| `context?` | [`LoggerContext`](#loggercontext) | Optional context to include with the log |
|
|
673
|
+
|
|
674
|
+
###### Returns
|
|
675
|
+
|
|
676
|
+
`void`
|
|
677
|
+
|
|
678
|
+
##### warn()
|
|
679
|
+
|
|
680
|
+
```ts
|
|
681
|
+
warn(message, context?): void;
|
|
682
|
+
```
|
|
683
|
+
|
|
684
|
+
Defined in: [packages/core/src/logger.ts:50](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/logger.ts#L50)
|
|
685
|
+
|
|
686
|
+
Log warning level messages
|
|
687
|
+
|
|
688
|
+
###### Parameters
|
|
689
|
+
|
|
690
|
+
| Parameter | Type | Description |
|
|
691
|
+
| ------ | ------ | ------ |
|
|
692
|
+
| `message` | `string` | The log message |
|
|
693
|
+
| `context?` | [`LoggerContext`](#loggercontext) | Optional context to include with the log |
|
|
694
|
+
|
|
695
|
+
###### Returns
|
|
696
|
+
|
|
697
|
+
`void`
|
|
698
|
+
|
|
699
|
+
***
|
|
700
|
+
|
|
701
|
+
### LoggerContext
|
|
702
|
+
|
|
703
|
+
```ts
|
|
704
|
+
type LoggerContext = Record<string, unknown> & object;
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
Defined in: [packages/core/src/logger.ts:9](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/logger.ts#L9)
|
|
708
|
+
|
|
709
|
+
Context object for logger methods.
|
|
710
|
+
|
|
711
|
+
This type includes reserved keys that provide consistent naming
|
|
712
|
+
for common logging context properties.
|
|
713
|
+
|
|
714
|
+
#### Type Declaration
|
|
715
|
+
|
|
716
|
+
| Name | Type | Defined in |
|
|
717
|
+
| ------ | ------ | ------ |
|
|
718
|
+
| `error?` | `unknown` | [packages/core/src/logger.ts:10](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/logger.ts#L10) |
|
|
719
|
+
|
|
720
|
+
***
|
|
721
|
+
|
|
722
|
+
### TelemetryProvider
|
|
723
|
+
|
|
724
|
+
```ts
|
|
725
|
+
type TelemetryProvider = object;
|
|
726
|
+
```
|
|
727
|
+
|
|
728
|
+
Defined in: [packages/core/src/telemetry.ts:55](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/telemetry.ts#L55)
|
|
729
|
+
|
|
730
|
+
Telemetry provider for AMQP operations.
|
|
731
|
+
Uses lazy loading to gracefully handle cases where OpenTelemetry is not installed.
|
|
732
|
+
|
|
733
|
+
#### Properties
|
|
734
|
+
|
|
735
|
+
| Property | Type | Description | Defined in |
|
|
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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/telemetry.ts#L60) |
|
|
742
|
+
|
|
743
|
+
## Variables
|
|
744
|
+
|
|
745
|
+
### defaultTelemetryProvider
|
|
746
|
+
|
|
747
|
+
```ts
|
|
748
|
+
const defaultTelemetryProvider: TelemetryProvider;
|
|
749
|
+
```
|
|
750
|
+
|
|
751
|
+
Defined in: [packages/core/src/telemetry.ts:196](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/telemetry.ts#L196)
|
|
752
|
+
|
|
753
|
+
Default telemetry provider that uses OpenTelemetry API if available.
|
|
754
|
+
|
|
755
|
+
***
|
|
756
|
+
|
|
757
|
+
### MessagingSemanticConventions
|
|
758
|
+
|
|
759
|
+
```ts
|
|
760
|
+
const MessagingSemanticConventions: object;
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
Defined in: [packages/core/src/telemetry.ts:25](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/telemetry.ts#L25)
|
|
764
|
+
|
|
765
|
+
Semantic conventions for AMQP messaging following OpenTelemetry standards.
|
|
766
|
+
|
|
767
|
+
#### Type Declaration
|
|
768
|
+
|
|
769
|
+
| Name | Type | Default value | Defined in |
|
|
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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/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/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/telemetry.ts#L43) |
|
|
787
|
+
|
|
788
|
+
#### See
|
|
789
|
+
|
|
790
|
+
https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/
|
|
791
|
+
|
|
792
|
+
## Functions
|
|
793
|
+
|
|
794
|
+
### endSpanError()
|
|
795
|
+
|
|
796
|
+
```ts
|
|
797
|
+
function endSpanError(span, error): void;
|
|
798
|
+
```
|
|
799
|
+
|
|
800
|
+
Defined in: [packages/core/src/telemetry.ts:290](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/telemetry.ts#L290)
|
|
801
|
+
|
|
802
|
+
End a span with error status.
|
|
803
|
+
|
|
804
|
+
#### Parameters
|
|
805
|
+
|
|
806
|
+
| Parameter | Type |
|
|
807
|
+
| ------ | ------ |
|
|
808
|
+
| `span` | `Span` \| `undefined` |
|
|
809
|
+
| `error` | `Error` |
|
|
810
|
+
|
|
811
|
+
#### Returns
|
|
812
|
+
|
|
813
|
+
`void`
|
|
814
|
+
|
|
815
|
+
***
|
|
816
|
+
|
|
817
|
+
### endSpanSuccess()
|
|
818
|
+
|
|
819
|
+
```ts
|
|
820
|
+
function endSpanSuccess(span): void;
|
|
821
|
+
```
|
|
822
|
+
|
|
823
|
+
Defined in: [packages/core/src/telemetry.ts:275](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/telemetry.ts#L275)
|
|
824
|
+
|
|
825
|
+
End a span with success status.
|
|
826
|
+
|
|
827
|
+
#### Parameters
|
|
828
|
+
|
|
829
|
+
| Parameter | Type |
|
|
830
|
+
| ------ | ------ |
|
|
831
|
+
| `span` | `Span` \| `undefined` |
|
|
832
|
+
|
|
833
|
+
#### Returns
|
|
834
|
+
|
|
835
|
+
`void`
|
|
836
|
+
|
|
837
|
+
***
|
|
838
|
+
|
|
839
|
+
### recordConsumeMetric()
|
|
840
|
+
|
|
841
|
+
```ts
|
|
842
|
+
function recordConsumeMetric(
|
|
843
|
+
provider,
|
|
844
|
+
queueName,
|
|
845
|
+
consumerName,
|
|
846
|
+
success,
|
|
847
|
+
durationMs): void;
|
|
848
|
+
```
|
|
849
|
+
|
|
850
|
+
Defined in: [packages/core/src/telemetry.ts:334](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/telemetry.ts#L334)
|
|
851
|
+
|
|
852
|
+
Record a consume metric.
|
|
853
|
+
|
|
854
|
+
#### Parameters
|
|
855
|
+
|
|
856
|
+
| Parameter | Type |
|
|
857
|
+
| ------ | ------ |
|
|
858
|
+
| `provider` | [`TelemetryProvider`](#telemetryprovider) |
|
|
859
|
+
| `queueName` | `string` |
|
|
860
|
+
| `consumerName` | `string` |
|
|
861
|
+
| `success` | `boolean` |
|
|
862
|
+
| `durationMs` | `number` |
|
|
863
|
+
|
|
864
|
+
#### Returns
|
|
865
|
+
|
|
866
|
+
`void`
|
|
867
|
+
|
|
868
|
+
***
|
|
869
|
+
|
|
870
|
+
### recordPublishMetric()
|
|
871
|
+
|
|
872
|
+
```ts
|
|
873
|
+
function recordPublishMetric(
|
|
874
|
+
provider,
|
|
875
|
+
exchangeName,
|
|
876
|
+
routingKey,
|
|
877
|
+
success,
|
|
878
|
+
durationMs): void;
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
Defined in: [packages/core/src/telemetry.ts:307](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/telemetry.ts#L307)
|
|
882
|
+
|
|
883
|
+
Record a publish metric.
|
|
884
|
+
|
|
885
|
+
#### Parameters
|
|
886
|
+
|
|
887
|
+
| Parameter | Type |
|
|
888
|
+
| ------ | ------ |
|
|
889
|
+
| `provider` | [`TelemetryProvider`](#telemetryprovider) |
|
|
890
|
+
| `exchangeName` | `string` |
|
|
891
|
+
| `routingKey` | `string` \| `undefined` |
|
|
892
|
+
| `success` | `boolean` |
|
|
893
|
+
| `durationMs` | `number` |
|
|
894
|
+
|
|
895
|
+
#### Returns
|
|
896
|
+
|
|
897
|
+
`void`
|
|
898
|
+
|
|
899
|
+
***
|
|
900
|
+
|
|
901
|
+
### setupAmqpTopology()
|
|
902
|
+
|
|
903
|
+
```ts
|
|
904
|
+
function setupAmqpTopology(channel, contract): Promise<void>;
|
|
905
|
+
```
|
|
906
|
+
|
|
907
|
+
Defined in: [packages/core/src/setup.ts:25](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/setup.ts#L25)
|
|
908
|
+
|
|
909
|
+
Setup AMQP topology (exchanges, queues, and bindings) from a contract definition.
|
|
910
|
+
|
|
911
|
+
This function sets up the complete AMQP topology in the correct order:
|
|
912
|
+
1. Assert all exchanges defined in the contract
|
|
913
|
+
2. Validate dead letter exchanges are declared before referencing them
|
|
914
|
+
3. Assert all queues with their configurations (including dead letter settings)
|
|
915
|
+
4. Create all bindings (queue-to-exchange and exchange-to-exchange)
|
|
916
|
+
|
|
917
|
+
#### Parameters
|
|
918
|
+
|
|
919
|
+
| Parameter | Type | Description |
|
|
920
|
+
| ------ | ------ | ------ |
|
|
921
|
+
| `channel` | `Channel` | The AMQP channel to use for topology setup |
|
|
922
|
+
| `contract` | `ContractDefinition` | The contract definition containing the topology specification |
|
|
923
|
+
|
|
924
|
+
#### Returns
|
|
925
|
+
|
|
926
|
+
`Promise`<`void`>
|
|
927
|
+
|
|
928
|
+
#### Throws
|
|
929
|
+
|
|
930
|
+
If any exchanges, queues, or bindings fail to be created
|
|
931
|
+
|
|
932
|
+
#### Throws
|
|
933
|
+
|
|
934
|
+
If a queue references a dead letter exchange not declared in the contract
|
|
935
|
+
|
|
936
|
+
#### Example
|
|
937
|
+
|
|
938
|
+
```typescript
|
|
939
|
+
const channel = await connection.createChannel();
|
|
940
|
+
await setupAmqpTopology(channel, contract);
|
|
941
|
+
```
|
|
942
|
+
|
|
943
|
+
***
|
|
944
|
+
|
|
945
|
+
### startConsumeSpan()
|
|
946
|
+
|
|
947
|
+
```ts
|
|
948
|
+
function startConsumeSpan(
|
|
949
|
+
provider,
|
|
950
|
+
queueName,
|
|
951
|
+
consumerName,
|
|
952
|
+
attributes?): Span | undefined;
|
|
953
|
+
```
|
|
954
|
+
|
|
955
|
+
Defined in: [packages/core/src/telemetry.ts:243](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/telemetry.ts#L243)
|
|
956
|
+
|
|
957
|
+
Create a span for a consume/process operation.
|
|
958
|
+
Returns undefined if OpenTelemetry is not available.
|
|
959
|
+
|
|
960
|
+
#### Parameters
|
|
961
|
+
|
|
962
|
+
| Parameter | Type |
|
|
963
|
+
| ------ | ------ |
|
|
964
|
+
| `provider` | [`TelemetryProvider`](#telemetryprovider) |
|
|
965
|
+
| `queueName` | `string` |
|
|
966
|
+
| `consumerName` | `string` |
|
|
967
|
+
| `attributes?` | `Attributes` |
|
|
968
|
+
|
|
969
|
+
#### Returns
|
|
970
|
+
|
|
971
|
+
`Span` \| `undefined`
|
|
972
|
+
|
|
973
|
+
***
|
|
974
|
+
|
|
975
|
+
### startPublishSpan()
|
|
976
|
+
|
|
977
|
+
```ts
|
|
978
|
+
function startPublishSpan(
|
|
979
|
+
provider,
|
|
980
|
+
exchangeName,
|
|
981
|
+
routingKey,
|
|
982
|
+
attributes?): Span | undefined;
|
|
983
|
+
```
|
|
984
|
+
|
|
985
|
+
Defined in: [packages/core/src/telemetry.ts:208](https://github.com/btravers/amqp-contract/blob/a7c4b48f76ed6c3c5c7a9d457229c7ba475af3b1/packages/core/src/telemetry.ts#L208)
|
|
986
|
+
|
|
987
|
+
Create a span for a publish operation.
|
|
988
|
+
Returns undefined if OpenTelemetry is not available.
|
|
989
|
+
|
|
990
|
+
#### Parameters
|
|
991
|
+
|
|
992
|
+
| Parameter | Type |
|
|
993
|
+
| ------ | ------ |
|
|
994
|
+
| `provider` | [`TelemetryProvider`](#telemetryprovider) |
|
|
995
|
+
| `exchangeName` | `string` |
|
|
996
|
+
| `routingKey` | `string` \| `undefined` |
|
|
997
|
+
| `attributes?` | `Attributes` |
|
|
998
|
+
|
|
999
|
+
#### Returns
|
|
1000
|
+
|
|
1001
|
+
`Span` \| `undefined`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amqp-contract/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Core utilities for AMQP setup and management in amqp-contract",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"amqp",
|
|
@@ -46,24 +46,25 @@
|
|
|
46
46
|
"module": "./dist/index.mjs",
|
|
47
47
|
"types": "./dist/index.d.mts",
|
|
48
48
|
"files": [
|
|
49
|
-
"dist"
|
|
49
|
+
"dist",
|
|
50
|
+
"docs"
|
|
50
51
|
],
|
|
51
52
|
"dependencies": {
|
|
52
53
|
"@swan-io/boxed": "3.2.1",
|
|
53
54
|
"amqp-connection-manager": "5.0.0",
|
|
54
55
|
"amqplib": "0.10.9",
|
|
55
|
-
"@amqp-contract/contract": "0.
|
|
56
|
+
"@amqp-contract/contract": "0.15.0"
|
|
56
57
|
},
|
|
57
58
|
"devDependencies": {
|
|
58
59
|
"@opentelemetry/api": "1.9.0",
|
|
59
60
|
"@types/amqplib": "0.10.8",
|
|
60
|
-
"@vitest/coverage-v8": "4.0.
|
|
61
|
-
"tsdown": "0.
|
|
61
|
+
"@vitest/coverage-v8": "4.0.18",
|
|
62
|
+
"tsdown": "0.20.3",
|
|
62
63
|
"typedoc": "0.28.16",
|
|
63
64
|
"typescript": "5.9.3",
|
|
64
|
-
"vitest": "4.0.
|
|
65
|
-
"zod": "4.3.
|
|
66
|
-
"@amqp-contract/testing": "0.
|
|
65
|
+
"vitest": "4.0.18",
|
|
66
|
+
"zod": "4.3.6",
|
|
67
|
+
"@amqp-contract/testing": "0.15.0",
|
|
67
68
|
"@amqp-contract/tsconfig": "0.1.0",
|
|
68
69
|
"@amqp-contract/typedoc": "0.1.0"
|
|
69
70
|
},
|