@cryptexlabs/codex-nodejs-common 0.2.5 → 0.3.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 (117) hide show
  1. package/lib/package.json +2 -2
  2. package/lib/src/auth/index.js +5 -1
  3. package/lib/src/auth/index.js.map +1 -1
  4. package/lib/src/client/index.js +5 -1
  5. package/lib/src/client/index.js.map +1 -1
  6. package/lib/src/config/default-config.js +5 -5
  7. package/lib/src/config/default-config.js.map +1 -1
  8. package/lib/src/config/index.js +5 -1
  9. package/lib/src/config/index.js.map +1 -1
  10. package/lib/src/config/kafka-config.d.ts +2 -1
  11. package/lib/src/config/kafka-config.interface.d.ts +1 -0
  12. package/lib/src/config/kafka-config.js +2 -1
  13. package/lib/src/config/kafka-config.js.map +1 -1
  14. package/lib/src/context/context.builder.js +2 -2
  15. package/lib/src/context/context.builder.js.map +1 -1
  16. package/lib/src/context/index.js +5 -1
  17. package/lib/src/context/index.js.map +1 -1
  18. package/lib/src/decorator/api-meta-headers.js +12 -12
  19. package/lib/src/decorator/api-meta-headers.js.map +1 -1
  20. package/lib/src/decorator/api-pagination.js +3 -3
  21. package/lib/src/decorator/api-pagination.js.map +1 -1
  22. package/lib/src/decorator/index.js +5 -1
  23. package/lib/src/decorator/index.js.map +1 -1
  24. package/lib/src/event/event-handler.d.ts +1 -1
  25. package/lib/src/event/event-handler.js +4 -1
  26. package/lib/src/event/event-handler.js.map +1 -1
  27. package/lib/src/event/index.js +5 -1
  28. package/lib/src/event/index.js.map +1 -1
  29. package/lib/src/event/websocket-event.handler.js +2 -2
  30. package/lib/src/event/websocket-event.handler.js.map +1 -1
  31. package/lib/src/exception/index.js +5 -1
  32. package/lib/src/exception/index.js.map +1 -1
  33. package/lib/src/filter/app-http-exception-filter.js +2 -2
  34. package/lib/src/filter/app-http-exception-filter.js.map +1 -1
  35. package/lib/src/filter/http-status.interceptor.js +2 -2
  36. package/lib/src/filter/http-status.interceptor.js.map +1 -1
  37. package/lib/src/filter/index.js +5 -1
  38. package/lib/src/filter/index.js.map +1 -1
  39. package/lib/src/index.js +5 -1
  40. package/lib/src/index.js.map +1 -1
  41. package/lib/src/logger/context.logger.js +1 -1
  42. package/lib/src/logger/context.logger.js.map +1 -1
  43. package/lib/src/logger/custom.logger.js +1 -1
  44. package/lib/src/logger/custom.logger.js.map +1 -1
  45. package/lib/src/logger/index.js +5 -1
  46. package/lib/src/logger/index.js.map +1 -1
  47. package/lib/src/message/index.js +5 -1
  48. package/lib/src/message/index.js.map +1 -1
  49. package/lib/src/message/message-meta.js +1 -1
  50. package/lib/src/message/message-meta.js.map +1 -1
  51. package/lib/src/pipe/country-code.pipe.js +1 -1
  52. package/lib/src/pipe/country-code.pipe.js.map +1 -1
  53. package/lib/src/pipe/csv.pipe.js +1 -1
  54. package/lib/src/pipe/csv.pipe.js.map +1 -1
  55. package/lib/src/pipe/index.js +5 -1
  56. package/lib/src/pipe/index.js.map +1 -1
  57. package/lib/src/pipe/joi-http-validation.pipe.js +1 -1
  58. package/lib/src/pipe/joi-http-validation.pipe.js.map +1 -1
  59. package/lib/src/pipe/language-code.pipe.js +1 -1
  60. package/lib/src/pipe/language-code.pipe.js.map +1 -1
  61. package/lib/src/pipe/not-empty.pipe.js +1 -1
  62. package/lib/src/pipe/not-empty.pipe.js.map +1 -1
  63. package/lib/src/pipe/uuidv4.array.validation.pipe.js +1 -1
  64. package/lib/src/pipe/uuidv4.array.validation.pipe.js.map +1 -1
  65. package/lib/src/pipe/uuidv4.validation.pipe.js +1 -1
  66. package/lib/src/pipe/uuidv4.validation.pipe.js.map +1 -1
  67. package/lib/src/response/healthz-response.js +1 -1
  68. package/lib/src/response/healthz-response.js.map +1 -1
  69. package/lib/src/response/index.js +5 -1
  70. package/lib/src/response/index.js.map +1 -1
  71. package/lib/src/result/index.js +5 -1
  72. package/lib/src/result/index.js.map +1 -1
  73. package/lib/src/service/consumer/consumer-service-delegate.interface.d.ts +2 -0
  74. package/lib/src/service/consumer/consumer.service.d.ts +1 -0
  75. package/lib/src/service/consumer/consumer.service.js +23 -10
  76. package/lib/src/service/consumer/consumer.service.js.map +1 -1
  77. package/lib/src/service/consumer/index.js +5 -1
  78. package/lib/src/service/consumer/index.js.map +1 -1
  79. package/lib/src/service/consumer/websocket-consumer.service.js +5 -5
  80. package/lib/src/service/consumer/websocket-consumer.service.js.map +1 -1
  81. package/lib/src/service/elasticsearch/elasticsearch-healthz.service.js +5 -5
  82. package/lib/src/service/elasticsearch/elasticsearch-healthz.service.js.map +1 -1
  83. package/lib/src/service/elasticsearch/index.js +5 -1
  84. package/lib/src/service/elasticsearch/index.js.map +1 -1
  85. package/lib/src/service/healthz/healthz.service.js +3 -3
  86. package/lib/src/service/healthz/healthz.service.js.map +1 -1
  87. package/lib/src/service/healthz/index.js +5 -1
  88. package/lib/src/service/healthz/index.js.map +1 -1
  89. package/lib/src/service/index.js +5 -1
  90. package/lib/src/service/index.js.map +1 -1
  91. package/lib/src/service/kafka/index.d.ts +1 -0
  92. package/lib/src/service/kafka/index.js +6 -1
  93. package/lib/src/service/kafka/index.js.map +1 -1
  94. package/lib/src/service/kafka/kafka.replay.messages.d.ts +10 -0
  95. package/lib/src/service/kafka/kafka.replay.messages.js +42 -0
  96. package/lib/src/service/kafka/kafka.replay.messages.js.map +1 -0
  97. package/lib/src/service/kafka/kafka.service.d.ts +2 -0
  98. package/lib/src/service/kafka/kafka.service.js +83 -3
  99. package/lib/src/service/kafka/kafka.service.js.map +1 -1
  100. package/lib/src/service/kafka/kafka.stub.service.js +1 -1
  101. package/lib/src/service/kafka/kafka.stub.service.js.map +1 -1
  102. package/lib/src/service/socket/index.js +5 -1
  103. package/lib/src/service/socket/index.js.map +1 -1
  104. package/lib/src/service/socket/websocket.gateway.js +8 -8
  105. package/lib/src/service/socket/websocket.gateway.js.map +1 -1
  106. package/lib/src/util/index.js +5 -1
  107. package/lib/src/util/index.js.map +1 -1
  108. package/package.json +2 -2
  109. package/src/config/default-config.ts +2 -1
  110. package/src/config/kafka-config.interface.ts +1 -0
  111. package/src/config/kafka-config.ts +4 -1
  112. package/src/event/event-handler.ts +5 -2
  113. package/src/service/consumer/consumer-service-delegate.interface.ts +2 -0
  114. package/src/service/consumer/consumer.service.ts +26 -3
  115. package/src/service/kafka/index.ts +1 -0
  116. package/src/service/kafka/kafka.replay.messages.ts +33 -0
  117. package/src/service/kafka/kafka.service.ts +145 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.replay.messages.js","sourceRoot":"","sources":["../../../../src/service/kafka/kafka.replay.messages.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,mDAA+C;AAC/C,yCAA6C;AAG7C,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC9B,YACqC,MAAqB,EACrB,MAAqB,EACvC,YAA0B;QAFR,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QACvC,iBAAY,GAAZ,YAAY,CAAc;IAC1C,CAAC;IAEJ,KAAK,CAAC,OAAO,CACX,OAAe,EACf,OAAe,EACf,QAAgB;QAEhB,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAElC,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CACzC,CAAC,OAAO,CAAC,EACT,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;YACnB,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAC7B,QAAQ,EACR,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CACrC,CAAC;QACJ,CAAC,CACF,CAAC;QACF,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;CACF,CAAA;AA3BY,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;qCAD0B,sBAAa,UAEzB,4BAAY;GAJlC,mBAAmB,CA2B/B;AA3BY,kDAAmB"}
