@dextinity/brevo-api 2.0.0-canary-20260729062014

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 (363) hide show
  1. package/LICENSE +24 -0
  2. package/lib/blacklisted-contacts/blacklisted-contacts.module.d.ts +12 -0
  3. package/lib/blacklisted-contacts/blacklisted-contacts.module.d.ts.map +1 -0
  4. package/lib/blacklisted-contacts/blacklisted-contacts.module.js +28 -0
  5. package/lib/blacklisted-contacts/blacklisted-contacts.module.js.map +1 -0
  6. package/lib/blacklisted-contacts/blacklisted-contacts.service.d.ts +13 -0
  7. package/lib/blacklisted-contacts/blacklisted-contacts.service.d.ts.map +1 -0
  8. package/lib/blacklisted-contacts/blacklisted-contacts.service.js +55 -0
  9. package/lib/blacklisted-contacts/blacklisted-contacts.service.js.map +1 -0
  10. package/lib/blacklisted-contacts/entity/blacklisted-contacts.entity.factory.d.ts +12 -0
  11. package/lib/blacklisted-contacts/entity/blacklisted-contacts.entity.factory.d.ts.map +1 -0
  12. package/lib/blacklisted-contacts/entity/blacklisted-contacts.entity.factory.js +63 -0
  13. package/lib/blacklisted-contacts/entity/blacklisted-contacts.entity.factory.js.map +1 -0
  14. package/lib/blocks/newsletter-image.block.d.ts +11 -0
  15. package/lib/blocks/newsletter-image.block.d.ts.map +1 -0
  16. package/lib/blocks/newsletter-image.block.js +32 -0
  17. package/lib/blocks/newsletter-image.block.js.map +1 -0
  18. package/lib/brevo-api/brevo-api-campaigns.service.d.ts +42 -0
  19. package/lib/brevo-api/brevo-api-campaigns.service.d.ts.map +1 -0
  20. package/lib/brevo-api/brevo-api-campaigns.service.js +188 -0
  21. package/lib/brevo-api/brevo-api-campaigns.service.js.map +1 -0
  22. package/lib/brevo-api/brevo-api-client.factory.d.ts +10 -0
  23. package/lib/brevo-api/brevo-api-client.factory.d.ts.map +1 -0
  24. package/lib/brevo-api/brevo-api-client.factory.js +48 -0
  25. package/lib/brevo-api/brevo-api-client.factory.js.map +1 -0
  26. package/lib/brevo-api/brevo-api-contact.service.d.ts +49 -0
  27. package/lib/brevo-api/brevo-api-contact.service.d.ts.map +1 -0
  28. package/lib/brevo-api/brevo-api-contact.service.js +265 -0
  29. package/lib/brevo-api/brevo-api-contact.service.js.map +1 -0
  30. package/lib/brevo-api/brevo-api-folders.service.d.ts +9 -0
  31. package/lib/brevo-api/brevo-api-folders.service.d.ts.map +1 -0
  32. package/lib/brevo-api/brevo-api-folders.service.js +43 -0
  33. package/lib/brevo-api/brevo-api-folders.service.js.map +1 -0
  34. package/lib/brevo-api/brevo-api-sender.service.d.ts +9 -0
  35. package/lib/brevo-api/brevo-api-sender.service.d.ts.map +1 -0
  36. package/lib/brevo-api/brevo-api-sender.service.js +35 -0
  37. package/lib/brevo-api/brevo-api-sender.service.js.map +1 -0
  38. package/lib/brevo-api/brevo-api-transactional-mails.service.d.ts +14 -0
  39. package/lib/brevo-api/brevo-api-transactional-mails.service.d.ts.map +1 -0
  40. package/lib/brevo-api/brevo-api-transactional-mails.service.js +55 -0
  41. package/lib/brevo-api/brevo-api-transactional-mails.service.js.map +1 -0
  42. package/lib/brevo-api/brevo-api.module.d.ts +3 -0
  43. package/lib/brevo-api/brevo-api.module.d.ts.map +1 -0
  44. package/lib/brevo-api/brevo-api.module.js +37 -0
  45. package/lib/brevo-api/brevo-api.module.js.map +1 -0
  46. package/lib/brevo-api/brevo-api.utils.d.ts +4 -0
  47. package/lib/brevo-api/brevo-api.utils.d.ts.map +1 -0
  48. package/lib/brevo-api/brevo-api.utils.js +18 -0
  49. package/lib/brevo-api/brevo-api.utils.js.map +1 -0
  50. package/lib/brevo-api/dto/brevo-api-campaign-statistics.d.ts +15 -0
  51. package/lib/brevo-api/dto/brevo-api-campaign-statistics.d.ts.map +1 -0
  52. package/lib/brevo-api/dto/brevo-api-campaign-statistics.js +70 -0
  53. package/lib/brevo-api/dto/brevo-api-campaign-statistics.js.map +1 -0
  54. package/lib/brevo-api/dto/brevo-api-campaign.d.ts +30 -0
  55. package/lib/brevo-api/dto/brevo-api-campaign.d.ts.map +1 -0
  56. package/lib/brevo-api/dto/brevo-api-campaign.js +3 -0
  57. package/lib/brevo-api/dto/brevo-api-campaign.js.map +1 -0
  58. package/lib/brevo-api/dto/brevo-api-contact-list.d.ts +11 -0
  59. package/lib/brevo-api/dto/brevo-api-contact-list.d.ts.map +1 -0
  60. package/lib/brevo-api/dto/brevo-api-contact-list.js +52 -0
  61. package/lib/brevo-api/dto/brevo-api-contact-list.js.map +1 -0
  62. package/lib/brevo-api/dto/brevo-api-email-templates-list.d.ts +25 -0
  63. package/lib/brevo-api/dto/brevo-api-email-templates-list.d.ts.map +1 -0
  64. package/lib/brevo-api/dto/brevo-api-email-templates-list.js +99 -0
  65. package/lib/brevo-api/dto/brevo-api-email-templates-list.js.map +1 -0
  66. package/lib/brevo-api/dto/brevo-api-folder.d.ts +5 -0
  67. package/lib/brevo-api/dto/brevo-api-folder.d.ts.map +1 -0
  68. package/lib/brevo-api/dto/brevo-api-folder.js +28 -0
  69. package/lib/brevo-api/dto/brevo-api-folder.js.map +1 -0
  70. package/lib/brevo-api/dto/brevo-api-sender.d.ts +14 -0
  71. package/lib/brevo-api/dto/brevo-api-sender.d.ts.map +1 -0
  72. package/lib/brevo-api/dto/brevo-api-sender.js +57 -0
  73. package/lib/brevo-api/dto/brevo-api-sender.js.map +1 -0
  74. package/lib/brevo-config/brevo-config.module.d.ts +12 -0
  75. package/lib/brevo-config/brevo-config.module.d.ts.map +1 -0
  76. package/lib/brevo-config/brevo-config.module.js +29 -0
  77. package/lib/brevo-config/brevo-config.module.js.map +1 -0
  78. package/lib/brevo-config/brevo-config.resolver.d.ts +8 -0
  79. package/lib/brevo-config/brevo-config.resolver.d.ts.map +1 -0
  80. package/lib/brevo-config/brevo-config.resolver.js +184 -0
  81. package/lib/brevo-config/brevo-config.resolver.js.map +1 -0
  82. package/lib/brevo-config/dto/brevo-config.input.d.ts +13 -0
  83. package/lib/brevo-config/dto/brevo-config.input.d.ts.map +1 -0
  84. package/lib/brevo-config/dto/brevo-config.input.js +64 -0
  85. package/lib/brevo-config/dto/brevo-config.input.js.map +1 -0
  86. package/lib/brevo-config/entities/brevo-config-entity.factory.d.ts +22 -0
  87. package/lib/brevo-config/entities/brevo-config-entity.factory.d.ts.map +1 -0
  88. package/lib/brevo-config/entities/brevo-config-entity.factory.js +91 -0
  89. package/lib/brevo-config/entities/brevo-config-entity.factory.js.map +1 -0
  90. package/lib/brevo-contact/brevo-contact-import.console.d.ts +6 -0
  91. package/lib/brevo-contact/brevo-contact-import.console.d.ts.map +1 -0
  92. package/lib/brevo-contact/brevo-contact-import.console.js +176 -0
  93. package/lib/brevo-contact/brevo-contact-import.console.js.map +1 -0
  94. package/lib/brevo-contact/brevo-contact-import.resolver.d.ts +8 -0
  95. package/lib/brevo-contact/brevo-contact-import.resolver.d.ts.map +1 -0
  96. package/lib/brevo-contact/brevo-contact-import.resolver.js +91 -0
  97. package/lib/brevo-contact/brevo-contact-import.resolver.js.map +1 -0
  98. package/lib/brevo-contact/brevo-contact-import.service.d.ts +44 -0
  99. package/lib/brevo-contact/brevo-contact-import.service.d.ts.map +1 -0
  100. package/lib/brevo-contact/brevo-contact-import.service.js +277 -0
  101. package/lib/brevo-contact/brevo-contact-import.service.js.map +1 -0
  102. package/lib/brevo-contact/brevo-contact.console.d.ts +12 -0
  103. package/lib/brevo-contact/brevo-contact.console.d.ts.map +1 -0
  104. package/lib/brevo-contact/brevo-contact.console.js +62 -0
  105. package/lib/brevo-contact/brevo-contact.console.js.map +1 -0
  106. package/lib/brevo-contact/brevo-contact.module.d.ts +17 -0
  107. package/lib/brevo-contact/brevo-contact.module.d.ts.map +1 -0
  108. package/lib/brevo-contact/brevo-contact.module.js +73 -0
  109. package/lib/brevo-contact/brevo-contact.module.js.map +1 -0
  110. package/lib/brevo-contact/brevo-contact.resolver.d.ts +15 -0
  111. package/lib/brevo-contact/brevo-contact.resolver.d.ts.map +1 -0
  112. package/lib/brevo-contact/brevo-contact.resolver.js +330 -0
  113. package/lib/brevo-contact/brevo-contact.resolver.js.map +1 -0
  114. package/lib/brevo-contact/brevo-contacts.service.d.ts +49 -0
  115. package/lib/brevo-contact/brevo-contacts.service.d.ts.map +1 -0
  116. package/lib/brevo-contact/brevo-contacts.service.js +158 -0
  117. package/lib/brevo-contact/brevo-contacts.service.js.map +1 -0
  118. package/lib/brevo-contact/dto/brevo-contact-import.args.d.ts +15 -0
  119. package/lib/brevo-contact/dto/brevo-contact-import.args.d.ts.map +1 -0
  120. package/lib/brevo-contact/dto/brevo-contact-import.args.js +49 -0
  121. package/lib/brevo-contact/dto/brevo-contact-import.args.js.map +1 -0
  122. package/lib/brevo-contact/dto/brevo-contact-input.factory.d.ts +21 -0
  123. package/lib/brevo-contact/dto/brevo-contact-input.factory.d.ts.map +1 -0
  124. package/lib/brevo-contact/dto/brevo-contact-input.factory.js +106 -0
  125. package/lib/brevo-contact/dto/brevo-contact-input.factory.js.map +1 -0
  126. package/lib/brevo-contact/dto/brevo-contact.factory.d.ts +19 -0
  127. package/lib/brevo-contact/dto/brevo-contact.factory.d.ts.map +1 -0
  128. package/lib/brevo-contact/dto/brevo-contact.factory.js +74 -0
  129. package/lib/brevo-contact/dto/brevo-contact.factory.js.map +1 -0
  130. package/lib/brevo-contact/dto/brevo-contacts.args.d.ts +16 -0
  131. package/lib/brevo-contact/dto/brevo-contacts.args.d.ts.map +1 -0
  132. package/lib/brevo-contact/dto/brevo-contacts.args.js +45 -0
  133. package/lib/brevo-contact/dto/brevo-contacts.args.js.map +1 -0
  134. package/lib/brevo-contact/dto/brevo-test-contact-input.factory.d.ts +14 -0
  135. package/lib/brevo-contact/dto/brevo-test-contact-input.factory.d.ts.map +1 -0
  136. package/lib/brevo-contact/dto/brevo-test-contact-input.factory.js +62 -0
  137. package/lib/brevo-contact/dto/brevo-test-contact-input.factory.js.map +1 -0
  138. package/lib/brevo-contact/dto/manually-assigned-brevo-contacts.args.d.ts +6 -0
  139. package/lib/brevo-contact/dto/manually-assigned-brevo-contacts.args.d.ts.map +1 -0
  140. package/lib/brevo-contact/dto/manually-assigned-brevo-contacts.args.js +32 -0
  141. package/lib/brevo-contact/dto/manually-assigned-brevo-contacts.args.js.map +1 -0
  142. package/lib/brevo-contact/dto/subscribe-input.factory.d.ts +14 -0
  143. package/lib/brevo-contact/dto/subscribe-input.factory.d.ts.map +1 -0
  144. package/lib/brevo-contact/dto/subscribe-input.factory.js +55 -0
  145. package/lib/brevo-contact/dto/subscribe-input.factory.js.map +1 -0
  146. package/lib/brevo-contact/dto/subscribe-response.enum.d.ts +9 -0
  147. package/lib/brevo-contact/dto/subscribe-response.enum.d.ts.map +1 -0
  148. package/lib/brevo-contact/dto/subscribe-response.enum.js +17 -0
  149. package/lib/brevo-contact/dto/subscribe-response.enum.js.map +1 -0
  150. package/lib/brevo-contact/ecg-rtr-list/ecg-rtr-list.service.d.ts +8 -0
  151. package/lib/brevo-contact/ecg-rtr-list/ecg-rtr-list.service.d.ts.map +1 -0
  152. package/lib/brevo-contact/ecg-rtr-list/ecg-rtr-list.service.js +80 -0
  153. package/lib/brevo-contact/ecg-rtr-list/ecg-rtr-list.service.js.map +1 -0
  154. package/lib/brevo-contact/validator/redirect-url.validator.d.ts +14 -0
  155. package/lib/brevo-contact/validator/redirect-url.validator.d.ts.map +1 -0
  156. package/lib/brevo-contact/validator/redirect-url.validator.js +61 -0
  157. package/lib/brevo-contact/validator/redirect-url.validator.js.map +1 -0
  158. package/lib/brevo-email-import-log/brevo-email-import-log.module.d.ts +12 -0
  159. package/lib/brevo-email-import-log/brevo-email-import-log.module.d.ts.map +1 -0
  160. package/lib/brevo-email-import-log/brevo-email-import-log.module.js +30 -0
  161. package/lib/brevo-email-import-log/brevo-email-import-log.module.js.map +1 -0
  162. package/lib/brevo-email-import-log/brevo-email-import-log.service.d.ts +12 -0
  163. package/lib/brevo-email-import-log/brevo-email-import-log.service.d.ts.map +1 -0
  164. package/lib/brevo-email-import-log/brevo-email-import-log.service.js +52 -0
  165. package/lib/brevo-email-import-log/brevo-email-import-log.service.js.map +1 -0
  166. package/lib/brevo-email-import-log/entity/brevo-email-import-log.entity.factory.d.ts +19 -0
  167. package/lib/brevo-email-import-log/entity/brevo-email-import-log.entity.factory.d.ts.map +1 -0
  168. package/lib/brevo-email-import-log/entity/brevo-email-import-log.entity.factory.js +87 -0
  169. package/lib/brevo-email-import-log/entity/brevo-email-import-log.entity.factory.js.map +1 -0
  170. package/lib/brevo-module.d.ts +10 -0
  171. package/lib/brevo-module.d.ts.map +1 -0
  172. package/lib/brevo-module.js +93 -0
  173. package/lib/brevo-module.js.map +1 -0
  174. package/lib/config/brevo-module.config.d.ts +43 -0
  175. package/lib/config/brevo-module.config.d.ts.map +1 -0
  176. package/lib/config/brevo-module.config.js +3 -0
  177. package/lib/config/brevo-module.config.js.map +1 -0
  178. package/lib/config/brevo-module.constants.d.ts +2 -0
  179. package/lib/config/brevo-module.constants.d.ts.map +1 -0
  180. package/lib/config/brevo-module.constants.js +5 -0
  181. package/lib/config/brevo-module.constants.js.map +1 -0
  182. package/lib/config/config.module.d.ts +6 -0
  183. package/lib/config/config.module.d.ts.map +1 -0
  184. package/lib/config/config.module.js +32 -0
  185. package/lib/config/config.module.js.map +1 -0
  186. package/lib/email-campaign/dto/email-campaign-args.factory.d.ts +19 -0
  187. package/lib/email-campaign/dto/email-campaign-args.factory.d.ts.map +1 -0
  188. package/lib/email-campaign/dto/email-campaign-args.factory.js +56 -0
  189. package/lib/email-campaign/dto/email-campaign-args.factory.js.map +1 -0
  190. package/lib/email-campaign/dto/email-campaign-input.factory.d.ts +15 -0
  191. package/lib/email-campaign/dto/email-campaign-input.factory.d.ts.map +1 -0
  192. package/lib/email-campaign/dto/email-campaign-input.factory.js +66 -0
  193. package/lib/email-campaign/dto/email-campaign-input.factory.js.map +1 -0
  194. package/lib/email-campaign/dto/email-campaign.filter.d.ts +16 -0
  195. package/lib/email-campaign/dto/email-campaign.filter.d.ts.map +1 -0
  196. package/lib/email-campaign/dto/email-campaign.filter.js +85 -0
  197. package/lib/email-campaign/dto/email-campaign.filter.js.map +1 -0
  198. package/lib/email-campaign/dto/email-campaign.sort.d.ts +14 -0
  199. package/lib/email-campaign/dto/email-campaign.sort.d.ts.map +1 -0
  200. package/lib/email-campaign/dto/email-campaign.sort.js +46 -0
  201. package/lib/email-campaign/dto/email-campaign.sort.js.map +1 -0
  202. package/lib/email-campaign/dto/send-test-email-campaign.args.d.ts +4 -0
  203. package/lib/email-campaign/dto/send-test-email-campaign.args.d.ts.map +1 -0
  204. package/lib/email-campaign/dto/send-test-email-campaign.args.js +26 -0
  205. package/lib/email-campaign/dto/send-test-email-campaign.args.js.map +1 -0
  206. package/lib/email-campaign/email-campaign.module.d.ts +18 -0
  207. package/lib/email-campaign/email-campaign.module.d.ts.map +1 -0
  208. package/lib/email-campaign/email-campaign.module.js +48 -0
  209. package/lib/email-campaign/email-campaign.module.js.map +1 -0
  210. package/lib/email-campaign/email-campaign.resolver.d.ts +13 -0
  211. package/lib/email-campaign/email-campaign.resolver.d.ts.map +1 -0
  212. package/lib/email-campaign/email-campaign.resolver.js +272 -0
  213. package/lib/email-campaign/email-campaign.resolver.js.map +1 -0
  214. package/lib/email-campaign/email-campaigns.service.d.ts +32 -0
  215. package/lib/email-campaign/email-campaigns.service.d.ts.map +1 -0
  216. package/lib/email-campaign/email-campaigns.service.js +152 -0
  217. package/lib/email-campaign/email-campaigns.service.js.map +1 -0
  218. package/lib/email-campaign/entities/email-campaign-entity.factory.d.ts +27 -0
  219. package/lib/email-campaign/entities/email-campaign-entity.factory.d.ts.map +1 -0
  220. package/lib/email-campaign/entities/email-campaign-entity.factory.js +95 -0
  221. package/lib/email-campaign/entities/email-campaign-entity.factory.js.map +1 -0
  222. package/lib/email-campaign/sending-state.enum.d.ts +6 -0
  223. package/lib/email-campaign/sending-state.enum.d.ts.map +1 -0
  224. package/lib/email-campaign/sending-state.enum.js +14 -0
  225. package/lib/email-campaign/sending-state.enum.js.map +1 -0
  226. package/lib/index.d.ts +19 -0
  227. package/lib/index.d.ts.map +1 -0
  228. package/lib/index.js +28 -0
  229. package/lib/index.js.map +1 -0
  230. package/lib/mikro-orm/migrations/Migration20240115095733.d.ts +5 -0
  231. package/lib/mikro-orm/migrations/Migration20240115095733.d.ts.map +1 -0
  232. package/lib/mikro-orm/migrations/Migration20240115095733.js +11 -0
  233. package/lib/mikro-orm/migrations/Migration20240115095733.js.map +1 -0
  234. package/lib/mikro-orm/migrations/Migration20240118144808.d.ts +5 -0
  235. package/lib/mikro-orm/migrations/Migration20240118144808.d.ts.map +1 -0
  236. package/lib/mikro-orm/migrations/Migration20240118144808.js +12 -0
  237. package/lib/mikro-orm/migrations/Migration20240118144808.js.map +1 -0
  238. package/lib/mikro-orm/migrations/Migration20240123145606.d.ts +5 -0
  239. package/lib/mikro-orm/migrations/Migration20240123145606.d.ts.map +1 -0
  240. package/lib/mikro-orm/migrations/Migration20240123145606.js +13 -0
  241. package/lib/mikro-orm/migrations/Migration20240123145606.js.map +1 -0
  242. package/lib/mikro-orm/migrations/Migration20240527112204.d.ts +5 -0
  243. package/lib/mikro-orm/migrations/Migration20240527112204.d.ts.map +1 -0
  244. package/lib/mikro-orm/migrations/Migration20240527112204.js +11 -0
  245. package/lib/mikro-orm/migrations/Migration20240527112204.js.map +1 -0
  246. package/lib/mikro-orm/migrations/Migration20240619092554.d.ts +5 -0
  247. package/lib/mikro-orm/migrations/Migration20240619092554.d.ts.map +1 -0
  248. package/lib/mikro-orm/migrations/Migration20240619092554.js +11 -0
  249. package/lib/mikro-orm/migrations/Migration20240619092554.js.map +1 -0
  250. package/lib/mikro-orm/migrations/Migration20240619145217.d.ts +5 -0
  251. package/lib/mikro-orm/migrations/Migration20240619145217.d.ts.map +1 -0
  252. package/lib/mikro-orm/migrations/Migration20240619145217.js +11 -0
  253. package/lib/mikro-orm/migrations/Migration20240619145217.js.map +1 -0
  254. package/lib/mikro-orm/migrations/Migration20240621102349.d.ts +5 -0
  255. package/lib/mikro-orm/migrations/Migration20240621102349.d.ts.map +1 -0
  256. package/lib/mikro-orm/migrations/Migration20240621102349.js +19 -0
  257. package/lib/mikro-orm/migrations/Migration20240621102349.js.map +1 -0
  258. package/lib/mikro-orm/migrations/Migration20240819214939.d.ts +5 -0
  259. package/lib/mikro-orm/migrations/Migration20240819214939.d.ts.map +1 -0
  260. package/lib/mikro-orm/migrations/Migration20240819214939.js +19 -0
  261. package/lib/mikro-orm/migrations/Migration20240819214939.js.map +1 -0
  262. package/lib/mikro-orm/migrations/Migration20240830112400.d.ts +5 -0
  263. package/lib/mikro-orm/migrations/Migration20240830112400.d.ts.map +1 -0
  264. package/lib/mikro-orm/migrations/Migration20240830112400.js +12 -0
  265. package/lib/mikro-orm/migrations/Migration20240830112400.js.map +1 -0
  266. package/lib/mikro-orm/migrations/Migration20241016123307.d.ts +5 -0
  267. package/lib/mikro-orm/migrations/Migration20241016123307.d.ts.map +1 -0
  268. package/lib/mikro-orm/migrations/Migration20241016123307.js +11 -0
  269. package/lib/mikro-orm/migrations/Migration20241016123307.js.map +1 -0
  270. package/lib/mikro-orm/migrations/Migration20241018110515.d.ts +5 -0
  271. package/lib/mikro-orm/migrations/Migration20241018110515.d.ts.map +1 -0
  272. package/lib/mikro-orm/migrations/Migration20241018110515.js +11 -0
  273. package/lib/mikro-orm/migrations/Migration20241018110515.js.map +1 -0
  274. package/lib/mikro-orm/migrations/Migration20241022144400.d.ts +5 -0
  275. package/lib/mikro-orm/migrations/Migration20241022144400.d.ts.map +1 -0
  276. package/lib/mikro-orm/migrations/Migration20241022144400.js +11 -0
  277. package/lib/mikro-orm/migrations/Migration20241022144400.js.map +1 -0
  278. package/lib/mikro-orm/migrations/Migration20241024071748.d.ts +5 -0
  279. package/lib/mikro-orm/migrations/Migration20241024071748.d.ts.map +1 -0
  280. package/lib/mikro-orm/migrations/Migration20241024071748.js +11 -0
  281. package/lib/mikro-orm/migrations/Migration20241024071748.js.map +1 -0
  282. package/lib/mikro-orm/migrations/Migration20241119101706.d.ts +5 -0
  283. package/lib/mikro-orm/migrations/Migration20241119101706.d.ts.map +1 -0
  284. package/lib/mikro-orm/migrations/Migration20241119101706.js +12 -0
  285. package/lib/mikro-orm/migrations/Migration20241119101706.js.map +1 -0
  286. package/lib/mikro-orm/migrations/Migration20250221073825.d.ts +5 -0
  287. package/lib/mikro-orm/migrations/Migration20250221073825.d.ts.map +1 -0
  288. package/lib/mikro-orm/migrations/Migration20250221073825.js +11 -0
  289. package/lib/mikro-orm/migrations/Migration20250221073825.js.map +1 -0
  290. package/lib/mikro-orm/migrations/Migration20250317131301.d.ts +5 -0
  291. package/lib/mikro-orm/migrations/Migration20250317131301.d.ts.map +1 -0
  292. package/lib/mikro-orm/migrations/Migration20250317131301.js +11 -0
  293. package/lib/mikro-orm/migrations/Migration20250317131301.js.map +1 -0
  294. package/lib/mikro-orm/migrations/Migration20250321132034.d.ts +5 -0
  295. package/lib/mikro-orm/migrations/Migration20250321132034.d.ts.map +1 -0
  296. package/lib/mikro-orm/migrations/Migration20250321132034.js +11 -0
  297. package/lib/mikro-orm/migrations/Migration20250321132034.js.map +1 -0
  298. package/lib/mikro-orm/migrations/Migration20250703155205.d.ts +5 -0
  299. package/lib/mikro-orm/migrations/Migration20250703155205.d.ts.map +1 -0
  300. package/lib/mikro-orm/migrations/Migration20250703155205.js +16 -0
  301. package/lib/mikro-orm/migrations/Migration20250703155205.js.map +1 -0
  302. package/lib/mikro-orm/migrations/migrations.d.ts +3 -0
  303. package/lib/mikro-orm/migrations/migrations.d.ts.map +1 -0
  304. package/lib/mikro-orm/migrations/migrations.js +42 -0
  305. package/lib/mikro-orm/migrations/migrations.js.map +1 -0
  306. package/lib/permissions/brevo-permission.enum.d.ts +5 -0
  307. package/lib/permissions/brevo-permission.enum.d.ts.map +1 -0
  308. package/lib/permissions/brevo-permission.enum.js +15 -0
  309. package/lib/permissions/brevo-permission.enum.js.map +1 -0
  310. package/lib/target-group/dto/add-brevo-contacts.input.d.ts +4 -0
  311. package/lib/target-group/dto/add-brevo-contacts.input.d.ts.map +1 -0
  312. package/lib/target-group/dto/add-brevo-contacts.input.js +27 -0
  313. package/lib/target-group/dto/add-brevo-contacts.input.js.map +1 -0
  314. package/lib/target-group/dto/remove-brevo-contact.input.d.ts +4 -0
  315. package/lib/target-group/dto/remove-brevo-contact.input.d.ts.map +1 -0
  316. package/lib/target-group/dto/remove-brevo-contact.input.js +26 -0
  317. package/lib/target-group/dto/remove-brevo-contact.input.js.map +1 -0
  318. package/lib/target-group/dto/target-group-args.factory.d.ts +19 -0
  319. package/lib/target-group/dto/target-group-args.factory.d.ts.map +1 -0
  320. package/lib/target-group/dto/target-group-args.factory.js +56 -0
  321. package/lib/target-group/dto/target-group-args.factory.js.map +1 -0
  322. package/lib/target-group/dto/target-group-input.factory.d.ts +12 -0
  323. package/lib/target-group/dto/target-group-input.factory.d.ts.map +1 -0
  324. package/lib/target-group/dto/target-group-input.factory.js +66 -0
  325. package/lib/target-group/dto/target-group-input.factory.js.map +1 -0
  326. package/lib/target-group/dto/target-group.filter.d.ts +10 -0
  327. package/lib/target-group/dto/target-group.filter.d.ts.map +1 -0
  328. package/lib/target-group/dto/target-group.filter.js +65 -0
  329. package/lib/target-group/dto/target-group.filter.js.map +1 -0
  330. package/lib/target-group/dto/target-group.sort.d.ts +12 -0
  331. package/lib/target-group/dto/target-group.sort.d.ts.map +1 -0
  332. package/lib/target-group/dto/target-group.sort.js +44 -0
  333. package/lib/target-group/dto/target-group.sort.js.map +1 -0
  334. package/lib/target-group/entity/target-group-entity.factory.d.ts +24 -0
  335. package/lib/target-group/entity/target-group-entity.factory.d.ts.map +1 -0
  336. package/lib/target-group/entity/target-group-entity.factory.js +112 -0
  337. package/lib/target-group/entity/target-group-entity.factory.js.map +1 -0
  338. package/lib/target-group/target-group.module.d.ts +13 -0
  339. package/lib/target-group/target-group.module.d.ts.map +1 -0
  340. package/lib/target-group/target-group.module.js +39 -0
  341. package/lib/target-group/target-group.module.js.map +1 -0
  342. package/lib/target-group/target-group.resolver.d.ts +11 -0
  343. package/lib/target-group/target-group.resolver.d.ts.map +1 -0
  344. package/lib/target-group/target-group.resolver.js +227 -0
  345. package/lib/target-group/target-group.resolver.js.map +1 -0
  346. package/lib/target-group/target-groups.service.d.ts +26 -0
  347. package/lib/target-group/target-groups.service.d.ts.map +1 -0
  348. package/lib/target-group/target-groups.service.js +175 -0
  349. package/lib/target-group/target-groups.service.js.map +1 -0
  350. package/lib/tsconfig.build.tsbuildinfo +1 -0
  351. package/lib/types.d.ts +4 -0
  352. package/lib/types.d.ts.map +1 -0
  353. package/lib/types.js +3 -0
  354. package/lib/types.js.map +1 -0
  355. package/lib/util/hash.util.d.ts +2 -0
  356. package/lib/util/hash.util.d.ts.map +1 -0
  357. package/lib/util/hash.util.js +13 -0
  358. package/lib/util/hash.util.js.map +1 -0
  359. package/lib/validation/dynamic-dto-validation.pipe.d.ts +5 -0
  360. package/lib/validation/dynamic-dto-validation.pipe.d.ts.map +1 -0
  361. package/lib/validation/dynamic-dto-validation.pipe.js +18 -0
  362. package/lib/validation/dynamic-dto-validation.pipe.js.map +1 -0
  363. package/package.json +101 -0
