@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,20 +0,0 @@
|
|
|
1
|
-
import Logger from '@diia-inhouse/diia-logger';
|
|
2
|
-
import { OnInit } from '@diia-inhouse/types';
|
|
3
|
-
import { EventBusListener, EventBusQueue, ExchangeName, MessageBrokerServiceEventsListener, PublishOptions, PublishingResult } from '../interfaces';
|
|
4
|
-
import { ExchangeOptions } from '../interfaces/messageBrokerServiceConfig';
|
|
5
|
-
import { MessagePayload } from '../interfaces/providers/rabbitmq/amqpPublisher';
|
|
6
|
-
import { EventName, QueueName } from '../interfaces/queueConfig';
|
|
7
|
-
import { RabbitMQProvider } from '../providers/rabbitmq';
|
|
8
|
-
import Communicator from './communicator';
|
|
9
|
-
import { EventMessageHandler } from './eventMessageHandler';
|
|
10
|
-
export declare class EventBus extends Communicator implements EventBusQueue, OnInit {
|
|
11
|
-
private readonly eventListenerList;
|
|
12
|
-
private readonly queueName?;
|
|
13
|
-
private readonly eventCommunicator;
|
|
14
|
-
constructor(queueProvider: RabbitMQProvider, eventListenerList: EventBusListener[], eventMessageHandler: EventMessageHandler, logger: Logger, hostName: string, systemServiceName: string, queueName?: QueueName | undefined);
|
|
15
|
-
publish(eventName: EventName, payload: MessagePayload, options?: PublishOptions): Promise<PublishingResult>;
|
|
16
|
-
protected getExchangeNameWithSuffix(exchangeName: ExchangeName): string;
|
|
17
|
-
protected getUnicastListeners(): MessageBrokerServiceEventsListener[];
|
|
18
|
-
protected getProducerExchangesOptions(): ExchangeOptions[];
|
|
19
|
-
protected getMulticastListeners(): MessageBrokerServiceEventsListener[];
|
|
20
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import Logger from '@diia-inhouse/diia-logger';
|
|
2
|
-
import { EventBusListener, EventName, ExchangeOptions, MessageBrokerServiceEventsListener, QueueName, QueueOptions } from '../interfaces';
|
|
3
|
-
import { RabbitMQProvider } from '../providers';
|
|
4
|
-
import { EventMessageHandler } from './eventMessageHandler';
|
|
5
|
-
export declare class EventCommunicator {
|
|
6
|
-
private readonly logger;
|
|
7
|
-
private readonly queueProvider;
|
|
8
|
-
private readonly eventMessageHandler;
|
|
9
|
-
protected readonly listenerList: EventBusListener[];
|
|
10
|
-
constructor(logger: Logger, queueProvider: RabbitMQProvider, eventMessageHandler: EventMessageHandler, listenerList?: EventBusListener[]);
|
|
11
|
-
getMulticastListeners(queuesOptions: QueueOptions[], exchangesOptions: ExchangeOptions[], eventQueueMap?: Map<EventName, QueueName>): MessageBrokerServiceEventsListener[];
|
|
12
|
-
getUnicastListeners(): MessageBrokerServiceEventsListener[];
|
|
13
|
-
private defineConsumerExchangesOptions;
|
|
14
|
-
private defineEventNamesByQueueName;
|
|
15
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
-
import Logger from '@diia-inhouse/diia-logger';
|
|
3
|
-
import { EventBusListener, EventListeners, QueueContext, QueueMessage, TaskListener } from '../interfaces';
|
|
4
|
-
import { EventMessageValidator } from './eventMessageValidator';
|
|
5
|
-
export declare class EventMessageHandler {
|
|
6
|
-
private readonly eventMessageValidator;
|
|
7
|
-
private readonly asyncLocalStorage;
|
|
8
|
-
private readonly logger;
|
|
9
|
-
private readonly noRequeueNackOptions;
|
|
10
|
-
constructor(eventMessageValidator: EventMessageValidator, asyncLocalStorage: AsyncLocalStorage<QueueContext>, logger: Logger);
|
|
11
|
-
eventListenersMessageHandler(this: this, eventListeners: EventListeners, message: QueueMessage | null): Promise<void>;
|
|
12
|
-
eventListenerMessageHandler(listener: EventBusListener | TaskListener | undefined, message: QueueMessage): Promise<void>;
|
|
13
|
-
private prepareAsyncContext;
|
|
14
|
-
private handleMessage;
|
|
15
|
-
private validateData;
|
|
16
|
-
private directReplyDone;
|
|
17
|
-
private getServiceCode;
|
|
18
|
-
private prepareQueueMessageError;
|
|
19
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { AppValidator, ValidationSchema } from '@diia-inhouse/validators';
|
|
2
|
-
import { QueueMessageData } from '../interfaces/providers/rabbitmq';
|
|
3
|
-
export declare class EventMessageValidator {
|
|
4
|
-
private readonly validator;
|
|
5
|
-
readonly metaValidationSchema: ValidationSchema;
|
|
6
|
-
constructor(validator: AppValidator);
|
|
7
|
-
validateEventMessage(data: QueueMessageData, payloadValidationSchema?: ValidationSchema): void | never;
|
|
8
|
-
validateSyncedEventMessage(data: QueueMessageData, responseValidationSchema?: ValidationSchema): void | never;
|
|
9
|
-
}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import Logger from '@diia-inhouse/diia-logger';
|
|
2
|
-
import { ExternalEventBusQueue } from '../interfaces';
|
|
3
|
-
import { ReceiveDirectOps } from '../interfaces/externalCommunicator';
|
|
4
|
-
import { EventMessageValidator } from './eventMessageValidator';
|
|
5
|
-
export declare class ExternalCommunicator {
|
|
6
|
-
private readonly externalEventBus;
|
|
7
|
-
private readonly eventMessageValidator;
|
|
8
|
-
private readonly logger;
|
|
9
|
-
constructor(externalEventBus: ExternalEventBusQueue, eventMessageValidator: EventMessageValidator, logger: Logger);
|
|
10
|
-
/**
|
|
11
|
-
* Synchronous request/response over the external event bus.
|
|
12
|
-
*
|
|
13
|
-
* Publishes `event` to the configured external exchange wrapped as
|
|
14
|
-
* `{ uuid, request }` and awaits the subscriber's response on the same call.
|
|
15
|
-
* The response envelope is validated against `ops.validationRules`, and any embedded error is rethrown as
|
|
16
|
-
* {@link ExternalCommunicatorError}.
|
|
17
|
-
*
|
|
18
|
-
* Use this when the caller needs the response inline (e.g. a user-facing
|
|
19
|
-
* request that must block on `AGateway`). For fire-and-forget or fan-out
|
|
20
|
-
* flows, use the `default` publish + listener pattern instead.
|
|
21
|
-
*
|
|
22
|
-
* ### Transport
|
|
23
|
-
*
|
|
24
|
-
* Implemented on top of RabbitMQ's
|
|
25
|
-
* [direct reply-to](https://www.rabbitmq.com/docs/direct-reply-to)
|
|
26
|
-
* feature: the publisher consumes the pseudo-queue
|
|
27
|
-
* `amq.rabbitmq.reply-to` and stamps each request with `replyTo` +
|
|
28
|
-
* `correlationId`. The subscriber publishes its response back to that
|
|
29
|
-
* `replyTo` on the default exchange, and this call resolves when the
|
|
30
|
-
* matching `correlationId` arrives. No reply queue is declared per
|
|
31
|
-
* request, so there is no per-call broker setup overhead.
|
|
32
|
-
*
|
|
33
|
-
* ### Response contract
|
|
34
|
-
*
|
|
35
|
-
* The subscriber must respond with an
|
|
36
|
-
* {@link ExternalCommunicatorResponse} envelope:
|
|
37
|
-
*
|
|
38
|
-
* ```ts
|
|
39
|
-
* { uuid: string, response: T, error?: { http_code, message?, data? } }
|
|
40
|
-
* ```
|
|
41
|
-
*
|
|
42
|
-
* On success this method returns **only the `response` field** typed as
|
|
43
|
-
* `T` — the wrapping `uuid` and the envelope itself are not exposed to
|
|
44
|
-
* the caller. Therefore `T` should describe the shape of `response`, not
|
|
45
|
-
* of the full envelope.
|
|
46
|
-
*
|
|
47
|
-
* ### Error contract
|
|
48
|
-
*
|
|
49
|
-
* Errors travel through the same envelope (`error` field on the
|
|
50
|
-
* subscriber's response — this is **not** a transport-level failure),
|
|
51
|
-
* but on the caller side they are surfaced as a thrown
|
|
52
|
-
* {@link ExternalCommunicatorError} instead of being returned. The
|
|
53
|
-
* envelope's `error` payload is mapped onto the exception so no data is
|
|
54
|
-
* lost:
|
|
55
|
-
*
|
|
56
|
-
* - `error.message` → `Error.message` (falls back to `'unknown error'`
|
|
57
|
-
* when missing).
|
|
58
|
-
* - `error.http_code` → exception's status code (read via `getCode()`).
|
|
59
|
-
* - `error.data` → exception's data bag (read via `getData()`), spread
|
|
60
|
-
* alongside `event` (the event name) and `httpCode` (a duplicate of
|
|
61
|
-
* the status code, kept on `data` for downstream consumers).
|
|
62
|
-
*
|
|
63
|
-
* Callers that need to inspect the original status or payload should
|
|
64
|
-
* `catch` the error and read those fields:
|
|
65
|
-
*
|
|
66
|
-
* ```ts
|
|
67
|
-
* try {
|
|
68
|
-
* await externalCommunicator.receiveDirect<T>(event, req, ops)
|
|
69
|
-
* } catch (err) {
|
|
70
|
-
* if (err instanceof ExternalCommunicatorError) {
|
|
71
|
-
* err.getCode() // original error.http_code
|
|
72
|
-
* err.getData() // { event, httpCode, ...error.data }
|
|
73
|
-
* err.message // error.message || 'unknown error'
|
|
74
|
-
* }
|
|
75
|
-
* throw err
|
|
76
|
-
* }
|
|
77
|
-
* ```
|
|
78
|
-
*
|
|
79
|
-
* @typeParam T - shape of the successful `response` payload returned by the subscriber.
|
|
80
|
-
* @param event - external event name. Must be declared in
|
|
81
|
-
* `serviceRulesConfig.topicsConfig[QueueConfigType.External][topicName].events[]`
|
|
82
|
-
* so the event resolves to an exchange (or pass `ops.exchangeName`
|
|
83
|
-
* to override the lookup).
|
|
84
|
-
* @param request - payload forwarded to the subscriber. Defaults to `{}`.
|
|
85
|
-
* @param ops - direct-call options. See {@link ReceiveDirectOps}.
|
|
86
|
-
* @returns the subscriber's `response` field, typed as `T`. The envelope's
|
|
87
|
-
* `uuid` and `error` fields are not returned.
|
|
88
|
-
*
|
|
89
|
-
* @throws {ExternalCommunicatorError} when the subscriber responds with an
|
|
90
|
-
* `error` envelope. The original `http_code`, `message`, and `data`
|
|
91
|
-
* fields are preserved on the thrown error.
|
|
92
|
-
* @throws {Error} `'Message in a wrong format was received from a direct channel'`
|
|
93
|
-
* when `validationRules` are provided and the response fails validation.
|
|
94
|
-
*
|
|
95
|
-
* @example
|
|
96
|
-
* ```ts
|
|
97
|
-
* const result = await externalCommunicator.receiveDirect<{ data: string }>(
|
|
98
|
-
* 'notary.lookup',
|
|
99
|
-
* { notaryCertificateNumber: '1234', requestId: '-0' },
|
|
100
|
-
* {
|
|
101
|
-
* // Describes the inner `response` only; the envelope (uuid,
|
|
102
|
-
* // error, meta, ...) is wrapped by the validator.
|
|
103
|
-
* validationRules: { data: { type: 'string' } },
|
|
104
|
-
* timeout: DurationMs.Second * 5,
|
|
105
|
-
* },
|
|
106
|
-
* )
|
|
107
|
-
* ```
|
|
108
|
-
*/
|
|
109
|
-
receiveDirect<T>(event: string, request: unknown | undefined, ops: ReceiveDirectOps): Promise<T>;
|
|
110
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import Logger from '@diia-inhouse/diia-logger';
|
|
2
|
-
import { EnvService } from '@diia-inhouse/env';
|
|
3
|
-
import { OnInit } from '@diia-inhouse/types';
|
|
4
|
-
import { EventBusListener, ExternalEventBusQueue, MessageBrokerServiceEventsListener, MessagePayload, PublishDirectOptions, PublishOptions, PublishingResult } from '../interfaces';
|
|
5
|
-
import { ExchangeName, ExchangeOptions } from '../interfaces/messageBrokerServiceConfig';
|
|
6
|
-
import { EventName } from '../interfaces/queueConfig';
|
|
7
|
-
import { RabbitMQProvider } from '../providers/rabbitmq';
|
|
8
|
-
import Communicator from './communicator';
|
|
9
|
-
import { EventMessageHandler } from './eventMessageHandler';
|
|
10
|
-
export declare class ExternalEventBus extends Communicator implements ExternalEventBusQueue, OnInit {
|
|
11
|
-
private readonly envService;
|
|
12
|
-
private readonly eventCommunicator;
|
|
13
|
-
private readonly publishEventsSet;
|
|
14
|
-
private readonly subscribeEventsSet;
|
|
15
|
-
private readonly exchangePrefixName;
|
|
16
|
-
private readonly eventQueueMap;
|
|
17
|
-
constructor(logger: Logger, systemServiceName: string, envService: EnvService, queueProvider: RabbitMQProvider, externalEventListenerList: EventBusListener[], eventMessageHandler: EventMessageHandler, hostName: string);
|
|
18
|
-
static BuildRequestRoutingKey(eventName: string): string;
|
|
19
|
-
static BuildResponseRoutingKey(eventName: EventName, portalEvents?: string[]): string;
|
|
20
|
-
private static prepareQueuePrefix;
|
|
21
|
-
publish(eventName: EventName, payload: MessagePayload, options?: PublishOptions): Promise<PublishingResult>;
|
|
22
|
-
publishDirect<T>(eventName: EventName, payload: MessagePayload, options?: PublishDirectOptions): Promise<T>;
|
|
23
|
-
protected getUnicastListeners(): MessageBrokerServiceEventsListener[];
|
|
24
|
-
protected getExchangeNameWithSuffix(topic: ExchangeName): string;
|
|
25
|
-
protected getProducerExchangesOptions(): ExchangeOptions[];
|
|
26
|
-
protected getMulticastListeners(): MessageBrokerServiceEventsListener[];
|
|
27
|
-
private getPublishMessage;
|
|
28
|
-
private getPublishRoutingKey;
|
|
29
|
-
private defineQueuesAndExchangesOptionsBasedOnGlobalConfig;
|
|
30
|
-
private buildEventQueueMap;
|
|
31
|
-
private buildResponseQueueName;
|
|
32
|
-
private buildRequestQueueName;
|
|
33
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './eventBus';
|
|
2
|
-
export * from './eventMessageHandler';
|
|
3
|
-
export * from './eventMessageValidator';
|
|
4
|
-
export * from './externalCommunicator';
|
|
5
|
-
export * from './externalEventBus';
|
|
6
|
-
export * from './scheduledTask';
|
|
7
|
-
export * from './task';
|
|
8
|
-
export * from './queue';
|
|
9
|
-
export * from './metrics';
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { MetricsService } from '@diia-inhouse/diia-metrics';
|
|
2
|
-
import { ErrorType } from '@diia-inhouse/errors';
|
|
3
|
-
import { CommunicationDirection } from '../interfaces/metrics';
|
|
4
|
-
export default class RabbitMQMetricsService {
|
|
5
|
-
private metrics;
|
|
6
|
-
private readonly communicationsTotalMetric;
|
|
7
|
-
constructor(metrics: MetricsService);
|
|
8
|
-
collectResponseTotalMetric(startTime: bigint, route: string, source: string, destination: string, errorType?: ErrorType): void | never;
|
|
9
|
-
collectCommunicationsTotalMetric(event: string, source: string, destination: string, direction: CommunicationDirection, queue?: string): void;
|
|
10
|
-
collectRequestTotalMetric(startTime: bigint, route: string, source: string, destination: string, errorType?: ErrorType): void;
|
|
11
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ConsumerOptions, ExchangeName, QueueOptions } from '../interfaces/messageBrokerServiceConfig';
|
|
2
|
-
import { QueueName } from '../interfaces/queueConfig';
|
|
3
|
-
import { RabbitMQProvider } from '../providers/rabbitmq';
|
|
4
|
-
export default class OptionsBuilder {
|
|
5
|
-
private readonly queueProvider;
|
|
6
|
-
constructor(queueProvider: RabbitMQProvider);
|
|
7
|
-
defineQueueOptionsBasedOnGlobalConfig(queueName?: QueueName, routingKey?: string): QueueOptions[];
|
|
8
|
-
defineConsumerOptionsBasedOnGlobalConfig(): ConsumerOptions;
|
|
9
|
-
getExchangeNamesByQueueName(queueName?: QueueName): ExchangeName[];
|
|
10
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
-
import Logger from '@diia-inhouse/diia-logger';
|
|
3
|
-
import { MetricsService } from '@diia-inhouse/diia-metrics';
|
|
4
|
-
import { HealthCheckResult, OnHealthCheck } from '@diia-inhouse/types';
|
|
5
|
-
import { MessageBrokerExternalServiceType, MessageBrokerInternalServiceType, QueueConnectionConfig, QueueContext } from '../interfaces';
|
|
6
|
-
import { QueueStatus } from '../interfaces/queueStatus';
|
|
7
|
-
import { RabbitMQProvider } from '../providers/rabbitmq';
|
|
8
|
-
export declare class Queue implements OnHealthCheck {
|
|
9
|
-
private readonly systemServiceName;
|
|
10
|
-
private readonly metrics;
|
|
11
|
-
private readonly connectionConfig;
|
|
12
|
-
private readonly asyncLocalStorage;
|
|
13
|
-
private readonly logger;
|
|
14
|
-
private readonly internalRabbitMQProvidersMap;
|
|
15
|
-
private readonly externalRabbitMQProvidersMap;
|
|
16
|
-
constructor(systemServiceName: string, metrics: MetricsService, connectionConfig: QueueConnectionConfig, asyncLocalStorage: AsyncLocalStorage<QueueContext>, logger: Logger);
|
|
17
|
-
onHealthCheck(): Promise<HealthCheckResult<QueueStatus>>;
|
|
18
|
-
makeInternalRabbitMQProvider(serviceType: MessageBrokerInternalServiceType): RabbitMQProvider;
|
|
19
|
-
makeExternalRabbitMQProvider(serviceType: MessageBrokerExternalServiceType): RabbitMQProvider;
|
|
20
|
-
private getProvidersStatus;
|
|
21
|
-
private getProvidersStatusDetails;
|
|
22
|
-
private getMessageBrokerServiceConfig;
|
|
23
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import Logger from '@diia-inhouse/diia-logger';
|
|
2
|
-
import { OnInit } from '@diia-inhouse/types';
|
|
3
|
-
import { EventBusListener, ExchangeName, MessageBrokerServiceEventsListener, PublishingResult, ScheduledTasksQueue } from '../interfaces';
|
|
4
|
-
import { ExchangeOptions } from '../interfaces/messageBrokerServiceConfig';
|
|
5
|
-
import { QueueName } from '../interfaces/queueConfig';
|
|
6
|
-
import { RabbitMQProvider } from '../providers/rabbitmq';
|
|
7
|
-
import Communicator from './communicator';
|
|
8
|
-
import { EventMessageHandler } from './eventMessageHandler';
|
|
9
|
-
/**
|
|
10
|
-
* @deprecated use pkg-workflow entities instead
|
|
11
|
-
*/
|
|
12
|
-
export declare class ScheduledTask extends Communicator implements ScheduledTasksQueue, OnInit {
|
|
13
|
-
private readonly serviceName;
|
|
14
|
-
protected readonly scheduledTaskList: EventBusListener[];
|
|
15
|
-
private readonly queueName?;
|
|
16
|
-
private readonly eventCommunicator;
|
|
17
|
-
private readonly eventRoutingPart;
|
|
18
|
-
constructor(serviceName: string, systemServiceName: string, queueProvider: RabbitMQProvider, scheduledTaskList: EventBusListener[], eventMessageHandler: EventMessageHandler, logger: Logger, hostName: string, queueName?: QueueName | undefined);
|
|
19
|
-
publish(eventName: string, serviceName: string): Promise<PublishingResult>;
|
|
20
|
-
protected getExchangeNameWithSuffix(exchangeName: ExchangeName): string;
|
|
21
|
-
protected getUnicastListeners(): MessageBrokerServiceEventsListener[];
|
|
22
|
-
protected getMulticastListeners(): MessageBrokerServiceEventsListener[];
|
|
23
|
-
protected getProducerExchangesOptions(): ExchangeOptions[];
|
|
24
|
-
private getRoutingKey;
|
|
25
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import Logger from '@diia-inhouse/diia-logger';
|
|
2
|
-
import { OnInit } from '@diia-inhouse/types';
|
|
3
|
-
import { MessageBrokerServiceListener, MessagePayload, PublishingResult, TaskListener, TaskQueue } from '../interfaces';
|
|
4
|
-
import { ExchangeOptions } from '../interfaces/messageBrokerServiceConfig';
|
|
5
|
-
import { RabbitMQProvider } from '../providers/rabbitmq';
|
|
6
|
-
import Communicator from './communicator';
|
|
7
|
-
import { EventMessageHandler } from './eventMessageHandler';
|
|
8
|
-
export declare class Task extends Communicator implements TaskQueue, OnInit {
|
|
9
|
-
private readonly serviceName;
|
|
10
|
-
private readonly taskList;
|
|
11
|
-
private readonly eventMessageHandler;
|
|
12
|
-
private queueNamePrefix;
|
|
13
|
-
private taskNameExchangesOptionsMap;
|
|
14
|
-
constructor(serviceName: string, systemServiceName: string, queueProvider: RabbitMQProvider, taskList: TaskListener[], eventMessageHandler: EventMessageHandler, logger: Logger, hostName: string);
|
|
15
|
-
onInit(): Promise<void>;
|
|
16
|
-
publish(taskName: string, payload: MessagePayload, delay?: number): Promise<PublishingResult>;
|
|
17
|
-
protected getProducerExchangesOptions(): ExchangeOptions[];
|
|
18
|
-
protected getMulticastListeners(): MessageBrokerServiceListener[];
|
|
19
|
-
protected getUnicastListeners(): MessageBrokerServiceListener[];
|
|
20
|
-
protected getExchangeNameWithSuffix(taskName: string): string;
|
|
21
|
-
private defineExchangesOptions;
|
|
22
|
-
private defineQueueOptionsBasedOnGlobalConfig;
|
|
23
|
-
private defineExchangesOptionsBasedOnGlobalConfig;
|
|
24
|
-
private defineConsumerOptionsBasedOnGlobalConfig;
|
|
25
|
-
private getQueueName;
|
|
26
|
-
private capitalizeFirstLetter;
|
|
27
|
-
private defineQueueNameByTaskName;
|
|
28
|
-
}
|
package/dist/types/utils.d.ts
DELETED
package/dist/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAEA,4DAQC;AAED,wCAEC;AAZD,SAAgB,wBAAwB,CAAC,iBAAqC;IAC1E,MAAM,cAAc,GAAmB,EAAE,CAAA;IAEzC,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACvC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAA;IAC7C,CAAC;IAED,OAAO,cAAc,CAAA;AACzB,CAAC;AAED,SAAgB,cAAc,CAAC,WAAmB,EAAE,QAAgB;IAChE,OAAO,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAA;AACvC,CAAC"}
|