@@ -16,7 +16,9 @@ export declare class KafkaService implements ConsumerServiceDelegateInterface {
16
16
  initializeConsumer(consumerGroup: string): Promise<void>;
17
17
  initializeProducer(): Promise<void>;
18
18
  startConsumer(topics: (string | RegExp)[], callback: (topic: string, message: Message) => Promise<void>): Promise<void>;
19
+ startManualConsumer(topics: (string | RegExp)[], callback: (topic: string, message: Message) => Promise<void>): Promise<void>;
19
20
  private _ensureTopicsExist;
20
21
  publish(topic: string, payload: any): Promise<void>;
21
22
  publishBulk(topic: string, payloads: any[]): Promise<void>;
23
+ private _setManualConsume;
22
24
  }
@@ -94,6 +94,31 @@ let KafkaService = class KafkaService {
94
94
  },
95
95
  });
96
96
  }
97
+ async startManualConsumer(topics, callback) {
98
+ await this._setManualConsume();
99
+ const promises = [];
100
+ for (const topic of topics) {
101
+ promises.push(this._kafkaConsumer.subscribe({ topic, fromBeginning: true }));
102
+ }
103
+ try {
104
+ await Promise.all(promises);
105
+ await this._ensureTopicsExist(topics);
106
+ const results = [
107
+ new Promise((resolve) => {
108
+ this._kafkaConsumer.run({
109
+ eachMessage: async (messagePayload) => {
110
+ const { topic, partition, message } = messagePayload;
111
+ await callback(topic, message);
112
+ },
113
+ });
114
+ }),
115
+ ];
116
+ await Promise.all(results);
117
+ }
118
+ catch (e) {
119
+ this.logger.error(e.message, e.trace);
120
+ }
121
+ }
97
122
  async _ensureTopicsExist(topics) {
98
123
  const stringTopics = [];
99
124
  for (const topic of topics) {
@@ -137,11 +162,66 @@ let KafkaService = class KafkaService {
137
162
  messages,
138
163
  });
139
164
  }
