@diia-inhouse/diia-queue 13.3.4 → 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
package/dist/constants.js CHANGED
@@ -1,10 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = {
4
- DEFAULT_ROUTING_KEY: '*',
5
- APP_ID: 'Diia App',
6
- PROJECT_NAME: 'diia',
7
- PORTAL_NAME: 'portal',
8
- REPLY_TO_QUEUE_NAME: 'amq.rabbitmq.reply-to',
1
+ //#region src/constants.ts
2
+ var constants_default = {
3
+ DEFAULT_ROUTING_KEY: "*",
4
+ APP_ID: "Diia App",
5
+ PROJECT_NAME: "diia",
6
+ PORTAL_NAME: "portal",
7
+ REPLY_TO_QUEUE_NAME: "amq.rabbitmq.reply-to"
9
8
  };
10
- //# sourceMappingURL=constants.js.map
9
+ //#endregion
10
+ export { constants_default as default };
@@ -0,0 +1,27 @@
1
+ import { BaseQueueOptions, BindOptions, ConsumerOptions, ExchangeName, ExchangeOptions, ExchangeType, MessageBrokerExternalServiceType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceType, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceType, MessageBrokerInternalServiceTypes, MessageBrokerServiceConfig, MessageBrokerServiceType, MessageBrokerServicesConfig, QueueOptions, QueueTypes, RecreateChannelOptions, RedeclareQueueOptions, UnbindOptions, emptyMessageBrokerServiceConfig } from "./interfaces/messageBrokerServiceConfig.js";
2
+ import { AmqpConfig, AmqpConnectionEventNames, ConnectOptions, ConnectionStatus, ReconnectOptions, SocketOptions } from "./interfaces/providers/rabbitmq/amqpConnection.js";
3
+ import { AmqpConnection } from "./providers/rabbitmq/amqpConnection.js";
4
+ import { ListenerOptions, PublishDirectOptions, PublishExternalEventOptions, PublishOptions, PublisherOptions, SubscribeOptions } from "./interfaces/options.js";
5
+ import { EventName, ExternalServiceConfig, InternalServiceConfig, QueueConfigByQueueName, QueueConfigType, QueueName, ServiceConfig, ServiceConfigByConfigType, ServiceRulesConfig, TopicConfig, TopicConfigByConfigType } from "./interfaces/queueConfig/configs.js";
6
+ import { Arguments, ConnectionClientType, ConnectionList, DeclareOptions, ExportConfig, Headers, Message, MessageData, MessageProperties, NackOptions, QueueMessage, QueueMessageData, QueueMessageError, QueueMessageMetaData, RabbitMQConfig, RabbitMQConfigCustomParams, RabbitMQStatus } from "./interfaces/providers/rabbitmq/index.js";
7
+ import { MessageHandler } from "./interfaces/messageHandler.js";
8
+ import { DirectResponse, DirectResponseHeaders, MessageHeaders, MessagePayload, PublishingResult } from "./interfaces/providers/rabbitmq/amqpPublisher.js";
9
+ import { MessageBrokerServicesStatus, QueueConnectionType, QueueStatus, QueueStatusByType } from "./interfaces/queueStatus.js";
10
+ import { QueueContext } from "./interfaces/queueContext.js";
11
+ import { CommunicationDirection, CommunicationsTotalLabelsMap, LabelUnknown, Metrics, TotalListenerChannelErrorsLabelsMap, TotalMessageHandlerErrorsLabelsMap, communicationsTotalLabelsMap } from "./interfaces/metrics/index.js";
12
+ import { ExternalCommunicatorFailureResponse, ExternalCommunicatorResponse, ExternalCommunicatorResponseError, ExternalCommunicatorSuccessResponse, ReceiveDirectOps } from "./interfaces/externalCommunicator.js";
13
+ import { EventBusListener, EventBusQueue, EventListeners, ExternalEventBusQueue, InternalQueueConfig, Listener, MessageBrokerServiceEventsListener, MessageBrokerServiceListener, QueueConfig, QueueConnectionConfig, ScheduledTasksQueue, TaskListener, TaskQueue } from "./interfaces/index.js";
14
+ import { AmqpAsserter } from "./providers/rabbitmq/amqpAsserter.js";
15
+ import { AmqpListener } from "./providers/rabbitmq/amqpListener.js";
16
+ import { AmqpPublisher } from "./providers/rabbitmq/amqpPublisher.js";
17
+ import { RabbitMQProvider } from "./providers/rabbitmq/index.js";
18
+ import { EventMessageValidator } from "./services/eventMessageValidator.js";
19
+ import { EventMessageHandler } from "./services/eventMessageHandler.js";
20
+ import { EventBus } from "./services/eventBus.js";
21
+ import { ExternalCommunicator } from "./services/externalCommunicator.js";
22
+ import { ExternalEventBus } from "./services/externalEventBus.js";
23
+ import { Queue } from "./services/queue.js";
24
+ import { ScheduledTask } from "./services/scheduledTask.js";
25
+ import { Task } from "./services/task.js";
26
+ import { CommonQueueDeps, ExternalQueueDeps, InternalQueueDeps, QueueDeps } from "./interfaces/deps.js";
27
+ export { AmqpAsserter, AmqpConfig, AmqpConnection, AmqpConnectionEventNames, AmqpListener, AmqpPublisher, Arguments, BaseQueueOptions, BindOptions, CommonQueueDeps, CommunicationDirection, CommunicationsTotalLabelsMap, ConnectOptions, ConnectionClientType, ConnectionList, ConnectionStatus, ConsumerOptions, DeclareOptions, DirectResponse, DirectResponseHeaders, EventBus, EventBusListener, EventBusQueue, EventListeners, EventMessageHandler, EventMessageValidator, EventName, ExchangeName, ExchangeOptions, ExchangeType, ExportConfig, ExternalCommunicator, ExternalCommunicatorFailureResponse, ExternalCommunicatorResponse, ExternalCommunicatorResponseError, ExternalCommunicatorSuccessResponse, ExternalEventBus, ExternalEventBusQueue, ExternalQueueDeps, ExternalServiceConfig, Headers, InternalQueueConfig, InternalQueueDeps, InternalServiceConfig, LabelUnknown, Listener, ListenerOptions, Message, MessageBrokerExternalServiceType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceType, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceType, MessageBrokerInternalServiceTypes, MessageBrokerServiceConfig, MessageBrokerServiceEventsListener, MessageBrokerServiceListener, MessageBrokerServiceType, MessageBrokerServicesConfig, MessageBrokerServicesStatus, MessageData, MessageHandler, MessageHeaders, MessagePayload, MessageProperties, Metrics, NackOptions, PublishDirectOptions, PublishExternalEventOptions, PublishOptions, PublisherOptions, PublishingResult, Queue, QueueConfig, QueueConfigByQueueName, QueueConfigType, QueueConnectionConfig, QueueConnectionType, QueueContext, QueueDeps, QueueMessage, QueueMessageData, QueueMessageError, QueueMessageMetaData, QueueName, QueueOptions, QueueStatus, QueueStatusByType, QueueTypes, RabbitMQConfig, RabbitMQConfigCustomParams, RabbitMQProvider, RabbitMQStatus, ReceiveDirectOps, ReconnectOptions, RecreateChannelOptions, RedeclareQueueOptions, ScheduledTask, ScheduledTasksQueue, ServiceConfig, ServiceConfigByConfigType, ServiceRulesConfig, SocketOptions, SubscribeOptions, Task, TaskListener, TaskQueue, TopicConfig, TopicConfigByConfigType, TotalListenerChannelErrorsLabelsMap, TotalMessageHandlerErrorsLabelsMap, UnbindOptions, communicationsTotalLabelsMap, emptyMessageBrokerServiceConfig };
package/dist/index.js CHANGED
@@ -1,21 +1,23 @@
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("./interfaces"), exports);
18
- __exportStar(require("./interfaces/deps"), exports);
19
- __exportStar(require("./services"), exports);
20
- __exportStar(require("./providers"), exports);
21
- //# sourceMappingURL=index.js.map
1
+ import { Arguments, ConnectionClientType, Headers, Message, NackOptions } from "./interfaces/providers/rabbitmq/index.js";
2
+ import { AmqpConnectionEventNames, ConnectionStatus } from "./interfaces/providers/rabbitmq/amqpConnection.js";
3
+ import { QueueConnectionType } from "./interfaces/queueStatus.js";
4
+ import { ExchangeType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceTypes, QueueTypes, emptyMessageBrokerServiceConfig } from "./interfaces/messageBrokerServiceConfig.js";
5
+ import { CommunicationsTotalLabelsMap, LabelUnknown, Metrics, communicationsTotalLabelsMap } from "./interfaces/metrics/index.js";
6
+ import { QueueConfigType } from "./interfaces/queueConfig/configs.js";
7
+ import "./interfaces/index.js";
8
+ import { EventBus } from "./services/eventBus.js";
9
+ import { EventMessageHandler } from "./services/eventMessageHandler.js";
10
+ import { EventMessageValidator } from "./services/eventMessageValidator.js";
11
+ import { ExternalCommunicator } from "./services/externalCommunicator.js";
12
+ import { ExternalEventBus } from "./services/externalEventBus.js";
13
+ import { ScheduledTask } from "./services/scheduledTask.js";
14
+ import { Task } from "./services/task.js";
15
+ import { AmqpAsserter } from "./providers/rabbitmq/amqpAsserter.js";
16
+ import { AmqpConnection } from "./providers/rabbitmq/amqpConnection.js";
17
+ import { AmqpListener } from "./providers/rabbitmq/amqpListener.js";
18
+ import { AmqpPublisher } from "./providers/rabbitmq/amqpPublisher.js";
19
+ import { RabbitMQProvider } from "./providers/rabbitmq/index.js";
20
+ import { Queue } from "./services/queue.js";
21
+ import "./services/index.js";
22
+ import "./providers/index.js";
23
+ export { AmqpAsserter, AmqpConnection, AmqpConnectionEventNames, AmqpListener, AmqpPublisher, Arguments, CommunicationsTotalLabelsMap, ConnectionClientType, ConnectionStatus, EventBus, EventMessageHandler, EventMessageValidator, ExchangeType, ExternalCommunicator, ExternalEventBus, Headers, LabelUnknown, Message, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceTypes, Metrics, NackOptions, Queue, QueueConfigType, QueueConnectionType, QueueTypes, RabbitMQProvider, ScheduledTask, Task, communicationsTotalLabelsMap, emptyMessageBrokerServiceConfig };
@@ -0,0 +1,30 @@
1
+ import { EventMessageValidator } from "../services/eventMessageValidator.js";
2
+ import { EventMessageHandler } from "../services/eventMessageHandler.js";
3
+ import { EventBus } from "../services/eventBus.js";
4
+ import { ExternalCommunicator } from "../services/externalCommunicator.js";
5
+ import { ExternalEventBus } from "../services/externalEventBus.js";
6
+ import { Queue } from "../services/queue.js";
7
+ import { ScheduledTask } from "../services/scheduledTask.js";
8
+ import { Task } from "../services/task.js";
9
+
10
+ //#region src/interfaces/deps.d.ts
11
+ type CommonQueueDeps = {
12
+ queue: Queue;
13
+ eventMessageHandler: EventMessageHandler;
14
+ eventMessageValidator: EventMessageValidator;
15
+ };
16
+ type InternalQueueDeps = {
17
+ eventBus?: EventBus;
18
+ task?: Task;
19
+ /**
20
+ * @deprecated use pkg-workflow entities instead
21
+ */
22
+ scheduledTask?: ScheduledTask;
23
+ };
24
+ type ExternalQueueDeps = {
25
+ externalEventBus: ExternalEventBus;
26
+ external: ExternalCommunicator;
27
+ };
28
+ type QueueDeps = CommonQueueDeps & InternalQueueDeps & ExternalQueueDeps;
29
+ //#endregion
30
+ export { CommonQueueDeps, ExternalQueueDeps, InternalQueueDeps, QueueDeps };
@@ -0,0 +1,58 @@
1
+ import { ExchangeName } from "./messageBrokerServiceConfig.js";
2
+ import { HttpStatusCode } from "@diia-inhouse/types";
3
+ import { ValidationSchema } from "@diia-inhouse/validators";
4
+
5
+ //#region src/interfaces/externalCommunicator.d.ts
6
+ /**
7
+ * Options for {@link ExternalCommunicator.receiveDirect}.
8
+ */
9
+ interface ReceiveDirectOps {
10
+ /**
11
+ * Forwarded in the message meta; consumed by `AGateway` to route the
12
+ * request to a specific registry API version.
13
+ */
14
+ registryApiVersion?: string;
15
+ /**
16
+ * Override the target exchange. Defaults to the exchange resolved from the
17
+ * external queue configuration for the given event.
18
+ */
19
+ exchangeName?: ExchangeName;
20
+ /**
21
+ * Schema describing the **inner** `response` payload. The validator wraps
22
+ * it with the envelope shape (`event`, `payload.uuid`, `payload.error`,
23
+ * `meta.date`, etc.) automatically — so pass just the fields you expect
24
+ * inside `response`, not the envelope itself.
25
+ *
26
+ * Null is acceptable only for legacy use cases.
27
+ */
28
+ validationRules: ValidationSchema | null;
29
+ /** Bypass response caching on the subscriber side if configured. */
30
+ ignoreCache?: boolean;
31
+ /**
32
+ * Override the default direct-response timeout (ms). Falls back to the
33
+ * publisher's configured `directResponseTimeout` (10s by default).
34
+ */
35
+ timeout?: number;
36
+ /**
37
+ * Defaults to a freshly generated `randomUUID()` when omitted.
38
+ */
39
+ requestUuid?: string;
40
+ }
41
+ interface ExternalCommunicatorResponseError {
42
+ http_code: HttpStatusCode;
43
+ message?: string;
44
+ data?: Record<string, unknown>;
45
+ }
46
+ interface ExternalCommunicatorSuccessResponse<T> {
47
+ uuid: string;
48
+ response: T;
49
+ error: never;
50
+ }
51
+ interface ExternalCommunicatorFailureResponse {
52
+ uuid: string;
53
+ error?: ExternalCommunicatorResponseError;
54
+ response: never;
55
+ }
56
+ type ExternalCommunicatorResponse<T> = ExternalCommunicatorSuccessResponse<T> | ExternalCommunicatorFailureResponse;
57
+ //#endregion
58
+ export { ExternalCommunicatorFailureResponse, ExternalCommunicatorResponse, ExternalCommunicatorResponseError, ExternalCommunicatorSuccessResponse, ReceiveDirectOps };
@@ -0,0 +1,95 @@
1
+ import { BaseQueueOptions, BindOptions, ConsumerOptions, ExchangeName, ExchangeOptions, ExchangeType, MessageBrokerExternalServiceType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceType, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceType, MessageBrokerInternalServiceTypes, MessageBrokerServiceConfig, MessageBrokerServiceType, MessageBrokerServicesConfig, QueueOptions, QueueTypes, RecreateChannelOptions, RedeclareQueueOptions, UnbindOptions, emptyMessageBrokerServiceConfig } from "./messageBrokerServiceConfig.js";
2
+ import { AmqpConfig, AmqpConnectionEventNames, ConnectOptions, ConnectionStatus, ReconnectOptions, SocketOptions } from "./providers/rabbitmq/amqpConnection.js";
3
+ import { ListenerOptions, PublishDirectOptions, PublishExternalEventOptions, PublishOptions, PublisherOptions, SubscribeOptions } from "./options.js";
4
+ import { EventName, ExternalServiceConfig, InternalServiceConfig, QueueConfigByQueueName, QueueConfigType, QueueName, ServiceConfig, ServiceConfigByConfigType, ServiceRulesConfig, TopicConfig, TopicConfigByConfigType } from "./queueConfig/configs.js";
5
+ import { Arguments, ConnectionClientType, ConnectionList, DeclareOptions, ExportConfig, Headers, Message, MessageData, MessageProperties, NackOptions, QueueMessage, QueueMessageData, QueueMessageError, QueueMessageMetaData, RabbitMQConfig, RabbitMQConfigCustomParams, RabbitMQStatus } from "./providers/rabbitmq/index.js";
6
+ import { MessageHandler } from "./messageHandler.js";
7
+ import { DirectResponse, DirectResponseHeaders, MessageHeaders, MessagePayload, PublishingResult } from "./providers/rabbitmq/amqpPublisher.js";
8
+ import { MessageBrokerServicesStatus, QueueConnectionType, QueueStatus, QueueStatusByType } from "./queueStatus.js";
9
+ import { QueueContext } from "./queueContext.js";
10
+ import { CommunicationDirection, CommunicationsTotalLabelsMap, LabelUnknown, Metrics, TotalListenerChannelErrorsLabelsMap, TotalMessageHandlerErrorsLabelsMap, communicationsTotalLabelsMap } from "./metrics/index.js";
11
+ import { ExternalCommunicatorFailureResponse, ExternalCommunicatorResponse, ExternalCommunicatorResponseError, ExternalCommunicatorSuccessResponse, ReceiveDirectOps } from "./externalCommunicator.js";
12
+ import { ValidationError } from "@diia-inhouse/errors";
13
+ import { ValidationSchema } from "@diia-inhouse/validators";
14
+
15
+ //#region src/interfaces/index.d.ts
16
+ type EventListeners = Partial<Record<EventName, EventBusListener>>;
17
+ interface TaskQueue {
18
+ subscribe(queueName: QueueName, messageHandler: MessageHandler, options?: SubscribeOptions): Promise<boolean>;
19
+ publish(taskName: string, message: MessagePayload, delay?: number): Promise<PublishingResult>;
20
+ }
21
+ interface ScheduledTasksQueue {
22
+ subscribe(queueName: QueueName, messageHandler: MessageHandler): Promise<boolean>;
23
+ publishToQueue(queueName: QueueName, payload: MessageData): Promise<PublishingResult>;
24
+ /** @deprecated
25
+ * - use the publishToExchange method for pushing a message by a routing key
26
+ * - use the publishToQueue method for pushing a message to a queue
27
+ * */
28
+ publish(eventName: EventName, serviceName: string): Promise<PublishingResult>;
29
+ publishToExchange(exchangeName: ExchangeName, routingKey: string, payload: MessageData): Promise<PublishingResult>;
30
+ }
31
+ interface EventBusQueue {
32
+ subscribe(queueName: QueueName, messageHandler: MessageHandler, options?: SubscribeOptions): Promise<boolean>;
33
+ /** @deprecated
34
+ * - use the publishToExchange method for pushing a message by a routing key
35
+ * - use the publishToQueue method for pushing a message to a queue
36
+ * */
37
+ publish(publicationName: EventName, message: MessagePayload, options?: PublishOptions): Promise<PublishingResult>;
38
+ publishToQueue(queueName: QueueName, payload: MessageData): Promise<PublishingResult>;
39
+ publishToExchange(exchangeName: ExchangeName, routingKey: string, payload: MessageData): Promise<PublishingResult>;
40
+ }
41
+ interface ExternalEventBusQueue {
42
+ subscribe(queueName: QueueName, messageHandler: MessageHandler): Promise<boolean>;
43
+ /** @deprecated
44
+ * - use the publishToExchange method for pushing a message by a routing key
45
+ * - use the publishToQueue method for pushing a message to a queue
46
+ * */
47
+ publish(eventName: EventName, message: MessagePayload, options?: PublishExternalEventOptions): Promise<PublishingResult>;
48
+ publishDirect<T>(eventName: string, message: MessagePayload, options?: PublishDirectOptions): Promise<T>;
49
+ publishToExchange(exchangeName: ExchangeName, routingKey: string, messageData: MessageData, options?: PublishOptions): Promise<PublishingResult>;
50
+ publishToQueue(queueName: QueueName, messageData: MessageData): Promise<PublishingResult>;
51
+ }
52
+ interface Listener {
53
+ queueNames?: string[];
54
+ nackOptions?: NackOptions;
55
+ validationRules?: ValidationSchema;
56
+ getServiceCode?(payload: unknown): string;
57
+ }
58
+ interface EventBusListener extends Listener {
59
+ event: EventName;
60
+ /** @deprecated use receive direct mechanism */
61
+ isSync?: boolean;
62
+ validationErrorHandler?(error: ValidationError, uuid: string): Promise<void>;
63
+ handler?(payload: unknown, meta: QueueMessageMetaData): Promise<unknown>;
64
+ }
65
+ interface TaskListener extends Listener {
66
+ name: string;
67
+ /**
68
+ * @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
69
+ */
70
+ isDelayed?: boolean;
71
+ handler(payload: unknown, meta: QueueMessageMetaData): Promise<void | NackOptions>;
72
+ }
73
+ type QueueConfig = RabbitMQConfig;
74
+ interface InternalQueueConfig extends QueueConfig {
75
+ queueName?: string;
76
+ /**
77
+ * @deprecated use pkg-workflow entities instead
78
+ */
79
+ scheduledTaskQueueName?: string;
80
+ }
81
+ type QueueConnectionConfig = {
82
+ serviceRulesConfig: ServiceRulesConfig;
83
+ [QueueConnectionType.Internal]?: InternalQueueConfig;
84
+ [QueueConnectionType.External]?: QueueConfig;
85
+ };
86
+ interface MessageBrokerServiceListener {
87
+ handler: MessageHandler;
88
+ queueOptions: QueueOptions;
89
+ exchangesOptions: ExchangeOptions[];
90
+ }
91
+ interface MessageBrokerServiceEventsListener extends MessageBrokerServiceListener {
92
+ eventNames?: string[];
93
+ }
94
+ //#endregion
95
+ export { EventBusListener, EventBusQueue, EventListeners, ExternalEventBusQueue, InternalQueueConfig, Listener, MessageBrokerServiceEventsListener, MessageBrokerServiceListener, QueueConfig, QueueConnectionConfig, ScheduledTasksQueue, TaskListener, TaskQueue };
@@ -1,30 +1,7 @@
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
- const queueStatus_1 = require("./queueStatus");
18
- __exportStar(require("./providers/rabbitmq"), exports);
19
- __exportStar(require("./providers/rabbitmq/amqpConnection"), exports);
20
- __exportStar(require("./providers/rabbitmq/amqpPublisher"), exports);
21
- __exportStar(require("./queueStatus"), exports);
22
- __exportStar(require("./options"), exports);
23
- __exportStar(require("./messageHandler"), exports);
24
- __exportStar(require("./options"), exports);
25
- __exportStar(require("./queueContext"), exports);
26
- __exportStar(require("./messageBrokerServiceConfig"), exports);
27
- __exportStar(require("./metrics"), exports);
28
- __exportStar(require("./queueConfig"), exports);
29
- __exportStar(require("./externalCommunicator"), exports);
30
- //# sourceMappingURL=index.js.map
1
+ import "./providers/rabbitmq/index.js";
2
+ import "./providers/rabbitmq/amqpConnection.js";
3
+ import "./queueStatus.js";
4
+ import "./messageBrokerServiceConfig.js";
5
+ import "./metrics/index.js";
6
+ import "./queueConfig/configs.js";
7
+ export {};
@@ -0,0 +1,80 @@
1
+ import { Options } from "amqplib";
2
+
3
+ //#region src/interfaces/messageBrokerServiceConfig.d.ts
4
+ interface BaseBindOptions {
5
+ exchangeName: string;
6
+ routingKey?: string;
7
+ }
8
+ interface BindOptions extends BaseBindOptions {
9
+ bind?: boolean;
10
+ }
11
+ interface UnbindOptions extends BaseBindOptions {
12
+ unbind?: boolean;
13
+ }
14
+ interface RecreateChannelOptions {
15
+ timeout?: number;
16
+ maxTries?: number;
17
+ backoffCoefficient?: number;
18
+ }
19
+ interface ConsumerOptions {
20
+ consumerTag?: string;
21
+ prefetchCount?: number;
22
+ recreateChannelOptions?: RecreateChannelOptions;
23
+ }
24
+ type ExchangeName = string;
25
+ declare enum ExchangeType {
26
+ Direct = "direct",
27
+ Fanout = "fanout",
28
+ Topic = "topic",
29
+ Headers = "headers",
30
+ /**
31
+ * @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
32
+ */
33
+ XDelayedMessage = "x-delayed-message"
34
+ }
35
+ interface ExchangeOptions {
36
+ name: ExchangeName;
37
+ type?: ExchangeType;
38
+ declare?: boolean;
39
+ /**
40
+ * @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
41
+ */
42
+ delayed?: boolean;
43
+ options?: Options.AssertExchange;
44
+ bindTo?: BindOptions[];
45
+ }
46
+ declare const MessageBrokerExternalServiceTypes: readonly ["externalEventBus"];
47
+ type MessageBrokerExternalServiceType = (typeof MessageBrokerExternalServiceTypes)[number];
48
+ declare const MessageBrokerInternalServiceTypes: readonly ["task", "eventBus", "scheduledTask"];
49
+ type MessageBrokerInternalServiceType = (typeof MessageBrokerInternalServiceTypes)[number];
50
+ declare const MessageBrokerGeneralServiceTypes: readonly ["general"];
51
+ type MessageBrokerGeneralServiceType = (typeof MessageBrokerGeneralServiceTypes)[number];
52
+ type MessageBrokerServiceType = MessageBrokerExternalServiceType | MessageBrokerInternalServiceType | MessageBrokerGeneralServiceType;
53
+ interface MessageBrokerServiceConfig {
54
+ queuesOptions: QueueOptions[];
55
+ exchangesOptions: ExchangeOptions[];
56
+ }
57
+ declare const emptyMessageBrokerServiceConfig: MessageBrokerServiceConfig;
58
+ type MessageBrokerServicesConfig = { [k in MessageBrokerServiceType]?: MessageBrokerServiceConfig };
59
+ declare const QueueTypes: {
60
+ readonly Quorum: "quorum";
61
+ readonly Classic: "classic";
62
+ };
63
+ type QueueType = (typeof QueueTypes)[keyof typeof QueueTypes];
64
+ interface BaseQueueOptions {
65
+ type?: QueueType;
66
+ options?: Options.AssertQueue;
67
+ }
68
+ interface RedeclareQueueOptions extends BaseQueueOptions {
69
+ redeclare?: boolean;
70
+ }
71
+ interface QueueOptions extends BaseQueueOptions {
72
+ name: string;
73
+ declare?: boolean;
74
+ bindTo: BindOptions[];
75
+ unbindFrom?: UnbindOptions[];
76
+ consumerOptions?: ConsumerOptions;
77
+ redeclareOptions?: RedeclareQueueOptions;
78
+ }
79
+ //#endregion
80
+ export { BaseQueueOptions, BindOptions, ConsumerOptions, ExchangeName, ExchangeOptions, ExchangeType, MessageBrokerExternalServiceType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceType, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceType, MessageBrokerInternalServiceTypes, MessageBrokerServiceConfig, MessageBrokerServiceType, MessageBrokerServicesConfig, QueueOptions, QueueTypes, RecreateChannelOptions, RedeclareQueueOptions, UnbindOptions, emptyMessageBrokerServiceConfig };
@@ -1,26 +1,29 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueueTypes = exports.emptyMessageBrokerServiceConfig = exports.MessageBrokerGeneralServiceTypes = exports.MessageBrokerInternalServiceTypes = exports.MessageBrokerExternalServiceTypes = exports.ExchangeType = void 0;
4
- var ExchangeType;
5
- (function (ExchangeType) {
6
- ExchangeType["Direct"] = "direct";
7
- ExchangeType["Fanout"] = "fanout";
8
- ExchangeType["Topic"] = "topic";
9
- ExchangeType["Headers"] = "headers";
10
- /**
11
- * @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
12
- */
13
- ExchangeType["XDelayedMessage"] = "x-delayed-message";
14
- })(ExchangeType || (exports.ExchangeType = ExchangeType = {}));
15
- exports.MessageBrokerExternalServiceTypes = ['externalEventBus'];
16
- exports.MessageBrokerInternalServiceTypes = ['task', 'eventBus', 'scheduledTask'];
17
- exports.MessageBrokerGeneralServiceTypes = ['general'];
18
- exports.emptyMessageBrokerServiceConfig = {
19
- queuesOptions: [],
20
- exchangesOptions: [],
1
+ //#region src/interfaces/messageBrokerServiceConfig.ts
2
+ let ExchangeType = /* @__PURE__ */ function(ExchangeType) {
3
+ ExchangeType["Direct"] = "direct";
4
+ ExchangeType["Fanout"] = "fanout";
5
+ ExchangeType["Topic"] = "topic";
6
+ ExchangeType["Headers"] = "headers";
7
+ /**
8
+ * @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
9
+ */
10
+ ExchangeType["XDelayedMessage"] = "x-delayed-message";
11
+ return ExchangeType;
12
+ }({});
13
+ const MessageBrokerExternalServiceTypes = ["externalEventBus"];
14
+ const MessageBrokerInternalServiceTypes = [
15
+ "task",
16
+ "eventBus",
17
+ "scheduledTask"
18
+ ];
19
+ const MessageBrokerGeneralServiceTypes = ["general"];
20
+ const emptyMessageBrokerServiceConfig = {
21
+ queuesOptions: [],
22
+ exchangesOptions: []
21
23
  };
22
- exports.QueueTypes = {
23
- Quorum: 'quorum',
24
- Classic: 'classic',
24
+ const QueueTypes = {
25
+ Quorum: "quorum",
26
+ Classic: "classic"
25
27
  };
26
- //# sourceMappingURL=messageBrokerServiceConfig.js.map
28
+ //#endregion
29
+ export { ExchangeType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceTypes, QueueTypes, emptyMessageBrokerServiceConfig };
@@ -0,0 +1,6 @@
1
+ import { QueueMessage } from "./providers/rabbitmq/index.js";
2
+
3
+ //#region src/interfaces/messageHandler.d.ts
4
+ type MessageHandler = (msg: QueueMessage) => Promise<void>;
5
+ //#endregion
6
+ export { MessageHandler };
@@ -0,0 +1,23 @@
1
+ //#region src/interfaces/metrics/index.d.ts
2
+ interface TotalListenerChannelErrorsLabelsMap {
3
+ queueName: string;
4
+ }
5
+ interface TotalMessageHandlerErrorsLabelsMap {
6
+ event: string;
7
+ serviceName: string;
8
+ }
9
+ declare const LabelUnknown = "unknown";
10
+ type CommunicationDirection = ["inbound", "outbound"][number];
11
+ declare class CommunicationsTotalLabelsMap {
12
+ event: string;
13
+ source: string;
14
+ queue?: string;
15
+ destination?: string;
16
+ direction: CommunicationDirection;
17
+ }
18
+ declare const communicationsTotalLabelsMap: (keyof CommunicationsTotalLabelsMap)[];
19
+ declare const Metrics: {
20
+ readonly CommunicationsTotal: "diia_rabbitmq_communications_total";
21
+ };
22
+ //#endregion
23
+ export { CommunicationDirection, CommunicationsTotalLabelsMap, LabelUnknown, Metrics, TotalListenerChannelErrorsLabelsMap, TotalMessageHandlerErrorsLabelsMap, communicationsTotalLabelsMap };
@@ -1,17 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Metrics = exports.communicationsTotalLabelsMap = exports.CommunicationsTotalLabelsMap = exports.LabelUnknown = void 0;
4
- exports.LabelUnknown = 'unknown';
5
- class CommunicationsTotalLabelsMap {
6
- event = 'unknown';
7
- source = 'unknown';
8
- queue;
9
- destination;
10
- direction = 'inbound';
11
- }
12
- exports.CommunicationsTotalLabelsMap = CommunicationsTotalLabelsMap;
13
- exports.communicationsTotalLabelsMap = Object.keys(new CommunicationsTotalLabelsMap());
14
- exports.Metrics = {
15
- CommunicationsTotal: 'diia_rabbitmq_communications_total',
1
+ //#region src/interfaces/metrics/index.ts
2
+ const LabelUnknown = "unknown";
3
+ var CommunicationsTotalLabelsMap = class {
4
+ event = "unknown";
5
+ source = "unknown";
6
+ queue;
7
+ destination;
8
+ direction = "inbound";
16
9
  };
17
- //# sourceMappingURL=index.js.map
10
+ const communicationsTotalLabelsMap = Object.keys(new CommunicationsTotalLabelsMap());
11
+ const Metrics = { CommunicationsTotal: "diia_rabbitmq_communications_total" };
12
+ //#endregion
13
+ export { CommunicationsTotalLabelsMap, LabelUnknown, Metrics, communicationsTotalLabelsMap };
@@ -0,0 +1,52 @@
1
+ import { RecreateChannelOptions } from "./messageBrokerServiceConfig.js";
2
+ import { Options } from "amqplib";
3
+
4
+ //#region src/interfaces/options.d.ts
5
+ interface PublisherOptions {
6
+ timeout?: number;
7
+ replyToQueueName?: string;
8
+ }
9
+ interface ListenerOptions {
10
+ queueOptions?: Options.AssertQueue;
11
+ prefetchCount?: number;
12
+ recreateChannelOptions?: RecreateChannelOptions;
13
+ }
14
+ interface PublishDirectOptions {
15
+ exchangeName?: string;
16
+ timeout?: number;
17
+ ignoreCache?: boolean;
18
+ registryApiVersion?: string;
19
+ }
20
+ interface PublishOptions {
21
+ /**
22
+ * Delay (ms) before message delivery
23
+ * @default undefined
24
+ */
25
+ delay?: number;
26
+ /**
27
+ * Routing key for message routing
28
+ * @default undefined
29
+ */
30
+ routingKey?: string;
31
+ /**
32
+ * Timeout (ms) for publish operation
33
+ * @default Infinity
34
+ */
35
+ publishTimeout?: number;
36
+ /**
37
+ * Whether to throw error on timeout (true) or return false (false)
38
+ * @default true
39
+ */
40
+ throwOnPublishTimeout?: boolean;
41
+ }
42
+ interface SubscribeOptions {
43
+ routingKey?: string;
44
+ listener?: ListenerOptions;
45
+ /**
46
+ * @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
47
+ */
48
+ delayed?: boolean;
49
+ }
50
+ interface PublishExternalEventOptions extends PublishOptions, PublishDirectOptions {}
51
+ //#endregion
52
+ export { ListenerOptions, PublishDirectOptions, PublishExternalEventOptions, PublishOptions, PublisherOptions, SubscribeOptions };
@@ -0,0 +1,33 @@
1
+ import { Options } from "amqplib";
2
+
3
+ //#region src/interfaces/providers/rabbitmq/amqpConnection.d.ts
4
+ interface AmqpConfig {
5
+ protocol?: string;
6
+ hostname?: string;
7
+ port?: number;
8
+ username?: string;
9
+ password?: string;
10
+ heartbeat?: number;
11
+ }
12
+ type ConnectOptions = Options.Connect;
13
+ interface SocketOptions {
14
+ clientProperties?: Record<string, unknown>;
15
+ }
16
+ interface ReconnectOptions {
17
+ reconnectEnabled?: boolean;
18
+ reconnectTimeout?: number;
19
+ }
20
+ declare enum ConnectionStatus {
21
+ Init = "init",
22
+ Connecting = "connecting",
23
+ Connected = "connected",
24
+ Reconnecting = "reconnecting",
25
+ Closing = "closing",
26
+ Closed = "closed",
27
+ Down = "down"
28
+ }
29
+ declare const AmqpConnectionEventNames: {
30
+ readonly Ready: "ready";
31
+ };
32
+ //#endregion
33
+ export { AmqpConfig, AmqpConnectionEventNames, ConnectOptions, ConnectionStatus, ReconnectOptions, SocketOptions };