@diia-inhouse/diia-queue 13.3.3 → 14.0.10

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.
Files changed (148) hide show
  1. package/dist/constants.js +9 -9
  2. package/dist/index.d.ts +27 -0
  3. package/dist/index.js +23 -21
  4. package/dist/interfaces/deps.d.ts +30 -0
  5. package/dist/interfaces/externalCommunicator.d.ts +58 -0
  6. package/dist/interfaces/index.d.ts +95 -0
  7. package/dist/interfaces/index.js +7 -30
  8. package/dist/interfaces/messageBrokerServiceConfig.d.ts +80 -0
  9. package/dist/interfaces/messageBrokerServiceConfig.js +27 -24
  10. package/dist/interfaces/messageHandler.d.ts +6 -0
  11. package/dist/interfaces/metrics/index.d.ts +23 -0
  12. package/dist/interfaces/metrics/index.js +12 -16
  13. package/dist/interfaces/options.d.ts +52 -0
  14. package/dist/interfaces/providers/rabbitmq/amqpConnection.d.ts +33 -0
  15. package/dist/interfaces/providers/rabbitmq/amqpConnection.js +14 -17
  16. package/dist/interfaces/providers/rabbitmq/amqpPublisher.d.ts +20 -0
  17. package/dist/interfaces/providers/rabbitmq/index.d.ts +107 -0
  18. package/dist/interfaces/providers/rabbitmq/index.js +35 -47
  19. package/dist/interfaces/queueConfig/configs.d.ts +47 -0
  20. package/dist/interfaces/queueConfig/configs.js +8 -9
  21. package/dist/interfaces/queueConfig/index.d.ts +1 -0
  22. package/dist/interfaces/queueContext.d.ts +8 -0
  23. package/dist/interfaces/queueStatus.d.ts +15 -0
  24. package/dist/interfaces/queueStatus.js +8 -9
  25. package/dist/metrics/index.js +5 -8
  26. package/dist/providers/index.d.ts +5 -0
  27. package/dist/providers/index.js +6 -22
  28. package/dist/providers/rabbitmq/amqpAsserter.d.ts +53 -0
  29. package/dist/providers/rabbitmq/amqpAsserter.js +369 -416
  30. package/dist/providers/rabbitmq/amqpConnection.d.ts +24 -0
  31. package/dist/providers/rabbitmq/amqpConnection.js +97 -150
  32. package/dist/providers/rabbitmq/amqpListener.d.ts +47 -0
  33. package/dist/providers/rabbitmq/amqpListener.js +218 -225
  34. package/dist/providers/rabbitmq/amqpPublisher.d.ts +38 -0
  35. package/dist/providers/rabbitmq/amqpPublisher.js +184 -191
  36. package/dist/providers/rabbitmq/index.d.ts +56 -0
  37. package/dist/providers/rabbitmq/index.js +161 -186
  38. package/dist/services/communicator.d.ts +66 -0
  39. package/dist/services/communicator.js +164 -186
  40. package/dist/services/eventBus.d.ts +25 -0
  41. package/dist/services/eventBus.js +45 -57
  42. package/dist/services/eventCommunicator.js +75 -124
  43. package/dist/services/eventMessageHandler.d.ts +25 -0
  44. package/dist/services/eventMessageHandler.js +112 -129
  45. package/dist/services/eventMessageValidator.d.ts +13 -0
  46. package/dist/services/eventMessageValidator.js +59 -44
  47. package/dist/services/externalCommunicator.d.ts +114 -0
  48. package/dist/services/externalCommunicator.js +149 -140
  49. package/dist/services/externalEventBus.d.ts +39 -0
  50. package/dist/services/externalEventBus.js +144 -162
  51. package/dist/services/index.d.ts +8 -0
  52. package/dist/services/index.js +10 -26
  53. package/dist/services/metrics.d.ts +15 -0
  54. package/dist/services/metrics.js +46 -49
  55. package/dist/services/optionsBuilder.d.ts +14 -0
  56. package/dist/services/optionsBuilder.js +43 -58
  57. package/dist/services/queue.d.ts +29 -0
  58. package/dist/services/queue.js +78 -93
  59. package/dist/services/scheduledTask.d.ts +30 -0
  60. package/dist/services/scheduledTask.js +60 -68
  61. package/dist/services/task.d.ts +33 -0
  62. package/dist/services/task.js +160 -176
  63. package/dist/utils.js +7 -11
  64. package/package.json +44 -50
  65. package/dist/constants.js.map +0 -1
  66. package/dist/index.js.map +0 -1
  67. package/dist/interfaces/deps.js +0 -3
  68. package/dist/interfaces/deps.js.map +0 -1
  69. package/dist/interfaces/externalCommunicator.js +0 -3
  70. package/dist/interfaces/externalCommunicator.js.map +0 -1
  71. package/dist/interfaces/index.js.map +0 -1
  72. package/dist/interfaces/messageBrokerServiceConfig.js.map +0 -1
  73. package/dist/interfaces/messageHandler.js +0 -3
  74. package/dist/interfaces/messageHandler.js.map +0 -1
  75. package/dist/interfaces/metrics/index.js.map +0 -1
  76. package/dist/interfaces/options.js +0 -3
  77. package/dist/interfaces/options.js.map +0 -1
  78. package/dist/interfaces/providers/rabbitmq/amqpConnection.js.map +0 -1
  79. package/dist/interfaces/providers/rabbitmq/amqpPublisher.js +0 -4
  80. package/dist/interfaces/providers/rabbitmq/amqpPublisher.js.map +0 -1
  81. package/dist/interfaces/providers/rabbitmq/index.js.map +0 -1
  82. package/dist/interfaces/queueConfig/configs.js.map +0 -1
  83. package/dist/interfaces/queueConfig/index.js +0 -18
  84. package/dist/interfaces/queueConfig/index.js.map +0 -1
  85. package/dist/interfaces/queueContext.js +0 -3
  86. package/dist/interfaces/queueContext.js.map +0 -1
  87. package/dist/interfaces/queueStatus.js.map +0 -1
  88. package/dist/interfaces/services/eventMessageHandler.js +0 -3
  89. package/dist/interfaces/services/eventMessageHandler.js.map +0 -1
  90. package/dist/metrics/index.js.map +0 -1
  91. package/dist/providers/index.js.map +0 -1
  92. package/dist/providers/rabbitmq/amqpAsserter.js.map +0 -1
  93. package/dist/providers/rabbitmq/amqpConnection.js.map +0 -1
  94. package/dist/providers/rabbitmq/amqpListener.js.map +0 -1
  95. package/dist/providers/rabbitmq/amqpPublisher.js.map +0 -1
  96. package/dist/providers/rabbitmq/index.js.map +0 -1
  97. package/dist/services/communicator.js.map +0 -1
  98. package/dist/services/eventBus.js.map +0 -1
  99. package/dist/services/eventCommunicator.js.map +0 -1
  100. package/dist/services/eventMessageHandler.js.map +0 -1
  101. package/dist/services/eventMessageValidator.js.map +0 -1
  102. package/dist/services/externalCommunicator.js.map +0 -1
  103. package/dist/services/externalEventBus.js.map +0 -1
  104. package/dist/services/index.js.map +0 -1
  105. package/dist/services/metrics.js.map +0 -1
  106. package/dist/services/optionsBuilder.js.map +0 -1
  107. package/dist/services/queue.js.map +0 -1
  108. package/dist/services/scheduledTask.js.map +0 -1
  109. package/dist/services/task.js.map +0 -1
  110. package/dist/types/constants.d.ts +0 -8
  111. package/dist/types/index.d.ts +0 -4
  112. package/dist/types/interfaces/deps.d.ts +0 -26
  113. package/dist/types/interfaces/externalCommunicator.d.ts +0 -54
  114. package/dist/types/interfaces/index.d.ts +0 -99
  115. package/dist/types/interfaces/messageBrokerServiceConfig.d.ts +0 -79
  116. package/dist/types/interfaces/messageHandler.d.ts +0 -2
  117. package/dist/types/interfaces/metrics/index.d.ts +0 -20
  118. package/dist/types/interfaces/options.d.ts +0 -49
  119. package/dist/types/interfaces/providers/rabbitmq/amqpConnection.d.ts +0 -29
  120. package/dist/types/interfaces/providers/rabbitmq/amqpPublisher.d.ts +0 -16
  121. package/dist/types/interfaces/providers/rabbitmq/index.d.ts +0 -114
  122. package/dist/types/interfaces/queueConfig/configs.d.ts +0 -47
  123. package/dist/types/interfaces/queueConfig/index.d.ts +0 -1
  124. package/dist/types/interfaces/queueContext.d.ts +0 -4
  125. package/dist/types/interfaces/queueStatus.d.ts +0 -11
  126. package/dist/types/interfaces/services/eventMessageHandler.d.ts +0 -5
  127. package/dist/types/metrics/index.d.ts +0 -3
  128. package/dist/types/providers/index.d.ts +0 -5
  129. package/dist/types/providers/rabbitmq/amqpAsserter.d.ts +0 -49
  130. package/dist/types/providers/rabbitmq/amqpConnection.d.ts +0 -20
  131. package/dist/types/providers/rabbitmq/amqpListener.d.ts +0 -42
  132. package/dist/types/providers/rabbitmq/amqpPublisher.d.ts +0 -34
  133. package/dist/types/providers/rabbitmq/index.d.ts +0 -52
  134. package/dist/types/services/communicator.d.ts +0 -57
  135. package/dist/types/services/eventBus.d.ts +0 -20
  136. package/dist/types/services/eventCommunicator.d.ts +0 -15
  137. package/dist/types/services/eventMessageHandler.d.ts +0 -19
  138. package/dist/types/services/eventMessageValidator.d.ts +0 -9
  139. package/dist/types/services/externalCommunicator.d.ts +0 -110
  140. package/dist/types/services/externalEventBus.d.ts +0 -33
  141. package/dist/types/services/index.d.ts +0 -9
  142. package/dist/types/services/metrics.d.ts +0 -11
  143. package/dist/types/services/optionsBuilder.d.ts +0 -10
  144. package/dist/types/services/queue.d.ts +0 -23
  145. package/dist/types/services/scheduledTask.d.ts +0 -25
  146. package/dist/types/services/task.d.ts +0 -28
  147. package/dist/types/utils.d.ts +0 -3
  148. package/dist/utils.js.map +0 -1