165
+ async _setManualConsume() {
166
+ let consumedTopicPartitions = {};
167
+ this._kafkaConsumer.on(this._kafkaConsumer.events.GROUP_JOIN, async ({ payload }) => {
168
+ const { memberAssignment } = payload;
169
+ consumedTopicPartitions = Object.entries(memberAssignment).reduce((topics, [topic, partitions]) => {
170
+ for (const partition in partitions) {
171
+ this.logger.debug("topic-partition: ", `${topic}-${partition}`);
172
+ topics[`${topic}-${partition}`] = false;
173
+ }
174
+ return topics;
175
+ }, {});
176
+ });
177
+ let processedBatch = true;
178
+ this._kafkaConsumer.on(this._kafkaConsumer.events.FETCH_START, async () => {
179
+ if (processedBatch === false) {
180
+ await this._kafkaConsumer.disconnect();
181
+ process.exit(0);
182
+ }
183
+ processedBatch = false;
184
+ });
185
+ this._kafkaConsumer.on(this._kafkaConsumer.events.END_BATCH_PROCESS, async ({ payload }) => {
186
+ const { topic, partition, offsetLag } = payload;
187
+ consumedTopicPartitions[`${topic}-${partition}`] = offsetLag === "0";
188
+ if (Object.values(consumedTopicPartitions).every((consumed) => Boolean(consumed))) {
189
+ await this._kafkaConsumer.disconnect();
190
+ process.exit(0);
191
+ }
192
+ processedBatch = true;
193
+ });
194
+ const errorTypes = ["unhandledRejection", "uncaughtException"];
195
+ const signalTraps = ["SIGTERM", "SIGINT", "SIGUSR2"];
196
+ errorTypes.map((type) => {
197
+ process.on(type, async (e) => {
198
+ try {
199
+ this.logger.debug(`process.on ${type}`);
200
+ this.logger.error(e);
201
+ await this.disconnect();
202
+ process.exit(0);
203
+ }
204
+ catch (_) {
205
+ process.exit(1);
206
+ }
207
+ });
208
+ });
209
+ signalTraps.map((type) => {
210
+ process.once(type, async () => {
211
+ try {
212
+ await this.disconnect();
213
+ }
214
+ finally {
215
+ process.kill(process.pid, type);
216
+ }
217
+ });
218
+ });
219
+ }
140
220
  };
141
221
  KafkaService = __decorate([
142
- common_1.Injectable(),
143
- __param(0, common_1.Inject("CONFIG")),
144
- __param(1, common_1.Inject("LOGGER")),
222
+ (0, common_1.Injectable)(),
223
+ __param(0, (0, common_1.Inject)("CONFIG")),
224
+ __param(1, (0, common_1.Inject)("LOGGER")),
145
225
  __metadata("design:paramtypes", [config_1.DefaultConfig, Object])
146
226
  ], KafkaService);
147
227
  exports.KafkaService = KafkaService;
