@mondart/nestjs-common-module 1.0.3

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 (371) hide show
  1. package/.eslintrc.js +25 -0
  2. package/.github/workflows/npm-publish.yml +34 -0
  3. package/.prettierrc +4 -0
  4. package/common/caching/caching.module.ts +28 -0
  5. package/common/caching/caching.service.ts +34 -0
  6. package/common/caching/index.ts +2 -0
  7. package/common/constants/index.ts +1 -0
  8. package/common/constants/validation-constraints.const.ts +14 -0
  9. package/common/controllers/core-crud.controller.ts +106 -0
  10. package/common/controllers/index.ts +1 -0
  11. package/common/decorators/entity-order.decorator.ts +19 -0
  12. package/common/decorators/index.ts +2 -0
  13. package/common/decorators/swagger-api-response.decorator.ts +30 -0
  14. package/common/decorators/validations/default/array-max-size.decorator.ts +9 -0
  15. package/common/decorators/validations/default/array-min-size.decorator.ts +9 -0
  16. package/common/decorators/validations/default/array-not-empty.decorator.ts +7 -0
  17. package/common/decorators/validations/default/index.ts +20 -0
  18. package/common/decorators/validations/default/is-array.decorator.ts +7 -0
  19. package/common/decorators/validations/default/is-boolean.decorator.ts +10 -0
  20. package/common/decorators/validations/default/is-date.decorator.ts +10 -0
  21. package/common/decorators/validations/default/is-enum.decorator.ts +9 -0
  22. package/common/decorators/validations/default/is-int.decorator.ts +10 -0
  23. package/common/decorators/validations/default/is-not-empty-object.decorator.ts +15 -0
  24. package/common/decorators/validations/default/is-not-empty.decorator.ts +7 -0
  25. package/common/decorators/validations/default/is-number-string.decorator.ts +12 -0
  26. package/common/decorators/validations/default/is-object.decorator.ts +7 -0
  27. package/common/decorators/validations/default/is-positive.decorator.ts +10 -0
  28. package/common/decorators/validations/default/is-string.decorator.ts +8 -0
  29. package/common/decorators/validations/default/is-uuid.decorator.ts +7 -0
  30. package/common/decorators/validations/default/matches.decorator.ts +13 -0
  31. package/common/decorators/validations/default/max-length.decorator.ts +9 -0
  32. package/common/decorators/validations/default/max.decorator.ts +13 -0
  33. package/common/decorators/validations/default/min-length.decorator.ts +9 -0
  34. package/common/decorators/validations/default/min.decorator.ts +13 -0
  35. package/common/decorators/validations/index.ts +3 -0
  36. package/common/decorators/validations/is-id.decorator.ts +20 -0
  37. package/common/decorators/validations/is-not-empty-string.decorator.ts +14 -0
  38. package/common/dto/index.ts +2 -0
  39. package/common/dto/request/base-request.dto.ts +11 -0
  40. package/common/dto/request/event.dto.ts +25 -0
  41. package/common/dto/request/id.dto.ts +10 -0
  42. package/common/dto/request/ids.dto.ts +13 -0
  43. package/common/dto/request/index.ts +4 -0
  44. package/common/dto/response/base-response-with-action-dates.dto.ts +19 -0
  45. package/common/dto/response/base-response.dto.ts +10 -0
  46. package/common/dto/response/error-response.dto.ts +22 -0
  47. package/common/dto/response/index.ts +5 -0
  48. package/common/dto/response/kafka-success-response.dto.ts +56 -0
  49. package/common/dto/response/success-response.dto.ts +32 -0
  50. package/common/dto/response/validation.dto.ts +80 -0
  51. package/common/entities/action-dates.entity.ts +30 -0
  52. package/common/entities/base.entity.ts +7 -0
  53. package/common/entities/index.ts +2 -0
  54. package/common/entities/parent.entity.ts +35 -0
  55. package/common/enums/environments.enum.ts +6 -0
  56. package/common/enums/index.ts +2 -0
  57. package/common/enums/shared-messages.enum.ts +40 -0
  58. package/common/filters/http-exception.filter.ts +74 -0
  59. package/common/filters/index.ts +1 -0
  60. package/common/filters/rpc-exception.filter.ts +40 -0
  61. package/common/helper/get-env.helper.ts +3 -0
  62. package/common/helper/get-env.ts +3 -0
  63. package/common/helper/index.ts +2 -0
  64. package/common/helper/message-formatter.helper.ts +30 -0
  65. package/common/helper/multi-inheritance.helper.ts +12 -0
  66. package/common/helper/multi-inheritance.util.ts +12 -0
  67. package/common/index.ts +14 -0
  68. package/common/interface/core-crud-service.option.ts +8 -0
  69. package/common/interface/custom-validation-arguments.interface.ts +20 -0
  70. package/common/interface/index.ts +2 -0
  71. package/common/interface/kafka-success-response.interfase.ts +9 -0
  72. package/common/interface/pagination-query.ts +39 -0
  73. package/common/lib/index.ts +1 -0
  74. package/common/lib/kafka/constant/consumer.const.ts +13 -0
  75. package/common/lib/kafka/constant/kafka.const.ts +9 -0
  76. package/common/lib/kafka/index.ts +5 -0
  77. package/common/lib/kafka/kafka-admin.service.ts +51 -0
  78. package/common/lib/kafka/kafka-consumer.service.ts +59 -0
  79. package/common/lib/kafka/kafka-instance.const.ts +9 -0
  80. package/common/lib/kafka/kafka-logger.ts +25 -0
  81. package/common/lib/kafka/kafka-producer.service.ts +97 -0
  82. package/common/lib/kafka/kafka.interface.ts +22 -0
  83. package/common/lib/kafka/kafka.module.ts +80 -0
  84. package/common/lib/kafka/kafka.provider.ts +10 -0
  85. package/common/lib/kafka/kafka.service.ts +224 -0
  86. package/common/services/core-crud.service.ts +457 -0
  87. package/common/services/index.ts +1 -0
  88. package/common/strategy/index.ts +1 -0
  89. package/common/strategy/type-orm-naming.strategy.ts +17 -0
  90. package/common/validators/does-exist.validator.ts +42 -0
  91. package/common/validators/env.validator.ts +28 -0
  92. package/common/validators/index.ts +4 -0
  93. package/common/validators/is-unique.validator.ts +70 -0
  94. package/common/validators/validation-options.ts +38 -0
  95. package/dist/caching/caching.module.d.ts +2 -0
  96. package/dist/caching/caching.module.js +41 -0
  97. package/dist/caching/caching.module.js.map +1 -0
  98. package/dist/caching/caching.service.d.ts +9 -0
  99. package/dist/caching/caching.service.js +45 -0
  100. package/dist/caching/caching.service.js.map +1 -0
  101. package/dist/caching/index.d.ts +2 -0
  102. package/dist/caching/index.js +19 -0
  103. package/dist/caching/index.js.map +1 -0
  104. package/dist/constants/index.d.ts +1 -0
  105. package/dist/constants/index.js +18 -0
  106. package/dist/constants/index.js.map +1 -0
  107. package/dist/constants/validation-constraints.const.d.ts +14 -0
  108. package/dist/constants/validation-constraints.const.js +19 -0
  109. package/dist/constants/validation-constraints.const.js.map +1 -0
  110. package/dist/controllers/core-crud.controller.d.ts +19 -0
  111. package/dist/controllers/core-crud.controller.js +72 -0
  112. package/dist/controllers/core-crud.controller.js.map +1 -0
  113. package/dist/controllers/index.d.ts +1 -0
  114. package/dist/controllers/index.js +18 -0
  115. package/dist/controllers/index.js.map +1 -0
  116. package/dist/decorators/entity-order.decorator.d.ts +2 -0
  117. package/dist/decorators/entity-order.decorator.js +18 -0
  118. package/dist/decorators/entity-order.decorator.js.map +1 -0
  119. package/dist/decorators/index.d.ts +2 -0
  120. package/dist/decorators/index.js +19 -0
  121. package/dist/decorators/index.js.map +1 -0
  122. package/dist/decorators/swagger-api-response.decorator.d.ts +5 -0
  123. package/dist/decorators/swagger-api-response.decorator.js +25 -0
  124. package/dist/decorators/swagger-api-response.decorator.js.map +1 -0
  125. package/dist/decorators/validations/default/array-max-size.decorator.d.ts +1 -0
  126. package/dist/decorators/validations/default/array-max-size.decorator.js +12 -0
  127. package/dist/decorators/validations/default/array-max-size.decorator.js.map +1 -0
  128. package/dist/decorators/validations/default/array-min-size.decorator.d.ts +1 -0
  129. package/dist/decorators/validations/default/array-min-size.decorator.js +12 -0
  130. package/dist/decorators/validations/default/array-min-size.decorator.js.map +1 -0
  131. package/dist/decorators/validations/default/array-not-empty.decorator.d.ts +1 -0
  132. package/dist/decorators/validations/default/array-not-empty.decorator.js +10 -0
  133. package/dist/decorators/validations/default/array-not-empty.decorator.js.map +1 -0
  134. package/dist/decorators/validations/default/index.d.ts +20 -0
  135. package/dist/decorators/validations/default/index.js +37 -0
  136. package/dist/decorators/validations/default/index.js.map +1 -0
  137. package/dist/decorators/validations/default/is-array.decorator.d.ts +1 -0
  138. package/dist/decorators/validations/default/is-array.decorator.js +10 -0
  139. package/dist/decorators/validations/default/is-array.decorator.js.map +1 -0
  140. package/dist/decorators/validations/default/is-boolean.decorator.d.ts +3 -0
  141. package/dist/decorators/validations/default/is-boolean.decorator.js +10 -0
  142. package/dist/decorators/validations/default/is-boolean.decorator.js.map +1 -0
  143. package/dist/decorators/validations/default/is-date.decorator.d.ts +3 -0
  144. package/dist/decorators/validations/default/is-date.decorator.js +10 -0
  145. package/dist/decorators/validations/default/is-date.decorator.js.map +1 -0
  146. package/dist/decorators/validations/default/is-enum.decorator.d.ts +1 -0
  147. package/dist/decorators/validations/default/is-enum.decorator.js +12 -0
  148. package/dist/decorators/validations/default/is-enum.decorator.js.map +1 -0
  149. package/dist/decorators/validations/default/is-int.decorator.d.ts +3 -0
  150. package/dist/decorators/validations/default/is-int.decorator.js +10 -0
  151. package/dist/decorators/validations/default/is-int.decorator.js.map +1 -0
  152. package/dist/decorators/validations/default/is-not-empty-object.decorator.d.ts +5 -0
  153. package/dist/decorators/validations/default/is-not-empty-object.decorator.js +13 -0
  154. package/dist/decorators/validations/default/is-not-empty-object.decorator.js.map +1 -0
  155. package/dist/decorators/validations/default/is-not-empty.decorator.d.ts +1 -0
  156. package/dist/decorators/validations/default/is-not-empty.decorator.js +10 -0
  157. package/dist/decorators/validations/default/is-not-empty.decorator.js.map +1 -0
  158. package/dist/decorators/validations/default/is-number-string.decorator.d.ts +3 -0
  159. package/dist/decorators/validations/default/is-number-string.decorator.js +10 -0
  160. package/dist/decorators/validations/default/is-number-string.decorator.js.map +1 -0
  161. package/dist/decorators/validations/default/is-object.decorator.d.ts +2 -0
  162. package/dist/decorators/validations/default/is-object.decorator.js +10 -0
  163. package/dist/decorators/validations/default/is-object.decorator.js.map +1 -0
  164. package/dist/decorators/validations/default/is-positive.decorator.d.ts +3 -0
  165. package/dist/decorators/validations/default/is-positive.decorator.js +10 -0
  166. package/dist/decorators/validations/default/is-positive.decorator.js.map +1 -0
  167. package/dist/decorators/validations/default/is-string.decorator.d.ts +3 -0
  168. package/dist/decorators/validations/default/is-string.decorator.js +11 -0
  169. package/dist/decorators/validations/default/is-string.decorator.js.map +1 -0
  170. package/dist/decorators/validations/default/is-uuid.decorator.d.ts +3 -0
  171. package/dist/decorators/validations/default/is-uuid.decorator.js +10 -0
  172. package/dist/decorators/validations/default/is-uuid.decorator.js.map +1 -0
  173. package/dist/decorators/validations/default/matches.decorator.d.ts +3 -0
  174. package/dist/decorators/validations/default/matches.decorator.js +10 -0
  175. package/dist/decorators/validations/default/matches.decorator.js.map +1 -0
  176. package/dist/decorators/validations/default/max-length.decorator.d.ts +1 -0
  177. package/dist/decorators/validations/default/max-length.decorator.js +12 -0
  178. package/dist/decorators/validations/default/max-length.decorator.js.map +1 -0
  179. package/dist/decorators/validations/default/max.decorator.d.ts +3 -0
  180. package/dist/decorators/validations/default/max.decorator.js +10 -0
  181. package/dist/decorators/validations/default/max.decorator.js.map +1 -0
  182. package/dist/decorators/validations/default/min-length.decorator.d.ts +1 -0
  183. package/dist/decorators/validations/default/min-length.decorator.js +12 -0
  184. package/dist/decorators/validations/default/min-length.decorator.js.map +1 -0
  185. package/dist/decorators/validations/default/min.decorator.d.ts +3 -0
  186. package/dist/decorators/validations/default/min.decorator.js +10 -0
  187. package/dist/decorators/validations/default/min.decorator.js.map +1 -0
  188. package/dist/decorators/validations/index.d.ts +3 -0
  189. package/dist/decorators/validations/index.js +20 -0
  190. package/dist/decorators/validations/index.js.map +1 -0
  191. package/dist/decorators/validations/is-id.decorator.d.ts +4 -0
  192. package/dist/decorators/validations/is-id.decorator.js +21 -0
  193. package/dist/decorators/validations/is-id.decorator.js.map +1 -0
  194. package/dist/decorators/validations/is-not-empty-string.decorator.d.ts +4 -0
  195. package/dist/decorators/validations/is-not-empty-string.decorator.js +15 -0
  196. package/dist/decorators/validations/is-not-empty-string.decorator.js.map +1 -0
  197. package/dist/dto/index.d.ts +2 -0
  198. package/dist/dto/index.js +19 -0
  199. package/dist/dto/index.js.map +1 -0
  200. package/dist/dto/request/base-request.dto.d.ts +4 -0
  201. package/dist/dto/request/base-request.dto.js +24 -0
  202. package/dist/dto/request/base-request.dto.js.map +1 -0
  203. package/dist/dto/request/event.dto.d.ts +8 -0
  204. package/dist/dto/request/event.dto.js +45 -0
  205. package/dist/dto/request/event.dto.js.map +1 -0
  206. package/dist/dto/request/id.dto.d.ts +3 -0
  207. package/dist/dto/request/id.dto.js +25 -0
  208. package/dist/dto/request/id.dto.js.map +1 -0
  209. package/dist/dto/request/ids.dto.d.ts +3 -0
  210. package/dist/dto/request/ids.dto.js +28 -0
  211. package/dist/dto/request/ids.dto.js.map +1 -0
  212. package/dist/dto/request/index.d.ts +4 -0
  213. package/dist/dto/request/index.js +21 -0
  214. package/dist/dto/request/index.js.map +1 -0
  215. package/dist/dto/response/base-response-with-action-dates.dto.d.ts +7 -0
  216. package/dist/dto/response/base-response-with-action-dates.dto.js +36 -0
  217. package/dist/dto/response/base-response-with-action-dates.dto.js.map +1 -0
  218. package/dist/dto/response/base-response.dto.d.ts +4 -0
  219. package/dist/dto/response/base-response.dto.js +24 -0
  220. package/dist/dto/response/base-response.dto.js.map +1 -0
  221. package/dist/dto/response/error-response.dto.d.ts +8 -0
  222. package/dist/dto/response/error-response.dto.js +38 -0
  223. package/dist/dto/response/error-response.dto.js.map +1 -0
  224. package/dist/dto/response/index.d.ts +5 -0
  225. package/dist/dto/response/index.js +22 -0
  226. package/dist/dto/response/index.js.map +1 -0
  227. package/dist/dto/response/kafka-success-response.dto.d.ts +14 -0
  228. package/dist/dto/response/kafka-success-response.dto.js +66 -0
  229. package/dist/dto/response/kafka-success-response.dto.js.map +1 -0
  230. package/dist/dto/response/success-response.dto.d.ts +9 -0
  231. package/dist/dto/response/success-response.dto.js +44 -0
  232. package/dist/dto/response/success-response.dto.js.map +1 -0
  233. package/dist/dto/response/validation.dto.d.ts +25 -0
  234. package/dist/dto/response/validation.dto.js +84 -0
  235. package/dist/dto/response/validation.dto.js.map +1 -0
  236. package/dist/entities/action-dates.entity.d.ts +8 -0
  237. package/dist/entities/action-dates.entity.js +43 -0
  238. package/dist/entities/action-dates.entity.js.map +1 -0
  239. package/dist/entities/base.entity.d.ts +4 -0
  240. package/dist/entities/base.entity.js +22 -0
  241. package/dist/entities/base.entity.js.map +1 -0
  242. package/dist/entities/index.d.ts +2 -0
  243. package/dist/entities/index.js +19 -0
  244. package/dist/entities/index.js.map +1 -0
  245. package/dist/entities/parent.entity.d.ts +8 -0
  246. package/dist/entities/parent.entity.js +45 -0
  247. package/dist/entities/parent.entity.js.map +1 -0
  248. package/dist/enums/environments.enum.d.ts +6 -0
  249. package/dist/enums/environments.enum.js +11 -0
  250. package/dist/enums/environments.enum.js.map +1 -0
  251. package/dist/enums/index.d.ts +2 -0
  252. package/dist/enums/index.js +19 -0
  253. package/dist/enums/index.js.map +1 -0
  254. package/dist/enums/shared-messages.enum.d.ts +25 -0
  255. package/dist/enums/shared-messages.enum.js +30 -0
  256. package/dist/enums/shared-messages.enum.js.map +1 -0
  257. package/dist/filters/http-exception.filter.d.ts +8 -0
  258. package/dist/filters/http-exception.filter.js +65 -0
  259. package/dist/filters/http-exception.filter.js.map +1 -0
  260. package/dist/filters/index.d.ts +1 -0
  261. package/dist/filters/index.js +18 -0
  262. package/dist/filters/index.js.map +1 -0
  263. package/dist/filters/rpc-exception.filter.d.ts +5 -0
  264. package/dist/filters/rpc-exception.filter.js +21 -0
  265. package/dist/filters/rpc-exception.filter.js.map +1 -0
  266. package/dist/helper/get-env.d.ts +1 -0
  267. package/dist/helper/get-env.helper.d.ts +1 -0
  268. package/dist/helper/get-env.helper.js +7 -0
  269. package/dist/helper/get-env.helper.js.map +1 -0
  270. package/dist/helper/get-env.js +7 -0
  271. package/dist/helper/get-env.js.map +1 -0
  272. package/dist/helper/index.d.ts +2 -0
  273. package/dist/helper/index.js +19 -0
  274. package/dist/helper/index.js.map +1 -0
  275. package/dist/helper/message-formatter.helper.d.ts +3 -0
  276. package/dist/helper/message-formatter.helper.js +27 -0
  277. package/dist/helper/message-formatter.helper.js.map +1 -0
  278. package/dist/helper/multi-inheritance.helper.d.ts +1 -0
  279. package/dist/helper/multi-inheritance.helper.js +13 -0
  280. package/dist/helper/multi-inheritance.helper.js.map +1 -0
  281. package/dist/helper/multi-inheritance.util.d.ts +1 -0
  282. package/dist/helper/multi-inheritance.util.js +13 -0
  283. package/dist/helper/multi-inheritance.util.js.map +1 -0
  284. package/dist/index.d.ts +14 -0
  285. package/dist/index.js +18 -0
  286. package/dist/index.js.map +1 -0
  287. package/dist/interface/core-crud-service.option.d.ts +7 -0
  288. package/dist/interface/core-crud-service.option.js +10 -0
  289. package/dist/interface/core-crud-service.option.js.map +1 -0
  290. package/dist/interface/custom-validation-arguments.interface.d.ts +14 -0
  291. package/dist/interface/custom-validation-arguments.interface.js +3 -0
  292. package/dist/interface/custom-validation-arguments.interface.js.map +1 -0
  293. package/dist/interface/index.d.ts +2 -0
  294. package/dist/interface/index.js +19 -0
  295. package/dist/interface/index.js.map +1 -0
  296. package/dist/interface/kafka-success-response.interfase.d.ts +9 -0
  297. package/dist/interface/kafka-success-response.interfase.js +3 -0
  298. package/dist/interface/kafka-success-response.interfase.js.map +1 -0
  299. package/dist/interface/pagination-query.d.ts +13 -0
  300. package/dist/interface/pagination-query.js +55 -0
  301. package/dist/interface/pagination-query.js.map +1 -0
  302. package/dist/lib/index.d.ts +1 -0
  303. package/dist/lib/index.js +18 -0
  304. package/dist/lib/index.js.map +1 -0
  305. package/dist/lib/kafka/constant/consumer.const.d.ts +12 -0
  306. package/dist/lib/kafka/constant/consumer.const.js +18 -0
  307. package/dist/lib/kafka/constant/consumer.const.js.map +1 -0
  308. package/dist/lib/kafka/constant/kafka.const.d.ts +9 -0
  309. package/dist/lib/kafka/constant/kafka.const.js +14 -0
  310. package/dist/lib/kafka/constant/kafka.const.js.map +1 -0
  311. package/dist/lib/kafka/index.d.ts +4 -0
  312. package/dist/lib/kafka/index.js +8 -0
  313. package/dist/lib/kafka/index.js.map +1 -0
  314. package/dist/lib/kafka/kafka-admin.service.d.ts +7 -0
  315. package/dist/lib/kafka/kafka-admin.service.js +47 -0
  316. package/dist/lib/kafka/kafka-admin.service.js.map +1 -0
  317. package/dist/lib/kafka/kafka-consumer.service.d.ts +9 -0
  318. package/dist/lib/kafka/kafka-consumer.service.js +50 -0
  319. package/dist/lib/kafka/kafka-consumer.service.js.map +1 -0
  320. package/dist/lib/kafka/kafka-instance.const.d.ts +2 -0
  321. package/dist/lib/kafka/kafka-instance.const.js +12 -0
  322. package/dist/lib/kafka/kafka-instance.const.js.map +1 -0
  323. package/dist/lib/kafka/kafka-logger.d.ts +2 -0
  324. package/dist/lib/kafka/kafka-logger.js +22 -0
  325. package/dist/lib/kafka/kafka-logger.js.map +1 -0
  326. package/dist/lib/kafka/kafka-producer.service.d.ts +10 -0
  327. package/dist/lib/kafka/kafka-producer.service.js +76 -0
  328. package/dist/lib/kafka/kafka-producer.service.js.map +1 -0
  329. package/dist/lib/kafka/kafka.interface.d.ts +15 -0
  330. package/dist/lib/kafka/kafka.interface.js +5 -0
  331. package/dist/lib/kafka/kafka.interface.js.map +1 -0
  332. package/dist/lib/kafka/kafka.module.d.ts +10 -0
  333. package/dist/lib/kafka/kafka.module.js +77 -0
  334. package/dist/lib/kafka/kafka.module.js.map +1 -0
  335. package/dist/lib/kafka/kafka.provider.d.ts +7 -0
  336. package/dist/lib/kafka/kafka.provider.js +12 -0
  337. package/dist/lib/kafka/kafka.provider.js.map +1 -0
  338. package/dist/lib/kafka/kafka.service.d.ts +38 -0
  339. package/dist/lib/kafka/kafka.service.js +124 -0
  340. package/dist/lib/kafka/kafka.service.js.map +1 -0
  341. package/dist/services/core-crud.service.d.ts +31 -0
  342. package/dist/services/core-crud.service.js +318 -0
  343. package/dist/services/core-crud.service.js.map +1 -0
  344. package/dist/services/index.d.ts +1 -0
  345. package/dist/services/index.js +18 -0
  346. package/dist/services/index.js.map +1 -0
  347. package/dist/strategy/index.d.ts +1 -0
  348. package/dist/strategy/index.js +18 -0
  349. package/dist/strategy/index.js.map +1 -0
  350. package/dist/strategy/type-orm-naming.strategy.d.ts +4 -0
  351. package/dist/strategy/type-orm-naming.strategy.js +12 -0
  352. package/dist/strategy/type-orm-naming.strategy.js.map +1 -0
  353. package/dist/tsconfig.tsbuildinfo +1 -0
  354. package/dist/validators/does-exist.validator.d.ts +8 -0
  355. package/dist/validators/does-exist.validator.js +48 -0
  356. package/dist/validators/does-exist.validator.js.map +1 -0
  357. package/dist/validators/env.validator.d.ts +2 -0
  358. package/dist/validators/env.validator.js +27 -0
  359. package/dist/validators/env.validator.js.map +1 -0
  360. package/dist/validators/index.d.ts +4 -0
  361. package/dist/validators/index.js +21 -0
  362. package/dist/validators/index.js.map +1 -0
  363. package/dist/validators/is-unique.validator.d.ts +7 -0
  364. package/dist/validators/is-unique.validator.js +58 -0
  365. package/dist/validators/is-unique.validator.js.map +1 -0
  366. package/dist/validators/validation-options.d.ts +3 -0
  367. package/dist/validators/validation-options.js +28 -0
  368. package/dist/validators/validation-options.js.map +1 -0
  369. package/nest-cli.json +8 -0
  370. package/package.json +81 -0
  371. package/tsconfig.build.json +4 -0
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./kafka"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../common/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
@@ -0,0 +1,12 @@
1
+ export declare enum ConsumerManagerTask {
2
+ Bootstrap = "bootstrap",
3
+ Start = "start",
4
+ Stop = "stop",
5
+ Pause = "pause",
6
+ Resume = "resume",
7
+ Check = "check"
8
+ }
9
+ export declare enum TaskStatus {
10
+ SuccessFull = "SuccessFull",
11
+ Failed = "Failed"
12
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskStatus = exports.ConsumerManagerTask = void 0;
4
+ var ConsumerManagerTask;
5
+ (function (ConsumerManagerTask) {
6
+ ConsumerManagerTask["Bootstrap"] = "bootstrap";
7
+ ConsumerManagerTask["Start"] = "start";
8
+ ConsumerManagerTask["Stop"] = "stop";
9
+ ConsumerManagerTask["Pause"] = "pause";
10
+ ConsumerManagerTask["Resume"] = "resume";
11
+ ConsumerManagerTask["Check"] = "check";
12
+ })(ConsumerManagerTask || (exports.ConsumerManagerTask = ConsumerManagerTask = {}));
13
+ var TaskStatus;
14
+ (function (TaskStatus) {
15
+ TaskStatus["SuccessFull"] = "SuccessFull";
16
+ TaskStatus["Failed"] = "Failed";
17
+ })(TaskStatus || (exports.TaskStatus = TaskStatus = {}));
18
+ //# sourceMappingURL=consumer.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.const.js","sourceRoot":"","sources":["../../../../common/lib/kafka/constant/consumer.const.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,8CAAuB,CAAA;IACvB,sCAAe,CAAA;IACf,oCAAa,CAAA;IACb,sCAAe,CAAA;IACf,wCAAiB,CAAA;IACjB,sCAAe,CAAA;AACjB,CAAC,EAPW,mBAAmB,mCAAnB,mBAAmB,QAO9B;AAED,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,yCAA2B,CAAA;IAC3B,+BAAiB,CAAA;AACnB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
@@ -0,0 +1,9 @@
1
+ export declare enum KafkaHealthState {
2
+ Unknown = "Unknown",
3
+ PreparingRebalance = "PreparingRebalance",
4
+ CompletingRebalance = "CompletingRebalance",
5
+ Stable = "Stable",
6
+ Dead = "Dead",
7
+ Empty = "Empty",
8
+ Pause = "Pause"
9
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KafkaHealthState = void 0;
4
+ var KafkaHealthState;
5
+ (function (KafkaHealthState) {
6
+ KafkaHealthState["Unknown"] = "Unknown";
7
+ KafkaHealthState["PreparingRebalance"] = "PreparingRebalance";
8
+ KafkaHealthState["CompletingRebalance"] = "CompletingRebalance";
9
+ KafkaHealthState["Stable"] = "Stable";
10
+ KafkaHealthState["Dead"] = "Dead";
11
+ KafkaHealthState["Empty"] = "Empty";
12
+ KafkaHealthState["Pause"] = "Pause";
13
+ })(KafkaHealthState || (exports.KafkaHealthState = KafkaHealthState = {}));
14
+ //# sourceMappingURL=kafka.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.const.js","sourceRoot":"","sources":["../../../../common/lib/kafka/constant/kafka.const.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,6DAAyC,CAAA;IACzC,+DAA2C,CAAA;IAC3C,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,mCAAe,CAAA;IACf,mCAAe,CAAA;AACjB,CAAC,EARW,gBAAgB,gCAAhB,gBAAgB,QAQ3B"}
@@ -0,0 +1,4 @@
1
+ import { KafkaModule } from './kafka.module';
2
+ import { KafkaModuleOptions } from './kafka.interface';
3
+ import { KafkaService } from './kafka.service';
4
+ export { KafkaModule, KafkaService, KafkaModuleOptions };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KafkaService = exports.KafkaModule = void 0;
4
+ const kafka_module_1 = require("./kafka.module");
5
+ Object.defineProperty(exports, "KafkaModule", { enumerable: true, get: function () { return kafka_module_1.KafkaModule; } });
6
+ const kafka_service_1 = require("./kafka.service");
7
+ Object.defineProperty(exports, "KafkaService", { enumerable: true, get: function () { return kafka_service_1.KafkaService; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../common/lib/kafka/index.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAIpC,4FAJA,0BAAW,OAIA;AAFpB,mDAA+C;AAEzB,6FAFb,4BAAY,OAEa"}
@@ -0,0 +1,7 @@
1
+ export default class KafkaAdminService {
2
+ private kafkaAdmin;
3
+ constructor(clientId: string, brokers: string[]);
4
+ getTopics(): Promise<string[]>;
5
+ private shutdown;
6
+ private createKafkaAdmin;
7
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const common_1 = require("@nestjs/common");
4
+ const kafka_instance_const_1 = require("./kafka-instance.const");
5
+ class KafkaAdminService {
6
+ constructor(clientId, brokers) {
7
+ this.kafkaAdmin = this.createKafkaAdmin(clientId, brokers);
8
+ const errorTypes = ['unhandledRejection', 'uncaughtException'];
9
+ const signalTraps = ['SIGTERM', 'SIGINT', 'SIGUSR2'];
10
+ errorTypes.forEach((type) => {
11
+ process.on(type, async (e) => {
12
+ try {
13
+ common_1.Logger.log(`process.on ${type}`);
14
+ common_1.Logger.error(e);
15
+ await this.shutdown();
16
+ process.exit(0);
17
+ }
18
+ catch (_) {
19
+ process.exit(1);
20
+ }
21
+ });
22
+ });
23
+ signalTraps.forEach((type) => {
24
+ process.once(type, async () => {
25
+ try {
26
+ await this.shutdown();
27
+ }
28
+ finally {
29
+ process.kill(process.pid, type);
30
+ }
31
+ });
32
+ });
33
+ }
34
+ async getTopics() {
35
+ let topics = await this.kafkaAdmin.listTopics();
36
+ topics = topics.filter((topic) => topic.slice(0, 1) !== '_');
37
+ return topics;
38
+ }
39
+ async shutdown() {
40
+ await this.kafkaAdmin.disconnect();
41
+ }
42
+ createKafkaAdmin(clientId, brokers) {
43
+ return (0, kafka_instance_const_1.kafka)(clientId, brokers).admin();
44
+ }
45
+ }
46
+ exports.default = KafkaAdminService;
47
+ //# sourceMappingURL=kafka-admin.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-admin.service.js","sourceRoot":"","sources":["../../../common/lib/kafka/kafka-admin.service.ts"],"names":[],"mappings":";;AACA,2CAAwC;AACxC,iEAA+C;AAE/C,MAAqB,iBAAiB;IAGpC,YAAmB,QAAgB,EAAE,OAAiB;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAErD,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI,CAAC;oBACH,eAAM,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;oBACjC,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAC5B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxB,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAChD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAEO,gBAAgB,CAAC,QAAQ,EAAE,OAAO;QACxC,OAAO,IAAA,4BAAK,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;CACF;AA9CD,oCA8CC"}
@@ -0,0 +1,9 @@
1
+ import { Consumer } from 'kafkajs';
2
+ export default class KafkaConsumerService {
3
+ private kafkaConsumer;
4
+ constructor(clientId: any, brokers: any, groupId: any);
5
+ connectConsumer(): Promise<Consumer>;
6
+ healthCheck(): Promise<import("kafkajs").ConsumerGroupState>;
7
+ shutdown(): Promise<void>;
8
+ private createKafkaConsumer;
9
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const common_1 = require("@nestjs/common");
4
+ const kafka_instance_const_1 = require("./kafka-instance.const");
5
+ class KafkaConsumerService {
6
+ constructor(clientId, brokers, groupId) {
7
+ this.kafkaConsumer = this.createKafkaConsumer(clientId, brokers, groupId);
8
+ const errorTypes = ['unhandledRejection', 'uncaughtException'];
9
+ const signalTraps = ['SIGTERM', 'SIGINT', 'SIGUSR2'];
10
+ errorTypes.forEach((type) => {
11
+ process.on(type, async (e) => {
12
+ try {
13
+ common_1.Logger.log(`process.on ${type}`);
14
+ common_1.Logger.error(e);
15
+ await this.shutdown();
16
+ process.exit(0);
17
+ }
18
+ catch (_) {
19
+ process.exit(1);
20
+ }
21
+ });
22
+ });
23
+ signalTraps.forEach((type) => {
24
+ process.once(type, async () => {
25
+ try {
26
+ await this.shutdown();
27
+ }
28
+ finally {
29
+ process.kill(process.pid, type);
30
+ }
31
+ });
32
+ });
33
+ }
34
+ async connectConsumer() {
35
+ await this.kafkaConsumer.connect();
36
+ return this.kafkaConsumer;
37
+ }
38
+ async healthCheck() {
39
+ const describe = await this.kafkaConsumer.describeGroup();
40
+ return describe.state;
41
+ }
42
+ async shutdown() {
43
+ await this.kafkaConsumer.disconnect();
44
+ }
45
+ createKafkaConsumer(clientId, brokers, groupId = 'consumer-group') {
46
+ return (0, kafka_instance_const_1.kafka)(clientId, brokers).consumer({ groupId });
47
+ }
48
+ }
49
+ exports.default = KafkaConsumerService;
50
+ //# sourceMappingURL=kafka-consumer.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-consumer.service.js","sourceRoot":"","sources":["../../../common/lib/kafka/kafka-consumer.service.ts"],"names":[],"mappings":";;AACA,2CAAwC;AACxC,iEAA+C;AAE/C,MAAqB,oBAAoB;IAGvC,YAAmB,QAAQ,EAAE,OAAO,EAAE,OAAO;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE1E,MAAM,UAAU,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAErD,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI,CAAC;oBACH,eAAM,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;oBACjC,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAC5B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxB,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,eAAe;QAC1B,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAC1D,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;IAEO,mBAAmB,CACzB,QAAQ,EACR,OAAO,EACP,OAAO,GAAG,gBAAgB;QAE1B,OAAO,IAAA,4BAAK,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;CACF;AAtDD,uCAsDC"}
@@ -0,0 +1,2 @@
1
+ import { Kafka } from 'kafkajs';
2
+ export declare const kafka: (clientId: string, brokers: string[]) => Kafka;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.kafka = void 0;
4
+ const kafka_logger_1 = require("./kafka-logger");
5
+ const kafkajs_1 = require("kafkajs");
6
+ const kafka = (clientId, brokers) => new kafkajs_1.Kafka({
7
+ clientId,
8
+ brokers,
9
+ logCreator: kafka_logger_1.createKafkaLoggerAdapter,
10
+ });
11
+ exports.kafka = kafka;
12
+ //# sourceMappingURL=kafka-instance.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-instance.const.js","sourceRoot":"","sources":["../../../common/lib/kafka/kafka-instance.const.ts"],"names":[],"mappings":";;;AAAA,iDAA0D;AAC1D,qCAAgC;AAEzB,MAAM,KAAK,GAAG,CAAC,QAAgB,EAAE,OAAiB,EAAE,EAAE,CAC3D,IAAI,eAAK,CAAC;IACR,QAAQ;IACR,OAAO;IACP,UAAU,EAAE,uCAAwB;CACrC,CAAC,CAAC;AALQ,QAAA,KAAK,SAKb"}
@@ -0,0 +1,2 @@
1
+ import { logCreator } from 'kafkajs';
2
+ export declare const createKafkaLoggerAdapter: logCreator;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createKafkaLoggerAdapter = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const kafkajs_1 = require("kafkajs");
6
+ const createKafkaLoggerAdapter = () => {
7
+ const nestLogger = new common_1.Logger('KafkaJS', { timestamp: true });
8
+ const logMethodMap = {
9
+ [kafkajs_1.logLevel.ERROR]: 'error',
10
+ [kafkajs_1.logLevel.WARN]: 'warn',
11
+ [kafkajs_1.logLevel.INFO]: 'log',
12
+ [kafkajs_1.logLevel.DEBUG]: 'debug',
13
+ [kafkajs_1.logLevel.NOTHING]: 'verbose',
14
+ };
15
+ return ({ namespace, level, label, log }) => {
16
+ const { message, ...extra } = log;
17
+ const method = logMethodMap[level] || 'log';
18
+ nestLogger[method](`${label} [${namespace}] ${message}`, JSON.stringify(extra));
19
+ };
20
+ };
21
+ exports.createKafkaLoggerAdapter = createKafkaLoggerAdapter;
22
+ //# sourceMappingURL=kafka-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-logger.js","sourceRoot":"","sources":["../../../common/lib/kafka/kafka-logger.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,qCAAyD;AAGzD,MAAM,wBAAwB,GAAe,GAAG,EAAE;IAChD,MAAM,UAAU,GAAG,IAAI,eAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG;QACnB,CAAC,kBAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;QACzB,CAAC,kBAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;QACvB,CAAC,kBAAQ,CAAC,IAAI,CAAC,EAAE,KAAK;QACtB,CAAC,kBAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;QACzB,CAAC,kBAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;KAC9B,CAAC;IAEF,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAY,EAAE,EAAE;QACpD,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC;QAClC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QAE5C,UAAU,CAAC,MAAM,CAAC,CAChB,GAAG,KAAK,KAAK,SAAS,KAAK,OAAO,EAAE,EACpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CACtB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AApBI,QAAA,wBAAwB,4BAoB5B"}
@@ -0,0 +1,10 @@
1
+ export default class KafkaProducerService {
2
+ private producer;
3
+ constructor(clientId: string, brokers: string[]);
4
+ private setupGracefulShutdown;
5
+ start(): Promise<this>;
6
+ shutdown(): Promise<void>;
7
+ sendBatch(topic: string, messages: Array<object>): Promise<void>;
8
+ sendEvent(topic: string, message: unknown, partition?: number): Promise<void>;
9
+ private createProducer;
10
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const common_1 = require("@nestjs/common");
4
+ const kafka_instance_const_1 = require("./kafka-instance.const");
5
+ class KafkaProducerService {
6
+ constructor(clientId, brokers) {
7
+ this.producer = this.createProducer(clientId, brokers);
8
+ this.setupGracefulShutdown();
9
+ }
10
+ setupGracefulShutdown() {
11
+ const errorTypes = ['unhandledRejection', 'uncaughtException'];
12
+ const signalTraps = ['SIGTERM', 'SIGINT', 'SIGUSR2'];
13
+ errorTypes.forEach((type) => {
14
+ process.on(type, async (e) => {
15
+ try {
16
+ common_1.Logger.log(`process.on ${type}`);
17
+ common_1.Logger.error(e);
18
+ await this.shutdown();
19
+ process.exit(0);
20
+ }
21
+ catch (_) {
22
+ process.exit(1);
23
+ }
24
+ });
25
+ });
26
+ signalTraps.forEach((type) => {
27
+ process.once(type, async () => {
28
+ try {
29
+ await this.shutdown();
30
+ }
31
+ finally {
32
+ process.kill(process.pid, type);
33
+ }
34
+ });
35
+ });
36
+ }
37
+ async start() {
38
+ await this.producer.connect();
39
+ return this;
40
+ }
41
+ async shutdown() {
42
+ await this.producer.disconnect();
43
+ }
44
+ async sendBatch(topic, messages) {
45
+ const kafkaMessages = messages.map((message) => {
46
+ return {
47
+ value: JSON.stringify(message),
48
+ };
49
+ });
50
+ const topicMessages = {
51
+ topic,
52
+ messages: kafkaMessages,
53
+ };
54
+ const batch = {
55
+ topicMessages: [topicMessages],
56
+ };
57
+ await this.producer.sendBatch(batch);
58
+ }
59
+ async sendEvent(topic, message, partition = undefined) {
60
+ const producer = this.producer;
61
+ const kafkaMessage = {
62
+ value: typeof message == 'string' ? message : JSON.stringify(message),
63
+ };
64
+ kafkaMessage.partition = partition;
65
+ const sendOptions = {
66
+ topic,
67
+ messages: [kafkaMessage],
68
+ };
69
+ await producer.send(sendOptions);
70
+ }
71
+ createProducer(clientId, brokers) {
72
+ return (0, kafka_instance_const_1.kafka)(clientId, brokers).producer();
73
+ }
74
+ }
75
+ exports.default = KafkaProducerService;
76
+ //# sourceMappingURL=kafka-producer.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-producer.service.js","sourceRoot":"","sources":["../../../common/lib/kafka/kafka-producer.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { ModuleMetadata, Type } from '@nestjs/common';
2
+ export declare const KAFKA_MODULE_OPTIONS = "KAFKA_MODULE_OPTIONS";
3
+ export interface KafkaModuleOptions {
4
+ clientId: string;
5
+ brokers: string[];
6
+ }
7
+ export interface KafkaModuleFactory {
8
+ createModuleOptions: () => Promise<KafkaModuleOptions> | KafkaModuleOptions;
9
+ }
10
+ export interface KafkaModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
11
+ inject?: any[];
12
+ useClass?: Type<KafkaModuleFactory>;
13
+ useExisting?: Type<KafkaModuleFactory>;
14
+ useFactory?: (...args: any[]) => Promise<KafkaModuleOptions> | KafkaModuleOptions;
15
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KAFKA_MODULE_OPTIONS = void 0;
4
+ exports.KAFKA_MODULE_OPTIONS = 'KAFKA_MODULE_OPTIONS';
5
+ //# sourceMappingURL=kafka.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.interface.js","sourceRoot":"","sources":["../../../common/lib/kafka/kafka.interface.ts"],"names":[],"mappings":";;;AAEa,QAAA,oBAAoB,GAAG,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { KafkaModuleAsyncOptions, KafkaModuleOptions } from './kafka.interface';
3
+ export declare class KafkaModule {
4
+ static forRoot(options: KafkaModuleOptions): DynamicModule;
5
+ static forRootAsync(options: KafkaModuleAsyncOptions): DynamicModule;
6
+ private static createAsyncProviders;
7
+ private static createProviders;
8
+ private static createAsyncOptionsProvider;
9
+ private static createOptionsProvider;
10
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var KafkaModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.KafkaModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const kafka_interface_1 = require("./kafka.interface");
13
+ const index_1 = require("./index");
14
+ let KafkaModule = KafkaModule_1 = class KafkaModule {
15
+ static forRoot(options) {
16
+ return {
17
+ module: KafkaModule_1,
18
+ providers: [
19
+ {
20
+ provide: kafka_interface_1.KAFKA_MODULE_OPTIONS,
21
+ useValue: options,
22
+ },
23
+ index_1.KafkaService,
24
+ ],
25
+ exports: [index_1.KafkaService],
26
+ };
27
+ }
28
+ static forRootAsync(options) {
29
+ return {
30
+ module: KafkaModule_1,
31
+ imports: [...options.imports],
32
+ providers: [...this.createAsyncProviders(options), index_1.KafkaService],
33
+ exports: [...this.createAsyncProviders(options), index_1.KafkaService],
34
+ };
35
+ }
36
+ static createAsyncProviders(options) {
37
+ if (options.useExisting || options.useFactory) {
38
+ return [this.createAsyncOptionsProvider(options)];
39
+ }
40
+ return [
41
+ this.createAsyncOptionsProvider(options),
42
+ {
43
+ provide: options.useClass,
44
+ useClass: options.useClass,
45
+ },
46
+ ];
47
+ }
48
+ static createProviders(options) {
49
+ return [this.createOptionsProvider(options)];
50
+ }
51
+ static createAsyncOptionsProvider(options) {
52
+ if (options.useFactory) {
53
+ return {
54
+ provide: kafka_interface_1.KAFKA_MODULE_OPTIONS,
55
+ useFactory: options.useFactory,
56
+ inject: options.inject || [],
57
+ };
58
+ }
59
+ return {
60
+ provide: kafka_interface_1.KAFKA_MODULE_OPTIONS,
61
+ useFactory: async (optionsFactory) => await optionsFactory.createModuleOptions(),
62
+ inject: [options.useExisting || options.useClass],
63
+ };
64
+ }
65
+ static createOptionsProvider(options) {
66
+ return {
67
+ provide: kafka_interface_1.KAFKA_MODULE_OPTIONS,
68
+ useFactory: async (optionsFactory) => await optionsFactory.createModuleOptions(),
69
+ };
70
+ }
71
+ };
72
+ exports.KafkaModule = KafkaModule;
73
+ exports.KafkaModule = KafkaModule = KafkaModule_1 = __decorate([
74
+ (0, common_1.Global)(),
75
+ (0, common_1.Module)({})
76
+ ], KafkaModule);
77
+ //# sourceMappingURL=kafka.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.module.js","sourceRoot":"","sources":["../../../common/lib/kafka/kafka.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAyE;AAEzE,uDAK2B;AAC3B,mCAAuC;AAIhC,IAAM,WAAW,mBAAjB,MAAM,WAAW;IACtB,MAAM,CAAC,OAAO,CAAC,OAA2B;QACxC,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,sCAAoB;oBAC7B,QAAQ,EAAE,OAAO;iBAClB;gBACD,oBAAY;aACb;YACD,OAAO,EAAE,CAAC,oBAAY,CAAC;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAgC;QAClD,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;YAC7B,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,oBAAY,CAAC;YAChE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,oBAAY,CAAC;SAC/D,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,oBAAoB,CACjC,OAAgC;QAEhC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO;YACL,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;YACxC;gBACE,OAAO,EAAE,OAAO,CAAC,QAAQ;gBACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;SACF,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,OAA2B;QACxD,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;IACO,MAAM,CAAC,0BAA0B,CACvC,OAAgC;QAEhC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,sCAAoB;gBAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;aAC7B,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,sCAAoB;YAC7B,UAAU,EAAE,KAAK,EAAE,cAAkC,EAAE,EAAE,CACvD,MAAM,cAAc,CAAC,mBAAmB,EAAE;YAC5C,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;SAClD,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,OAA2B;QAC9D,OAAO;YACL,OAAO,EAAE,sCAAoB;YAC7B,UAAU,EAAE,KAAK,EAAE,cAAkC,EAAE,EAAE,CACvD,MAAM,cAAc,CAAC,mBAAmB,EAAE;SAC7C,CAAC;IACJ,CAAC;CACF,CAAA;AAnEY,kCAAW;sBAAX,WAAW;IAFvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,WAAW,CAmEvB"}
@@ -0,0 +1,7 @@
1
+ import { KafkaService } from './kafka.service';
2
+ import { KafkaModuleOptions } from './kafka.interface';
3
+ export declare const KafkaProviders: {
4
+ provide: string;
5
+ useFactory: (options: KafkaModuleOptions) => KafkaService;
6
+ inject: string[];
7
+ }[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KafkaProviders = void 0;
4
+ const kafka_service_1 = require("./kafka.service");
5
+ exports.KafkaProviders = [
6
+ {
7
+ provide: 'KAFKA_MODEL',
8
+ useFactory: (options) => new kafka_service_1.KafkaService(options),
9
+ inject: ['DATABASE_CONNECTION'],
10
+ },
11
+ ];
12
+ //# sourceMappingURL=kafka.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.provider.js","sourceRoot":"","sources":["../../../common/lib/kafka/kafka.provider.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAGlC,QAAA,cAAc,GAAG;IAC5B;QACE,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,CAAC,OAA2B,EAAE,EAAE,CAAC,IAAI,4BAAY,CAAC,OAAO,CAAC;QACtE,MAAM,EAAE,CAAC,qBAAqB,CAAC;KAChC;CACF,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { Consumer } from 'kafkajs';
2
+ import { KafkaModuleOptions } from './kafka.interface';
3
+ import { KafkaHealthState } from './constant/kafka.const';
4
+ export declare class KafkaService {
5
+ private kafkaModuleOptions;
6
+ private static instance;
7
+ private consumers;
8
+ private consumersInstance;
9
+ private producerInstance;
10
+ private adminInstance;
11
+ topics: {
12
+ [groupId: string]: string[];
13
+ };
14
+ groupIds: {
15
+ [item: string]: string;
16
+ };
17
+ constructor(kafkaModuleOptions: KafkaModuleOptions);
18
+ getAvailableTopics(): Promise<string[]>;
19
+ startProducer(): Promise<void>;
20
+ stopProducer(): Promise<void>;
21
+ sendProducerEvent(topic: string, message: unknown, partition?: number): Promise<void>;
22
+ setBulkConsumer(consumersInfo: {
23
+ groupIdKey: string;
24
+ topics: string[];
25
+ groupIdDefaultValue?: string;
26
+ }[]): Promise<void>;
27
+ setConsumer(consumersInfo: {
28
+ groupIdKey: string;
29
+ topics: string[];
30
+ groupIdDefaultValue?: string;
31
+ }): Promise<void>;
32
+ startAllConsumers(): Promise<void>;
33
+ stopAllConsumers(): Promise<void[]>;
34
+ startConsumerByGroupId(groupId: string, fromBeginning?: boolean): Promise<Consumer>;
35
+ stopConsumerByGroupId(groupId: string): Promise<void>;
36
+ healthCheck(groupId: string): Promise<KafkaHealthState>;
37
+ getConsumerInstanceByGroupId(groupId: string): Consumer;
38
+ }