@@ -1,17 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AmqpConnectionEventNames = exports.ConnectionStatus = void 0;
4
- var ConnectionStatus;
5
- (function (ConnectionStatus) {
6
- ConnectionStatus["Init"] = "init";
7
- ConnectionStatus["Connecting"] = "connecting";
8
- ConnectionStatus["Connected"] = "connected";
9
- ConnectionStatus["Reconnecting"] = "reconnecting";
10
- ConnectionStatus["Closing"] = "closing";
11
- ConnectionStatus["Closed"] = "closed";
12
- ConnectionStatus["Down"] = "down";
13
- })(ConnectionStatus || (exports.ConnectionStatus = ConnectionStatus = {}));
14
- exports.AmqpConnectionEventNames = {
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
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Arguments = exports.NackOptions = exports.Headers = exports.Message = exports.ConnectionClientType = void 0;
4
- var ConnectionClientType;
5
- (function (ConnectionClientType) {
6
- ConnectionClientType["Listener"] = "listener";
7
- ConnectionClientType["Asserter"] = "asserter";
8
- ConnectionClientType["Publisher"] = "publisher";
9
- })(ConnectionClientType || (exports.ConnectionClientType = ConnectionClientType = {}));
10
- class Message {
11
- data;
12
- constructor(data) {
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
- class NackOptions {
22
- requeue;
23
- allUpTo;
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
- //# sourceMappingURL=index.js.map
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
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueueConfigType = void 0;
4
- var QueueConfigType;
5
- (function (QueueConfigType) {
6
- QueueConfigType["Internal"] = "internal";
7
- QueueConfigType["External"] = "external";
8
- })(QueueConfigType || (exports.QueueConfigType = QueueConfigType = {}));
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,8 @@
1
+ import { LogData } from "@diia-inhouse/types";
2
+
3
+ //#region src/interfaces/queueContext.d.ts
4
+ interface QueueContext {
5
+ logData?: LogData;
6
+ }
7
+ //#endregion
8
+ export { QueueContext };
@@ -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
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueueConnectionType = void 0;
4
- var QueueConnectionType;
5
- (function (QueueConnectionType) {
6
- QueueConnectionType["Internal"] = "internal";
7
- QueueConnectionType["External"] = "external";
8
- })(QueueConnectionType || (exports.QueueConnectionType = QueueConnectionType = {}));
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 };
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.totalListenerChannelErrorsMetric = void 0;
4
- const diia_metrics_1 = require("@diia-inhouse/diia-metrics");
5
- exports.totalListenerChannelErrorsMetric = new diia_metrics_1.Counter('listener_channel_errors_total', [
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";
@@ -1,22 +1,6 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
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 };