@@ -1 +1 @@
1
- {"version":3,"file":"kafka.service.js","sourceRoot":"","sources":["../../../../src/service/kafka/kafka.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kafka.service.js","sourceRoot":"","sources":["../../../../src/service/kafka/kafka.service.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ let KafkaStubService = class KafkaStubService {
13
13
  async send(payload, logger) { }
14
14
  };
15
15
  KafkaStubService = __decorate([
16
- common_1.Injectable()
16
+ (0, common_1.Injectable)()
17
17
  ], KafkaStubService);
18
18
  exports.KafkaStubService = KafkaStubService;
19
19
  //# sourceMappingURL=kafka.stub.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kafka.stub.service.js","sourceRoot":"","sources":["../../../../src/service/kafka/kafka.stub.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA2D;AAK3D,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IACpB,KAAK,CAAC,aAAa,KAAkB,CAAC;IAEtC,KAAK,CAAC,IAAI,CACf,OAA8B,EAC9B,MAAqB,IACN,CAAC;CACnB,CAAA;AAPY,gBAAgB;IAD5B,mBAAU,EAAE;GACA,gBAAgB,CAO5B;AAPY,4CAAgB"}
1
+ {"version":3,"file":"kafka.stub.service.js","sourceRoot":"","sources":["../../../../src/service/kafka/kafka.stub.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA2D;AAK3D,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IACpB,KAAK,CAAC,aAAa,KAAkB,CAAC;IAEtC,KAAK,CAAC,IAAI,CACf,OAA8B,EAC9B,MAAqB,IACN,CAAC;CACnB,CAAA;AAPY,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;GACA,gBAAgB,CAO5B;AAPY,4CAAgB"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/service/socket/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAA2C;AAC3C,sDAAoC;AACpC,wDAAsC;AACtC,uEAAqD;AACrD,uEAAqD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/service/socket/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,sDAAoC;AACpC,wDAAsC;AACtC,uEAAqD;AACrD,uEAAqD"}
@@ -125,17 +125,17 @@ let WebsocketGateway = class WebsocketGateway {
125
125
  }
126
126
  };
127
127
  __decorate([
128
- websockets_1.WebSocketServer(),
128
+ (0, websockets_1.WebSocketServer)(),
129
129
  __metadata("design:type", Object)
130
130
  ], WebsocketGateway.prototype, "server", void 0);
131
131
  WebsocketGateway = __decorate([
132
- websockets_1.WebSocketGateway(),
133
- __param(1, common_1.Inject("CONFIG")),
134
- __param(2, common_1.Inject("TOPIC_AUTHORIZORS")),
135
- __param(3, common_1.Inject("LOGGER")),
136
- __param(4, common_1.Inject("BROADCASTER")),
137
- __param(5, common_1.Inject("CONTEXT_BUILDER")),
138
- __param(6, common_1.Inject("AUTHENTICATOR")),
132
+ (0, websockets_1.WebSocketGateway)(),
133
+ __param(1, (0, common_1.Inject)("CONFIG")),
134
+ __param(2, (0, common_1.Inject)("TOPIC_AUTHORIZORS")),
135
+ __param(3, (0, common_1.Inject)("LOGGER")),
136
+ __param(4, (0, common_1.Inject)("BROADCASTER")),
137
+ __param(5, (0, common_1.Inject)("CONTEXT_BUILDER")),
138
+ __param(6, (0, common_1.Inject)("AUTHENTICATOR")),
139
139
  __metadata("design:paramtypes", [consumer_1.WebsocketConsumerService,
140
140
  config_1.DefaultConfig, Array, Object, broadcaster_service_1.BroadcasterService,
141
141
  context_1.ContextBuilder, Object])
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.gateway.js","sourceRoot":"","sources":["../../../../src/service/socket/websocket.gateway.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,mDAM4B;AAC5B,2CAAmE;AACnE,yCAA6C;AAE7C,yEAAoE;AACpE,+DAA2D;AAC3D,0CAAuD;AACvD,oEAKuC;AACvC,6CAAuE;AACvE,2CAA+C;AAC/C,mDAAiD;AACjD,6CAAiD;AAGjD,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAO3B,YACmB,eAAyC,EACvB,MAAqB,EAEvC,WAAuC,EACrB,MAAqB,EAEvC,kBAAsC,EACX,cAA8B,EAEzD,aAAqC;QATrC,oBAAe,GAAf,eAAe,CAA0B;QACvB,WAAM,GAAN,MAAM,CAAe;QAEvC,gBAAW,GAAX,WAAW,CAA4B;QACrB,WAAM,GAAN,MAAM,CAAe;QAEvC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACX,mBAAc,GAAd,cAAc,CAAgB;QAEzD,kBAAa,GAAb,aAAa,CAAwB;QAEtD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,SAAS;QACpB,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAAiB;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;QAE9B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,mBAAU,CAAC,YAAY,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,mBAAU,CAAC,YAAY,EAAE,CAAC,CAAC;SAC9D;QAED,MAAM,gBAAgB,GAAG,IAAI,iDAAsB,CACjD,KAAK,EACL,MAAM,EACN,IAAI,CAAC,WAAW,CACjB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAEtC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEjE,MAAM,CAAC,SAAS,GAAG,CAAC,KAAmB,EAAE,EAAE;YACzC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,KAAmB,EACnB,MAAiB,EACjB,gBAAwC;;QAExC,IAAI,OAAiE,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,OAAO,CAAC;YAEZ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACf,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;gBAElD,MAAM,gBAAgB,GAAG,kBAAQ,CAAC,EAAE,CAAC;oBACnC,MAAM,EAAE,mBAAmB;oBAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;iBAC5B,CAAC,CAAC;gBACH,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAEpC,MAAM,YAAY,GAAG,IAAI,4BAAiB,CACxC,mBAAU,CAAC,WAAW,EACtB,OAAO,CAAC,MAAM,EACd,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,EACvD,IAAI,KAAK,EAAE,CAAC,KAAK,EACjB,IAAI,CAAC,MAAM,EACX,OAAO,CAAC,IAAI,CAAC,aAAa,EAC1B,GAAG,CACJ,CAAC;gBAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC1C,OAAO;aACR;YAED,OAAO,GAAG,IAAI,CAAC,KAAK,CAClB,KAAK,CAAC,IAAI,CACiD,CAAC;YAE9D,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAExE,IACE,CAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,IAAI;gBAClB,oCAAiB,CAAC,kCAAkC,EACpD;gBACA,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAErE,MAAM,IAAI,CAAC,gBAAgB,CACzB,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CACjD,CAAC;gBAEF,MAAM,cAAc,GAAG,IAAI,6BAAkB,CAC3C,OAAO,EACP,mBAAU,CAAC,QAAQ,EACnB,kBAAW,CAAC,OAAO,CACpB,CAAC;gBAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;aAC7C;iBAAM;gBACL,MAAM,gBAAgB,GAAG,kBAAQ,CAAC,EAAE,CAAC;oBACnC,MAAM,EAAE,mBAAmB;oBAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;iBAC5B,CAAC,CAAC;gBACH,MAAM,gBAAgB,GAAG,wBAAwB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAEpC,MAAM,YAAY,GAAG,IAAI,4BAAiB,CACxC,mBAAU,CAAC,WAAW,EACtB,OAAO,CAAC,MAAM,EACd,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,EACvD,IAAI,KAAK,EAAE,CAAC,KAAK,EACjB,IAAI,CAAC,MAAM,EACX,OAAO,CAAC,IAAI,CAAC,aAAa,EAC1B,GAAG,CACJ,CAAC;gBAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;aAC3C;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,MAAM,GAAG,IAAI,yBAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,WAAW,GAAG,kBAAQ,CAAC,EAAE,CAAC;gBAC9B,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC,CAAC;YACH,MAAM,qBAAqB,GAAG,CAAC,CAAC,OAAO,CAAC;YAExC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAElD,MAAM,YAAY,GAAG,IAAI,4BAAiB,CACxC,mBAAU,CAAC,WAAW,EACtB,MAAM,EACN,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,qBAAqB,EAAE,EACvD,IAAI,KAAK,EAAE,CAAC,KAAK,EACjB,IAAI,CAAC,MAAM,EACX,OAAO,CAAC,IAAI,CAAC,aAAa,EAC1B,GAAG,CACJ,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;SAC3C;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAM;QACnC,IAAI,sBAAsB,GAAG,KAAK,CAAC;QACnC,KAAK,MAAM,YAAY,IAAI,MAAM,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBACjD,sBAAsB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC1C;SACF;QACD,IAAI,sBAAsB,EAAE;YAC1B,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC3D;IACH,CAAC;IAEM,gBAAgB,CAAC,MAAM;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzE,IAAI,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;gBAC3D,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvD,MAAM;aACP;SACF;QACD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;CACF,CAAA;AA1KoB;IAAlB,4BAAe,EAAE;;gDAAqB;AAH5B,gBAAgB;IAD5B,6BAAgB,EAAE;IAUd,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,eAAM,CAAC,mBAAmB,CAAC,CAAA;IAE3B,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,eAAM,CAAC,aAAa,CAAC,CAAA;IAErB,WAAA,eAAM,CAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,eAAM,CAAC,eAAe,CAAC,CAAA;qCARU,mCAAwB;QACf,sBAAa,iBAKnB,wCAAkB;QACK,wBAAc;GAfjE,gBAAgB,CA6K5B;AA7KY,4CAAgB"}
1
+ {"version":3,"file":"websocket.gateway.js","sourceRoot":"","sources":["../../../../src/service/socket/websocket.gateway.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,gDAA8B;AAC9B,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,gDAA8B;AAC9B,8CAA4B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptexlabs/codex-nodejs-common",
3
- "version": "0.2.5",
3
+ "version": "0.3.0",
4
4
  "description": "Common code for Assistant applications",
5
5
  "main": "lib/src/index.js",
6
6
  "repository": "git@gitlab.com:cryptexlabs/public/codex-nodejs-common.git",
@@ -38,7 +38,7 @@
38
38
  "joi": "^17.3.0",
39
39
  "js-yaml": "^3.14.1",
40
40
  "jsonwebtoken": "^8.5.1",
41
- "kafkajs": "^1.15.0",
41
+ "kafkajs": "^1.16.0",
42
42
  "randomstring": "^1.2.1",
43
43
  "reflect-metadata": "^0.1.13",
44
44
  "rxjs": "^7.3.0",
@@ -144,7 +144,8 @@ export class DefaultConfig implements JsonSerializableInterface<any> {
144
144
  process.env.KAFKA_TOPICS_CONFIG_PATH ||
145
145
  `${this._appPath}/config/topics.yaml`,
146
146
  process.env.KAFKA_CLIENT_ID || process.env.POD_NAME || this.appName,
147
- process.env.KAFKA_DEFAULT_PARTITIONS
147
+ process.env.KAFKA_DEFAULT_PARTITIONS,
148
+ process.env.KAFKA_DEFAULT_ERROR_TOPIC
148
149
  );
149
150
  }
150
151
 
@@ -9,4 +9,5 @@ export interface KafkaConfigInterface
9
9
  topicsConfigPath: string;
10
10
  defaultPartitions: number;
11
11
  clientId: string;
12
+ defaultKafkaErrorTopic: string;
12
13
  }
@@ -10,6 +10,7 @@ export class KafkaConfig
10
10
  enabled: boolean;
11
11
  saslMechanism: SASLMechanism;
12
12
  defaultPartitions: number;
13
+ defaultKafkaErrorTopic: string;
13
14
 
14
15
  constructor(
15
16
  enabled: string,
@@ -20,7 +21,8 @@ export class KafkaConfig
20
21
  saslMechanism: string,
21
22
  public readonly topicsConfigPath: string,
22
23
  public readonly clientId: string,
23
- defaultPartitions?: string
24
+ defaultPartitions?: string,
25
+ defaultKafkaErrorTopic?: string
24
26
  ) {
25
27
  super(host, port);
26
28
  this.saslMechanism = saslMechanism as SASLMechanism;
@@ -28,5 +30,6 @@ export class KafkaConfig
28
30
  this.defaultPartitions = defaultPartitions
29
31
  ? parseInt(defaultPartitions, 10)
30
32
  : 3;
33
+ this.defaultKafkaErrorTopic = defaultKafkaErrorTopic;
31
34
  }
32
35
  }
@@ -8,18 +8,21 @@ export class EventHandler {
8
8
  public async handle(
9
9
  message: Message,
10
10
  topic: string,
11
- handler: EventHandlerInterface
11
+ handler: EventHandlerInterface,
12
+ errorEventHandler?: (message: any, error: string) => Promise<void>
12
13
  ) {
13
14
  let data;
14
15
  try {
15
16
  data = JSON.parse(message.value.toString());
16
17
  await handler.handle(data, topic);
17
18
  } catch (e) {
18
- // TODO publish message to error queue
19
19
  this.logger.error(
20
20
  `Error handling event: ${JSON.stringify(data)} from topic ${topic}`,
21
21
  e.stack
22
22
  );
23
+ if (errorEventHandler) {
24
+ await errorEventHandler(data, JSON.stringify(e.message));
25
+ }
23
26
  }
24
27
  }
25
28
  }
@@ -6,4 +6,6 @@ export interface ConsumerServiceDelegateInterface {
6
6
  ): Promise<void>;
7
7
  initializeConsumer(consumerGroup: string): Promise<void>;
8
8
  stopConsumer(): Promise<void>;
9
+ initializeProducer(): Promise<void>;
10
+ publish(topic: string, payload: any): Promise<void>;
9
11
  }
@@ -43,7 +43,9 @@ export class ConsumerService {
43
43
  await this.healthzService.makeUnhealthy(
44
44
  HealthzComponentEnum.MESSAGE_BROKER_KAFKA
45
45
  );
46
-
46
+ if (this.config.kafka.defaultKafkaErrorTopic) {
47
+ await this.consumerDelegateService.initializeProducer();
48
+ }
47
49
  await this.consumerDelegateService.initializeConsumer(
48
50
  `${this.config.appName}-${this.consumerType}`
49
51
  );
@@ -94,9 +96,30 @@ export class ConsumerService {
94
96
 
95
97
  return ConsumerUtil.getTopics(allTopics);
96
98
  }
99
+
100
+ private async _errorEventHandler(message: any, errorMessage: string) {
101
+ const messageWithError = { ...message };
102
+ messageWithError.meta.errorMessage = errorMessage;
103
+ await this.consumerDelegateService.publish(
104
+ this.config.kafka.defaultKafkaErrorTopic,
105
+ {
106
+ ...messageWithError,
107
+ }
108
+ );
109
+ }
110
+
97
111
  public async handle(topic: string, message: any): Promise<void> {
98
- const handler = this._getFactory(topic).getHandler(topic);
99
- await this.eventHandler.handle(message, topic, handler);
112
+ const messageTopic = message.meta?.type ?? topic;
113
+ const handler = this._getFactory(messageTopic).getHandler(messageTopic);
114
+ let errorEventHandler;
115
+ if (this.config.kafka.defaultKafkaErrorTopic)
116
+ errorEventHandler = this._errorEventHandler.bind(this);
117
+ await this.eventHandler.handle(
118
+ message,
119
+ messageTopic,
120
+ handler,
121
+ errorEventHandler
122
+ );
100
123
  }
101
124
 
102
125
  public _getFactory(topic: string): EventHandlerFactoryInterface {
@@ -1,3 +1,4 @@
1
1
  export * from "./kafka.service";
2
2
  export * from "./kafka.stub.service";
3
3
  export * from "./kafka-service.interface";
4
+ export * from "./kafka.replay.messages";
@@ -0,0 +1,33 @@
1
+ import { Inject, Injectable, LoggerService } from "@nestjs/common";
2
+ import { KafkaService } from "./kafka.service";
3
+ import { DefaultConfig } from "../../config";
4
+
5
+ @Injectable()
6
+ export class ReplayKafkaMessages {
7
+ constructor(
8
+ @Inject("CONFIG") private readonly config: DefaultConfig,
9
+ @Inject("LOGGER") private readonly logger: LoggerService,
10
+ private readonly kafkaService: KafkaService
11
+ ) {}
12
+
13
+ async process(
14
+ groupId: string,
15
+ inTopic: string,
16
+ outTopic: string
17
+ ): Promise<void> {
18
+ await this.kafkaService.initializeProducer();
19
+ await this.kafkaService.initializeConsumer(groupId);
20
+ await this.kafkaService.connect();
21
+
22
+ await this.kafkaService.startManualConsumer(
23
+ [inTopic],
24
+ async (_, message) => {
25
+ await this.kafkaService.publish(
26
+ outTopic,
27
+ JSON.parse(message.value.toString())
28
+ );
29
+ }
30
+ );
31
+ await this.kafkaService.disconnect();
32
+ }
33
+ }
@@ -2,6 +2,7 @@ import { Inject, Injectable, LoggerService } from "@nestjs/common";
2
2
  import {
3
3
  Admin,
4
4
  Consumer,
5
+ EachMessagePayload,
5
6
  ITopicConfig,
6
7
  Kafka,
7
8
  Message,
@@ -115,6 +116,39 @@ export class KafkaService implements ConsumerServiceDelegateInterface {
115
116
  });
116
117
  }
117
118
 
119
+ public async startManualConsumer(
120
+ topics: (string | RegExp)[],
121
+ callback: (topic: string, message: Message) => Promise<void>
122
+ ): Promise<void> {
123
+ await this._setManualConsume();
124
+
125
+ const promises = [];
126
+ for (const topic of topics) {
127
+ promises.push(
128
+ this._kafkaConsumer.subscribe({ topic, fromBeginning: true })
129
+ );
130
+ }
131
+ try {
132
+ await Promise.all(promises);
133
+
134
+ await this._ensureTopicsExist(topics);
135
+
136
+ const results = [
137
+ new Promise((resolve) => {
138
+ this._kafkaConsumer.run({
139
+ eachMessage: async (messagePayload: EachMessagePayload) => {
140
+ const { topic, partition, message } = messagePayload;
141
+ await callback(topic, message);
142
+ },
143
+ });
144
+ }),
145
+ ];
146
+ await Promise.all(results);
147
+ } catch (e) {
148
+ this.logger.error(e.message, e.trace);
149
+ }
150
+ }
151
+
118
152
  private async _ensureTopicsExist(topics: (string | RegExp)[]): Promise<void> {
119
153
  const stringTopics = [];
120
154
  for (const topic of topics) {
@@ -165,4 +199,115 @@ export class KafkaService implements ConsumerServiceDelegateInterface {
165
199
  messages,
166
200
  });
167
201
  }
202
+
203
+ private async _setManualConsume(): Promise<void> {
204
+ /* Based on solution provided here:
205
+ * https://github.com/tulios/kafkajs/issues/825#issuecomment-674106799
206
+ *
207
+ * 1. We need to know which partitions we are assigned.
208
+ * 2. Which partitions have we consumed the last offset for
209
+ * 3. If all partitions have 0 lag, we exit.
210
+ */
211
+
212
+ /*
213
+ * `consumedTopicPartitions` will be an object of all topic-partitions
214
+ * and a boolean indicating whether or not we have consumed all
215
+ * messages in that topic-partition. For example:
216
+ *
217
+ * {
218
+ * "topic-test-0": false,
219
+ * "topic-test-1": false,
220
+ * "topic-test-2": false
221
+ * }
222
+ */
223
+ let consumedTopicPartitions = {};
224
+ this._kafkaConsumer.on(
225
+ this._kafkaConsumer.events.GROUP_JOIN,
226
+ async ({ payload }) => {
227
+ const { memberAssignment } = payload;
228
+
229
+ consumedTopicPartitions = Object.entries(memberAssignment).reduce(
230
+ (topics, [topic, partitions]) => {
231
+ for (const partition in partitions) {
232
+ this.logger.debug("topic-partition: ", `${topic}-${partition}`);
233
+ topics[`${topic}-${partition}`] = false;
234
+ }
235
+ return topics;
236
+ },
237
+ {}
238
+ );
239
+ }
240
+ );
241
+
242
+ /*
243
+ * This is extremely unergonomic, but if we are currently caught up to the head
244
+ * of all topic-partitions, we won't actually get any batches, which means we'll
245
+ * never find out that we are actually caught up. So as a workaround, what we can do
246
+ * is to check in `FETCH_START` if we have previously made a fetch without
247
+ * processing any batches in between. If so, it means that we received empty
248
+ * fetch responses, meaning there was no more data to fetch.
249
+ *
250
+ * We need to initially set this to true, or we would immediately exit.
251
+ */
252
+ let processedBatch = true;
253
+ this._kafkaConsumer.on(this._kafkaConsumer.events.FETCH_START, async () => {
254
+ if (processedBatch === false) {
255
+ await this._kafkaConsumer.disconnect();
256
+ process.exit(0);
257
+ }
258
+
259
+ processedBatch = false;
260
+ });
261
+
262
+ /*
263
+ * Now whenever we have finished processing a batch, we'll update `consumedTopicPartitions`
264
+ * and exit if all topic-partitions have been consumed,
265
+ */
266
+ this._kafkaConsumer.on(
267
+ this._kafkaConsumer.events.END_BATCH_PROCESS,
268
+ async ({ payload }) => {
269
+ const { topic, partition, offsetLag } = payload;
270
+
271
+ consumedTopicPartitions[`${topic}-${partition}`] = offsetLag === "0";
272
+
273
+ if (
274
+ Object.values(consumedTopicPartitions).every((consumed) =>
275
+ Boolean(consumed)
276
+ )
277
+ ) {
278
+ await this._kafkaConsumer.disconnect();
279
+ process.exit(0);
280
+ }
281
+
282
+ processedBatch = true;
283
+ }
284
+ );
285
+
286
+ // Graceful shutdown
287
+ const errorTypes = ["unhandledRejection", "uncaughtException"];
288
+ const signalTraps: NodeJS.Signals[] = ["SIGTERM", "SIGINT", "SIGUSR2"];
289
+
290
+ errorTypes.map((type) => {
291
+ process.on(type, async (e) => {
292
+ try {
293
+ this.logger.debug(`process.on ${type}`);
294
+ this.logger.error(e);
295
+ await this.disconnect();
296
+ process.exit(0);
297
+ } catch (_) {
298
+ process.exit(1);
299
+ }
300
+ });
301
+ });
302
+
303
+ signalTraps.map((type) => {
304
+ process.once(type, async () => {
305
+ try {
306
+ await this.disconnect();
307
+ } finally {
308
+ process.kill(process.pid, type);
309
+ }
310
+ });
311
+ });
312
+ }
168
313
  }