@diia-inhouse/diia-queue 7.3.0 → 13.2.0

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 (111) hide show
  1. package/LICENCE.md +59 -59
  2. package/dist/constants.js +3 -0
  3. package/dist/constants.js.map +1 -1
  4. package/dist/index.js +2 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/interfaces/index.js +12 -9
  7. package/dist/interfaces/index.js.map +1 -1
  8. package/dist/interfaces/messageBrokerServiceConfig.js +26 -0
  9. package/dist/interfaces/messageBrokerServiceConfig.js.map +1 -0
  10. package/dist/interfaces/messageHandler.js +3 -0
  11. package/dist/interfaces/messageHandler.js.map +1 -0
  12. package/dist/interfaces/metrics/index.js +14 -0
  13. package/dist/interfaces/metrics/index.js.map +1 -1
  14. package/dist/interfaces/{providers/rabbitmq/amqpListener.js → options.js} +1 -1
  15. package/dist/interfaces/options.js.map +1 -0
  16. package/dist/interfaces/providers/rabbitmq/amqpConnection.js +4 -1
  17. package/dist/interfaces/providers/rabbitmq/amqpConnection.js.map +1 -1
  18. package/dist/interfaces/providers/rabbitmq/amqpPublisher.js +1 -9
  19. package/dist/interfaces/providers/rabbitmq/amqpPublisher.js.map +1 -1
  20. package/dist/interfaces/providers/rabbitmq/index.js +41 -17
  21. package/dist/interfaces/providers/rabbitmq/index.js.map +1 -1
  22. package/dist/interfaces/queueContext.js +3 -0
  23. package/dist/interfaces/queueContext.js.map +1 -0
  24. package/dist/interfaces/queueStatus.js +6 -0
  25. package/dist/interfaces/queueStatus.js.map +1 -1
  26. package/dist/interfaces/services/eventMessageHandler.js +3 -0
  27. package/dist/interfaces/services/eventMessageHandler.js.map +1 -0
  28. package/dist/metrics/index.js +1 -2
  29. package/dist/metrics/index.js.map +1 -1
  30. package/dist/providers/index.js +22 -0
  31. package/dist/providers/index.js.map +1 -0
  32. package/dist/providers/rabbitmq/amqpAsserter.js +417 -0
  33. package/dist/providers/rabbitmq/amqpAsserter.js.map +1 -0
  34. package/dist/providers/rabbitmq/amqpConnection.js +47 -25
  35. package/dist/providers/rabbitmq/amqpConnection.js.map +1 -1
  36. package/dist/providers/rabbitmq/amqpListener.js +167 -113
  37. package/dist/providers/rabbitmq/amqpListener.js.map +1 -1
  38. package/dist/providers/rabbitmq/amqpPublisher.js +147 -96
  39. package/dist/providers/rabbitmq/amqpPublisher.js.map +1 -1
  40. package/dist/providers/rabbitmq/index.js +106 -286
  41. package/dist/providers/rabbitmq/index.js.map +1 -1
  42. package/dist/services/communicator.js +187 -0
  43. package/dist/services/communicator.js.map +1 -0
  44. package/dist/services/eventBus.js +41 -46
  45. package/dist/services/eventBus.js.map +1 -1
  46. package/dist/services/eventCommunicator.js +125 -0
  47. package/dist/services/eventCommunicator.js.map +1 -0
  48. package/dist/services/eventMessageHandler.js +75 -91
  49. package/dist/services/eventMessageHandler.js.map +1 -1
  50. package/dist/services/eventMessageValidator.js.map +1 -1
  51. package/dist/services/externalCommunicator.js +11 -104
  52. package/dist/services/externalCommunicator.js.map +1 -1
  53. package/dist/services/externalEventBus.js +147 -55
  54. package/dist/services/externalEventBus.js.map +1 -1
  55. package/dist/services/index.js +1 -1
  56. package/dist/services/index.js.map +1 -1
  57. package/dist/services/metrics.js +49 -0
  58. package/dist/services/metrics.js.map +1 -0
  59. package/dist/services/optionsBuilder.js +59 -0
  60. package/dist/services/optionsBuilder.js.map +1 -0
  61. package/dist/services/queue.js +63 -26
  62. package/dist/services/queue.js.map +1 -1
  63. package/dist/services/scheduledTask.js +52 -48
  64. package/dist/services/scheduledTask.js.map +1 -1
  65. package/dist/services/task.js +149 -28
  66. package/dist/services/task.js.map +1 -1
  67. package/dist/types/constants.d.ts +3 -0
  68. package/dist/types/index.d.ts +2 -1
  69. package/dist/types/interfaces/deps.d.ts +11 -2
  70. package/dist/types/interfaces/externalCommunicator.d.ts +5 -12
  71. package/dist/types/interfaces/index.d.ts +70 -60
  72. package/dist/types/interfaces/messageBrokerServiceConfig.d.ts +79 -0
  73. package/dist/types/interfaces/messageHandler.d.ts +2 -0
  74. package/dist/types/interfaces/metrics/index.d.ts +13 -0
  75. package/dist/types/interfaces/options.d.ts +50 -0
  76. package/dist/types/interfaces/providers/rabbitmq/amqpConnection.d.ts +3 -0
  77. package/dist/types/interfaces/providers/rabbitmq/amqpPublisher.d.ts +9 -17
  78. package/dist/types/interfaces/providers/rabbitmq/index.d.ts +72 -8
  79. package/dist/types/interfaces/queueConfig/configs.d.ts +19 -11
  80. package/dist/types/interfaces/queueContext.d.ts +4 -0
  81. package/dist/types/interfaces/queueStatus.d.ts +7 -2
  82. package/dist/types/interfaces/services/eventMessageHandler.d.ts +5 -0
  83. package/dist/types/metrics/index.d.ts +1 -2
  84. package/dist/types/providers/index.d.ts +5 -0
  85. package/dist/types/providers/rabbitmq/amqpAsserter.d.ts +49 -0
  86. package/dist/types/providers/rabbitmq/amqpConnection.d.ts +3 -7
  87. package/dist/types/providers/rabbitmq/amqpListener.d.ts +27 -11
  88. package/dist/types/providers/rabbitmq/amqpPublisher.d.ts +26 -17
  89. package/dist/types/providers/rabbitmq/index.d.ts +35 -38
  90. package/dist/types/services/communicator.d.ts +57 -0
  91. package/dist/types/services/eventBus.d.ts +16 -12
  92. package/dist/types/services/eventCommunicator.d.ts +15 -0
  93. package/dist/types/services/eventMessageHandler.d.ts +9 -11
  94. package/dist/types/services/eventMessageValidator.d.ts +1 -1
  95. package/dist/types/services/externalCommunicator.d.ts +6 -19
  96. package/dist/types/services/externalEventBus.d.ts +28 -13
  97. package/dist/types/services/index.d.ts +1 -1
  98. package/dist/types/services/metrics.d.ts +11 -0
  99. package/dist/types/services/optionsBuilder.d.ts +10 -0
  100. package/dist/types/services/queue.d.ts +14 -9
  101. package/dist/types/services/scheduledTask.d.ts +22 -14
  102. package/dist/types/services/task.d.ts +21 -11
  103. package/dist/types/utils.d.ts +2 -2
  104. package/dist/utils.js +5 -2
  105. package/dist/utils.js.map +1 -1
  106. package/package.json +38 -47
  107. package/dist/interfaces/providers/rabbitmq/amqpListener.js.map +0 -1
  108. package/dist/services/externalCommunicatorChannel.js +0 -31
  109. package/dist/services/externalCommunicatorChannel.js.map +0 -1
  110. package/dist/types/interfaces/providers/rabbitmq/amqpListener.d.ts +0 -7
  111. package/dist/types/services/externalCommunicatorChannel.d.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"externalEventBus.js","sourceRoot":"","sources":["../../src/services/externalEventBus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,gDAAiC;AAIjC,MAAa,gBAAgB;IAEJ;IACA;IACA;IAEA;IACA;IANrB,YACqB,aAA+B,EAC/B,yBAA6C,EAC7C,mBAAwC,EAExC,UAAsB,EACtB,MAAc;QALd,kBAAa,GAAb,aAAa,CAAkB;QAC/B,8BAAyB,GAAzB,yBAAyB,CAAoB;QAC7C,wBAAmB,GAAnB,mBAAmB,CAAqB;QAExC,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAQ;IAChC,CAAC;IAEJ,KAAK,CAAC,MAAM;QACR,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAA;QACrD,IAAI;YACA,IAAI,cAAc,CAAC,MAAM,EAAE,wBAAwB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;gBAC5G,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;aAC1E;YAED,MAAM,cAAc,GAAmB,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;YAErG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,EAAE;gBACvH,QAAQ,EAAE,cAAc,CAAC,eAAe;aAC3C,CAAC,CAAA;YAEF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,QAAQ,CAAC,KAAK,4BAA4B,CAAC,CAAA;aAC3F;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACrE,MAAM,GAAG,CAAA;SACZ;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,cAA8B,EAAE,OAA0B;QACtE,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IAC9E,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAoB,EAAE,OAAuB,EAAE,OAAqC;QAC9F,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAChF,CAAC;IAED,KAAK,CAAC,aAAa,CAAI,SAAoB,EAAE,OAAuB,EAAE,KAAa,EAAE,OAA8B;QAC/G,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAC7F,CAAC;CACJ;AA3CD,4CA2CC"}
