@diia-inhouse/diia-queue 13.3.4 → 14.0.11
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/constants.js +9 -9
- package/dist/index.d.ts +27 -0
- package/dist/index.js +23 -21
- package/dist/interfaces/deps.d.ts +30 -0
- package/dist/interfaces/externalCommunicator.d.ts +58 -0
- package/dist/interfaces/index.d.ts +95 -0
- package/dist/interfaces/index.js +7 -30
- package/dist/interfaces/messageBrokerServiceConfig.d.ts +80 -0
- package/dist/interfaces/messageBrokerServiceConfig.js +27 -24
- package/dist/interfaces/messageHandler.d.ts +6 -0
- package/dist/interfaces/metrics/index.d.ts +23 -0
- package/dist/interfaces/metrics/index.js +12 -16
- package/dist/interfaces/options.d.ts +52 -0
- package/dist/interfaces/providers/rabbitmq/amqpConnection.d.ts +33 -0
- package/dist/interfaces/providers/rabbitmq/amqpConnection.js +14 -17
- package/dist/interfaces/providers/rabbitmq/amqpPublisher.d.ts +20 -0
- package/dist/interfaces/providers/rabbitmq/index.d.ts +107 -0
- package/dist/interfaces/providers/rabbitmq/index.js +35 -47
- package/dist/interfaces/queueConfig/configs.d.ts +47 -0
- package/dist/interfaces/queueConfig/configs.js +8 -9
- package/dist/interfaces/queueConfig/index.d.ts +1 -0
- package/dist/interfaces/queueContext.d.ts +8 -0
- package/dist/interfaces/queueStatus.d.ts +15 -0
- package/dist/interfaces/queueStatus.js +8 -9
- package/dist/metrics/index.js +5 -8
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.js +6 -22
- package/dist/providers/rabbitmq/amqpAsserter.d.ts +53 -0
- package/dist/providers/rabbitmq/amqpAsserter.js +369 -416
- package/dist/providers/rabbitmq/amqpConnection.d.ts +24 -0
- package/dist/providers/rabbitmq/amqpConnection.js +97 -150
- package/dist/providers/rabbitmq/amqpListener.d.ts +47 -0
- package/dist/providers/rabbitmq/amqpListener.js +218 -225
- package/dist/providers/rabbitmq/amqpPublisher.d.ts +38 -0
- package/dist/providers/rabbitmq/amqpPublisher.js +184 -191
- package/dist/providers/rabbitmq/index.d.ts +56 -0
- package/dist/providers/rabbitmq/index.js +161 -186
- package/dist/services/communicator.d.ts +66 -0
- package/dist/services/communicator.js +164 -186
- package/dist/services/eventBus.d.ts +25 -0
- package/dist/services/eventBus.js +45 -57
- package/dist/services/eventCommunicator.js +75 -124
- package/dist/services/eventMessageHandler.d.ts +27 -0
- package/dist/services/eventMessageHandler.js +124 -129
- package/dist/services/eventMessageValidator.d.ts +13 -0
- package/dist/services/eventMessageValidator.js +59 -44
- package/dist/services/externalCommunicator.d.ts +114 -0
- package/dist/services/externalCommunicator.js +149 -140
- package/dist/services/externalEventBus.d.ts +39 -0
- package/dist/services/externalEventBus.js +144 -162
- package/dist/services/index.d.ts +8 -0
- package/dist/services/index.js +10 -26
- package/dist/services/metrics.d.ts +15 -0
- package/dist/services/metrics.js +46 -49
- package/dist/services/optionsBuilder.d.ts +14 -0
- package/dist/services/optionsBuilder.js +43 -58
- package/dist/services/queue.d.ts +29 -0
- package/dist/services/queue.js +78 -93
- package/dist/services/scheduledTask.d.ts +30 -0
- package/dist/services/scheduledTask.js +60 -68
- package/dist/services/task.d.ts +33 -0
- package/dist/services/task.js +160 -176
- package/dist/utils.js +7 -11
- package/package.json +44 -50
- package/dist/constants.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/interfaces/deps.js +0 -3
- package/dist/interfaces/deps.js.map +0 -1
- package/dist/interfaces/externalCommunicator.js +0 -3
- package/dist/interfaces/externalCommunicator.js.map +0 -1
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/messageBrokerServiceConfig.js.map +0 -1
- package/dist/interfaces/messageHandler.js +0 -3
- package/dist/interfaces/messageHandler.js.map +0 -1
- package/dist/interfaces/metrics/index.js.map +0 -1
- package/dist/interfaces/options.js +0 -3
- package/dist/interfaces/options.js.map +0 -1
- package/dist/interfaces/providers/rabbitmq/amqpConnection.js.map +0 -1
- package/dist/interfaces/providers/rabbitmq/amqpPublisher.js +0 -4
- package/dist/interfaces/providers/rabbitmq/amqpPublisher.js.map +0 -1
- package/dist/interfaces/providers/rabbitmq/index.js.map +0 -1
- package/dist/interfaces/queueConfig/configs.js.map +0 -1
- package/dist/interfaces/queueConfig/index.js +0 -18
- package/dist/interfaces/queueConfig/index.js.map +0 -1
- package/dist/interfaces/queueContext.js +0 -3
- package/dist/interfaces/queueContext.js.map +0 -1
- package/dist/interfaces/queueStatus.js.map +0 -1
- package/dist/interfaces/services/eventMessageHandler.js +0 -3
- package/dist/interfaces/services/eventMessageHandler.js.map +0 -1
- package/dist/metrics/index.js.map +0 -1
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/rabbitmq/amqpAsserter.js.map +0 -1
- package/dist/providers/rabbitmq/amqpConnection.js.map +0 -1
- package/dist/providers/rabbitmq/amqpListener.js.map +0 -1
- package/dist/providers/rabbitmq/amqpPublisher.js.map +0 -1
- package/dist/providers/rabbitmq/index.js.map +0 -1
- package/dist/services/communicator.js.map +0 -1
- package/dist/services/eventBus.js.map +0 -1
- package/dist/services/eventCommunicator.js.map +0 -1
- package/dist/services/eventMessageHandler.js.map +0 -1
- package/dist/services/eventMessageValidator.js.map +0 -1
- package/dist/services/externalCommunicator.js.map +0 -1
- package/dist/services/externalEventBus.js.map +0 -1
- package/dist/services/index.js.map +0 -1
- package/dist/services/metrics.js.map +0 -1
- package/dist/services/optionsBuilder.js.map +0 -1
- package/dist/services/queue.js.map +0 -1
- package/dist/services/scheduledTask.js.map +0 -1
- package/dist/services/task.js.map +0 -1
- package/dist/types/constants.d.ts +0 -8
- package/dist/types/index.d.ts +0 -4
- package/dist/types/interfaces/deps.d.ts +0 -26
- package/dist/types/interfaces/externalCommunicator.d.ts +0 -54
- package/dist/types/interfaces/index.d.ts +0 -99
- package/dist/types/interfaces/messageBrokerServiceConfig.d.ts +0 -79
- package/dist/types/interfaces/messageHandler.d.ts +0 -2
- package/dist/types/interfaces/metrics/index.d.ts +0 -20
- package/dist/types/interfaces/options.d.ts +0 -49
- package/dist/types/interfaces/providers/rabbitmq/amqpConnection.d.ts +0 -29
- package/dist/types/interfaces/providers/rabbitmq/amqpPublisher.d.ts +0 -16
- package/dist/types/interfaces/providers/rabbitmq/index.d.ts +0 -114
- package/dist/types/interfaces/queueConfig/configs.d.ts +0 -47
- package/dist/types/interfaces/queueConfig/index.d.ts +0 -1
- package/dist/types/interfaces/queueContext.d.ts +0 -4
- package/dist/types/interfaces/queueStatus.d.ts +0 -11
- package/dist/types/interfaces/services/eventMessageHandler.d.ts +0 -5
- package/dist/types/metrics/index.d.ts +0 -3
- package/dist/types/providers/index.d.ts +0 -5
- package/dist/types/providers/rabbitmq/amqpAsserter.d.ts +0 -49
- package/dist/types/providers/rabbitmq/amqpConnection.d.ts +0 -20
- package/dist/types/providers/rabbitmq/amqpListener.d.ts +0 -42
- package/dist/types/providers/rabbitmq/amqpPublisher.d.ts +0 -34
- package/dist/types/providers/rabbitmq/index.d.ts +0 -52
- package/dist/types/services/communicator.d.ts +0 -57
- package/dist/types/services/eventBus.d.ts +0 -20
- package/dist/types/services/eventCommunicator.d.ts +0 -15
- package/dist/types/services/eventMessageHandler.d.ts +0 -19
- package/dist/types/services/eventMessageValidator.d.ts +0 -9
- package/dist/types/services/externalCommunicator.d.ts +0 -110
- package/dist/types/services/externalEventBus.d.ts +0 -33
- package/dist/types/services/index.d.ts +0 -9
- package/dist/types/services/metrics.d.ts +0 -11
- package/dist/types/services/optionsBuilder.d.ts +0 -10
- package/dist/types/services/queue.d.ts +0 -23
- package/dist/types/services/scheduledTask.d.ts +0 -25
- package/dist/types/services/task.d.ts +0 -28
- package/dist/types/utils.d.ts +0 -3
- package/dist/utils.js.map +0 -1
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Ready: 'ready',
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=amqpConnection.js.map
|
|
1
|
+
//#region src/interfaces/providers/rabbitmq/amqpConnection.ts
|
|
2
|
+
let ConnectionStatus = /* @__PURE__ */ function(ConnectionStatus) {
|
|
3
|
+
ConnectionStatus["Init"] = "init";
|
|
4
|
+
ConnectionStatus["Connecting"] = "connecting";
|
|
5
|
+
ConnectionStatus["Connected"] = "connected";
|
|
6
|
+
ConnectionStatus["Reconnecting"] = "reconnecting";
|
|
7
|
+
ConnectionStatus["Closing"] = "closing";
|
|
8
|
+
ConnectionStatus["Closed"] = "closed";
|
|
9
|
+
ConnectionStatus["Down"] = "down";
|
|
10
|
+
return ConnectionStatus;
|
|
11
|
+
}({});
|
|
12
|
+
const AmqpConnectionEventNames = { Ready: "ready" };
|
|
13
|
+
//#endregion
|
|
14
|
+
export { AmqpConnectionEventNames, ConnectionStatus };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Headers } from "./index.js";
|
|
2
|
+
import { MessagePropertyHeaders } from "amqplib/properties";
|
|
3
|
+
|
|
4
|
+
//#region src/interfaces/providers/rabbitmq/amqpPublisher.d.ts
|
|
5
|
+
type MessagePayload = unknown;
|
|
6
|
+
interface MessageHeaders {
|
|
7
|
+
traceId: string;
|
|
8
|
+
serviceCode?: string;
|
|
9
|
+
"x-delay"?: number;
|
|
10
|
+
}
|
|
11
|
+
interface DirectResponseHeaders extends MessagePropertyHeaders {
|
|
12
|
+
[Headers.handledBy]?: string;
|
|
13
|
+
}
|
|
14
|
+
interface DirectResponse<T = unknown> extends MessagePropertyHeaders {
|
|
15
|
+
body: T;
|
|
16
|
+
headers: DirectResponseHeaders;
|
|
17
|
+
}
|
|
18
|
+
type PublishingResult = void;
|
|
19
|
+
//#endregion
|
|
20
|
+
export { DirectResponse, DirectResponseHeaders, MessageHeaders, MessagePayload, PublishingResult };
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { BaseQueueOptions } from "../../messageBrokerServiceConfig.js";
|
|
2
|
+
import { ConnectOptions, ConnectionStatus, ReconnectOptions, SocketOptions } from "./amqpConnection.js";
|
|
3
|
+
import { AmqpConnection } from "../../../providers/rabbitmq/amqpConnection.js";
|
|
4
|
+
import { ListenerOptions } from "../../options.js";
|
|
5
|
+
import { EventName, QueueConfigByQueueName, ServiceConfigByConfigType, TopicConfigByConfigType } from "../../queueConfig/configs.js";
|
|
6
|
+
import { ErrorData } from "@diia-inhouse/errors";
|
|
7
|
+
import * as amqp from "amqplib";
|
|
8
|
+
|
|
9
|
+
//#region src/interfaces/providers/rabbitmq/index.d.ts
|
|
10
|
+
interface RabbitMQConfigCustomParams {
|
|
11
|
+
responseRoutingKeyPrefix?: string;
|
|
12
|
+
}
|
|
13
|
+
interface DeclareOptions {
|
|
14
|
+
assertQueues?: boolean;
|
|
15
|
+
assertExchanges?: boolean;
|
|
16
|
+
queuesOptions?: BaseQueueOptions;
|
|
17
|
+
}
|
|
18
|
+
interface RabbitMQConfig {
|
|
19
|
+
connection: ConnectOptions;
|
|
20
|
+
socketOptions?: SocketOptions;
|
|
21
|
+
reconnectOptions?: ReconnectOptions;
|
|
22
|
+
custom?: RabbitMQConfigCustomParams;
|
|
23
|
+
listenerOptions: ListenerOptions;
|
|
24
|
+
declareOptions?: DeclareOptions;
|
|
25
|
+
/**
|
|
26
|
+
* Whether to create consumer (listener) connections. When `false`, only publisher
|
|
27
|
+
* and asserter connections are established. Defaults to `true`.
|
|
28
|
+
*/
|
|
29
|
+
consumerEnabled?: boolean;
|
|
30
|
+
}
|
|
31
|
+
declare enum ConnectionClientType {
|
|
32
|
+
Listener = "listener",
|
|
33
|
+
Asserter = "asserter",
|
|
34
|
+
Publisher = "publisher"
|
|
35
|
+
}
|
|
36
|
+
type ConnectionList = { [k in ConnectionClientType]: {
|
|
37
|
+
lock?: Promise<AmqpConnection>;
|
|
38
|
+
} };
|
|
39
|
+
interface QueueMessageMetaData {
|
|
40
|
+
date: Date;
|
|
41
|
+
xid?: string;
|
|
42
|
+
responseRoutingKey?: string;
|
|
43
|
+
ignoreCache?: boolean;
|
|
44
|
+
registryApiVersion?: string;
|
|
45
|
+
}
|
|
46
|
+
interface QueueMessageError {
|
|
47
|
+
data: ErrorData;
|
|
48
|
+
message: string;
|
|
49
|
+
http_code: number;
|
|
50
|
+
}
|
|
51
|
+
interface QueueMessageData<T = any> {
|
|
52
|
+
event: EventName;
|
|
53
|
+
payload: T;
|
|
54
|
+
meta: QueueMessageMetaData;
|
|
55
|
+
}
|
|
56
|
+
type MessageData = Pick<QueueMessageData, "payload" | "event">;
|
|
57
|
+
declare class Message<T = unknown> {
|
|
58
|
+
data: QueueMessageData<T>;
|
|
59
|
+
constructor(data: QueueMessageData<T>);
|
|
60
|
+
}
|
|
61
|
+
type MessageProperties = amqp.MessageProperties;
|
|
62
|
+
interface QueueMessage {
|
|
63
|
+
id?: unknown;
|
|
64
|
+
data: QueueMessageData;
|
|
65
|
+
properties: MessageProperties;
|
|
66
|
+
done: (data?: QueueMessageData) => void;
|
|
67
|
+
reject: (nackOptions: NackOptions) => void;
|
|
68
|
+
}
|
|
69
|
+
interface RabbitMQStatus {
|
|
70
|
+
listener?: ConnectionStatus;
|
|
71
|
+
publisher: ConnectionStatus;
|
|
72
|
+
}
|
|
73
|
+
interface ExportConfig {
|
|
74
|
+
queues: QueueConfigByQueueName;
|
|
75
|
+
rabbit: RabbitMQConfig;
|
|
76
|
+
topics: TopicConfigByConfigType;
|
|
77
|
+
service: ServiceConfigByConfigType;
|
|
78
|
+
portalEvents: EventName[];
|
|
79
|
+
}
|
|
80
|
+
declare const Headers: {
|
|
81
|
+
readonly sentFrom: "sent-from";
|
|
82
|
+
readonly handledBy: "handled-by";
|
|
83
|
+
};
|
|
84
|
+
declare class NackOptions {
|
|
85
|
+
/**
|
|
86
|
+
* If requeue is truthy, the server will try to put the message or messages back on the queue or queues from which they came.
|
|
87
|
+
* Defaults to true if not given, so if you want to make sure messages are dead-lettered or discarded, supply false here.
|
|
88
|
+
*/
|
|
89
|
+
readonly requeue: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* If allUpTo is truthy, all outstanding messages prior to and including the given message are rejected. Defaults to false.
|
|
92
|
+
*/
|
|
93
|
+
readonly allUpTo: boolean;
|
|
94
|
+
constructor(requeue?: boolean, allUpTo?: boolean);
|
|
95
|
+
}
|
|
96
|
+
declare const Arguments: {
|
|
97
|
+
readonly queueType: "x-queue-type";
|
|
98
|
+
/**
|
|
99
|
+
* @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
|
|
100
|
+
*/
|
|
101
|
+
readonly delayedType: "x-delayed-type";
|
|
102
|
+
readonly deliveryLimit: "x-delivery-limit";
|
|
103
|
+
readonly deadLetterExchange: "x-dead-letter-exchange";
|
|
104
|
+
readonly deadLetterExchangeRoutingKey: "x-dead-letter-routing-key";
|
|
105
|
+
};
|
|
106
|
+
//#endregion
|
|
107
|
+
export { Arguments, ConnectionClientType, ConnectionList, DeclareOptions, ExportConfig, Headers, Message, MessageData, MessageProperties, NackOptions, QueueMessage, QueueMessageData, QueueMessageError, QueueMessageMetaData, RabbitMQConfig, RabbitMQConfigCustomParams, RabbitMQStatus };
|
|
@@ -1,49 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.data = data;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
exports.Message = Message;
|
|
17
|
-
exports.Headers = {
|
|
18
|
-
sentFrom: 'sent-from',
|
|
19
|
-
handledBy: 'handled-by',
|
|
1
|
+
//#region src/interfaces/providers/rabbitmq/index.ts
|
|
2
|
+
let ConnectionClientType = /* @__PURE__ */ function(ConnectionClientType) {
|
|
3
|
+
ConnectionClientType["Listener"] = "listener";
|
|
4
|
+
ConnectionClientType["Asserter"] = "asserter";
|
|
5
|
+
ConnectionClientType["Publisher"] = "publisher";
|
|
6
|
+
return ConnectionClientType;
|
|
7
|
+
}({});
|
|
8
|
+
var Message = class {
|
|
9
|
+
data;
|
|
10
|
+
constructor(data) {
|
|
11
|
+
this.data = data;
|
|
12
|
+
}
|
|
20
13
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
constructor(
|
|
25
|
-
/**
|
|
26
|
-
* If requeue is truthy, the server will try to put the message or messages back on the queue or queues from which they came.
|
|
27
|
-
* Defaults to true if not given, so if you want to make sure messages are dead-lettered or discarded, supply false here.
|
|
28
|
-
*/
|
|
29
|
-
requeue = true,
|
|
30
|
-
/**
|
|
31
|
-
* If allUpTo is truthy, all outstanding messages prior to and including the given message are rejected. Defaults to false.
|
|
32
|
-
*/
|
|
33
|
-
allUpTo = false) {
|
|
34
|
-
this.requeue = requeue;
|
|
35
|
-
this.allUpTo = allUpTo;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.NackOptions = NackOptions;
|
|
39
|
-
exports.Arguments = {
|
|
40
|
-
queueType: 'x-queue-type',
|
|
41
|
-
/**
|
|
42
|
-
* @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
|
|
43
|
-
*/
|
|
44
|
-
delayedType: 'x-delayed-type',
|
|
45
|
-
deliveryLimit: 'x-delivery-limit',
|
|
46
|
-
deadLetterExchange: 'x-dead-letter-exchange',
|
|
47
|
-
deadLetterExchangeRoutingKey: 'x-dead-letter-routing-key',
|
|
14
|
+
const Headers = {
|
|
15
|
+
sentFrom: "sent-from",
|
|
16
|
+
handledBy: "handled-by"
|
|
48
17
|
};
|
|
49
|
-
|
|
18
|
+
var NackOptions = class {
|
|
19
|
+
requeue;
|
|
20
|
+
allUpTo;
|
|
21
|
+
constructor(requeue = true, allUpTo = false) {
|
|
22
|
+
this.requeue = requeue;
|
|
23
|
+
this.allUpTo = allUpTo;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const Arguments = {
|
|
27
|
+
queueType: "x-queue-type",
|
|
28
|
+
/**
|
|
29
|
+
* @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
|
|
30
|
+
*/
|
|
31
|
+
delayedType: "x-delayed-type",
|
|
32
|
+
deliveryLimit: "x-delivery-limit",
|
|
33
|
+
deadLetterExchange: "x-dead-letter-exchange",
|
|
34
|
+
deadLetterExchangeRoutingKey: "x-dead-letter-routing-key"
|
|
35
|
+
};
|
|
36
|
+
//#endregion
|
|
37
|
+
export { Arguments, ConnectionClientType, Headers, Message, NackOptions };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ExchangeName, MessageBrokerServicesConfig } from "../messageBrokerServiceConfig.js";
|
|
2
|
+
|
|
3
|
+
//#region src/interfaces/queueConfig/configs.d.ts
|
|
4
|
+
type EventName = string;
|
|
5
|
+
type QueueName = string;
|
|
6
|
+
declare enum QueueConfigType {
|
|
7
|
+
Internal = "internal",
|
|
8
|
+
External = "external"
|
|
9
|
+
}
|
|
10
|
+
interface InternalServiceConfig {
|
|
11
|
+
subscribe?: QueueName[];
|
|
12
|
+
publish?: ExchangeName[];
|
|
13
|
+
}
|
|
14
|
+
interface ExternalServiceConfig {
|
|
15
|
+
/**
|
|
16
|
+
* add an event to this field only in cases when you don't need to await a response to an event;
|
|
17
|
+
* in other cases, use the *receiveDirect* mechanism
|
|
18
|
+
* */
|
|
19
|
+
publish?: EventName[];
|
|
20
|
+
subscribe: EventName[];
|
|
21
|
+
}
|
|
22
|
+
type ServiceConfigByConfigType = InternalServiceConfig | ExternalServiceConfig;
|
|
23
|
+
interface ServiceConfig {
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated no need to set the internal service queues config, because it is used nowhere.
|
|
26
|
+
* it should be deleted from a service config
|
|
27
|
+
* */
|
|
28
|
+
[QueueConfigType.Internal]?: InternalServiceConfig;
|
|
29
|
+
[QueueConfigType.External]?: ExternalServiceConfig;
|
|
30
|
+
}
|
|
31
|
+
type QueueConfigByQueueName = { [k in QueueName]: {
|
|
32
|
+
topics: ExchangeName[];
|
|
33
|
+
} };
|
|
34
|
+
type QueueConfig = Record<QueueConfigType.Internal, QueueConfigByQueueName>;
|
|
35
|
+
type TopicConfigByConfigType = { [k in ExchangeName]: {
|
|
36
|
+
events: EventName[];
|
|
37
|
+
} };
|
|
38
|
+
type TopicConfig = Record<QueueConfigType, TopicConfigByConfigType>;
|
|
39
|
+
type ServiceRulesConfig = {
|
|
40
|
+
topicsConfig: TopicConfig;
|
|
41
|
+
queuesConfig: QueueConfig;
|
|
42
|
+
portalEvents?: EventName[];
|
|
43
|
+
servicesConfig?: ServiceConfig;
|
|
44
|
+
messageBrokerServices?: MessageBrokerServicesConfig;
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
export { EventName, ExternalServiceConfig, InternalServiceConfig, QueueConfig, QueueConfigByQueueName, QueueConfigType, QueueName, ServiceConfig, ServiceConfigByConfigType, ServiceRulesConfig, TopicConfig, TopicConfigByConfigType };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=configs.js.map
|
|
1
|
+
//#region src/interfaces/queueConfig/configs.ts
|
|
2
|
+
let QueueConfigType = /* @__PURE__ */ function(QueueConfigType) {
|
|
3
|
+
QueueConfigType["Internal"] = "internal";
|
|
4
|
+
QueueConfigType["External"] = "external";
|
|
5
|
+
return QueueConfigType;
|
|
6
|
+
}({});
|
|
7
|
+
//#endregion
|
|
8
|
+
export { QueueConfigType };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { EventName, ExternalServiceConfig, InternalServiceConfig, QueueConfig, QueueConfigByQueueName, QueueConfigType, QueueName, ServiceConfig, ServiceConfigByConfigType, ServiceRulesConfig, TopicConfig, TopicConfigByConfigType } from "./configs.js";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MessageBrokerServiceType } from "./messageBrokerServiceConfig.js";
|
|
2
|
+
import { RabbitMQStatus } from "./providers/rabbitmq/index.js";
|
|
3
|
+
|
|
4
|
+
//#region src/interfaces/queueStatus.d.ts
|
|
5
|
+
declare enum QueueConnectionType {
|
|
6
|
+
Internal = "internal",
|
|
7
|
+
External = "external"
|
|
8
|
+
}
|
|
9
|
+
type MessageBrokerServicesStatus = Partial<Record<MessageBrokerServiceType, RabbitMQStatus>>;
|
|
10
|
+
type QueueStatusByType = Partial<Record<QueueConnectionType, MessageBrokerServicesStatus>>;
|
|
11
|
+
type QueueStatus = {
|
|
12
|
+
rabbit: QueueStatusByType;
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { MessageBrokerServicesStatus, QueueConnectionType, QueueStatus, QueueStatusByType };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=queueStatus.js.map
|
|
1
|
+
//#region src/interfaces/queueStatus.ts
|
|
2
|
+
let QueueConnectionType = /* @__PURE__ */ function(QueueConnectionType) {
|
|
3
|
+
QueueConnectionType["Internal"] = "internal";
|
|
4
|
+
QueueConnectionType["External"] = "external";
|
|
5
|
+
return QueueConnectionType;
|
|
6
|
+
}({});
|
|
7
|
+
//#endregion
|
|
8
|
+
export { QueueConnectionType };
|
package/dist/metrics/index.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
'queueName',
|
|
7
|
-
]);
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import { Counter } from "@diia-inhouse/diia-metrics";
|
|
2
|
+
//#region src/metrics/index.ts
|
|
3
|
+
const totalListenerChannelErrorsMetric = new Counter("listener_channel_errors_total", ["queueName"]);
|
|
4
|
+
//#endregion
|
|
5
|
+
export { totalListenerChannelErrorsMetric };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AmqpConnection } from "./rabbitmq/amqpConnection.js";
|
|
2
|
+
import { AmqpAsserter } from "./rabbitmq/amqpAsserter.js";
|
|
3
|
+
import { AmqpListener } from "./rabbitmq/amqpListener.js";
|
|
4
|
+
import { AmqpPublisher } from "./rabbitmq/amqpPublisher.js";
|
|
5
|
+
import { RabbitMQProvider } from "./rabbitmq/index.js";
|
package/dist/providers/index.js
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./rabbitmq"), exports);
|
|
18
|
-
__exportStar(require("./rabbitmq/amqpListener"), exports);
|
|
19
|
-
__exportStar(require("./rabbitmq/amqpAsserter"), exports);
|
|
20
|
-
__exportStar(require("./rabbitmq/amqpPublisher"), exports);
|
|
21
|
-
__exportStar(require("./rabbitmq/amqpConnection"), exports);
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import "./rabbitmq/amqpAsserter.js";
|
|
2
|
+
import "./rabbitmq/amqpConnection.js";
|
|
3
|
+
import "./rabbitmq/amqpListener.js";
|
|
4
|
+
import "./rabbitmq/amqpPublisher.js";
|
|
5
|
+
import "./rabbitmq/index.js";
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { BindOptions, ExchangeName, ExchangeOptions, QueueOptions, UnbindOptions } from "../../interfaces/messageBrokerServiceConfig.js";
|
|
2
|
+
import { AmqpConnection } from "./amqpConnection.js";
|
|
3
|
+
import { QueueName } from "../../interfaces/queueConfig/configs.js";
|
|
4
|
+
import { DeclareOptions } from "../../interfaces/providers/rabbitmq/index.js";
|
|
5
|
+
import { Logger } from "@diia-inhouse/types";
|
|
6
|
+
import { Replies } from "amqplib";
|
|
7
|
+
|
|
8
|
+
//#region src/providers/rabbitmq/amqpAsserter.d.ts
|
|
9
|
+
declare class AmqpAsserter {
|
|
10
|
+
private readonly connection;
|
|
11
|
+
private readonly logger;
|
|
12
|
+
private readonly declareOptions;
|
|
13
|
+
static PrefixAlternate: string;
|
|
14
|
+
private readonly defaultExchangeType;
|
|
15
|
+
private readonly defaultQueueOptions;
|
|
16
|
+
private readonly defaultExchangeOptions;
|
|
17
|
+
private readonly defaultDeclareOptions;
|
|
18
|
+
private channel?;
|
|
19
|
+
private readonly channelName;
|
|
20
|
+
constructor(connection: AmqpConnection, logger: Logger, declareOptions?: DeclareOptions);
|
|
21
|
+
init(exchangesOptions?: ExchangeOptions[], queuesOptions?: QueueOptions[]): Promise<void>;
|
|
22
|
+
declareQueuesByJSON(declarationConfigPath: string): Promise<void>;
|
|
23
|
+
declareQueues(queuesOptions?: QueueOptions[], exchangesOptions?: ExchangeOptions[]): Promise<void>;
|
|
24
|
+
redeclareQueue(queueOptions: QueueOptions, exchangesOptions: ExchangeOptions[]): Promise<boolean>;
|
|
25
|
+
transferMessageBetweenQueues(sourceQueueName: QueueName, destinationQueueName: QueueName): Promise<void>;
|
|
26
|
+
deleteExchanges(exchangesOptions: ExchangeOptions[]): Promise<Record<ExchangeName, Replies.Empty | undefined>>;
|
|
27
|
+
deleteExchange(exchangeName: string): Promise<Replies.Empty | undefined>;
|
|
28
|
+
deleteQueues(queueNames: QueueName[]): Promise<Record<QueueName, Replies.DeleteQueue | undefined>>;
|
|
29
|
+
deleteQueue(queueName: QueueName): Promise<Replies.DeleteQueue | undefined>;
|
|
30
|
+
assertQueues(queueOptions: QueueOptions[]): Promise<Record<QueueName, Replies.AssertQueue | undefined>>;
|
|
31
|
+
assertQueue(queueOptions: QueueOptions): Promise<Replies.AssertQueue | undefined>;
|
|
32
|
+
assertExchanges(exchangeOptions: ExchangeOptions[]): Promise<Record<QueueName, Replies.AssertExchange | undefined>>;
|
|
33
|
+
assertExchange(exchangeOptions: ExchangeOptions): Promise<Replies.AssertExchange | undefined>;
|
|
34
|
+
unbindQueueFromExchanges(queueOptions: QueueOptions): Promise<undefined>;
|
|
35
|
+
bindQueueToExchange(queueName: QueueName, bindOptions: BindOptions): Promise<Replies.Empty | undefined>;
|
|
36
|
+
bindExchangeToExchanges(exchangeName: ExchangeName, bindTo: BindOptions[]): Promise<undefined>;
|
|
37
|
+
bindExchangeToExchange(exchangeName: ExchangeName, bindOptions: BindOptions): Promise<Replies.Empty | undefined>;
|
|
38
|
+
unbindQueueFromExchange(queueName: QueueName, unbindOptions: UnbindOptions): Promise<Replies.Empty | undefined>;
|
|
39
|
+
disconnect(): Promise<void>;
|
|
40
|
+
private initChannel;
|
|
41
|
+
private readConfig;
|
|
42
|
+
private assertTemporaryQueue;
|
|
43
|
+
private assertAlternateExchanges;
|
|
44
|
+
private assertAlternateQueue;
|
|
45
|
+
private prepareRedeclareQueueOptions;
|
|
46
|
+
private prepareTemporaryQueueOptions;
|
|
47
|
+
private prepareAlternateExchangesOptions;
|
|
48
|
+
private prepareAlternateExchangeOptions;
|
|
49
|
+
private prepareAlternateQueueOptions;
|
|
50
|
+
private prepareAlternateBindToQueueOption;
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { AmqpAsserter };
|