@@ -0,0 +1,91 @@
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 __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.createBrevoContactImportResolver = createBrevoContactImportResolver;
16
+ const cms_api_1 = require("@dextinity/cms-api");
17
+ const nestjs_1 = require("@mikro-orm/nestjs");
18
+ const postgresql_1 = require("@mikro-orm/postgresql");
19
+ const common_1 = require("@nestjs/common");
20
+ const graphql_1 = require("@nestjs/graphql");
21
+ const stream_1 = require("stream");
22
+ const uuid_1 = require("uuid");
23
+ const brevo_module_constants_1 = require("../config/brevo-module.constants");
24
+ const brevo_contact_import_service_1 = require("./brevo-contact-import.service");
25
+ const brevo_contact_import_args_1 = require("./dto/brevo-contact-import.args");
26
+ function createBrevoContactImportResolver({ Scope, BrevoContact, }) {
27
+ let BrevoContactImportArgs = class BrevoContactImportArgs extends brevo_contact_import_args_1.BrevoContactImportArgsFactory.create({ Scope }) {
28
+ };
29
+ BrevoContactImportArgs = __decorate([
30
+ (0, graphql_1.ArgsType)()
31
+ ], BrevoContactImportArgs);
32
+ let BrevoContactImportResolver = class BrevoContactImportResolver {
33
+ constructor(config, brevoContactImportService, fileUploadRepository, entityManager, fileUploadsService) {
34
+ this.config = config;
35
+ this.brevoContactImportService = brevoContactImportService;
36
+ this.fileUploadRepository = fileUploadRepository;
37
+ this.entityManager = entityManager;
38
+ this.fileUploadsService = fileUploadsService;
39
+ }
40
+ async startBrevoContactImport({ fileId, targetGroupIds, scope, sendDoubleOptIn }, user) {
41
+ const importId = (0, uuid_1.v4)();
42
+ const fileUpload = await this.fileUploadRepository.findOne(fileId);
43
+ if (!fileUpload) {
44
+ throw new Error("File not found");
45
+ }
46
+ try {
47
+ const fileContent = await this.fileUploadsService.getFileContent(fileUpload);
48
+ const redirectUrl = this.config.brevo.resolveConfig(scope).redirectUrlForImport;
49
+ const result = await this.brevoContactImportService.importContactsFromCsv({
50
+ fileStream: stream_1.Readable.from(fileContent),
51
+ scope,
52
+ redirectUrl,
53
+ targetGroupIds,
54
+ sendDoubleOptIn,
55
+ responsibleUserId: user.id,
56
+ importId,
57
+ });
58
+ await this.fileUploadsService.delete(fileUpload);
59
+ await this.entityManager.flush();
60
+ return result;
61
+ }
62
+ catch (error) {
63
+ await this.fileUploadsService.delete(fileUpload);
64
+ await this.entityManager.flush();
65
+ throw error;
66
+ }
67
+ }
68
+ };
69
+ __decorate([
70
+ (0, graphql_1.Mutation)(() => brevo_contact_import_service_1.CsvImportInformation),
71
+ __param(0, (0, graphql_1.Args)()),
72
+ __param(1, (0, cms_api_1.GetCurrentUser)()),
73
+ __metadata("design:type", Function),
74
+ __metadata("design:paramtypes", [BrevoContactImportArgs,
75
+ cms_api_1.CurrentUser]),
76
+ __metadata("design:returntype", Promise)
77
+ ], BrevoContactImportResolver.prototype, "startBrevoContactImport", null);
78
+ BrevoContactImportResolver = __decorate([
79
+ (0, graphql_1.Resolver)(() => BrevoContact),
80
+ (0, cms_api_1.RequiredPermission)(["brevoNewsletter"], { skipScopeCheck: true }),
81
+ __param(0, (0, common_1.Inject)(brevo_module_constants_1.BREVO_MODULE_CONFIG)),
82
+ __param(1, (0, common_1.Inject)(brevo_contact_import_service_1.BrevoContactImportService)),
83
+ __param(2, (0, nestjs_1.InjectRepository)(cms_api_1.FileUpload)),
84
+ __metadata("design:paramtypes", [Object, brevo_contact_import_service_1.BrevoContactImportService,
85
+ postgresql_1.EntityRepository,
86
+ postgresql_1.EntityManager,
87
+ cms_api_1.FileUploadsService])
88
+ ], BrevoContactImportResolver);
89
+ return BrevoContactImportResolver;
90
+ }
91
+ //# sourceMappingURL=brevo-contact-import.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brevo-contact-import.resolver.js","sourceRoot":"","sources":["../../src/brevo-contact/brevo-contact-import.resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { EntityRepository } from "@mikro-orm/postgresql";
2
+ import { BrevoConfigInterface } from "src/brevo-config/entities/brevo-config-entity.factory";
3
+ import { TargetGroupInterface } from "src/target-group/entity/target-group-entity.factory";
4
+ import { Readable } from "stream";
5
+ import { BrevoApiContactsService } from "../brevo-api/brevo-api-contact.service";
6
+ import { BrevoContactsService } from "../brevo-contact/brevo-contacts.service";
7
+ import { BrevoModuleConfig } from "../config/brevo-module.config";
8
+ import { TargetGroupsService } from "../target-group/target-groups.service";
9
+ import { EmailCampaignScopeInterface } from "../types";
10
+ export declare class CsvImportInformation {
11
+ created: number;
12
+ updated: number;
13
+ failed: number;
14
+ blacklisted: number;
15
+ failedColumns: Record<string, string>[];
16
+ blacklistedColumns: Record<string, string>[];
17
+ errorMessage?: string;
18
+ }
19
+ interface ImportContactsFromCsvParams {
20
+ fileStream: Readable;
21
+ scope: EmailCampaignScopeInterface;
22
+ redirectUrl: string;
23
+ sendDoubleOptIn: boolean;
24
+ targetGroupIds?: string[];
25
+ isAdminImport?: boolean;
26
+ responsibleUserId?: string;
27
+ importId?: string;
28
+ }
29
+ export declare class BrevoContactImportService {
30
+ private readonly config;
31
+ private readonly brevoApiContactsService;
32
+ private readonly brevoContactsService;
33
+ private readonly targetGroupsService;
34
+ private readonly targetGroupRepository;
35
+ private readonly brevoConfigRepository;
36
+ constructor(config: BrevoModuleConfig, brevoApiContactsService: BrevoApiContactsService, brevoContactsService: BrevoContactsService, targetGroupsService: TargetGroupsService, targetGroupRepository: EntityRepository<TargetGroupInterface>, brevoConfigRepository: EntityRepository<BrevoConfigInterface>);
37
+ importContactsFromCsv({ fileStream, scope, redirectUrl, sendDoubleOptIn, targetGroupIds, isAdminImport, responsibleUserId, importId, }: ImportContactsFromCsvParams): Promise<CsvImportInformation>;
38
+ private createOrUpdateBrevoContact;
39
+ private parseValue;
40
+ private processCsvRow;
41
+ private createValidateableCsvRowClass;
42
+ }
43
+ export {};
44
+ //# sourceMappingURL=brevo-contact-import.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brevo-contact-import.service.d.ts","sourceRoot":"","sources":["../../src/brevo-contact/brevo-contact-import.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAgC,MAAM,wCAAwC,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAUvD,qBACa,oBAAoB;IAE7B,OAAO,EAAE,MAAM,CAAC;IAGhB,OAAO,EAAE,MAAM,CAAC;IAGhB,MAAM,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,MAAM,CAAC;IAGpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAGxC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAG7C,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,2BAA2B;IACjC,UAAU,EAAE,QAAQ,CAAC;IACrB,KAAK,EAAE,2BAA2B,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBACa,yBAAyB;IAED,OAAO,CAAC,QAAQ,CAAC,MAAM;IACpD,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACE,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBALzB,MAAM,EAAE,iBAAiB,EACtD,uBAAuB,EAAE,uBAAuB,EAChD,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,mBAAmB,EACF,qBAAqB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,EAClE,qBAAqB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC;IAG7G,qBAAqB,CAAC,EACxB,UAAU,EACV,KAAK,EACL,WAAW,EACX,eAAe,EACf,cAAmB,EACnB,aAAqB,EACrB,iBAAiB,EACjB,QAAQ,GACX,EAAE,2BAA2B,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAsFhD,0BAA0B;IAmDxC,OAAO,CAAC,UAAU;YAYJ,aAAa;IA4B3B,OAAO,CAAC,6BAA6B;CAexC"}
@@ -0,0 +1,277 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
45
+ return function (target, key) { decorator(target, key, paramIndex); }
46
+ };
47
+ var __importDefault = (this && this.__importDefault) || function (mod) {
48
+ return (mod && mod.__esModule) ? mod : { "default": mod };
49
+ };
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.BrevoContactImportService = exports.CsvImportInformation = void 0;
52
+ const csv = __importStar(require("@fast-csv/parse"));
53
+ const nestjs_1 = require("@mikro-orm/nestjs");
54
+ const postgresql_1 = require("@mikro-orm/postgresql");
55
+ const common_1 = require("@nestjs/common");
56
+ const graphql_1 = require("@nestjs/graphql");
57
+ const class_validator_1 = require("class-validator");
58
+ const graphql_scalars_1 = require("graphql-scalars");
59
+ const lodash_isequal_1 = __importDefault(require("lodash.isequal"));
60
+ const brevo_api_contact_service_1 = require("../brevo-api/brevo-api-contact.service");
61
+ const brevo_contacts_service_1 = require("../brevo-contact/brevo-contacts.service");
62
+ const brevo_email_import_log_entity_factory_1 = require("../brevo-email-import-log/entity/brevo-email-import-log.entity.factory");
63
+ const brevo_module_constants_1 = require("../config/brevo-module.constants");
64
+ const target_groups_service_1 = require("../target-group/target-groups.service");
65
+ class BasicValidateableRow {
66
+ }
67
+ __decorate([
68
+ (0, class_validator_1.IsEmail)(),
69
+ (0, class_validator_1.IsNotEmpty)(),
70
+ __metadata("design:type", String)
71
+ ], BasicValidateableRow.prototype, "email", void 0);
72
+ let CsvImportInformation = class CsvImportInformation {
73
+ };
74
+ exports.CsvImportInformation = CsvImportInformation;
75
+ __decorate([
76
+ (0, graphql_1.Field)(() => graphql_1.Int),
77
+ __metadata("design:type", Number)
78
+ ], CsvImportInformation.prototype, "created", void 0);
79
+ __decorate([
80
+ (0, graphql_1.Field)(() => graphql_1.Int),
81
+ __metadata("design:type", Number)
82
+ ], CsvImportInformation.prototype, "updated", void 0);
83
+ __decorate([
84
+ (0, graphql_1.Field)(() => graphql_1.Int),
85
+ __metadata("design:type", Number)
86
+ ], CsvImportInformation.prototype, "failed", void 0);
87
+ __decorate([
88
+ (0, graphql_1.Field)(() => graphql_1.Int),
89
+ __metadata("design:type", Number)
90
+ ], CsvImportInformation.prototype, "blacklisted", void 0);
91
+ __decorate([
92
+ (0, graphql_1.Field)(() => [graphql_scalars_1.GraphQLJSONObject], { nullable: true }),
93
+ __metadata("design:type", Array)
94
+ ], CsvImportInformation.prototype, "failedColumns", void 0);
95
+ __decorate([
96
+ (0, graphql_1.Field)(() => [graphql_scalars_1.GraphQLJSONObject], { nullable: true }),
97
+ __metadata("design:type", Array)
98
+ ], CsvImportInformation.prototype, "blacklistedColumns", void 0);
99
+ __decorate([
100
+ (0, graphql_1.Field)({ nullable: true }),
101
+ __metadata("design:type", String)
102
+ ], CsvImportInformation.prototype, "errorMessage", void 0);
103
+ exports.CsvImportInformation = CsvImportInformation = __decorate([
104
+ (0, graphql_1.ObjectType)()
105
+ ], CsvImportInformation);
106
+ let BrevoContactImportService = class BrevoContactImportService {
107
+ constructor(config, brevoApiContactsService, brevoContactsService, targetGroupsService, targetGroupRepository, brevoConfigRepository) {
108
+ this.config = config;
109
+ this.brevoApiContactsService = brevoApiContactsService;
110
+ this.brevoContactsService = brevoContactsService;
111
+ this.targetGroupsService = targetGroupsService;
112
+ this.targetGroupRepository = targetGroupRepository;
113
+ this.brevoConfigRepository = brevoConfigRepository;
114
+ }
115
+ async importContactsFromCsv({ fileStream, scope, redirectUrl, sendDoubleOptIn, targetGroupIds = [], isAdminImport = false, responsibleUserId, importId, }) {
116
+ const failedColumns = [];
117
+ const blacklistedColumns = [];
118
+ const targetGroups = await this.targetGroupRepository.find({ id: { $in: targetGroupIds } });
119
+ const contactSource = brevo_email_import_log_entity_factory_1.ContactSource.csvImport;
120
+ for (const targetGroup of targetGroups) {
121
+ if (targetGroup.isMainList) {
122
+ throw new Error("Main lists are not allowed as target groups for import");
123
+ }
124
+ if (!(0, lodash_isequal_1.default)(targetGroup.scope, scope)) {
125
+ throw new Error("Target group scope does not match the scope of the import file");
126
+ }
127
+ }
128
+ const manuallyAssignedBrevoContacts = await Promise.all(targetGroups.map((targetGroup) => {
129
+ return this.targetGroupsService.createIfNotExistsManuallyAssignedContactsTargetGroup(targetGroup);
130
+ }));
131
+ const targetGroupBrevoIds = [...targetGroups.map((targetGroup) => targetGroup.brevoId), ...manuallyAssignedBrevoContacts];
132
+ const rows = fileStream.pipe(csv.parse({ headers: true, delimiter: ";", ignoreEmpty: true })).on("error", (error) => {
133
+ throw error;
134
+ });
135
+ let created = 0;
136
+ let updated = 0;
137
+ let failed = 0;
138
+ let blacklisted = 0;
139
+ for await (const row of rows) {
140
+ if (isAdminImport && created + updated + failed + blacklisted > 100) {
141
+ return {
142
+ created,
143
+ updated,
144
+ failed,
145
+ blacklisted,
146
+ failedColumns,
147
+ blacklistedColumns,
148
+ errorMessage: "Too many contacts. Currently we only support 100 contacts at once, the first 100 contacts were handled. Please split the file and try again with the remaining contacts.",
149
+ };
150
+ }
151
+ try {
152
+ const contactData = await this.processCsvRow(row, redirectUrl);
153
+ const result = await this.createOrUpdateBrevoContact(contactData, scope, targetGroupBrevoIds, sendDoubleOptIn, responsibleUserId, contactSource, importId);
154
+ switch (result) {
155
+ case "created":
156
+ created++;
157
+ break;
158
+ case "updated":
159
+ updated++;
160
+ break;
161
+ case "blacklisted":
162
+ blacklistedColumns.push(row);
163
+ blacklisted++;
164
+ break;
165
+ case "error":
166
+ failedColumns.push(row);
167
+ failed++;
168
+ break;
169
+ }
170
+ }
171
+ catch (validationError) {
172
+ console.error(validationError);
173
+ failedColumns.push(row);
174
+ failed++;
175
+ }
176
+ }
177
+ if (created + updated + failed === 0) {
178
+ return { created, updated, failed, blacklisted, failedColumns, blacklistedColumns, errorMessage: "No contacts found." };
179
+ }
180
+ return { created, updated, failed, blacklisted, failedColumns, blacklistedColumns };
181
+ }
182
+ async createOrUpdateBrevoContact(contact, scope, targetGroupBrevoIds, sendDoubleOptIn, responsibleUserId, contactSource, importId) {
183
+ try {
184
+ const brevoContact = await this.brevoApiContactsService.findContact(contact.email, scope);
185
+ const mainTargetGroupForScope = await this.targetGroupsService.createIfNotExistMainTargetGroupForScope(scope);
186
+ if (brevoContact && !brevoContact.emailBlacklisted) {
187
+ const updatedBrevoContact = await this.brevoApiContactsService.updateContact(brevoContact.id, { ...contact, listIds: [mainTargetGroupForScope.brevoId, ...targetGroupBrevoIds, ...brevoContact.listIds] }, scope, sendDoubleOptIn, responsibleUserId, contactSource, importId);
188
+ if (updatedBrevoContact) {
189
+ return "updated";
190
+ }
191
+ }
192
+ else if (!brevoContact) {
193
+ const brevoConfig = await this.brevoConfigRepository.findOneOrFail({ scope });
194
+ const success = await this.brevoContactsService.createContact({
195
+ ...contact,
196
+ scope,
197
+ templateId: brevoConfig.doubleOptInTemplateId,
198
+ listIds: [mainTargetGroupForScope.brevoId, ...targetGroupBrevoIds],
199
+ sendDoubleOptIn,
200
+ responsibleUserId,
201
+ contactSource,
202
+ });
203
+ if (!success) {
204
+ return "blacklisted";
205
+ }
206
+ if (success) {
207
+ return "created";
208
+ }
209
+ }
210
+ }
211
+ catch (err) {
212
+ console.error(err);
213
+ }
214
+ return "error";
215
+ }
216
+ parseValue({ value, key }) {
217
+ if (this.config.brevo.BrevoContactAttributes) {
218
+ const designType = Reflect.getMetadata("design:type", this.config.brevo.BrevoContactAttributes.prototype, key.toUpperCase())?.name;
219
+ if (designType === "Array") {
220
+ return value.trim() === "" ? [] : value.split(",").map((item) => item.trim());
221
+ }
222
+ }
223
+ return value;
224
+ }
225
+ async processCsvRow(row, redirectUrlForImport) {
226
+ const mappedRow = this.createValidateableCsvRowClass();
227
+ for (const key in row) {
228
+ if (key.toLowerCase() === "email") {
229
+ mappedRow.email = row[key];
230
+ }
231
+ else {
232
+ mappedRow[key.toUpperCase()] = this.parseValue({ value: row[key], key });
233
+ }
234
+ }
235
+ const errors = (0, class_validator_1.validateSync)(mappedRow);
236
+ if (errors.length > 0) {
237
+ throw errors;
238
+ }
239
+ const { email, ...data } = mappedRow;
240
+ return {
241
+ email: mappedRow.email,
242
+ redirectionUrl: redirectUrlForImport,
243
+ attributes: { ...data },
244
+ };
245
+ }
246
+ createValidateableCsvRowClass() {
247
+ if (this.config.brevo.BrevoContactAttributes) {
248
+ const BrevoContactAttributesClass = this.config.brevo.BrevoContactAttributes;
249
+ class ValidateableRow extends BrevoContactAttributesClass {
250
+ }
251
+ __decorate([
252
+ (0, class_validator_1.IsEmail)(),
253
+ (0, class_validator_1.IsNotEmpty)(),
254
+ __metadata("design:type", String)
255
+ ], ValidateableRow.prototype, "email", void 0);
256
+ return new ValidateableRow();
257
+ }
258
+ else {
259
+ class ValidateableRow extends BasicValidateableRow {
260
+ }
261
+ return new ValidateableRow();
262
+ }
263
+ }
264
+ };
265
+ exports.BrevoContactImportService = BrevoContactImportService;
266
+ exports.BrevoContactImportService = BrevoContactImportService = __decorate([
267
+ (0, common_1.Injectable)(),
268
+ __param(0, (0, common_1.Inject)(brevo_module_constants_1.BREVO_MODULE_CONFIG)),
269
+ __param(4, (0, nestjs_1.InjectRepository)("BrevoTargetGroup")),
270
+ __param(5, (0, nestjs_1.InjectRepository)("BrevoConfig")),
271
+ __metadata("design:paramtypes", [Object, brevo_api_contact_service_1.BrevoApiContactsService,
272
+ brevo_contacts_service_1.BrevoContactsService,
273
+ target_groups_service_1.TargetGroupsService,
274
+ postgresql_1.EntityRepository,
275
+ postgresql_1.EntityRepository])
276
+ ], BrevoContactImportService);
277
+ //# sourceMappingURL=brevo-contact-import.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brevo-contact-import.service.js","sourceRoot":"","sources":["../../src/brevo-contact/brevo-contact-import.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { MikroORM } from "@mikro-orm/postgresql";
2
+ import { CommandRunner } from "nest-commander";
3
+ import { BrevoApiContactsService } from "../brevo-api/brevo-api-contact.service";
4
+ import { TargetGroupsService } from "../target-group/target-groups.service";
5
+ export declare class DeleteUnsubscribedBrevoContactsConsole extends CommandRunner {
6
+ private readonly brevoApiContactsService;
7
+ private readonly targetGroupsService;
8
+ private readonly orm;
9
+ constructor(brevoApiContactsService: BrevoApiContactsService, targetGroupsService: TargetGroupsService, orm: MikroORM);
10
+ run(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=brevo-contact.console.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brevo-contact.console.d.ts","sourceRoot":"","sources":["../../src/brevo-contact/brevo-contact.console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAW,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAE5E,qBAIa,sCAAuC,SAAQ,aAAa;IAEjE,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,uBAAuB,EAAE,uBAAuB,EAChD,mBAAmB,EAAE,mBAAmB,EACxC,GAAG,EAAE,QAAQ;IAM5B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B7B"}
@@ -0,0 +1,62 @@
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 __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DeleteUnsubscribedBrevoContactsConsole = void 0;
13
+ const postgresql_1 = require("@mikro-orm/postgresql");
14
+ const nest_commander_1 = require("nest-commander");
15
+ const brevo_api_contact_service_1 = require("../brevo-api/brevo-api-contact.service");
16
+ const target_groups_service_1 = require("../target-group/target-groups.service");
17
+ let DeleteUnsubscribedBrevoContactsConsole = class DeleteUnsubscribedBrevoContactsConsole extends nest_commander_1.CommandRunner {
18
+ constructor(brevoApiContactsService, targetGroupsService, orm) {
19
+ super();
20
+ this.brevoApiContactsService = brevoApiContactsService;
21
+ this.targetGroupsService = targetGroupsService;
22
+ this.orm = orm;
23
+ }
24
+ async run() {
25
+ const offset = 0;
26
+ const limit = 50;
27
+ const where = { isMainList: true };
28
+ const [targetGroups] = await this.targetGroupsService.findTargetGroups({ offset, limit, where });
29
+ for (const targetGroup of targetGroups) {
30
+ let hasMoreContacts = false;
31
+ let offset = 0;
32
+ do {
33
+ const contacts = await this.brevoApiContactsService.findContacts(limit, offset, {
34
+ scope: targetGroup.scope,
35
+ });
36
+ const blacklistedContacts = contacts.filter((contact) => contact.emailBlacklisted === true);
37
+ if (blacklistedContacts.length > 0) {
38
+ await this.brevoApiContactsService.deleteContacts(blacklistedContacts, { scope: targetGroup.scope });
39
+ }
40
+ hasMoreContacts = !(contacts.length < limit);
41
+ offset += limit;
42
+ } while (hasMoreContacts);
43
+ }
44
+ }
45
+ };
46
+ exports.DeleteUnsubscribedBrevoContactsConsole = DeleteUnsubscribedBrevoContactsConsole;
47
+ __decorate([
48
+ (0, postgresql_1.CreateRequestContext)(),
49
+ __metadata("design:type", Function),
50
+ __metadata("design:paramtypes", []),
51
+ __metadata("design:returntype", Promise)
52
+ ], DeleteUnsubscribedBrevoContactsConsole.prototype, "run", null);
53
+ exports.DeleteUnsubscribedBrevoContactsConsole = DeleteUnsubscribedBrevoContactsConsole = __decorate([
54
+ (0, nest_commander_1.Command)({
55
+ name: "delete-unsubscribed-brevo-contacts",
56
+ description: "deletes unsubscribed contacts",
57
+ }),
58
+ __metadata("design:paramtypes", [brevo_api_contact_service_1.BrevoApiContactsService,
59
+ target_groups_service_1.TargetGroupsService,
60
+ postgresql_1.MikroORM])
61
+ ], DeleteUnsubscribedBrevoContactsConsole);
62
+ //# sourceMappingURL=brevo-contact.console.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brevo-contact.console.js","sourceRoot":"","sources":["../../src/brevo-contact/brevo-contact.console.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAuE;AACvE,mDAAwD;AAExD,sFAAiF;AACjF,iFAA4E;AAMrE,IAAM,sCAAsC,GAA5C,MAAM,sCAAuC,SAAQ,8BAAa;IACrE,YACqB,uBAAgD,EAChD,mBAAwC,EACxC,GAAa;QAE9B,KAAK,EAAE,CAAC;QAJS,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,QAAG,GAAH,GAAG,CAAU;IAGlC,CAAC;IAGK,AAAN,KAAK,CAAC,GAAG;QACL,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAEnC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjG,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACrC,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;YAEf,GAAG,CAAC;gBACA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE;oBAC5E,KAAK,EAAE,WAAW,CAAC,KAAK;iBAC3B,CAAC,CAAC;gBAEH,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC;gBAE5F,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzG,CAAC;gBAED,eAAe,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC;YACpB,CAAC,QAAQ,eAAe,EAAE;QAC9B,CAAC;IACL,CAAC;CACJ,CAAA;AArCY,wFAAsC;AAUzC;IADL,IAAA,iCAAoB,GAAE;;;;iEA2BtB;iDApCQ,sCAAsC;IAJlD,IAAA,wBAAO,EAAC;QACL,IAAI,EAAE,oCAAoC;QAC1C,WAAW,EAAE,+BAA+B;KAC/C,CAAC;qCAGgD,mDAAuB;QAC3B,2CAAmB;QACnC,qBAAQ;GAJzB,sCAAsC,CAqClD"}
@@ -0,0 +1,17 @@
1
+ import { DynamicModule, Type } from "@nestjs/common";
2
+ import { BlacklistedContactsInterface } from "../blacklisted-contacts/entity/blacklisted-contacts.entity.factory";
3
+ import { BrevoEmailImportLogInterface } from "../brevo-email-import-log/entity/brevo-email-import-log.entity.factory";
4
+ import { TargetGroupInterface } from "../target-group/entity/target-group-entity.factory";
5
+ import { BrevoContactAttributesInterface, EmailCampaignScopeInterface } from "../types";
6
+ interface BrevoContactModuleConfig {
7
+ BrevoContactAttributes?: Type<BrevoContactAttributesInterface>;
8
+ Scope: Type<EmailCampaignScopeInterface>;
9
+ BrevoTargetGroup: Type<TargetGroupInterface>;
10
+ BlacklistedContacts?: Type<BlacklistedContactsInterface>;
11
+ BrevoEmailImportLog?: Type<BrevoEmailImportLogInterface>;
12
+ }
13
+ export declare class BrevoContactModule {
14
+ static register({ BrevoContactAttributes, Scope, BrevoTargetGroup, BlacklistedContacts, BrevoEmailImportLog, }: BrevoContactModuleConfig): DynamicModule;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=brevo-contact.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brevo-contact.module.d.ts","sourceRoot":"","sources":["../../src/brevo-contact/brevo-contact.module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAU,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,oEAAoE,CAAC;AAKlH,OAAO,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAEtH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC1F,OAAO,EAAE,+BAA+B,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAYxF,UAAU,wBAAwB;IAC9B,sBAAsB,CAAC,EAAE,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC/D,KAAK,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACzC,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC7C,mBAAmB,CAAC,EAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzD,mBAAmB,CAAC,EAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC;CAC5D;AAED,qBACa,kBAAkB;IAC3B,MAAM,CAAC,QAAQ,CAAC,EACZ,sBAAsB,EACtB,KAAK,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACtB,EAAE,wBAAwB,GAAG,aAAa;CA0C9C"}
@@ -0,0 +1,73 @@
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 BrevoContactModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.BrevoContactModule = void 0;
11
+ const cms_api_1 = require("@dextinity/cms-api");
12
+ const nestjs_1 = require("@mikro-orm/nestjs");
13
+ const common_1 = require("@nestjs/common");
14
+ const brevo_api_module_1 = require("../brevo-api/brevo-api.module");
15
+ const brevo_contact_import_console_1 = require("../brevo-contact/brevo-contact-import.console");
16
+ const brevo_contact_import_service_1 = require("../brevo-contact/brevo-contact-import.service");
17
+ const brevo_email_import_log_module_1 = require("../brevo-email-import-log/brevo-email-import-log.module");
18
+ const config_module_1 = require("../config/config.module");
19
+ const brevo_contact_console_1 = require("./brevo-contact.console");
20
+ const brevo_contact_resolver_1 = require("./brevo-contact.resolver");
21
+ const brevo_contact_import_resolver_1 = require("./brevo-contact-import.resolver");
22
+ const brevo_contacts_service_1 = require("./brevo-contacts.service");
23
+ const brevo_contact_factory_1 = require("./dto/brevo-contact.factory");
24
+ const brevo_contact_input_factory_1 = require("./dto/brevo-contact-input.factory");
25
+ const brevo_test_contact_input_factory_1 = require("./dto/brevo-test-contact-input.factory");
26
+ const subscribe_input_factory_1 = require("./dto/subscribe-input.factory");
27
+ const ecg_rtr_list_service_1 = require("./ecg-rtr-list/ecg-rtr-list.service");
28
+ const redirect_url_validator_1 = require("./validator/redirect-url.validator");
29
+ let BrevoContactModule = BrevoContactModule_1 = class BrevoContactModule {
30
+ static register({ BrevoContactAttributes, Scope, BrevoTargetGroup, BlacklistedContacts, BrevoEmailImportLog, }) {
31
+ const BrevoContact = brevo_contact_factory_1.BrevoContactFactory.create({ BrevoContactAttributes });
32
+ const BrevoContactSubscribeInput = subscribe_input_factory_1.SubscribeInputFactory.create({ BrevoContactAttributes, Scope });
33
+ const [BrevoContactInput, BrevoContactUpdateInput] = brevo_contact_input_factory_1.BrevoContactInputFactory.create({ BrevoContactAttributes, Scope });
34
+ const [BrevoTestContactInput] = brevo_test_contact_input_factory_1.BrevoTestContactInputFactory.create({ BrevoContactAttributes, Scope });
35
+ const BrevoContactResolver = (0, brevo_contact_resolver_1.createBrevoContactResolver)({
36
+ BrevoContact,
37
+ BrevoContactSubscribeInput,
38
+ Scope,
39
+ BrevoContactInput,
40
+ BrevoContactUpdateInput,
41
+ BrevoTestContactInput,
42
+ });
43
+ const BrevoContactImportResolver = (0, brevo_contact_import_resolver_1.createBrevoContactImportResolver)({ Scope, BrevoContact });
44
+ const BrevoContactImportConsole = (0, brevo_contact_import_console_1.createBrevoContactImportConsole)({ Scope });
45
+ const mikroOrmEntities = [BrevoTargetGroup, cms_api_1.FileUpload, "BrevoConfig", ...(BlacklistedContacts ? ["BrevoBlacklistedContacts"] : [])];
46
+ const imports = [
47
+ brevo_api_module_1.BrevoApiModule,
48
+ config_module_1.ConfigModule,
49
+ nestjs_1.MikroOrmModule.forFeature(mikroOrmEntities),
50
+ ...(BrevoEmailImportLog ? [brevo_email_import_log_module_1.BrevoEmailImportLogModule] : []),
51
+ ];
52
+ return {
53
+ module: BrevoContactModule_1,
54
+ imports: imports,
55
+ providers: [
56
+ brevo_contact_import_service_1.BrevoContactImportService,
57
+ brevo_contacts_service_1.BrevoContactsService,
58
+ BrevoContactResolver,
59
+ BrevoContactImportResolver,
60
+ ecg_rtr_list_service_1.EcgRtrListService,
61
+ redirect_url_validator_1.IsValidRedirectURLConstraint,
62
+ brevo_contact_console_1.DeleteUnsubscribedBrevoContactsConsole,
63
+ BrevoContactImportConsole,
64
+ ],
65
+ exports: [brevo_contacts_service_1.BrevoContactsService, brevo_contact_import_service_1.BrevoContactImportService],
66
+ };
67
+ }
68
+ };
69
+ exports.BrevoContactModule = BrevoContactModule;
70
+ exports.BrevoContactModule = BrevoContactModule = BrevoContactModule_1 = __decorate([
71
+ (0, common_1.Module)({})
72
+ ], BrevoContactModule);
73
+ //# sourceMappingURL=brevo-contact.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brevo-contact.module.js","sourceRoot":"","sources":["../../src/brevo-contact/brevo-contact.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,gDAAgD;AAChD,8CAAmD;AACnD,2CAA6D;AAG7D,oEAA+D;AAC/D,gGAAgG;AAChG,gGAA0F;AAC1F,2GAAoG;AAEpG,2DAAuD;AAGvD,mEAAiF;AACjF,qEAAsE;AACtE,mFAAmF;AACnF,qEAAgE;AAChE,uEAAkE;AAClE,mFAA6E;AAC7E,6FAAsF;AACtF,2EAAsE;AACtE,8EAAwE;AACxE,+EAAkF;AAW3E,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAC3B,MAAM,CAAC,QAAQ,CAAC,EACZ,sBAAsB,EACtB,KAAK,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACI;QACvB,MAAM,YAAY,GAAG,2CAAmB,CAAC,MAAM,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC5E,MAAM,0BAA0B,GAAG,+CAAqB,CAAC,MAAM,CAAC,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,CAAC;QACnG,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,GAAG,sDAAwB,CAAC,MAAM,CAAC,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,CAAC;QACxH,MAAM,CAAC,qBAAqB,CAAC,GAAG,+DAA4B,CAAC,MAAM,CAAC,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,CAAC;QAEvG,MAAM,oBAAoB,GAAG,IAAA,mDAA0B,EAAC;YACpD,YAAY;YACZ,0BAA0B;YAC1B,KAAK;YACL,iBAAiB;YACjB,uBAAuB;YACvB,qBAAqB;SACxB,CAAC,CAAC;QAEH,MAAM,0BAA0B,GAAG,IAAA,gEAAgC,EAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAC7F,MAAM,yBAAyB,GAAG,IAAA,8DAA+B,EAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAE7E,MAAM,gBAAgB,GAAG,CAAC,gBAAgB,EAAE,oBAAU,EAAE,aAAa,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAErI,MAAM,OAAO,GAAG;YACZ,iCAAc;YACd,4BAAY;YACZ,uBAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAC3C,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,yDAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC;QACF,OAAO;YACH,MAAM,EAAE,oBAAkB;YAC1B,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE;gBACP,wDAAyB;gBACzB,6CAAoB;gBACpB,oBAAoB;gBACpB,0BAA0B;gBAC1B,wCAAiB;gBACjB,qDAA4B;gBAC5B,8DAAsC;gBACtC,yBAAyB;aAC5B;YACD,OAAO,EAAE,CAAC,6CAAoB,EAAE,wDAAyB,CAAC;SAC7D,CAAC;IACN,CAAC;CACJ,CAAA;AAjDY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,kBAAkB,CAiD9B"}