1
+ {"version":3,"file":"externalEventBus.js","sourceRoot":"","sources":["../../src/services/externalEventBus.ts"],"names":[],"mappings":"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"}
@@ -18,9 +18,9 @@ __exportStar(require("./eventBus"), exports);
18
18
  __exportStar(require("./eventMessageHandler"), exports);
19
19
  __exportStar(require("./eventMessageValidator"), exports);
20
20
  __exportStar(require("./externalCommunicator"), exports);
21
- __exportStar(require("./externalCommunicatorChannel"), exports);
22
21
  __exportStar(require("./externalEventBus"), exports);
23
22
  __exportStar(require("./scheduledTask"), exports);
24
23
  __exportStar(require("./task"), exports);
25
24
  __exportStar(require("./queue"), exports);
25
+ __exportStar(require("./metrics"), exports);
26
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAE1B,wDAAqC;AAErC,0DAAuC;AAEvC,yDAAsC;AAEtC,gEAA6C;AAE7C,qDAAkC;AAElC,kDAA+B;AAE/B,yCAAsB;AAEtB,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAE1B,wDAAqC;AAErC,0DAAuC;AAEvC,yDAAsC;AAEtC,qDAAkC;AAElC,kDAA+B;AAE/B,yCAAsB;AAEtB,0CAAuB;AAEvB,4CAAyB"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const diia_metrics_1 = require("@diia-inhouse/diia-metrics");
4
+ const metrics_1 = require("../interfaces/metrics");
5
+ class RabbitMQMetricsService {
6
+ metrics;
7
+ communicationsTotalMetric = new diia_metrics_1.Counter(metrics_1.Metrics.CommunicationsTotal, metrics_1.communicationsTotalLabelsMap, 'Total rabbitmq communications made by service');
8
+ constructor(metrics) {
9
+ this.metrics = metrics;
10
+ }
11
+ collectResponseTotalMetric(startTime, route, source, destination, errorType) {
12
+ const labels = {
13
+ route,
14
+ source,
15
+ ...(errorType ? { errorType } : {}),
16
+ destination,
17
+ mechanism: diia_metrics_1.RequestMechanism.Rabbitmq,
18
+ status: errorType ? diia_metrics_1.RequestStatus.Failed : diia_metrics_1.RequestStatus.Successful,
19
+ };
20
+ const finishTime = process.hrtime.bigint();
21
+ const delta = finishTime - startTime;
22
+ this.metrics.responseTotalTimerMetric.observeSeconds(labels, delta);
23
+ }
24
+ collectCommunicationsTotalMetric(event, source, destination, direction, queue) {
25
+ const labels = {
26
+ event,
27
+ source,
28
+ destination,
29
+ direction,
30
+ ...(queue ? { queue } : {}),
31
+ };
32
+ this.communicationsTotalMetric.increment(labels, 1);
33
+ }
34
+ collectRequestTotalMetric(startTime, route, source, destination, errorType) {
35
+ const finishTime = process.hrtime.bigint();
36
+ const delta = finishTime - startTime;
37
+ const labels = {
38
+ route,
39
+ source,
40
+ destination,
41
+ mechanism: diia_metrics_1.RequestMechanism.Rabbitmq,
42
+ status: errorType ? diia_metrics_1.RequestStatus.Failed : diia_metrics_1.RequestStatus.Successful,
43
+ ...(errorType ? { errorType } : {}),
44
+ };
45
+ this.metrics.totalTimerMetric.observeSeconds(labels, delta);
46
+ }
47
+ }
48
+ exports.default = RabbitMQMetricsService;
49
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/services/metrics.ts"],"names":[],"mappings":";;AAAA,6DAAqG;AAIrG,mDAAmI;AAEnI,MAAqB,sBAAsB;IAOnB;IANH,yBAAyB,GAAG,IAAI,sBAAO,CACpD,iBAAO,CAAC,mBAAmB,EAC3B,sCAA4B,EAC5B,+CAA+C,CAClD,CAAA;IAED,YAAoB,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAE/C,0BAA0B,CAAC,SAAiB,EAAE,KAAa,EAAE,MAAc,EAAE,WAAmB,EAAE,SAAqB;QACnH,MAAM,MAAM,GAA2B;YACnC,KAAK;YACL,MAAM;YACN,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,WAAW;YACX,SAAS,EAAE,+BAAgB,CAAC,QAAQ;YACpC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,4BAAa,CAAC,MAAM,CAAC,CAAC,CAAC,4BAAa,CAAC,UAAU;SACtE,CAAA;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QAC1C,MAAM,KAAK,GAAG,UAAU,GAAG,SAAS,CAAA;QAEpC,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACvE,CAAC;IAED,gCAAgC,CAC5B,KAAa,EACb,MAAc,EACd,WAAmB,EACnB,SAAiC,EACjC,KAAc;QAEd,MAAM,MAAM,GAAiC;YACzC,KAAK;YACL,MAAM;YACN,WAAW;YACX,SAAS;YACT,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAA;QAED,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,yBAAyB,CAAC,SAAiB,EAAE,KAAa,EAAE,MAAc,EAAE,WAAmB,EAAE,SAAqB;QAClH,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QAC1C,MAAM,KAAK,GAAG,UAAU,GAAG,SAAS,CAAA;QAEpC,MAAM,MAAM,GAA2B;YACnC,KAAK;YACL,MAAM;YACN,WAAW;YACX,SAAS,EAAE,+BAAgB,CAAC,QAAQ;YACpC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,4BAAa,CAAC,MAAM,CAAC,CAAC,CAAC,4BAAa,CAAC,UAAU;YACnE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC/D,CAAC;CACJ;AA1DD,yCA0DC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const constants_1 = __importDefault(require("../constants"));
7
+ const messageBrokerServiceConfig_1 = require("../interfaces/messageBrokerServiceConfig");
8
+ class OptionsBuilder {
9
+ queueProvider;
10
+ constructor(queueProvider) {
11
+ this.queueProvider = queueProvider;
12
+ }
13
+ defineQueueOptionsBasedOnGlobalConfig(queueName, routingKey = constants_1.default.DEFAULT_ROUTING_KEY) {
14
+ if (!queueName) {
15
+ return [];
16
+ }
17
+ const { rabbit: { listenerOptions: { queueOptions } = {}, declareOptions: { assertQueues, queuesOptions: overriddenQueuesOptions = {} } = {}, }, } = this.queueProvider.getConfig();
18
+ const exchangeNames = this.getExchangeNamesByQueueName(queueName);
19
+ const bindTo = [];
20
+ for (const exchangeName of exchangeNames) {
21
+ bindTo.push({
22
+ routingKey,
23
+ exchangeName,
24
+ bind: assertQueues,
25
+ });
26
+ }
27
+ return [
28
+ {
29
+ bindTo,
30
+ name: queueName,
31
+ declare: assertQueues,
32
+ options: queueOptions,
33
+ type: messageBrokerServiceConfig_1.QueueTypes.Quorum,
34
+ consumerOptions: this.defineConsumerOptionsBasedOnGlobalConfig(),
35
+ ...overriddenQueuesOptions,
36
+ },
37
+ ];
38
+ }
39
+ defineConsumerOptionsBasedOnGlobalConfig() {
40
+ const { rabbit: { listenerOptions: { prefetchCount, recreateChannelOptions = {} } = {} }, } = this.queueProvider.getConfig();
41
+ return {
42
+ prefetchCount,
43
+ recreateChannelOptions,
44
+ };
45
+ }
46
+ getExchangeNamesByQueueName(queueName) {
47
+ if (!queueName) {
48
+ return [];
49
+ }
50
+ const { queues } = this.queueProvider.getConfig();
51
+ if (!queues) {
52
+ return [];
53
+ }
54
+ const queue = queues[queueName];
55
+ return queue?.topics || [];
56
+ }
57
+ }
58
+ exports.default = OptionsBuilder;
59
+ //# sourceMappingURL=optionsBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optionsBuilder.js","sourceRoot":"","sources":["../../src/services/optionsBuilder.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AACpC,yFAA+H;AAI/H,MAAqB,cAAc;IACF;IAA7B,YAA6B,aAA+B;QAA/B,kBAAa,GAAb,aAAa,CAAkB;IAAG,CAAC;IAEhE,qCAAqC,CAAC,SAAqB,EAAE,aAAqB,mBAAS,CAAC,mBAAmB;QAC3G,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,CAAA;QACb,CAAC;QAED,MAAM,EACF,MAAM,EAAE,EACJ,eAAe,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,EACtC,cAAc,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,uBAAuB,GAAG,EAAE,EAAE,GAAG,EAAE,GACrF,GACJ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAA;QAElC,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAA;QAEjE,MAAM,MAAM,GAAkB,EAAE,CAAA;QAEhC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC;gBACR,UAAU;gBACV,YAAY;gBACZ,IAAI,EAAE,YAAY;aACrB,CAAC,CAAA;QACN,CAAC;QAED,OAAO;YACH;gBACI,MAAM;gBACN,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,uCAAU,CAAC,MAAM;gBACvB,eAAe,EAAE,IAAI,CAAC,wCAAwC,EAAE;gBAChE,GAAG,uBAAuB;aAC7B;SACJ,CAAA;IACL,CAAC;IAED,wCAAwC;QACpC,MAAM,EACF,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,aAAa,EAAE,sBAAsB,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GACnF,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAA;QAElC,OAAO;YACH,aAAa;YACb,sBAAsB;SACzB,CAAA;IACL,CAAC;IAED,2BAA2B,CAAC,SAAqB;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,CAAA;QACb,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAA;QACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,EAAE,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QAE/B,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,CAAA;IAC9B,CAAC;CACJ;AAjED,iCAiEC"}
@@ -3,53 +3,90 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Queue = void 0;
4
4
  const types_1 = require("@diia-inhouse/types");
