@amqp-contract/core 0.3.1 → 0.3.3
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 +33 -35
- package/dist/index.d.cts +58 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +58 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
[](https://www.typescriptlang.org/)
|
|
9
9
|
[](https://opensource.org/licenses/MIT)
|
|
10
10
|
|
|
11
|
-
This package provides centralized functionality for establishing AMQP topology (exchanges, queues, and bindings) from contract definitions.
|
|
11
|
+
This package provides centralized functionality for establishing AMQP topology (exchanges, queues, and bindings) from contract definitions, and defines the `Logger` interface used across amqp-contract packages.
|
|
12
12
|
|
|
13
13
|
📖 **[Full documentation →](https://btravers.github.io/amqp-contract)**
|
|
14
14
|
|
|
@@ -24,11 +24,12 @@ yarn add @amqp-contract/core
|
|
|
24
24
|
|
|
25
25
|
## Usage
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
### AmqpClient
|
|
28
|
+
|
|
29
|
+
The core package exports an `AmqpClient` class that handles the creation of all AMQP resources defined in a contract.
|
|
28
30
|
|
|
29
31
|
```typescript
|
|
30
|
-
import {
|
|
31
|
-
import { setupInfra } from "@amqp-contract/core";
|
|
32
|
+
import { AmqpClient } from "@amqp-contract/core";
|
|
32
33
|
import {
|
|
33
34
|
defineContract,
|
|
34
35
|
defineExchange,
|
|
@@ -56,44 +57,41 @@ const contract = defineContract({
|
|
|
56
57
|
});
|
|
57
58
|
|
|
58
59
|
// Setup AMQP resources
|
|
59
|
-
const
|
|
60
|
-
|
|
60
|
+
const amqpClient = new AmqpClient(contract, {
|
|
61
|
+
urls: ["amqp://localhost"],
|
|
62
|
+
});
|
|
61
63
|
|
|
62
|
-
|
|
64
|
+
// Clean up
|
|
65
|
+
await amqpClient.close();
|
|
63
66
|
```
|
|
64
67
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
### `setupInfra(channel: Channel, contract: ContractDefinition): Promise<void>`
|
|
68
|
-
|
|
69
|
-
Sets up all AMQP resources defined in the contract:
|
|
70
|
-
|
|
71
|
-
- **Exchanges**: Creates all exchanges with their configurations
|
|
72
|
-
- **Queues**: Creates all queues with their configurations
|
|
73
|
-
- **Bindings**: Creates all bindings (queue-to-exchange and exchange-to-exchange)
|
|
74
|
-
|
|
75
|
-
#### Parameters
|
|
68
|
+
### Logger Interface
|
|
76
69
|
|
|
77
|
-
|
|
78
|
-
- `contract`: Contract definition containing exchanges, queues, and bindings
|
|
70
|
+
The core package exports a `Logger` interface that can be used to implement custom logging for AMQP operations:
|
|
79
71
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
72
|
+
```typescript
|
|
73
|
+
import type { Logger } from "@amqp-contract/core";
|
|
74
|
+
|
|
75
|
+
const logger: Logger = {
|
|
76
|
+
debug: (message, context) => console.debug(message, context),
|
|
77
|
+
info: (message, context) => console.info(message, context),
|
|
78
|
+
warn: (message, context) => console.warn(message, context),
|
|
79
|
+
error: (message, context) => console.error(message, context),
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// Pass the logger to client or worker
|
|
83
|
+
import { TypedAmqpClient } from "@amqp-contract/client";
|
|
84
|
+
|
|
85
|
+
const client = await TypedAmqpClient.create({
|
|
86
|
+
contract,
|
|
87
|
+
urls: ["amqp://localhost"],
|
|
88
|
+
logger, // Optional: logs published messages
|
|
89
|
+
});
|
|
90
|
+
```
|
|
91
91
|
|
|
92
|
-
##
|
|
92
|
+
## API
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
- [@amqp-contract/client](../client) - Type-safe AMQP client
|
|
96
|
-
- [@amqp-contract/worker](../worker) - Type-safe AMQP worker
|
|
94
|
+
For complete API documentation, see the [@amqp-contract/core API Reference](https://btravers.github.io/amqp-contract/api/core).
|
|
97
95
|
|
|
98
96
|
## Documentation
|
|
99
97
|
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,63 @@
|
|
|
1
1
|
import { ContractDefinition } from "@amqp-contract/contract";
|
|
2
2
|
import { AmqpConnectionManagerOptions, ChannelWrapper, ConnectionUrl } from "amqp-connection-manager";
|
|
3
3
|
|
|
4
|
+
//#region src/logger.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Context object for logger methods.
|
|
8
|
+
*
|
|
9
|
+
* This type includes reserved keys that provide consistent naming
|
|
10
|
+
* for common logging context properties.
|
|
11
|
+
*
|
|
12
|
+
* @property error - Error object or error details
|
|
13
|
+
*/
|
|
14
|
+
type LoggerContext = Record<string, unknown> & {
|
|
15
|
+
error?: unknown;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Logger interface for amqp-contract packages.
|
|
19
|
+
*
|
|
20
|
+
* Provides a simple logging abstraction that can be implemented by users
|
|
21
|
+
* to integrate with their preferred logging framework.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // Simple console logger implementation
|
|
26
|
+
* const logger: Logger = {
|
|
27
|
+
* debug: (message, context) => console.debug(message, context),
|
|
28
|
+
* info: (message, context) => console.info(message, context),
|
|
29
|
+
* warn: (message, context) => console.warn(message, context),
|
|
30
|
+
* error: (message, context) => console.error(message, context),
|
|
31
|
+
* };
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
interface Logger {
|
|
35
|
+
/**
|
|
36
|
+
* Log debug level messages
|
|
37
|
+
* @param message - The log message
|
|
38
|
+
* @param context - Optional context to include with the log
|
|
39
|
+
*/
|
|
40
|
+
debug(message: string, context?: LoggerContext): void;
|
|
41
|
+
/**
|
|
42
|
+
* Log info level messages
|
|
43
|
+
* @param message - The log message
|
|
44
|
+
* @param context - Optional context to include with the log
|
|
45
|
+
*/
|
|
46
|
+
info(message: string, context?: LoggerContext): void;
|
|
47
|
+
/**
|
|
48
|
+
* Log warning level messages
|
|
49
|
+
* @param message - The log message
|
|
50
|
+
* @param context - Optional context to include with the log
|
|
51
|
+
*/
|
|
52
|
+
warn(message: string, context?: LoggerContext): void;
|
|
53
|
+
/**
|
|
54
|
+
* Log error level messages
|
|
55
|
+
* @param message - The log message
|
|
56
|
+
* @param context - Optional context to include with the log
|
|
57
|
+
*/
|
|
58
|
+
error(message: string, context?: LoggerContext): void;
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
4
61
|
//#region src/index.d.ts
|
|
5
62
|
type AmqpClientOptions = {
|
|
6
63
|
urls: ConnectionUrl[];
|
|
@@ -16,5 +73,5 @@ declare class AmqpClient {
|
|
|
16
73
|
private setup;
|
|
17
74
|
}
|
|
18
75
|
//#endregion
|
|
19
|
-
export { AmqpClient, AmqpClientOptions };
|
|
76
|
+
export { AmqpClient, AmqpClientOptions, type Logger, type LoggerContext };
|
|
20
77
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/logger.ts","../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAQA;AAqBA;;;AAoBkC,KAzCtB,aAAA,GAAgB,MAyCM,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA;EAOC,KAAA,CAAA,EAAA,OAAA;CAAa;;;;AC7ChD;AAKA;;;;;;;;;;;;;UDaiB,MAAA;;;;;;mCAMkB;;;;;;kCAOD;;;;;;kCAOA;;;;;;mCAOC;;;;KC7CvB,iBAAA;EDHA,IAAA,ECIJ,aDJiB,EAAA;EAqBR,iBAAM,CAAA,EChBD,4BDgBC,GAAA,SAAA;CAMY;AAOD,cC1BrB,UAAA,CD0BqB;EAOA,iBAAA,QAAA;EAOC,iBAAA,OAAA;EAAa,iBAAA,UAAA;oBCtCrB;wBAGI,6BACD;WASb;EApBL,QAAA,KAAA;AAKZ"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,63 @@
|
|
|
1
1
|
import { AmqpConnectionManagerOptions, ChannelWrapper, ConnectionUrl } from "amqp-connection-manager";
|
|
2
2
|
import { ContractDefinition } from "@amqp-contract/contract";
|
|
3
3
|
|
|
4
|
+
//#region src/logger.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Context object for logger methods.
|
|
8
|
+
*
|
|
9
|
+
* This type includes reserved keys that provide consistent naming
|
|
10
|
+
* for common logging context properties.
|
|
11
|
+
*
|
|
12
|
+
* @property error - Error object or error details
|
|
13
|
+
*/
|
|
14
|
+
type LoggerContext = Record<string, unknown> & {
|
|
15
|
+
error?: unknown;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Logger interface for amqp-contract packages.
|
|
19
|
+
*
|
|
20
|
+
* Provides a simple logging abstraction that can be implemented by users
|
|
21
|
+
* to integrate with their preferred logging framework.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // Simple console logger implementation
|
|
26
|
+
* const logger: Logger = {
|
|
27
|
+
* debug: (message, context) => console.debug(message, context),
|
|
28
|
+
* info: (message, context) => console.info(message, context),
|
|
29
|
+
* warn: (message, context) => console.warn(message, context),
|
|
30
|
+
* error: (message, context) => console.error(message, context),
|
|
31
|
+
* };
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
interface Logger {
|
|
35
|
+
/**
|
|
36
|
+
* Log debug level messages
|
|
37
|
+
* @param message - The log message
|
|
38
|
+
* @param context - Optional context to include with the log
|
|
39
|
+
*/
|
|
40
|
+
debug(message: string, context?: LoggerContext): void;
|
|
41
|
+
/**
|
|
42
|
+
* Log info level messages
|
|
43
|
+
* @param message - The log message
|
|
44
|
+
* @param context - Optional context to include with the log
|
|
45
|
+
*/
|
|
46
|
+
info(message: string, context?: LoggerContext): void;
|
|
47
|
+
/**
|
|
48
|
+
* Log warning level messages
|
|
49
|
+
* @param message - The log message
|
|
50
|
+
* @param context - Optional context to include with the log
|
|
51
|
+
*/
|
|
52
|
+
warn(message: string, context?: LoggerContext): void;
|
|
53
|
+
/**
|
|
54
|
+
* Log error level messages
|
|
55
|
+
* @param message - The log message
|
|
56
|
+
* @param context - Optional context to include with the log
|
|
57
|
+
*/
|
|
58
|
+
error(message: string, context?: LoggerContext): void;
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
4
61
|
//#region src/index.d.ts
|
|
5
62
|
type AmqpClientOptions = {
|
|
6
63
|
urls: ConnectionUrl[];
|
|
@@ -16,5 +73,5 @@ declare class AmqpClient {
|
|
|
16
73
|
private setup;
|
|
17
74
|
}
|
|
18
75
|
//#endregion
|
|
19
|
-
export { AmqpClient, AmqpClientOptions };
|
|
76
|
+
export { AmqpClient, AmqpClientOptions, type Logger, type LoggerContext };
|
|
20
77
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/logger.ts","../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAQA;AAqBA;;;AAoBkC,KAzCtB,aAAA,GAAgB,MAyCM,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA;EAOC,KAAA,CAAA,EAAA,OAAA;CAAa;;;;AC7ChD;AAKA;;;;;;;;;;;;;UDaiB,MAAA;;;;;;mCAMkB;;;;;;kCAOD;;;;;;kCAOA;;;;;;mCAOC;;;;KC7CvB,iBAAA;EDHA,IAAA,ECIJ,aDJiB,EAAA;EAqBR,iBAAM,CAAA,EChBD,4BDgBC,GAAA,SAAA;CAMY;AAOD,cC1BrB,UAAA,CD0BqB;EAOA,iBAAA,QAAA;EAOC,iBAAA,OAAA;EAAa,iBAAA,UAAA;oBCtCrB;wBAGI,6BACD;WASb;EApBL,QAAA,KAAA;AAKZ"}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["contract: ContractDefinition","options: AmqpClientOptions"],"sources":["../src/index.ts"],"sourcesContent":["import type { Channel } from \"amqplib\";\nimport type { ContractDefinition } from \"@amqp-contract/contract\";\nimport amqp, {\n AmqpConnectionManager,\n AmqpConnectionManagerOptions,\n ChannelWrapper,\n ConnectionUrl,\n} from \"amqp-connection-manager\";\n\nexport type AmqpClientOptions = {\n urls: ConnectionUrl[];\n connectionOptions?: AmqpConnectionManagerOptions | undefined;\n};\n\nexport class AmqpClient {\n private readonly connection: AmqpConnectionManager;\n public readonly channel: ChannelWrapper;\n\n constructor(\n private readonly contract: ContractDefinition,\n private readonly options: AmqpClientOptions,\n ) {\n this.connection = amqp.connect(this.options.urls, this.options.connectionOptions);\n this.channel = this.connection.createChannel({\n json: true,\n setup: (channel: Channel) => this.setup(channel),\n });\n }\n\n async close(): Promise<void> {\n await this.channel.close();\n await this.connection.close();\n }\n\n private async setup(channel: Channel): Promise<void> {\n // Setup exchanges\n const exchangeResults = await Promise.allSettled(\n Object.values(this.contract.exchanges ?? {}).map((exchange) =>\n channel.assertExchange(exchange.name, exchange.type, {\n durable: exchange.durable,\n autoDelete: exchange.autoDelete,\n internal: exchange.internal,\n arguments: exchange.arguments,\n }),\n ),\n );\n const exchangeErrors = exchangeResults.filter(\n (result): result is PromiseRejectedResult => result.status === \"rejected\",\n );\n if (exchangeErrors.length > 0) {\n throw new AggregateError(\n exchangeErrors.map(({ reason }) => reason),\n \"Failed to setup exchanges\",\n );\n }\n\n // Setup queues\n const queueResults = await Promise.allSettled(\n Object.values(this.contract.queues ?? {}).map((queue) =>\n channel.assertQueue(queue.name, {\n durable: queue.durable,\n exclusive: queue.exclusive,\n autoDelete: queue.autoDelete,\n arguments: queue.arguments,\n }),\n ),\n );\n const queueErrors = queueResults.filter(\n (result): result is PromiseRejectedResult => result.status === \"rejected\",\n );\n if (queueErrors.length > 0) {\n throw new AggregateError(\n queueErrors.map(({ reason }) => reason),\n \"Failed to setup queues\",\n );\n }\n\n // Setup bindings\n const bindingResults = await Promise.allSettled(\n Object.values(this.contract.bindings ?? {}).map((binding) => {\n if (binding.type === \"queue\") {\n return channel.bindQueue(\n binding.queue.name,\n binding.exchange.name,\n binding.routingKey ?? \"\",\n binding.arguments,\n );\n }\n\n return channel.bindExchange(\n binding.destination.name,\n binding.source.name,\n binding.routingKey ?? \"\",\n binding.arguments,\n );\n }),\n );\n const bindingErrors = bindingResults.filter(\n (result): result is PromiseRejectedResult => result.status === \"rejected\",\n );\n if (bindingErrors.length > 0) {\n throw new AggregateError(\n bindingErrors.map(({ reason }) => reason),\n \"Failed to setup bindings\",\n );\n }\n }\n}\n"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["contract: ContractDefinition","options: AmqpClientOptions"],"sources":["../src/index.ts"],"sourcesContent":["import type { Channel } from \"amqplib\";\nimport type { ContractDefinition } from \"@amqp-contract/contract\";\nimport amqp, {\n AmqpConnectionManager,\n AmqpConnectionManagerOptions,\n ChannelWrapper,\n ConnectionUrl,\n} from \"amqp-connection-manager\";\n\nexport type { Logger, LoggerContext } from \"./logger.js\";\n\nexport type AmqpClientOptions = {\n urls: ConnectionUrl[];\n connectionOptions?: AmqpConnectionManagerOptions | undefined;\n};\n\nexport class AmqpClient {\n private readonly connection: AmqpConnectionManager;\n public readonly channel: ChannelWrapper;\n\n constructor(\n private readonly contract: ContractDefinition,\n private readonly options: AmqpClientOptions,\n ) {\n this.connection = amqp.connect(this.options.urls, this.options.connectionOptions);\n this.channel = this.connection.createChannel({\n json: true,\n setup: (channel: Channel) => this.setup(channel),\n });\n }\n\n async close(): Promise<void> {\n await this.channel.close();\n await this.connection.close();\n }\n\n private async setup(channel: Channel): Promise<void> {\n // Setup exchanges\n const exchangeResults = await Promise.allSettled(\n Object.values(this.contract.exchanges ?? {}).map((exchange) =>\n channel.assertExchange(exchange.name, exchange.type, {\n durable: exchange.durable,\n autoDelete: exchange.autoDelete,\n internal: exchange.internal,\n arguments: exchange.arguments,\n }),\n ),\n );\n const exchangeErrors = exchangeResults.filter(\n (result): result is PromiseRejectedResult => result.status === \"rejected\",\n );\n if (exchangeErrors.length > 0) {\n throw new AggregateError(\n exchangeErrors.map(({ reason }) => reason),\n \"Failed to setup exchanges\",\n );\n }\n\n // Setup queues\n const queueResults = await Promise.allSettled(\n Object.values(this.contract.queues ?? {}).map((queue) =>\n channel.assertQueue(queue.name, {\n durable: queue.durable,\n exclusive: queue.exclusive,\n autoDelete: queue.autoDelete,\n arguments: queue.arguments,\n }),\n ),\n );\n const queueErrors = queueResults.filter(\n (result): result is PromiseRejectedResult => result.status === \"rejected\",\n );\n if (queueErrors.length > 0) {\n throw new AggregateError(\n queueErrors.map(({ reason }) => reason),\n \"Failed to setup queues\",\n );\n }\n\n // Setup bindings\n const bindingResults = await Promise.allSettled(\n Object.values(this.contract.bindings ?? {}).map((binding) => {\n if (binding.type === \"queue\") {\n return channel.bindQueue(\n binding.queue.name,\n binding.exchange.name,\n binding.routingKey ?? \"\",\n binding.arguments,\n );\n }\n\n return channel.bindExchange(\n binding.destination.name,\n binding.source.name,\n binding.routingKey ?? \"\",\n binding.arguments,\n );\n }),\n );\n const bindingErrors = bindingResults.filter(\n (result): result is PromiseRejectedResult => result.status === \"rejected\",\n );\n if (bindingErrors.length > 0) {\n throw new AggregateError(\n bindingErrors.map(({ reason }) => reason),\n \"Failed to setup bindings\",\n );\n }\n }\n}\n"],"mappings":";;;AAgBA,IAAa,aAAb,MAAwB;CACtB,AAAiB;CACjB,AAAgB;CAEhB,YACE,AAAiBA,UACjB,AAAiBC,SACjB;EAFiB;EACA;AAEjB,OAAK,aAAa,KAAK,QAAQ,KAAK,QAAQ,MAAM,KAAK,QAAQ,kBAAkB;AACjF,OAAK,UAAU,KAAK,WAAW,cAAc;GAC3C,MAAM;GACN,QAAQ,YAAqB,KAAK,MAAM,QAAQ;GACjD,CAAC;;CAGJ,MAAM,QAAuB;AAC3B,QAAM,KAAK,QAAQ,OAAO;AAC1B,QAAM,KAAK,WAAW,OAAO;;CAG/B,MAAc,MAAM,SAAiC;EAYnD,MAAM,kBAVkB,MAAM,QAAQ,WACpC,OAAO,OAAO,KAAK,SAAS,aAAa,EAAE,CAAC,CAAC,KAAK,aAChD,QAAQ,eAAe,SAAS,MAAM,SAAS,MAAM;GACnD,SAAS,SAAS;GAClB,YAAY,SAAS;GACrB,UAAU,SAAS;GACnB,WAAW,SAAS;GACrB,CAAC,CACH,CACF,EACsC,QACpC,WAA4C,OAAO,WAAW,WAChE;AACD,MAAI,eAAe,SAAS,EAC1B,OAAM,IAAI,eACR,eAAe,KAAK,EAAE,aAAa,OAAO,EAC1C,4BACD;EAcH,MAAM,eAVe,MAAM,QAAQ,WACjC,OAAO,OAAO,KAAK,SAAS,UAAU,EAAE,CAAC,CAAC,KAAK,UAC7C,QAAQ,YAAY,MAAM,MAAM;GAC9B,SAAS,MAAM;GACf,WAAW,MAAM;GACjB,YAAY,MAAM;GAClB,WAAW,MAAM;GAClB,CAAC,CACH,CACF,EACgC,QAC9B,WAA4C,OAAO,WAAW,WAChE;AACD,MAAI,YAAY,SAAS,EACvB,OAAM,IAAI,eACR,YAAY,KAAK,EAAE,aAAa,OAAO,EACvC,yBACD;EAuBH,MAAM,iBAnBiB,MAAM,QAAQ,WACnC,OAAO,OAAO,KAAK,SAAS,YAAY,EAAE,CAAC,CAAC,KAAK,YAAY;AAC3D,OAAI,QAAQ,SAAS,QACnB,QAAO,QAAQ,UACb,QAAQ,MAAM,MACd,QAAQ,SAAS,MACjB,QAAQ,cAAc,IACtB,QAAQ,UACT;AAGH,UAAO,QAAQ,aACb,QAAQ,YAAY,MACpB,QAAQ,OAAO,MACf,QAAQ,cAAc,IACtB,QAAQ,UACT;IACD,CACH,EACoC,QAClC,WAA4C,OAAO,WAAW,WAChE;AACD,MAAI,cAAc,SAAS,EACzB,OAAM,IAAI,eACR,cAAc,KAAK,EAAE,aAAa,OAAO,EACzC,2BACD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amqp-contract/core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "Core utilities for AMQP setup and management in amqp-contract",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"amqp",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"amqp-connection-manager": "5.0.0",
|
|
45
45
|
"amqplib": "0.10.9",
|
|
46
|
-
"@amqp-contract/contract": "0.3.
|
|
46
|
+
"@amqp-contract/contract": "0.3.3"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@types/amqplib": "0.10.8",
|