5
5
  const interfaces_1 = require("../interfaces");
6
- const queueConfig_1 = require("../interfaces/queueConfig");
7
6
  const rabbitmq_1 = require("../providers/rabbitmq");
8
7
  class Queue {
9
- serviceName;
8
+ systemServiceName;
9
+ metrics;
10
10
  connectionConfig;
11
11
  asyncLocalStorage;
12
12
  logger;
13
- internalQueue;
14
- externalQueue;
15
- constructor(serviceName, connectionConfig, asyncLocalStorage, logger) {
16
- this.serviceName = serviceName;
13
+ internalRabbitMQProvidersMap = new Map();
14
+ externalRabbitMQProvidersMap = new Map();
15
+ constructor(systemServiceName, metrics, connectionConfig, asyncLocalStorage, logger) {
16
+ this.systemServiceName = systemServiceName;
17
+ this.metrics = metrics;
17
18
  this.connectionConfig = connectionConfig;
18
19
  this.asyncLocalStorage = asyncLocalStorage;
19
20
  this.logger = logger;
20
21
  }
21
22
  async onHealthCheck() {
22
- const internalQueueStatus = this.internalQueue?.getStatus();
23
- const externalQueueStatus = this.externalQueue?.getStatus();
24
- const queueStatuses = [internalQueueStatus, externalQueueStatus].filter(Boolean).flatMap((status) => Object.values(status));
25
- const status = queueStatuses.some((s) => s !== interfaces_1.ConnectionStatus.Connected)
26
- ? types_1.HttpStatusCode.SERVICE_UNAVAILABLE
27
- : types_1.HttpStatusCode.OK;
23
+ const status = this.getProvidersStatus();
28
24
  return {
29
25
  status,
30
26
  details: {
31
27
  rabbit: {
32
- internal: internalQueueStatus,
33
- external: externalQueueStatus,
28
+ internal: this.getProvidersStatusDetails(this.internalRabbitMQProvidersMap),
29
+ external: this.getProvidersStatusDetails(this.externalRabbitMQProvidersMap),
34
30
  },
35
31
  },
36
32
  };
37
33
  }
38
- getInternalQueue() {
39
- if (this.internalQueue) {
40
- return this.internalQueue;
34
+ makeInternalRabbitMQProvider(serviceType) {
35
+ const provider = this.internalRabbitMQProvidersMap.get(serviceType);
36
+ if (provider) {
37
+ return provider;
41
38
  }
42
- const { internal, serviceRulesConfig: { queuesConfig, servicesConfig, topicsConfig, internalEvents }, } = this.connectionConfig;
43
- this.internalQueue = new rabbitmq_1.RabbitMQProvider(this.serviceName, internal, servicesConfig[queueConfig_1.QueueConfigType.Internal], topicsConfig[queueConfig_1.QueueConfigType.Internal], [], internalEvents, queueConfig_1.QueueConfigType.Internal, this.logger, this.asyncLocalStorage, queuesConfig[queueConfig_1.QueueConfigType.Internal]);
44
- return this.internalQueue;
39
+ const { internal: rabbitMQConfig, serviceRulesConfig: { queuesConfig, servicesConfig = {}, topicsConfig, messageBrokerServices }, } = this.connectionConfig;
40
+ if (!rabbitMQConfig) {
41
+ throw new Error(`External rabbitMQ config is not provided`);
42
+ }
43
+ const messageBrokerServiceConfig = this.getMessageBrokerServiceConfig(serviceType, messageBrokerServices);
44
+ const serviceConfig = servicesConfig[interfaces_1.QueueConnectionType.Internal] || {};
45
+ const rabbitMQProvider = new rabbitmq_1.RabbitMQProvider(this.systemServiceName, rabbitMQConfig, serviceConfig, topicsConfig[interfaces_1.QueueConnectionType.Internal], [], this.logger, this.metrics, this.asyncLocalStorage, queuesConfig[interfaces_1.QueueConfigType.Internal], messageBrokerServiceConfig);
46
+ this.internalRabbitMQProvidersMap.set(serviceType, rabbitMQProvider);
47
+ return rabbitMQProvider;
45
48
  }
46
- getExternalQueue() {
47
- if (this.externalQueue) {
48
- return this.externalQueue;
49
+ makeExternalRabbitMQProvider(serviceType) {
50
+ const provider = this.externalRabbitMQProvidersMap.get(serviceType);
51
+ if (provider) {
52
+ return provider;
53
+ }
54
+ const { external: rabbitMQConfig, serviceRulesConfig: { servicesConfig = {}, topicsConfig, portalEvents = [], messageBrokerServices }, } = this.connectionConfig;
55
+ if (!rabbitMQConfig) {
56
+ throw new Error(`External rabbitMQ config is not provided`);
49
57
  }
50
- const { external, serviceRulesConfig: { portalEvents, servicesConfig, topicsConfig, internalEvents }, } = this.connectionConfig;
51
- this.externalQueue = new rabbitmq_1.RabbitMQProvider(this.serviceName, external, servicesConfig[queueConfig_1.QueueConfigType.External], topicsConfig[queueConfig_1.QueueConfigType.External], portalEvents, internalEvents, queueConfig_1.QueueConfigType.External, this.logger, this.asyncLocalStorage);
52
- return this.externalQueue;
58
+ const messageBrokerServiceConfig = this.getMessageBrokerServiceConfig(serviceType, messageBrokerServices);
59
+ const serviceConfig = servicesConfig[interfaces_1.QueueConnectionType.External] || {};
60
+ const rabbitMQProvider = new rabbitmq_1.RabbitMQProvider(this.systemServiceName, rabbitMQConfig, serviceConfig, topicsConfig[interfaces_1.QueueConnectionType.External], portalEvents, this.logger, this.metrics, this.asyncLocalStorage, {}, messageBrokerServiceConfig);
61
+ this.externalRabbitMQProvidersMap.set(serviceType, rabbitMQProvider);
62
+ return rabbitMQProvider;
63
+ }
64
+ getProvidersStatus() {
65
+ for (const provider of this.internalRabbitMQProvidersMap.values()) {
66
+ const { listener: listenerStatus, publisher: publisherStatus } = provider.getStatus();
67
+ if (publisherStatus !== interfaces_1.ConnectionStatus.Connected) {
68
+ return types_1.HttpStatusCode.SERVICE_UNAVAILABLE;
69
+ }
70
+ if (listenerStatus !== undefined && listenerStatus !== interfaces_1.ConnectionStatus.Connected) {
71
+ return types_1.HttpStatusCode.SERVICE_UNAVAILABLE;
72
+ }
73
+ }
74
+ return types_1.HttpStatusCode.OK;
75
+ }
76
+ getProvidersStatusDetails(providersMap) {
77
+ const details = {};
78
+ for (const [serviceType, provider] of providersMap) {
79
+ details[serviceType] = provider.getStatus();
80
+ }
81
+ return details;
82
+ }
83
+ getMessageBrokerServiceConfig(serviceType, messageBrokerServices) {
84
+ const serviceConfig = messageBrokerServices?.[serviceType] || interfaces_1.emptyMessageBrokerServiceConfig;
85
+ const generalConfig = messageBrokerServices?.['general'] || interfaces_1.emptyMessageBrokerServiceConfig;
86
+ return {
87
+ queuesOptions: [...serviceConfig.queuesOptions, ...generalConfig.queuesOptions],
88
+ exchangesOptions: [...serviceConfig.exchangesOptions, ...generalConfig.exchangesOptions],
89
+ };
53
90
  }
54
91
  }
55
92
  exports.Queue = Queue;
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/services/queue.ts"],"names":[],"mappings":";;;AAEA,+CAA8F;AAE9F,8CAAqF;AACrF,2DAA2D;AAE3D,oDAAwD;AAExD,MAAa,KAAK;IAMO;IACA;IAEA;IACA;IATb,aAAa,CAAkB;IAE/B,aAAa,CAAkB;IAEvC,YACqB,WAAmB,EACnB,gBAAuC,EAEvC,iBAAkD,EAClD,MAAc;QAJd,gBAAW,GAAX,WAAW,CAAQ;QACnB,qBAAgB,GAAhB,gBAAgB,CAAuB;QAEvC,sBAAiB,GAAjB,iBAAiB,CAAiC;QAClD,WAAM,GAAN,MAAM,CAAQ;IAChC,CAAC;IAEJ,KAAK,CAAC,aAAa;QACf,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,CAAA;QAC3D,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,CAAA;QAE3D,MAAM,aAAa,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QAE3H,MAAM,MAAM,GAAmB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,6BAAgB,CAAC,SAAS,CAAC;YACtF,CAAC,CAAC,sBAAc,CAAC,mBAAmB;YACpC,CAAC,CAAC,sBAAc,CAAC,EAAE,CAAA;QAEvB,OAAO;YACH,MAAM;YACN,OAAO,EAAE;gBACL,MAAM,EAAE;oBACJ,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ,EAAE,mBAAmB;iBAChC;aACJ;SACJ,CAAA;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAA;SAC5B;QAED,MAAM,EACF,QAAQ,EACR,kBAAkB,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,GACrF,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAEzB,IAAI,CAAC,aAAa,GAAG,IAAI,2BAAgB,CACrC,IAAI,CAAC,WAAW,EAChB,QAAQ,EACR,cAAc,CAAC,6BAAe,CAAC,QAAQ,CAAC,EACxC,YAAY,CAAC,6BAAe,CAAC,QAAQ,CAAC,EACtC,EAAE,EACF,cAAc,EACd,6BAAe,CAAC,QAAQ,EACxB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,iBAAiB,EACtB,YAAY,CAAC,6BAAe,CAAC,QAAQ,CAAC,CACzC,CAAA;QAED,OAAO,IAAI,CAAC,aAAa,CAAA;IAC7B,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAA;SAC5B;QAED,MAAM,EACF,QAAQ,EACR,kBAAkB,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,GACrF,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAEzB,IAAI,CAAC,aAAa,GAAG,IAAI,2BAAgB,CACrC,IAAI,CAAC,WAAW,EAChB,QAAQ,EACR,cAAc,CAAC,6BAAe,CAAC,QAAQ,CAAC,EACxC,YAAY,CAAC,6BAAe,CAAC,QAAQ,CAAC,EACtC,YAAY,EACZ,cAAc,EACd,6BAAe,CAAC,QAAQ,EACxB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,iBAAiB,CACzB,CAAA;QAED,OAAO,IAAI,CAAC,aAAa,CAAA;IAC7B,CAAC;CACJ;AApFD,sBAoFC"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/services/queue.ts"],"names":[],"mappings":"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"}
@@ -1,64 +1,68 @@
1
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
4
  };
25
5
  Object.defineProperty(exports, "__esModule", { value: true });
26
6
  exports.ScheduledTask = void 0;
27
- const Utils = __importStar(require("../utils"));
28
- class ScheduledTask {
29
- queueProvider;
7
+ const interfaces_1 = require("../interfaces");
8
+ const communicator_1 = __importDefault(require("./communicator"));
9
+ const eventCommunicator_1 = require("./eventCommunicator");
10
+ /**
11
+ * @deprecated use pkg-workflow entities instead
12
+ */
13
+ class ScheduledTask extends communicator_1.default {
14
+ serviceName;
30
15
  scheduledTaskList;
31
- eventMessageHandler;
32
- logger;
33
16
  queueName;
34
- routingPart = 'scheduled-task';
35
- constructor(queueProvider, scheduledTaskList, eventMessageHandler, logger, queueName) {
36
- this.queueProvider = queueProvider;
17
+ eventCommunicator;
18
+ eventRoutingPart = 'scheduled-task';
19
+ constructor(serviceName, systemServiceName, queueProvider, scheduledTaskList, eventMessageHandler, logger, hostName, queueName) {
20
+ super(logger, queueProvider, hostName, systemServiceName);
21
+ this.serviceName = serviceName;
37
22
  this.scheduledTaskList = scheduledTaskList;
38
- this.eventMessageHandler = eventMessageHandler;
39
- this.logger = logger;
40
23
  this.queueName = queueName;
24
+ this.eventCommunicator = new eventCommunicator_1.EventCommunicator(logger, queueProvider, eventMessageHandler, scheduledTaskList);
25
+ }
26
+ async publish(eventName, serviceName) {
27
+ const routingKey = this.getRoutingKey(serviceName);
28
+ return await this.publishEventToExchange(eventName, {}, { routingKey });
29
+ }
30
+ getExchangeNameWithSuffix(exchangeName) {
31
+ return exchangeName;
32
+ }
33
+ getUnicastListeners() {
34
+ return this.eventCommunicator.getUnicastListeners();
41
35
  }
42
- async onInit() {
43
- await this.queueProvider.init?.();
44
- if (!this.queueName) {
45
- return;
36
+ getMulticastListeners() {
37
+ if (!this.queueName || this.scheduledTaskList.length === 0) {
38
+ return [];
46
39
  }
47
- const config = this.queueProvider.getConfig();
48
- const eventListeners = Utils.collectEventBusListeners(this.scheduledTaskList);
49
- await this.subscribe(this.queueName, this.eventMessageHandler.eventListenersMessageHandler.bind(this.eventMessageHandler, eventListeners), {
50
- listener: config.listenerOptions,
51
- });
52
- for (const listener of this.scheduledTaskList) {
53
- this.logger.info(`Scheduled task [${listener.event}] initialized successfully`);
40
+ const routingKey = this.getRoutingKey(this.serviceName);
41
+ const [queueOptions] = this.optionsBuilder.defineQueueOptionsBasedOnGlobalConfig(this.queueName, routingKey);
42
+ if (!queueOptions) {
43
+ return [];
54
44
  }
45
+ const exchangesOptions = this.getProducerExchangesOptions();
46
+ return this.eventCommunicator.getMulticastListeners([queueOptions], exchangesOptions);
55
47
  }
56
- subscribe(subscriptionName, messageHandler, options) {
57
- const routingKey = `${this.queueProvider.getServiceName()}.${this.routingPart}`;
58
- return this.queueProvider.subscribe(subscriptionName, messageHandler, { ...options, routingKey });
48
+ getProducerExchangesOptions() {
49
+ const exchangesOptions = [];
50
+ const { topics = {}, rabbit: { declareOptions: { assertExchanges } = {} }, } = this.queueProvider.getConfig();
51
+ const createExchangeOptions = (exchangeName) => ({
52
+ name: exchangeName,
53
+ type: interfaces_1.ExchangeType.Topic,
54
+ declare: assertExchanges,
55
+ });
56
+ const exchangeNamesByQueueName = this.optionsBuilder.getExchangeNamesByQueueName(this.queueName);
57
+ const exchangeNamesSet = new Set([...Object.keys(topics), ...exchangeNamesByQueueName]);
58
+ for (const exchangeName of exchangeNamesSet) {
59
+ const exchangeOptions = createExchangeOptions(exchangeName);
60
+ exchangesOptions.push(exchangeOptions);
61
+ }
62
+ return exchangesOptions;
59
63
  }
60
- publish(scheduledTaskName, serviceName) {
61
- return this.queueProvider.publish(scheduledTaskName, {}, { routingKey: `${serviceName}.${this.routingPart}` });
64
+ getRoutingKey(serviceName) {
65
+ return `${serviceName}.${this.eventRoutingPart}`;
62
66
  }
63
67
  }
64
68
  exports.ScheduledTask = ScheduledTask;
@@ -1 +1 @@
1
- {"version":3,"file":"scheduledTask.js","sourceRoot":"","sources":["../../src/services/scheduledTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,gDAAiC;AAIjC,MAAa,aAAa;IAID;IACA;IACA;IAEA;IACA;IARJ,WAAW,GAAW,gBAAgB,CAAA;IAEvD,YACqB,aAA+B,EAC/B,iBAAqC,EACrC,mBAAwC,EAExC,MAAc,EACd,SAAgC;QALhC,kBAAa,GAAb,aAAa,CAAkB;QAC/B,sBAAiB,GAAjB,iBAAiB,CAAoB;QACrC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAExC,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAuB;IAClD,CAAC;IAEJ,KAAK,CAAC,MAAM;QACR,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAA;QACjC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,OAAM;SACT;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAA;QAC7C,MAAM,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAE7E,MAAM,IAAI,CAAC,SAAS,CAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,EACpG;YACI,QAAQ,EAAE,MAAM,CAAC,eAAe;SACnC,CACJ,CAAA;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,QAAQ,CAAC,KAAK,4BAA4B,CAAC,CAAA;SAClF;IACL,CAAC;IAED,SAAS,CAAC,gBAA2B,EAAE,cAA8B,EAAE,OAA0B;QAC7F,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;QAE/E,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;IACrG,CAAC;IAED,OAAO,CAAC,iBAA4B,EAAE,WAAmB;QACrD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IAClH,CAAC;CACJ;AA3CD,sCA2CC"}
1
+ {"version":3,"file":"scheduledTask.js","sourceRoot":"","sources":["../../src/services/scheduledTask.ts"],"names":[],"mappings":"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"}