@hed-hog/core 0.0.387 → 0.0.393

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 (935) hide show
  1. package/README.md +51 -11
  2. package/dist/access-log/access-log.controller.d.ts.map +1 -1
  3. package/dist/access-log/access-log.controller.js +1 -1
  4. package/dist/access-log/access-log.controller.js.map +1 -1
  5. package/dist/access-log/access-log.interceptor.d.ts.map +1 -1
  6. package/dist/access-log/access-log.interceptor.js +11 -6
  7. package/dist/access-log/access-log.interceptor.js.map +1 -1
  8. package/dist/access-log/access-log.service.d.ts +4 -0
  9. package/dist/access-log/access-log.service.d.ts.map +1 -1
  10. package/dist/access-log/access-log.service.js +31 -4
  11. package/dist/access-log/access-log.service.js.map +1 -1
  12. package/dist/access-log/dto/query-access-log.dto.d.ts +2 -0
  13. package/dist/access-log/dto/query-access-log.dto.d.ts.map +1 -1
  14. package/dist/access-log/dto/query-access-log.dto.js +5 -0
  15. package/dist/access-log/dto/query-access-log.dto.js.map +1 -1
  16. package/dist/ai/ai-attachment.fragments.d.ts +23 -0
  17. package/dist/ai/ai-attachment.fragments.d.ts.map +1 -0
  18. package/dist/ai/ai-attachment.fragments.js +34 -0
  19. package/dist/ai/ai-attachment.fragments.js.map +1 -0
  20. package/dist/ai/ai.controller.d.ts +12 -17
  21. package/dist/ai/ai.controller.d.ts.map +1 -1
  22. package/dist/ai/ai.controller.js +17 -2
  23. package/dist/ai/ai.controller.js.map +1 -1
  24. package/dist/ai/ai.module.d.ts.map +1 -1
  25. package/dist/ai/ai.module.js +3 -2
  26. package/dist/ai/ai.module.js.map +1 -1
  27. package/dist/ai/ai.prompts.d.ts +16 -0
  28. package/dist/ai/ai.prompts.d.ts.map +1 -0
  29. package/dist/ai/ai.prompts.js +37 -0
  30. package/dist/ai/ai.prompts.js.map +1 -0
  31. package/dist/ai/ai.service.d.ts +92 -12
  32. package/dist/ai/ai.service.d.ts.map +1 -1
  33. package/dist/ai/ai.service.js +309 -88
  34. package/dist/ai/ai.service.js.map +1 -1
  35. package/dist/ai/dto/chat.dto.d.ts +4 -1
  36. package/dist/ai/dto/chat.dto.d.ts.map +1 -1
  37. package/dist/ai/dto/chat.dto.js +23 -1
  38. package/dist/ai/dto/chat.dto.js.map +1 -1
  39. package/dist/ai/dto/create-agent.dto.d.ts +1 -1
  40. package/dist/ai/dto/create-agent.dto.d.ts.map +1 -1
  41. package/dist/ai/dto/create-agent.dto.js +1 -1
  42. package/dist/ai/dto/create-agent.dto.js.map +1 -1
  43. package/dist/ai/dto/richtext-edit-html.dto.d.ts +5 -0
  44. package/dist/ai/dto/richtext-edit-html.dto.d.ts.map +1 -0
  45. package/dist/ai/dto/richtext-edit-html.dto.js +27 -0
  46. package/dist/ai/dto/richtext-edit-html.dto.js.map +1 -0
  47. package/dist/ai/dto/update-agent.dto.d.ts +1 -1
  48. package/dist/ai/dto/update-agent.dto.d.ts.map +1 -1
  49. package/dist/ai/dto/update-agent.dto.js +1 -1
  50. package/dist/ai/dto/update-agent.dto.js.map +1 -1
  51. package/dist/ai/richtext-ai.prompts.d.ts +5 -0
  52. package/dist/ai/richtext-ai.prompts.d.ts.map +1 -0
  53. package/dist/ai/richtext-ai.prompts.js +57 -0
  54. package/dist/ai/richtext-ai.prompts.js.map +1 -0
  55. package/dist/ai/richtext-ai.service.d.ts +34 -0
  56. package/dist/ai/richtext-ai.service.d.ts.map +1 -0
  57. package/dist/ai/richtext-ai.service.js +95 -0
  58. package/dist/ai/richtext-ai.service.js.map +1 -0
  59. package/dist/ai-instruction/ai-instruction.controller.d.ts +59 -5
  60. package/dist/ai-instruction/ai-instruction.controller.d.ts.map +1 -1
  61. package/dist/ai-instruction/ai-instruction.controller.js +63 -20
  62. package/dist/ai-instruction/ai-instruction.controller.js.map +1 -1
  63. package/dist/ai-instruction/ai-instruction.module.d.ts.map +1 -1
  64. package/dist/ai-instruction/ai-instruction.module.js +13 -2
  65. package/dist/ai-instruction/ai-instruction.module.js.map +1 -1
  66. package/dist/ai-instruction/ai-instruction.service.d.ts +131 -6
  67. package/dist/ai-instruction/ai-instruction.service.d.ts.map +1 -1
  68. package/dist/ai-instruction/ai-instruction.service.js +533 -60
  69. package/dist/ai-instruction/ai-instruction.service.js.map +1 -1
  70. package/dist/ai-instruction/ai-prompt-builder.service.d.ts +8 -0
  71. package/dist/ai-instruction/ai-prompt-builder.service.d.ts.map +1 -1
  72. package/dist/ai-instruction/ai-prompt-builder.service.js +10 -1
  73. package/dist/ai-instruction/ai-prompt-builder.service.js.map +1 -1
  74. package/dist/ai-instruction/ai-prompt-registry.d.ts +45 -0
  75. package/dist/ai-instruction/ai-prompt-registry.d.ts.map +1 -0
  76. package/dist/ai-instruction/ai-prompt-registry.js +49 -0
  77. package/dist/ai-instruction/ai-prompt-registry.js.map +1 -0
  78. package/dist/ai-instruction/ai-prompt-resolver.service.d.ts +89 -0
  79. package/dist/ai-instruction/ai-prompt-resolver.service.d.ts.map +1 -0
  80. package/dist/ai-instruction/ai-prompt-resolver.service.js +222 -0
  81. package/dist/ai-instruction/ai-prompt-resolver.service.js.map +1 -0
  82. package/dist/ai-instruction/ai-prompt-template.util.d.ts +70 -0
  83. package/dist/ai-instruction/ai-prompt-template.util.d.ts.map +1 -0
  84. package/dist/ai-instruction/ai-prompt-template.util.js +154 -0
  85. package/dist/ai-instruction/ai-prompt-template.util.js.map +1 -0
  86. package/dist/ai-instruction/dto/create-ai-instruction.dto.d.ts +5 -0
  87. package/dist/ai-instruction/dto/create-ai-instruction.dto.d.ts.map +1 -1
  88. package/dist/ai-instruction/dto/create-ai-instruction.dto.js +27 -1
  89. package/dist/ai-instruction/dto/create-ai-instruction.dto.js.map +1 -1
  90. package/dist/ai-instruction/dto/preview-ai-instruction.dto.d.ts +14 -0
  91. package/dist/ai-instruction/dto/preview-ai-instruction.dto.d.ts.map +1 -0
  92. package/dist/ai-instruction/dto/preview-ai-instruction.dto.js +42 -0
  93. package/dist/ai-instruction/dto/preview-ai-instruction.dto.js.map +1 -0
  94. package/dist/ai-instruction/dto/update-ai-instruction.dto.d.ts +11 -0
  95. package/dist/ai-instruction/dto/update-ai-instruction.dto.d.ts.map +1 -1
  96. package/dist/ai-instruction/dto/update-ai-instruction.dto.js +34 -0
  97. package/dist/ai-instruction/dto/update-ai-instruction.dto.js.map +1 -1
  98. package/dist/ai-instruction/types/ai-instruction.types.d.ts +13 -1
  99. package/dist/ai-instruction/types/ai-instruction.types.d.ts.map +1 -1
  100. package/dist/ai-instruction/types/ai-instruction.types.js +10 -0
  101. package/dist/ai-instruction/types/ai-instruction.types.js.map +1 -1
  102. package/dist/auth/auth.controller.d.ts +89 -15
  103. package/dist/auth/auth.controller.d.ts.map +1 -1
  104. package/dist/auth/auth.controller.js +116 -44
  105. package/dist/auth/auth.controller.js.map +1 -1
  106. package/dist/auth/auth.module.d.ts.map +1 -1
  107. package/dist/auth/auth.module.js +2 -0
  108. package/dist/auth/auth.module.js.map +1 -1
  109. package/dist/auth/auth.service.d.ts +169 -12
  110. package/dist/auth/auth.service.d.ts.map +1 -1
  111. package/dist/auth/auth.service.js +314 -67
  112. package/dist/auth/auth.service.js.map +1 -1
  113. package/dist/auth/dto/confirm-email.dto.d.ts +4 -0
  114. package/dist/auth/dto/confirm-email.dto.d.ts.map +1 -0
  115. package/dist/auth/dto/confirm-email.dto.js +22 -0
  116. package/dist/auth/dto/confirm-email.dto.js.map +1 -0
  117. package/dist/auth/dto/resend-confirmation.dto.d.ts +8 -0
  118. package/dist/auth/dto/resend-confirmation.dto.d.ts.map +1 -0
  119. package/dist/auth/dto/resend-confirmation.dto.js +36 -0
  120. package/dist/auth/dto/resend-confirmation.dto.js.map +1 -0
  121. package/dist/authorize/authorize.controller.d.ts +1 -1
  122. package/dist/authorize/authorize.controller.d.ts.map +1 -1
  123. package/dist/authorize/authorize.controller.js +4 -2
  124. package/dist/authorize/authorize.controller.js.map +1 -1
  125. package/dist/authorize/authorize.service.d.ts +7 -0
  126. package/dist/authorize/authorize.service.d.ts.map +1 -1
  127. package/dist/authorize/authorize.service.js +1 -1
  128. package/dist/authorize/authorize.service.js.map +1 -1
  129. package/dist/captcha/captcha.module.d.ts +3 -0
  130. package/dist/captcha/captcha.module.d.ts.map +1 -0
  131. package/dist/captcha/captcha.module.js +23 -0
  132. package/dist/captcha/captcha.module.js.map +1 -0
  133. package/dist/captcha/captcha.service.d.ts +38 -0
  134. package/dist/captcha/captcha.service.d.ts.map +1 -0
  135. package/dist/captcha/captcha.service.js +144 -0
  136. package/dist/captcha/captcha.service.js.map +1 -0
  137. package/dist/challenge/challenge.service.d.ts +31 -9
  138. package/dist/challenge/challenge.service.d.ts.map +1 -1
  139. package/dist/challenge/challenge.service.js +111 -16
  140. package/dist/challenge/challenge.service.js.map +1 -1
  141. package/dist/core.module.d.ts +3 -1
  142. package/dist/core.module.d.ts.map +1 -1
  143. package/dist/core.module.js +46 -2
  144. package/dist/core.module.js.map +1 -1
  145. package/dist/dashboard/dashboard/dashboard.controller.d.ts +21 -21
  146. package/dist/dashboard/dashboard/dashboard.service.d.ts +21 -21
  147. package/dist/dashboard/dashboard-component/dashboard-component.controller.d.ts +10 -10
  148. package/dist/dashboard/dashboard-component/dashboard-component.service.d.ts +10 -10
  149. package/dist/dashboard/dashboard-component-role/dashboard-component-role.controller.d.ts +20 -20
  150. package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.d.ts +20 -20
  151. package/dist/dashboard/dashboard-core/dashboard-core.controller.d.ts +3 -3
  152. package/dist/dashboard/dashboard-core/dashboard-core.service.d.ts +3 -3
  153. package/dist/dashboard/dashboard-item/dashboard-item.controller.d.ts +2 -2
  154. package/dist/dashboard/dashboard-item/dashboard-item.service.d.ts +2 -2
  155. package/dist/dashboard/dashboard-role/dashboard-role.controller.d.ts +13 -13
  156. package/dist/dashboard/dashboard-role/dashboard-role.service.d.ts +13 -13
  157. package/dist/file/file.controller.d.ts +8 -1
  158. package/dist/file/file.controller.d.ts.map +1 -1
  159. package/dist/file/file.controller.js +45 -7
  160. package/dist/file/file.controller.js.map +1 -1
  161. package/dist/file/file.service.d.ts +134 -1
  162. package/dist/file/file.service.d.ts.map +1 -1
  163. package/dist/file/file.service.js +363 -12
  164. package/dist/file/file.service.js.map +1 -1
  165. package/dist/file/image-optimization.service.d.ts +43 -0
  166. package/dist/file/image-optimization.service.d.ts.map +1 -1
  167. package/dist/file/image-optimization.service.js +154 -0
  168. package/dist/file/image-optimization.service.js.map +1 -1
  169. package/dist/file/provider/abstract.provider.d.ts +16 -0
  170. package/dist/file/provider/abstract.provider.d.ts.map +1 -1
  171. package/dist/file/provider/abstract.provider.js +4 -0
  172. package/dist/file/provider/abstract.provider.js.map +1 -1
  173. package/dist/file/provider/gcs.provider.d.ts +2 -0
  174. package/dist/file/provider/gcs.provider.d.ts.map +1 -1
  175. package/dist/file/provider/gcs.provider.js +10 -0
  176. package/dist/file/provider/gcs.provider.js.map +1 -1
  177. package/dist/file/provider/local.provider.d.ts +1 -0
  178. package/dist/file/provider/local.provider.d.ts.map +1 -1
  179. package/dist/file/provider/local.provider.js +13 -0
  180. package/dist/file/provider/local.provider.js.map +1 -1
  181. package/dist/file/provider/s3.provider.d.ts +5 -0
  182. package/dist/file/provider/s3.provider.d.ts.map +1 -1
  183. package/dist/file/provider/s3.provider.js +15 -0
  184. package/dist/file/provider/s3.provider.js.map +1 -1
  185. package/dist/file/provider/spaces.provider.d.ts +5 -0
  186. package/dist/file/provider/spaces.provider.d.ts.map +1 -1
  187. package/dist/file/provider/spaces.provider.js +16 -0
  188. package/dist/file/provider/spaces.provider.js.map +1 -1
  189. package/dist/impersonation/dto/redeem-impersonation.dto.d.ts +4 -0
  190. package/dist/impersonation/dto/redeem-impersonation.dto.d.ts.map +1 -0
  191. package/dist/impersonation/dto/redeem-impersonation.dto.js +23 -0
  192. package/dist/impersonation/dto/redeem-impersonation.dto.js.map +1 -0
  193. package/dist/impersonation/dto/start-impersonation.dto.d.ts +7 -0
  194. package/dist/impersonation/dto/start-impersonation.dto.d.ts.map +1 -0
  195. package/dist/impersonation/dto/start-impersonation.dto.js +27 -0
  196. package/dist/impersonation/dto/start-impersonation.dto.js.map +1 -0
  197. package/dist/impersonation/impersonation-restrictions.d.ts +26 -0
  198. package/dist/impersonation/impersonation-restrictions.d.ts.map +1 -0
  199. package/dist/impersonation/impersonation-restrictions.js +76 -0
  200. package/dist/impersonation/impersonation-restrictions.js.map +1 -0
  201. package/dist/impersonation/impersonation.controller.d.ts +90 -0
  202. package/dist/impersonation/impersonation.controller.d.ts.map +1 -0
  203. package/dist/impersonation/impersonation.controller.js +135 -0
  204. package/dist/impersonation/impersonation.controller.js.map +1 -0
  205. package/dist/impersonation/impersonation.module.d.ts +8 -0
  206. package/dist/impersonation/impersonation.module.d.ts.map +1 -0
  207. package/dist/impersonation/impersonation.module.js +44 -0
  208. package/dist/impersonation/impersonation.module.js.map +1 -0
  209. package/dist/impersonation/impersonation.service.d.ts +164 -0
  210. package/dist/impersonation/impersonation.service.d.ts.map +1 -0
  211. package/dist/impersonation/impersonation.service.js +408 -0
  212. package/dist/impersonation/impersonation.service.js.map +1 -0
  213. package/dist/incident/incident-notifier.service.d.ts +36 -0
  214. package/dist/incident/incident-notifier.service.d.ts.map +1 -0
  215. package/dist/incident/incident-notifier.service.js +208 -0
  216. package/dist/incident/incident-notifier.service.js.map +1 -0
  217. package/dist/incident/incident.controller.d.ts +23 -0
  218. package/dist/incident/incident.controller.d.ts.map +1 -0
  219. package/dist/incident/incident.controller.js +75 -0
  220. package/dist/incident/incident.controller.js.map +1 -0
  221. package/dist/incident/incident.module.d.ts +7 -0
  222. package/dist/incident/incident.module.d.ts.map +1 -0
  223. package/dist/incident/incident.module.js +32 -0
  224. package/dist/incident/incident.module.js.map +1 -0
  225. package/dist/incident/incident.service.d.ts +72 -0
  226. package/dist/incident/incident.service.d.ts.map +1 -0
  227. package/dist/incident/incident.service.js +184 -0
  228. package/dist/incident/incident.service.js.map +1 -0
  229. package/dist/index.d.ts +43 -0
  230. package/dist/index.d.ts.map +1 -1
  231. package/dist/index.js +49 -0
  232. package/dist/index.js.map +1 -1
  233. package/dist/integration/services/outbox-polling.coordinator.d.ts +2 -0
  234. package/dist/integration/services/outbox-polling.coordinator.d.ts.map +1 -1
  235. package/dist/integration/services/outbox-polling.coordinator.js +50 -30
  236. package/dist/integration/services/outbox-polling.coordinator.js.map +1 -1
  237. package/dist/integration/services/outbox.service.d.ts.map +1 -1
  238. package/dist/integration/services/outbox.service.js +5 -1
  239. package/dist/integration/services/outbox.service.js.map +1 -1
  240. package/dist/integration-profile/dto/test.dto.d.ts +13 -0
  241. package/dist/integration-profile/dto/test.dto.d.ts.map +1 -0
  242. package/dist/integration-profile/dto/test.dto.js +26 -0
  243. package/dist/integration-profile/dto/test.dto.js.map +1 -0
  244. package/dist/integration-profile/integration-profile.controller.d.ts +12 -1
  245. package/dist/integration-profile/integration-profile.controller.d.ts.map +1 -1
  246. package/dist/integration-profile/integration-profile.controller.js +9 -1
  247. package/dist/integration-profile/integration-profile.controller.js.map +1 -1
  248. package/dist/integration-profile/integration-profile.module.d.ts +6 -1
  249. package/dist/integration-profile/integration-profile.module.d.ts.map +1 -1
  250. package/dist/integration-profile/integration-profile.module.js +26 -3
  251. package/dist/integration-profile/integration-profile.module.js.map +1 -1
  252. package/dist/integration-profile/integration-profile.secrets.d.ts.map +1 -1
  253. package/dist/integration-profile/integration-profile.secrets.js +12 -1
  254. package/dist/integration-profile/integration-profile.secrets.js.map +1 -1
  255. package/dist/integration-profile/integration-profile.service.d.ts +26 -7
  256. package/dist/integration-profile/integration-profile.service.d.ts.map +1 -1
  257. package/dist/integration-profile/integration-profile.service.js +94 -91
  258. package/dist/integration-profile/integration-profile.service.js.map +1 -1
  259. package/dist/integration-profile/integration-profile.utils.d.ts +27 -1
  260. package/dist/integration-profile/integration-profile.utils.d.ts.map +1 -1
  261. package/dist/integration-profile/integration-profile.utils.js +46 -5
  262. package/dist/integration-profile/integration-profile.utils.js.map +1 -1
  263. package/dist/integration-profile/testers/ai.testers.d.ts +3 -0
  264. package/dist/integration-profile/testers/ai.testers.d.ts.map +1 -0
  265. package/dist/integration-profile/testers/ai.testers.js +125 -0
  266. package/dist/integration-profile/testers/ai.testers.js.map +1 -0
  267. package/dist/integration-profile/testers/captcha.testers.d.ts +3 -0
  268. package/dist/integration-profile/testers/captcha.testers.d.ts.map +1 -0
  269. package/dist/integration-profile/testers/captcha.testers.js +121 -0
  270. package/dist/integration-profile/testers/captcha.testers.js.map +1 -0
  271. package/dist/integration-profile/testers/email.testers.d.ts +3 -0
  272. package/dist/integration-profile/testers/email.testers.d.ts.map +1 -0
  273. package/dist/integration-profile/testers/email.testers.js +156 -0
  274. package/dist/integration-profile/testers/email.testers.js.map +1 -0
  275. package/dist/integration-profile/testers/http-probe.d.ts +57 -0
  276. package/dist/integration-profile/testers/http-probe.d.ts.map +1 -0
  277. package/dist/integration-profile/testers/http-probe.js +140 -0
  278. package/dist/integration-profile/testers/http-probe.js.map +1 -0
  279. package/dist/integration-profile/testers/index.d.ts +12 -0
  280. package/dist/integration-profile/testers/index.d.ts.map +1 -0
  281. package/dist/integration-profile/testers/index.js +45 -0
  282. package/dist/integration-profile/testers/index.js.map +1 -0
  283. package/dist/integration-profile/testers/infrastructure.testers.d.ts +3 -0
  284. package/dist/integration-profile/testers/infrastructure.testers.d.ts.map +1 -0
  285. package/dist/integration-profile/testers/infrastructure.testers.js +105 -0
  286. package/dist/integration-profile/testers/infrastructure.testers.js.map +1 -0
  287. package/dist/integration-profile/testers/integration-tester.registry.d.ts +17 -0
  288. package/dist/integration-profile/testers/integration-tester.registry.d.ts.map +1 -0
  289. package/dist/integration-profile/testers/integration-tester.registry.js +52 -0
  290. package/dist/integration-profile/testers/integration-tester.registry.js.map +1 -0
  291. package/dist/integration-profile/testers/integration-tester.types.d.ts +55 -0
  292. package/dist/integration-profile/testers/integration-tester.types.d.ts.map +1 -0
  293. package/dist/integration-profile/testers/integration-tester.types.js +16 -0
  294. package/dist/integration-profile/testers/integration-tester.types.js.map +1 -0
  295. package/dist/integration-profile/testers/messaging.testers.d.ts +3 -0
  296. package/dist/integration-profile/testers/messaging.testers.d.ts.map +1 -0
  297. package/dist/integration-profile/testers/messaging.testers.js +70 -0
  298. package/dist/integration-profile/testers/messaging.testers.js.map +1 -0
  299. package/dist/integration-profile/testers/oauth.testers.d.ts +3 -0
  300. package/dist/integration-profile/testers/oauth.testers.d.ts.map +1 -0
  301. package/dist/integration-profile/testers/oauth.testers.js +285 -0
  302. package/dist/integration-profile/testers/oauth.testers.js.map +1 -0
  303. package/dist/integration-profile/testers/payment.testers.d.ts +3 -0
  304. package/dist/integration-profile/testers/payment.testers.d.ts.map +1 -0
  305. package/dist/integration-profile/testers/payment.testers.js +169 -0
  306. package/dist/integration-profile/testers/payment.testers.js.map +1 -0
  307. package/dist/integration-profile/testers/storage.testers.d.ts +3 -0
  308. package/dist/integration-profile/testers/storage.testers.d.ts.map +1 -0
  309. package/dist/integration-profile/testers/storage.testers.js +208 -0
  310. package/dist/integration-profile/testers/storage.testers.js.map +1 -0
  311. package/dist/language/en.json +15 -2
  312. package/dist/language/pt.json +15 -2
  313. package/dist/leaked-password/leaked-password.controller.d.ts +24 -0
  314. package/dist/leaked-password/leaked-password.controller.d.ts.map +1 -0
  315. package/dist/leaked-password/leaked-password.controller.js +78 -0
  316. package/dist/leaked-password/leaked-password.controller.js.map +1 -0
  317. package/dist/leaked-password/leaked-password.module.d.ts +8 -0
  318. package/dist/leaked-password/leaked-password.module.d.ts.map +1 -0
  319. package/dist/leaked-password/leaked-password.module.js +31 -0
  320. package/dist/leaked-password/leaked-password.module.js.map +1 -0
  321. package/dist/leaked-password/leaked-password.service.d.ts +64 -0
  322. package/dist/leaked-password/leaked-password.service.d.ts.map +1 -0
  323. package/dist/leaked-password/leaked-password.service.js +218 -0
  324. package/dist/leaked-password/leaked-password.service.js.map +1 -0
  325. package/dist/locale/locale.controller.d.ts +1 -1
  326. package/dist/locale/locale.service.d.ts +1 -1
  327. package/dist/mail/dto/preview.dto.d.ts +18 -0
  328. package/dist/mail/dto/preview.dto.d.ts.map +1 -0
  329. package/dist/mail/dto/preview.dto.js +66 -0
  330. package/dist/mail/dto/preview.dto.js.map +1 -0
  331. package/dist/mail/dto/send.dto.d.ts +44 -0
  332. package/dist/mail/dto/send.dto.d.ts.map +1 -1
  333. package/dist/mail/dto/send.dto.js +20 -0
  334. package/dist/mail/dto/send.dto.js.map +1 -1
  335. package/dist/mail/mail.controller.d.ts +5 -0
  336. package/dist/mail/mail.controller.d.ts.map +1 -1
  337. package/dist/mail/mail.controller.js +16 -2
  338. package/dist/mail/mail.controller.js.map +1 -1
  339. package/dist/mail/mail.module.d.ts.map +1 -1
  340. package/dist/mail/mail.module.js +2 -0
  341. package/dist/mail/mail.module.js.map +1 -1
  342. package/dist/mail/mail.service.d.ts +69 -4
  343. package/dist/mail/mail.service.d.ts.map +1 -1
  344. package/dist/mail/mail.service.js +278 -37
  345. package/dist/mail/mail.service.js.map +1 -1
  346. package/dist/mail-delivery/mail-delivery-provision.service.d.ts +21 -0
  347. package/dist/mail-delivery/mail-delivery-provision.service.d.ts.map +1 -0
  348. package/dist/mail-delivery/mail-delivery-provision.service.js +64 -0
  349. package/dist/mail-delivery/mail-delivery-provision.service.js.map +1 -0
  350. package/dist/mail-delivery/mail-delivery.constants.d.ts +17 -0
  351. package/dist/mail-delivery/mail-delivery.constants.d.ts.map +1 -0
  352. package/dist/mail-delivery/mail-delivery.constants.js +31 -0
  353. package/dist/mail-delivery/mail-delivery.constants.js.map +1 -0
  354. package/dist/mail-delivery/mail-delivery.controller.d.ts +19 -0
  355. package/dist/mail-delivery/mail-delivery.controller.d.ts.map +1 -0
  356. package/dist/mail-delivery/mail-delivery.controller.js +53 -0
  357. package/dist/mail-delivery/mail-delivery.controller.js.map +1 -0
  358. package/dist/mail-delivery/mail-delivery.module.d.ts +7 -0
  359. package/dist/mail-delivery/mail-delivery.module.d.ts.map +1 -0
  360. package/dist/mail-delivery/mail-delivery.module.js +36 -0
  361. package/dist/mail-delivery/mail-delivery.module.js.map +1 -0
  362. package/dist/mail-delivery/mail-delivery.service.d.ts +38 -0
  363. package/dist/mail-delivery/mail-delivery.service.d.ts.map +1 -0
  364. package/dist/mail-delivery/mail-delivery.service.js +140 -0
  365. package/dist/mail-delivery/mail-delivery.service.js.map +1 -0
  366. package/dist/mail-delivery/ses-event.parser.d.ts +27 -0
  367. package/dist/mail-delivery/ses-event.parser.d.ts.map +1 -0
  368. package/dist/mail-delivery/ses-event.parser.js +131 -0
  369. package/dist/mail-delivery/ses-event.parser.js.map +1 -0
  370. package/dist/mail-delivery/ses-webhook.service.d.ts +58 -0
  371. package/dist/mail-delivery/ses-webhook.service.d.ts.map +1 -0
  372. package/dist/mail-delivery/ses-webhook.service.js +214 -0
  373. package/dist/mail-delivery/ses-webhook.service.js.map +1 -0
  374. package/dist/mail-delivery/sns-message.util.d.ts +38 -0
  375. package/dist/mail-delivery/sns-message.util.d.ts.map +1 -0
  376. package/dist/mail-delivery/sns-message.util.js +109 -0
  377. package/dist/mail-delivery/sns-message.util.js.map +1 -0
  378. package/dist/mail-layout/dto/update.dto.d.ts +17 -0
  379. package/dist/mail-layout/dto/update.dto.d.ts.map +1 -0
  380. package/dist/mail-layout/dto/update.dto.js +27 -0
  381. package/dist/mail-layout/dto/update.dto.js.map +1 -0
  382. package/dist/mail-layout/mail-layout.controller.d.ts +15 -0
  383. package/dist/mail-layout/mail-layout.controller.d.ts.map +1 -0
  384. package/dist/mail-layout/mail-layout.controller.js +71 -0
  385. package/dist/mail-layout/mail-layout.controller.js.map +1 -0
  386. package/dist/mail-layout/mail-layout.module.d.ts +3 -0
  387. package/dist/mail-layout/mail-layout.module.d.ts.map +1 -0
  388. package/dist/mail-layout/mail-layout.module.js +35 -0
  389. package/dist/mail-layout/mail-layout.module.js.map +1 -0
  390. package/dist/mail-layout/mail-layout.service.d.ts +27 -0
  391. package/dist/mail-layout/mail-layout.service.d.ts.map +1 -0
  392. package/dist/mail-layout/mail-layout.service.js +80 -0
  393. package/dist/mail-layout/mail-layout.service.js.map +1 -0
  394. package/dist/mail-sent/dto/query-mail-sent-list.dto.d.ts +5 -0
  395. package/dist/mail-sent/dto/query-mail-sent-list.dto.d.ts.map +1 -1
  396. package/dist/mail-sent/dto/query-mail-sent-list.dto.js +6 -0
  397. package/dist/mail-sent/dto/query-mail-sent-list.dto.js.map +1 -1
  398. package/dist/mail-sent/mail-sent.controller.d.ts +39 -0
  399. package/dist/mail-sent/mail-sent.controller.d.ts.map +1 -1
  400. package/dist/mail-sent/mail-sent.service.d.ts +39 -0
  401. package/dist/mail-sent/mail-sent.service.d.ts.map +1 -1
  402. package/dist/mail-sent/mail-sent.service.js +45 -4
  403. package/dist/mail-sent/mail-sent.service.js.map +1 -1
  404. package/dist/mailbox/mailbox-fetcher.registry.d.ts +100 -0
  405. package/dist/mailbox/mailbox-fetcher.registry.d.ts.map +1 -0
  406. package/dist/mailbox/mailbox-fetcher.registry.js +59 -0
  407. package/dist/mailbox/mailbox-fetcher.registry.js.map +1 -0
  408. package/dist/mailbox/mailbox.module.d.ts +8 -0
  409. package/dist/mailbox/mailbox.module.d.ts.map +1 -0
  410. package/dist/mailbox/mailbox.module.js +27 -0
  411. package/dist/mailbox/mailbox.module.js.map +1 -0
  412. package/dist/mcp-chat/mcp-chat.controller.d.ts +2 -2
  413. package/dist/mcp-chat/mcp-chat.service.d.ts +24 -2
  414. package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
  415. package/dist/mcp-chat/mcp-chat.service.js +80 -24
  416. package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
  417. package/dist/meeting/meeting-provider.registry.d.ts +155 -0
  418. package/dist/meeting/meeting-provider.registry.d.ts.map +1 -0
  419. package/dist/meeting/meeting-provider.registry.js +53 -0
  420. package/dist/meeting/meeting-provider.registry.js.map +1 -0
  421. package/dist/meeting/meeting.constants.d.ts +47 -0
  422. package/dist/meeting/meeting.constants.d.ts.map +1 -0
  423. package/dist/meeting/meeting.constants.js +21 -0
  424. package/dist/meeting/meeting.constants.js.map +1 -0
  425. package/dist/meeting/meeting.module.d.ts +7 -0
  426. package/dist/meeting/meeting.module.d.ts.map +1 -0
  427. package/dist/meeting/meeting.module.js +26 -0
  428. package/dist/meeting/meeting.module.js.map +1 -0
  429. package/dist/menu/menu.controller.d.ts +3 -3
  430. package/dist/menu/menu.service.d.ts +3 -3
  431. package/dist/middlewares/locale-injection.middleware.d.ts +12 -0
  432. package/dist/middlewares/locale-injection.middleware.d.ts.map +1 -1
  433. package/dist/middlewares/locale-injection.middleware.js +20 -4
  434. package/dist/middlewares/locale-injection.middleware.js.map +1 -1
  435. package/dist/notification/notification.controller.d.ts +12 -12
  436. package/dist/notification/notification.service.d.ts +12 -12
  437. package/dist/oauth/oauth-token-broker.service.d.ts +72 -0
  438. package/dist/oauth/oauth-token-broker.service.d.ts.map +1 -0
  439. package/dist/oauth/oauth-token-broker.service.js +258 -0
  440. package/dist/oauth/oauth-token-broker.service.js.map +1 -0
  441. package/dist/oauth/oauth.module.d.ts.map +1 -1
  442. package/dist/oauth/oauth.module.js +3 -1
  443. package/dist/oauth/oauth.module.js.map +1 -1
  444. package/dist/oauth/oauth.service.d.ts +2 -0
  445. package/dist/oauth/oauth.service.d.ts.map +1 -1
  446. package/dist/oauth/oauth.service.js +6 -3
  447. package/dist/oauth/oauth.service.js.map +1 -1
  448. package/dist/oauth/providers/google.provider.d.ts +7 -0
  449. package/dist/oauth/providers/google.provider.d.ts.map +1 -1
  450. package/dist/oauth/providers/google.provider.js +43 -13
  451. package/dist/oauth/providers/google.provider.js.map +1 -1
  452. package/dist/observability/monitored-cron.d.ts +34 -0
  453. package/dist/observability/monitored-cron.d.ts.map +1 -0
  454. package/dist/observability/monitored-cron.js +118 -0
  455. package/dist/observability/monitored-cron.js.map +1 -0
  456. package/dist/pairing/dto/approve-reverse-pairing.dto.d.ts +12 -0
  457. package/dist/pairing/dto/approve-reverse-pairing.dto.d.ts.map +1 -0
  458. package/dist/pairing/dto/approve-reverse-pairing.dto.js +30 -0
  459. package/dist/pairing/dto/approve-reverse-pairing.dto.js.map +1 -0
  460. package/dist/pairing/dto/claim-pairing.dto.d.ts +11 -0
  461. package/dist/pairing/dto/claim-pairing.dto.d.ts.map +1 -0
  462. package/dist/pairing/dto/claim-pairing.dto.js +35 -0
  463. package/dist/pairing/dto/claim-pairing.dto.js.map +1 -0
  464. package/dist/pairing/dto/confirm-pairing.dto.d.ts +10 -0
  465. package/dist/pairing/dto/confirm-pairing.dto.d.ts.map +1 -0
  466. package/dist/pairing/dto/confirm-pairing.dto.js +24 -0
  467. package/dist/pairing/dto/confirm-pairing.dto.js.map +1 -0
  468. package/dist/pairing/dto/poll-reverse-pairing.dto.d.ts +5 -0
  469. package/dist/pairing/dto/poll-reverse-pairing.dto.d.ts.map +1 -0
  470. package/dist/pairing/dto/poll-reverse-pairing.dto.js +24 -0
  471. package/dist/pairing/dto/poll-reverse-pairing.dto.js.map +1 -0
  472. package/dist/pairing/dto/start-pairing.dto.d.ts +11 -0
  473. package/dist/pairing/dto/start-pairing.dto.d.ts.map +1 -0
  474. package/dist/pairing/dto/start-pairing.dto.js +30 -0
  475. package/dist/pairing/dto/start-pairing.dto.js.map +1 -0
  476. package/dist/pairing/dto/start-reverse-pairing.dto.d.ts +24 -0
  477. package/dist/pairing/dto/start-reverse-pairing.dto.d.ts.map +1 -0
  478. package/dist/pairing/dto/start-reverse-pairing.dto.js +47 -0
  479. package/dist/pairing/dto/start-reverse-pairing.dto.js.map +1 -0
  480. package/dist/pairing/pairing.controller.d.ts +118 -0
  481. package/dist/pairing/pairing.controller.d.ts.map +1 -0
  482. package/dist/pairing/pairing.controller.js +296 -0
  483. package/dist/pairing/pairing.controller.js.map +1 -0
  484. package/dist/pairing/pairing.module.d.ts +10 -0
  485. package/dist/pairing/pairing.module.d.ts.map +1 -0
  486. package/dist/pairing/pairing.module.js +40 -0
  487. package/dist/pairing/pairing.module.js.map +1 -0
  488. package/dist/pairing/pairing.service.d.ts +238 -0
  489. package/dist/pairing/pairing.service.d.ts.map +1 -0
  490. package/dist/pairing/pairing.service.js +495 -0
  491. package/dist/pairing/pairing.service.js.map +1 -0
  492. package/dist/pdf/pdf.service.d.ts +11 -6
  493. package/dist/pdf/pdf.service.d.ts.map +1 -1
  494. package/dist/pdf/pdf.service.js +60 -20
  495. package/dist/pdf/pdf.service.js.map +1 -1
  496. package/dist/presence/presence.controller.d.ts +16 -0
  497. package/dist/presence/presence.controller.d.ts.map +1 -0
  498. package/dist/presence/presence.controller.js +60 -0
  499. package/dist/presence/presence.controller.js.map +1 -0
  500. package/dist/presence/presence.listener.d.ts +29 -0
  501. package/dist/presence/presence.listener.d.ts.map +1 -0
  502. package/dist/presence/presence.listener.js +82 -0
  503. package/dist/presence/presence.listener.js.map +1 -0
  504. package/dist/presence/presence.module.d.ts +3 -0
  505. package/dist/presence/presence.module.d.ts.map +1 -0
  506. package/dist/presence/presence.module.js +32 -0
  507. package/dist/presence/presence.module.js.map +1 -0
  508. package/dist/presence/presence.service.d.ts +42 -0
  509. package/dist/presence/presence.service.d.ts.map +1 -0
  510. package/dist/presence/presence.service.js +147 -0
  511. package/dist/presence/presence.service.js.map +1 -0
  512. package/dist/profile/dto/delete-account.dto.d.ts +8 -0
  513. package/dist/profile/dto/delete-account.dto.d.ts.map +1 -0
  514. package/dist/profile/dto/delete-account.dto.js +22 -0
  515. package/dist/profile/dto/delete-account.dto.js.map +1 -0
  516. package/dist/profile/events/profile-account-deleted.event.d.ts +12 -0
  517. package/dist/profile/events/profile-account-deleted.event.d.ts.map +1 -0
  518. package/dist/profile/events/profile-account-deleted.event.js +17 -0
  519. package/dist/profile/events/profile-account-deleted.event.js.map +1 -0
  520. package/dist/profile/profile.controller.d.ts +32 -15
  521. package/dist/profile/profile.controller.d.ts.map +1 -1
  522. package/dist/profile/profile.controller.js +75 -46
  523. package/dist/profile/profile.controller.js.map +1 -1
  524. package/dist/profile/profile.service.d.ts +41 -18
  525. package/dist/profile/profile.service.d.ts.map +1 -1
  526. package/dist/profile/profile.service.js +133 -48
  527. package/dist/profile/profile.service.js.map +1 -1
  528. package/dist/realtime/realtime.gateway.d.ts +48 -0
  529. package/dist/realtime/realtime.gateway.d.ts.map +1 -0
  530. package/dist/realtime/realtime.gateway.js +156 -0
  531. package/dist/realtime/realtime.gateway.js.map +1 -0
  532. package/dist/realtime/realtime.module.d.ts +8 -0
  533. package/dist/realtime/realtime.module.d.ts.map +1 -0
  534. package/dist/realtime/realtime.module.js +29 -0
  535. package/dist/realtime/realtime.module.js.map +1 -0
  536. package/dist/realtime/realtime.service.d.ts +51 -0
  537. package/dist/realtime/realtime.service.d.ts.map +1 -0
  538. package/dist/realtime/realtime.service.js +177 -0
  539. package/dist/realtime/realtime.service.js.map +1 -0
  540. package/dist/redis/redis-pubsub.d.ts +27 -0
  541. package/dist/redis/redis-pubsub.d.ts.map +1 -0
  542. package/dist/redis/redis-pubsub.js +184 -0
  543. package/dist/redis/redis-pubsub.js.map +1 -0
  544. package/dist/role/guards/role.guard.d.ts +5 -0
  545. package/dist/role/guards/role.guard.d.ts.map +1 -1
  546. package/dist/role/guards/role.guard.js +41 -39
  547. package/dist/role/guards/role.guard.js.map +1 -1
  548. package/dist/role/role.controller.d.ts +3 -3
  549. package/dist/role/role.service.d.ts +3 -3
  550. package/dist/session/session.controller.d.ts +2 -0
  551. package/dist/session/session.controller.d.ts.map +1 -1
  552. package/dist/session/session.service.d.ts +39 -0
  553. package/dist/session/session.service.d.ts.map +1 -1
  554. package/dist/session/session.service.js +91 -8
  555. package/dist/session/session.service.js.map +1 -1
  556. package/dist/setting/brand-asset.service.d.ts +48 -0
  557. package/dist/setting/brand-asset.service.d.ts.map +1 -0
  558. package/dist/setting/brand-asset.service.js +130 -0
  559. package/dist/setting/brand-asset.service.js.map +1 -0
  560. package/dist/setting/dto/create.dto.d.ts.map +1 -1
  561. package/dist/setting/dto/create.dto.js +9 -2
  562. package/dist/setting/dto/create.dto.js.map +1 -1
  563. package/dist/setting/setting.controller.d.ts +5 -5
  564. package/dist/setting/setting.module.d.ts.map +1 -1
  565. package/dist/setting/setting.module.js +3 -2
  566. package/dist/setting/setting.module.js.map +1 -1
  567. package/dist/setting/setting.service.d.ts +41 -5
  568. package/dist/setting/setting.service.d.ts.map +1 -1
  569. package/dist/setting/setting.service.js +113 -1
  570. package/dist/setting/setting.service.js.map +1 -1
  571. package/dist/token/token.service.d.ts +23 -2
  572. package/dist/token/token.service.d.ts.map +1 -1
  573. package/dist/token/token.service.js +39 -4
  574. package/dist/token/token.service.js.map +1 -1
  575. package/dist/user/dto/create-with-email-and-password.dto.d.ts +2 -0
  576. package/dist/user/dto/create-with-email-and-password.dto.d.ts.map +1 -1
  577. package/dist/user/dto/create-with-email-and-password.dto.js +5 -0
  578. package/dist/user/dto/create-with-email-and-password.dto.js.map +1 -1
  579. package/dist/user/dto/query-user-mail-list.dto.d.ts +5 -0
  580. package/dist/user/dto/query-user-mail-list.dto.d.ts.map +1 -0
  581. package/dist/user/dto/query-user-mail-list.dto.js +25 -0
  582. package/dist/user/dto/query-user-mail-list.dto.js.map +1 -0
  583. package/dist/user/user-credential.util.d.ts +19 -0
  584. package/dist/user/user-credential.util.d.ts.map +1 -0
  585. package/dist/user/user-credential.util.js +32 -0
  586. package/dist/user/user-credential.util.js.map +1 -0
  587. package/dist/user/user.controller.d.ts +24 -26
  588. package/dist/user/user.controller.d.ts.map +1 -1
  589. package/dist/user/user.controller.js +18 -3
  590. package/dist/user/user.controller.js.map +1 -1
  591. package/dist/user/user.service.d.ts +71 -29
  592. package/dist/user/user.service.d.ts.map +1 -1
  593. package/dist/user/user.service.js +291 -17
  594. package/dist/user/user.service.js.map +1 -1
  595. package/dist/user-device/user-device.controller.d.ts +54 -0
  596. package/dist/user-device/user-device.controller.d.ts.map +1 -0
  597. package/dist/user-device/user-device.controller.js +103 -0
  598. package/dist/user-device/user-device.controller.js.map +1 -0
  599. package/dist/user-device/user-device.module.d.ts +3 -0
  600. package/dist/user-device/user-device.module.d.ts.map +1 -0
  601. package/dist/user-device/user-device.module.js +26 -0
  602. package/dist/user-device/user-device.module.js.map +1 -0
  603. package/dist/user-device/user-device.service.d.ts +71 -0
  604. package/dist/user-device/user-device.service.d.ts.map +1 -0
  605. package/dist/user-device/user-device.service.js +158 -0
  606. package/dist/user-device/user-device.service.js.map +1 -0
  607. package/dist/utils/device-key.d.ts +23 -0
  608. package/dist/utils/device-key.d.ts.map +1 -0
  609. package/dist/utils/device-key.js +31 -0
  610. package/dist/utils/device-key.js.map +1 -0
  611. package/dist/utils/geo-ip.d.ts +38 -0
  612. package/dist/utils/geo-ip.d.ts.map +1 -0
  613. package/dist/utils/geo-ip.js +122 -0
  614. package/dist/utils/geo-ip.js.map +1 -0
  615. package/dist/utils/locale-context.d.ts +10 -7
  616. package/dist/utils/locale-context.d.ts.map +1 -1
  617. package/dist/utils/locale-context.js +14 -8
  618. package/dist/utils/locale-context.js.map +1 -1
  619. package/dist/utils/security-event-vars.d.ts +56 -0
  620. package/dist/utils/security-event-vars.d.ts.map +1 -0
  621. package/dist/utils/security-event-vars.js +109 -0
  622. package/dist/utils/security-event-vars.js.map +1 -0
  623. package/dist/utils/user-agent.d.ts +19 -0
  624. package/dist/utils/user-agent.d.ts.map +1 -0
  625. package/dist/utils/user-agent.js +36 -0
  626. package/dist/utils/user-agent.js.map +1 -0
  627. package/dist/validators/is-strong-password-with-settings.validator.d.ts.map +1 -1
  628. package/dist/validators/is-strong-password-with-settings.validator.js +11 -0
  629. package/dist/validators/is-strong-password-with-settings.validator.js.map +1 -1
  630. package/dist/validators/service-locator.d.ts +9 -0
  631. package/dist/validators/service-locator.d.ts.map +1 -1
  632. package/dist/validators/service-locator.js +12 -0
  633. package/dist/validators/service-locator.js.map +1 -1
  634. package/dist/webhook-integration/webhook-integration.service.d.ts +5 -0
  635. package/dist/webhook-integration/webhook-integration.service.d.ts.map +1 -1
  636. package/dist/webhook-integration/webhook-integration.service.js +50 -4
  637. package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
  638. package/dist/webhook-integration/webhook-protocol.registry.d.ts +6 -0
  639. package/dist/webhook-integration/webhook-protocol.registry.d.ts.map +1 -1
  640. package/dist/webhook-integration/webhook-protocol.registry.js.map +1 -1
  641. package/dist/whatsapp-sender/whatsapp-sender.module.d.ts +3 -0
  642. package/dist/whatsapp-sender/whatsapp-sender.module.d.ts.map +1 -0
  643. package/dist/whatsapp-sender/whatsapp-sender.module.js +23 -0
  644. package/dist/whatsapp-sender/whatsapp-sender.module.js.map +1 -0
  645. package/dist/whatsapp-sender/whatsapp-sender.service.d.ts +50 -0
  646. package/dist/whatsapp-sender/whatsapp-sender.service.d.ts.map +1 -0
  647. package/dist/whatsapp-sender/whatsapp-sender.service.js +224 -0
  648. package/dist/whatsapp-sender/whatsapp-sender.service.js.map +1 -0
  649. package/hedhog/data/integration_provider.yaml +25 -0
  650. package/hedhog/data/mail.yaml +275 -112
  651. package/hedhog/data/mail_layout.yaml +198 -0
  652. package/hedhog/data/menu.yaml +69 -3
  653. package/hedhog/data/role.yaml +16 -0
  654. package/hedhog/data/route.yaml +307 -3
  655. package/hedhog/data/setting_group.yaml +315 -1
  656. package/hedhog/data/setting_subgroup.yaml +8 -0
  657. package/hedhog/frontend/app/_lib/hooks/use-core-access.test.tsx.ejs +125 -0
  658. package/hedhog/frontend/app/_lib/hooks/use-core-access.ts.ejs +29 -0
  659. package/hedhog/frontend/app/_lib/hooks/use-impersonation-access.test.ts.ejs +71 -0
  660. package/hedhog/frontend/app/_lib/hooks/use-impersonation-access.ts.ejs +32 -0
  661. package/hedhog/frontend/app/access-log/page.tsx.ejs +96 -22
  662. package/hedhog/frontend/app/account/components/active-sessions.tsx.ejs +17 -1
  663. package/hedhog/frontend/app/account/components/known-devices.tsx.ejs +89 -0
  664. package/hedhog/frontend/app/account/components/mfa-setup-dialog.tsx.ejs +36 -0
  665. package/hedhog/frontend/app/account/components/profile-form.tsx.ejs +2 -1
  666. package/hedhog/frontend/app/account/components/two-factor-auth.tsx.ejs +2 -0
  667. package/hedhog/frontend/app/account/components/user-devices-list.tsx.ejs +186 -0
  668. package/hedhog/frontend/app/account/devices/page.tsx.ejs +5 -0
  669. package/hedhog/frontend/app/account/hooks/use-mfa-setup.ts.ejs +10 -7
  670. package/hedhog/frontend/app/account/layout.tsx.ejs +2 -0
  671. package/hedhog/frontend/app/ai_agent/page.tsx.ejs +7 -4
  672. package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-form.tsx.ejs +580 -0
  673. package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-preview.tsx.ejs +150 -0
  674. package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-versions.tsx.ejs +199 -0
  675. package/hedhog/frontend/app/ai_instruction/_components/prompt-diff.tsx.ejs +63 -0
  676. package/hedhog/frontend/app/ai_instruction/_lib/line-diff.spec.ts.ejs +59 -0
  677. package/hedhog/frontend/app/ai_instruction/_lib/line-diff.ts.ejs +72 -0
  678. package/hedhog/frontend/app/ai_instruction/_lib/prompt-template.spec.ts.ejs +170 -0
  679. package/hedhog/frontend/app/ai_instruction/_lib/prompt-template.ts.ejs +167 -0
  680. package/hedhog/frontend/app/ai_instruction/_lib/types.ts.ejs +99 -0
  681. package/hedhog/frontend/app/ai_instruction/page.tsx.ejs +422 -0
  682. package/hedhog/frontend/app/configurations/[slug]/components/setting-field.test.tsx.ejs +298 -0
  683. package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +410 -1223
  684. package/hedhog/frontend/app/incidents/page.tsx.ejs +400 -0
  685. package/hedhog/frontend/app/integration/profiles/page.tsx.ejs +153 -84
  686. package/hedhog/frontend/app/mail/layout/page.tsx.ejs +344 -0
  687. package/hedhog/frontend/app/mail/log/page.tsx.ejs +210 -3
  688. package/hedhog/frontend/app/mail/template/page.tsx.ejs +292 -200
  689. package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +129 -17
  690. package/hedhog/frontend/app/pages/_components/page-delete-dialog.tsx.ejs +343 -0
  691. package/hedhog/frontend/app/pages/_components/page-detail-sheet.tsx.ejs +438 -0
  692. package/hedhog/frontend/app/pages/_components/page-wizard-sheet.tsx.ejs +1009 -0
  693. package/hedhog/frontend/app/pages/_components/system-page-types.ts.ejs +56 -0
  694. package/hedhog/frontend/app/pages/_components/use-system-pages.ts.ejs +171 -0
  695. package/hedhog/frontend/app/pages/page.tsx.ejs +514 -0
  696. package/hedhog/frontend/app/users/active-session.tsx.ejs +58 -11
  697. package/hedhog/frontend/app/users/page.tsx.ejs +186 -21
  698. package/hedhog/frontend/app/users/simulate-access-dialog.test.tsx.ejs +202 -0
  699. package/hedhog/frontend/app/users/simulate-access-dialog.tsx.ejs +170 -0
  700. package/hedhog/frontend/app/users/user-activity-timeline.tsx.ejs +250 -0
  701. package/hedhog/frontend/app/users/user-devices.tsx.ejs +89 -0
  702. package/hedhog/frontend/app/users/user-logs.tsx.ejs +13 -1
  703. package/hedhog/frontend/app/users/user-mails.tsx.ejs +399 -0
  704. package/hedhog/frontend/app/users/user-sheet.tsx.ejs +106 -99
  705. package/hedhog/frontend/messages/en.json +643 -49
  706. package/hedhog/frontend/messages/pt.json +643 -49
  707. package/hedhog/table/access_log.yaml +7 -0
  708. package/hedhog/table/ai_agent.yaml +1 -0
  709. package/hedhog/table/ai_instruction.yaml +15 -0
  710. package/hedhog/table/file.yaml +8 -0
  711. package/hedhog/table/leaked_password.yaml +18 -0
  712. package/hedhog/table/mail_delivery_event.yaml +76 -0
  713. package/hedhog/table/mail_layout.yaml +35 -0
  714. package/hedhog/table/mail_sent.yaml +23 -0
  715. package/hedhog/table/mail_var.yaml +4 -0
  716. package/hedhog/table/setting.yaml +1 -0
  717. package/hedhog/table/system_incident.yaml +59 -0
  718. package/hedhog/table/user_activity.yaml +9 -0
  719. package/hedhog/table/user_device.yaml +52 -0
  720. package/hedhog/table/user_presence.yaml +36 -0
  721. package/hedhog/table/user_session.yaml +20 -1
  722. package/package.json +7 -2
  723. package/src/access-log/access-log.controller.ts +1 -0
  724. package/src/access-log/access-log.interceptor.ts +9 -3
  725. package/src/access-log/access-log.service.spec.ts +33 -2
  726. package/src/access-log/access-log.service.ts +38 -0
  727. package/src/access-log/dto/query-access-log.dto.ts +5 -0
  728. package/src/ai/ai-attachment.fragments.spec.ts +319 -0
  729. package/src/ai/ai-attachment.fragments.ts +35 -0
  730. package/src/ai/ai.controller.ts +9 -0
  731. package/src/ai/ai.module.ts +3 -2
  732. package/src/ai/ai.prompts.ts +38 -0
  733. package/src/ai/ai.service.spec.ts +280 -0
  734. package/src/ai/ai.service.ts +475 -82
  735. package/src/ai/dto/chat.dto.ts +33 -3
  736. package/src/ai/dto/create-agent.dto.ts +2 -2
  737. package/src/ai/dto/richtext-edit-html.dto.ts +11 -0
  738. package/src/ai/dto/update-agent.dto.ts +2 -2
  739. package/src/ai/richtext-ai.prompts.ts +57 -0
  740. package/src/ai/richtext-ai.service.ts +109 -0
  741. package/src/ai-instruction/ai-instruction.controller.ts +40 -9
  742. package/src/ai-instruction/ai-instruction.module.ts +13 -2
  743. package/src/ai-instruction/ai-instruction.service.spec.ts +658 -0
  744. package/src/ai-instruction/ai-instruction.service.ts +661 -62
  745. package/src/ai-instruction/ai-prompt-builder.service.ts +10 -1
  746. package/src/ai-instruction/ai-prompt-registry.ts +87 -0
  747. package/src/ai-instruction/ai-prompt-resolver.service.spec.ts +375 -0
  748. package/src/ai-instruction/ai-prompt-resolver.service.ts +295 -0
  749. package/src/ai-instruction/ai-prompt-template.util.spec.ts +162 -0
  750. package/src/ai-instruction/ai-prompt-template.util.ts +199 -0
  751. package/src/ai-instruction/dto/create-ai-instruction.dto.ts +39 -3
  752. package/src/ai-instruction/dto/preview-ai-instruction.dto.ts +26 -0
  753. package/src/ai-instruction/dto/update-ai-instruction.dto.ts +42 -1
  754. package/src/ai-instruction/types/ai-instruction.types.ts +24 -1
  755. package/src/auth/auth.controller.ts +78 -13
  756. package/src/auth/auth.module.ts +2 -0
  757. package/src/auth/auth.service.spec.ts +386 -7
  758. package/src/auth/auth.service.ts +435 -81
  759. package/src/auth/dto/confirm-email.dto.ts +7 -0
  760. package/src/auth/dto/resend-confirmation.dto.ts +20 -0
  761. package/src/authorize/authorize.controller.ts +2 -0
  762. package/src/authorize/authorize.service.spec.ts +23 -0
  763. package/src/authorize/authorize.service.ts +8 -0
  764. package/src/captcha/captcha.module.ts +10 -0
  765. package/src/captcha/captcha.service.spec.ts +210 -0
  766. package/src/captcha/captcha.service.ts +191 -0
  767. package/src/challenge/challenge.service.spec.ts +112 -4
  768. package/src/challenge/challenge.service.ts +131 -17
  769. package/src/core.module.ts +46 -1
  770. package/src/file/file.controller.ts +54 -4
  771. package/src/file/file.service.spec.ts +275 -0
  772. package/src/file/file.service.ts +468 -16
  773. package/src/file/image-optimization.service.spec.ts +92 -0
  774. package/src/file/image-optimization.service.ts +202 -0
  775. package/src/file/provider/abstract.provider.ts +23 -0
  776. package/src/file/provider/gcs.provider.ts +17 -0
  777. package/src/file/provider/local.provider.ts +21 -0
  778. package/src/file/provider/s3.provider.ts +25 -0
  779. package/src/file/provider/spaces.provider.ts +26 -0
  780. package/src/impersonation/dto/redeem-impersonation.dto.ts +8 -0
  781. package/src/impersonation/dto/start-impersonation.dto.ts +13 -0
  782. package/src/impersonation/impersonation-restrictions.ts +84 -0
  783. package/src/impersonation/impersonation.controller.ts +109 -0
  784. package/src/impersonation/impersonation.module.ts +31 -0
  785. package/src/impersonation/impersonation.service.spec.ts +427 -0
  786. package/src/impersonation/impersonation.service.ts +577 -0
  787. package/src/incident/incident-notifier.service.spec.ts +205 -0
  788. package/src/incident/incident-notifier.service.ts +241 -0
  789. package/src/incident/incident.controller.ts +38 -0
  790. package/src/incident/incident.module.ts +19 -0
  791. package/src/incident/incident.service.spec.ts +150 -0
  792. package/src/incident/incident.service.ts +209 -0
  793. package/src/index.ts +58 -0
  794. package/src/integration/services/outbox-polling.coordinator.spec.ts +90 -0
  795. package/src/integration/services/outbox-polling.coordinator.ts +62 -40
  796. package/src/integration/services/outbox.service.spec.ts +8 -0
  797. package/src/integration/services/outbox.service.ts +19 -13
  798. package/src/integration-profile/dto/test.dto.ts +19 -0
  799. package/src/integration-profile/integration-profile.controller.ts +10 -1
  800. package/src/integration-profile/integration-profile.module.spec.ts +51 -0
  801. package/src/integration-profile/integration-profile.module.ts +23 -4
  802. package/src/integration-profile/integration-profile.secrets.ts +12 -1
  803. package/src/integration-profile/integration-profile.service.spec.ts +279 -0
  804. package/src/integration-profile/integration-profile.service.ts +120 -124
  805. package/src/integration-profile/integration-profile.utils.spec.ts +22 -0
  806. package/src/integration-profile/integration-profile.utils.ts +78 -3
  807. package/src/integration-profile/testers/ai.testers.ts +165 -0
  808. package/src/integration-profile/testers/captcha.testers.spec.ts +92 -0
  809. package/src/integration-profile/testers/captcha.testers.ts +139 -0
  810. package/src/integration-profile/testers/email.testers.ts +194 -0
  811. package/src/integration-profile/testers/http-probe.spec.ts +153 -0
  812. package/src/integration-profile/testers/http-probe.ts +171 -0
  813. package/src/integration-profile/testers/index.ts +30 -0
  814. package/src/integration-profile/testers/infrastructure.testers.ts +122 -0
  815. package/src/integration-profile/testers/integration-tester.registry.spec.ts +75 -0
  816. package/src/integration-profile/testers/integration-tester.registry.ts +43 -0
  817. package/src/integration-profile/testers/integration-tester.types.ts +61 -0
  818. package/src/integration-profile/testers/messaging.testers.ts +102 -0
  819. package/src/integration-profile/testers/oauth.testers.spec.ts +220 -0
  820. package/src/integration-profile/testers/oauth.testers.ts +305 -0
  821. package/src/integration-profile/testers/payment.testers.ts +185 -0
  822. package/src/integration-profile/testers/remaining.testers.spec.ts +401 -0
  823. package/src/integration-profile/testers/storage.testers.spec.ts +185 -0
  824. package/src/integration-profile/testers/storage.testers.ts +226 -0
  825. package/src/integration-profile/testers/tester-coverage.spec.ts +58 -0
  826. package/src/language/en.json +15 -2
  827. package/src/language/pt.json +15 -2
  828. package/src/leaked-password/README.md +83 -0
  829. package/src/leaked-password/leaked-password.controller.ts +52 -0
  830. package/src/leaked-password/leaked-password.module.ts +18 -0
  831. package/src/leaked-password/leaked-password.service.ts +242 -0
  832. package/src/leaked-password/seed/build-seed-sql.mjs +180 -0
  833. package/src/leaked-password/seed/common-passwords.txt +335 -0
  834. package/src/mail/dto/preview.dto.ts +50 -0
  835. package/src/mail/dto/send.dto.ts +58 -1
  836. package/src/mail/mail-template.spec.ts +274 -0
  837. package/src/mail/mail.controller.ts +9 -2
  838. package/src/mail/mail.module.ts +2 -0
  839. package/src/mail/mail.service.spec.ts +422 -6
  840. package/src/mail/mail.service.ts +337 -34
  841. package/src/mail-delivery/mail-delivery-provision.service.ts +66 -0
  842. package/src/mail-delivery/mail-delivery.constants.ts +31 -0
  843. package/src/mail-delivery/mail-delivery.controller.ts +38 -0
  844. package/src/mail-delivery/mail-delivery.module.ts +23 -0
  845. package/src/mail-delivery/mail-delivery.service.spec.ts +136 -0
  846. package/src/mail-delivery/mail-delivery.service.ts +152 -0
  847. package/src/mail-delivery/ses-event.parser.spec.ts +140 -0
  848. package/src/mail-delivery/ses-event.parser.ts +191 -0
  849. package/src/mail-delivery/ses-webhook.service.spec.ts +170 -0
  850. package/src/mail-delivery/ses-webhook.service.ts +240 -0
  851. package/src/mail-delivery/sns-message.util.spec.ts +163 -0
  852. package/src/mail-delivery/sns-message.util.ts +125 -0
  853. package/src/mail-layout/dto/update.dto.ts +19 -0
  854. package/src/mail-layout/mail-layout.controller.ts +47 -0
  855. package/src/mail-layout/mail-layout.module.ts +22 -0
  856. package/src/mail-layout/mail-layout.service.ts +94 -0
  857. package/src/mail-sent/dto/query-mail-sent-list.dto.ts +15 -0
  858. package/src/mail-sent/mail-sent.service.ts +46 -2
  859. package/src/mailbox/mailbox-fetcher.registry.ts +132 -0
  860. package/src/mailbox/mailbox.module.ts +14 -0
  861. package/src/mcp-chat/mcp-chat.service.spec.ts +236 -0
  862. package/src/mcp-chat/mcp-chat.service.ts +122 -26
  863. package/src/meeting/meeting-provider.registry.ts +193 -0
  864. package/src/meeting/meeting.constants.ts +53 -0
  865. package/src/meeting/meeting.module.ts +13 -0
  866. package/src/middlewares/locale-injection.middleware.ts +25 -6
  867. package/src/oauth/oauth-token-broker.service.spec.ts +172 -0
  868. package/src/oauth/oauth-token-broker.service.ts +363 -0
  869. package/src/oauth/oauth.module.ts +3 -1
  870. package/src/oauth/oauth.service.ts +8 -2
  871. package/src/oauth/providers/google.provider.ts +49 -15
  872. package/src/observability/monitored-cron.spec.ts +102 -0
  873. package/src/observability/monitored-cron.ts +110 -0
  874. package/src/pairing/dto/approve-reverse-pairing.dto.ts +20 -0
  875. package/src/pairing/dto/claim-pairing.dto.ts +19 -0
  876. package/src/pairing/dto/confirm-pairing.dto.ts +14 -0
  877. package/src/pairing/dto/poll-reverse-pairing.dto.ts +9 -0
  878. package/src/pairing/dto/start-pairing.dto.ts +19 -0
  879. package/src/pairing/dto/start-reverse-pairing.dto.ts +45 -0
  880. package/src/pairing/pairing.controller.ts +246 -0
  881. package/src/pairing/pairing.module.ts +27 -0
  882. package/src/pairing/pairing.service.spec.ts +462 -0
  883. package/src/pairing/pairing.service.ts +614 -0
  884. package/src/pdf/pdf.service.ts +81 -24
  885. package/src/presence/presence.controller.ts +29 -0
  886. package/src/presence/presence.listener.ts +53 -0
  887. package/src/presence/presence.module.ts +19 -0
  888. package/src/presence/presence.service.spec.ts +97 -0
  889. package/src/presence/presence.service.ts +160 -0
  890. package/src/profile/dto/delete-account.dto.ts +11 -0
  891. package/src/profile/events/profile-account-deleted.event.ts +13 -0
  892. package/src/profile/profile.controller.ts +46 -34
  893. package/src/profile/profile.service.ts +164 -46
  894. package/src/realtime/realtime.gateway.ts +138 -0
  895. package/src/realtime/realtime.module.ts +16 -0
  896. package/src/realtime/realtime.service.spec.ts +50 -0
  897. package/src/realtime/realtime.service.ts +187 -0
  898. package/src/redis/redis-pubsub.ts +190 -0
  899. package/src/role/guards/role.guard.spec.ts +75 -0
  900. package/src/role/guards/role.guard.ts +64 -46
  901. package/src/session/session.service.spec.ts +81 -0
  902. package/src/session/session.service.ts +93 -6
  903. package/src/setting/brand-asset.service.ts +137 -0
  904. package/src/setting/dto/create.dto.ts +13 -2
  905. package/src/setting/setting.module.ts +3 -2
  906. package/src/setting/setting.service.spec.ts +135 -1
  907. package/src/setting/setting.service.ts +138 -2
  908. package/src/token/token.service.spec.ts +62 -0
  909. package/src/token/token.service.ts +57 -3
  910. package/src/user/dto/create-with-email-and-password.dto.ts +6 -1
  911. package/src/user/dto/query-user-mail-list.dto.ts +10 -0
  912. package/src/user/user-credential.util.ts +35 -0
  913. package/src/user/user.controller.ts +17 -2
  914. package/src/user/user.service.spec.ts +186 -2
  915. package/src/user/user.service.ts +361 -16
  916. package/src/user-device/user-device.controller.ts +77 -0
  917. package/src/user-device/user-device.module.ts +13 -0
  918. package/src/user-device/user-device.service.spec.ts +234 -0
  919. package/src/user-device/user-device.service.ts +168 -0
  920. package/src/utils/device-key.spec.ts +57 -0
  921. package/src/utils/device-key.ts +32 -0
  922. package/src/utils/geo-ip.spec.ts +134 -0
  923. package/src/utils/geo-ip.ts +93 -0
  924. package/src/utils/locale-context.spec.ts +27 -1
  925. package/src/utils/locale-context.ts +15 -12
  926. package/src/utils/security-event-vars.spec.ts +161 -0
  927. package/src/utils/security-event-vars.ts +153 -0
  928. package/src/utils/user-agent.spec.ts +37 -0
  929. package/src/utils/user-agent.ts +46 -0
  930. package/src/validators/is-strong-password-with-settings.validator.ts +12 -0
  931. package/src/validators/service-locator.ts +15 -0
  932. package/src/webhook-integration/webhook-integration.service.ts +57 -3
  933. package/src/webhook-integration/webhook-protocol.registry.ts +6 -0
  934. package/src/whatsapp-sender/whatsapp-sender.module.ts +10 -0
  935. package/src/whatsapp-sender/whatsapp-sender.service.ts +313 -0
@@ -1 +1 @@
1
- {"version":3,"file":"mail.service.js","sourceRoot":"","sources":["../../src/mail/mail.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAAmE;AACnE,gDAAmE;AAEnE,oDAAoD;AACpD,2CAQwB;AACxB,uDAAyC;AACzC,gGAG0D;AAC1D,iHAA2G;AAC3G,gEAA4D;AAQrD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAMtB,YAEE,aAA6C,EAE7C,eAAiD,EAEjD,aAA6C,EAE7C,OAAwC,EAExC,cAA+D;QAR9C,kBAAa,GAAb,aAAa,CAAe;QAE5B,oBAAe,GAAf,eAAe,CAAiB;QAEhC,kBAAa,GAAb,aAAa,CAAe;QAE5B,YAAO,GAAP,OAAO,CAAgB;QAEvB,mBAAc,GAAd,cAAc,CAAgC;QAfhD,WAAM,GAAG,IAAI,eAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;QACtC,cAAS,GAAG,MAAM,CAAC;QACnB,kCAA6B,GAC5C,6BAA6B,CAAC;IAa5B,CAAC;IAEL,YAAY;QACV,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YAC5B,SAAS,EAAE,sBAAsB;YACjC,YAAY,EAAE,4BAA4B;YAC1C,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;gBACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAI,KAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAEtD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtC,CAAC;SACF,CAAC,CAAC;IAEL,CAAC;IAEO,gBAAgB,CAAC,IAAY;QACnC,OAAO,IAAI,KAAK,IAAI,CAAC,6BAA6B,CAAC;IACrD,CAAC;IAEO,gBAAgB,CAAC,KAAc;QACrC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,sBAAsB;;QAClC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBACnD,IAAI,CAAC,6BAA6B;aACnC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,CACxB,MAAA,QAAQ,CAAC,IAAI,CAAC,6BAA6B,CAAC,mCAAI,EAAE,CACnD,CAAC,IAAI,EAAE,CAAC;YAET,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE3C,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC9B,EAAE,EAAE,IAAI;gBACR,IAAI;gBACJ,OAAO,EAAE,wCAAwC;gBACjD,IAAI,EAAE,2EAA2E,WAAW,IAAI;aACjG,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClG,CAAC;YACF,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,WAAoB;;QACrC,IAAI,CAAC;YACH,IAAI,mBAAmB,GAAG,MAAM,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAE3D,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;oBACnD,IAAI,CAAC,6BAA6B;iBACnC,CAAC,CAAC;gBACH,mBAAmB,GAAG,MAAM,CAC1B,MAAA,QAAQ,CAAC,IAAI,CAAC,6BAA6B,CAAC,mCAAI,EAAE,CACnD,CAAC,IAAI,EAAE,CAAC;YACX,CAAC;YAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,IAAI,4BAAmB,CAAC,sEAAsE,CAAC,CAAC;YACxG,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,UAAU,CAAC;gBACtE,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;gBACpC,OAAO,EAAE;oBACP,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAChD,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;iBAC7C;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,0BAAiB,CAAC,2BAA2B,mBAAmB,cAAc,CAAC,CAAC;YAC5F,CAAC;YAED,IAAI,CAAA,MAAA,OAAO,CAAC,gBAAgB,0CAAE,IAAI,MAAK,OAAO,EAAE,CAAC;gBAC/C,MAAM,IAAI,4BAAmB,CAC3B,wBAAwB,mBAAmB,4BAA4B,CACxE,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACvD,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAE5E,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6CAA6C,OAAO,CAAC,IAAI,MAAM,YAAY,GAAG,CAAC,CAAC;YAEhG,MAAM,IAAI,GAAG,IAAA,0CAAc,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,EAChB,EAAE,EACF,OAAO,EACP,IAAI,EACJ,WAAW,GAMZ;QACC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAS,CAAC,CAAC;IAC7E,CAAC;IAGD,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,gBAA+B;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CACzD,MAAM,EACN,IAAI,CAAC,SAAS,EACd,gBAAgB,CACjB,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC1D,KAAK,EAAE;oBACL,OAAO,EAAE;wBACP,EAAE,EAAE,OAAO;qBACZ;iBACF;gBACD,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;oBACR,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,IAAI;iBACX;aACF,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;gBACpD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC5B,CAAC;gBACD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnC,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAA2B,CAAC,CAAC;YAEhC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,iCACxC,IAAI,KACP,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAC1C,CAAC,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,EAAU;QAClC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;YACpD,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,OAAO,EAAE;gBACP,WAAW,EAAE;oBACX,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE;oBACrC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;iBAChD;gBACD,QAAQ,EAAE;oBACR,MAAM,EAAE;wBACN,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,IAAI;qBACX;iBACF;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,IAAA,0BAAa,EAAC,yBAAyB,EAAE,MAAM,EAAE,yBAAyB,EAAE,YAAY,CAAC,CAAC,CAAC;QACzH,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS;YAChC,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,OAAO,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,KAAI,EAAE;YAClC,IAAI,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,KAAI,EAAE;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM;YAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAe;QAC1B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;YACxD,KAAK,EAAE,EAAE,IAAI,EAAE;SAChB,CAAC,CAAC;QAEH,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,IAAI,mBAAmB,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;YACpC,IAAI,EAAE;gBACJ,IAAI;gBACJ,WAAW,EAAE,WAAW;oBACtB,CAAC,CAAC;wBACE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;4BAC/B,SAAS,EAAE,EAAE,CAAC,SAAS;4BACvB,OAAO,EAAE,EAAE,CAAC,OAAO;4BACnB,IAAI,EAAE,EAAE,CAAC,IAAI;yBACd,CAAC,CAAC;qBACJ;oBACH,CAAC,CAAC,SAAS;gBACb,QAAQ,EAAE,QAAQ;oBAChB,CAAC,CAAC;wBACE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;4BAC5B,IAAI,EAAE,EAAE,CAAC,IAAI;yBACd,CAAC,CAAC;qBACJ;oBACH,CAAC,CAAC,SAAS;aACd;YACD,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,IAAI;aACf;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAmC;QACxD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC7C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;YAC5D,KAAK,EAAE,EAAE,EAAE,EAAE;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,4BAAmB,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,IAAI,IAAI,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC1D,KAAK,EAAE,EAAE,IAAI,EAAE;aAChB,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,IAAI,mBAAmB,CAAC,CAAC;YAChF,CAAC;YAED,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;gBACnC,KAAK,EAAE,EAAE,EAAE,EAAE;gBACb,IAAI,EAAE,EAAE,IAAI,EAAE;aACf,CAAC,CAAC;QACL,CAAC;QAED,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;gBAC7B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC;oBACpE,KAAK,EAAE;wBACL,OAAO,EAAE,EAAE;wBACX,SAAS,EAAE,EAAE,CAAC,SAAS;qBACxB;iBACF,CAAC,CAAC;gBAEH,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC;wBAC1C,KAAK,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE;wBAChC,IAAI,EAAE;4BACJ,OAAO,EAAE,EAAE,CAAC,OAAO;4BACnB,IAAI,EAAE,EAAE,CAAC,IAAI;yBACd;qBACF,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC;wBAC1C,IAAI,EAAE;4BACJ,OAAO,EAAE,EAAE;4BACX,SAAS,EAAE,EAAE,CAAC,SAAS;4BACvB,OAAO,EAAE,EAAE,CAAC,OAAO;4BACnB,IAAI,EAAE,EAAE,CAAC,IAAI;yBACd;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC3C,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;aACvB,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC3C,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC1B,OAAO,EAAE,EAAE;wBACX,IAAI,EAAE,EAAE,CAAC,IAAI;qBACd,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;YACxC,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,IAAI;aACf;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAa;QAC7B,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,4BAAmB,CAC3B,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;YACxC,KAAK,EAAE;gBACL,EAAE,EAAE;oBACF,EAAE,EAAE,GAAG;iBACR;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAAc,EACd,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAwB;QAEhD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAE7D,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC9B,EAAE,EAAE,KAAK;gBACT,IAAI;gBACJ,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,IAAI,CAAC,EAAE;aACjB,CAAC,CAAC;QAEL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAc;QAC1C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC;YAC9D,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,aAAa,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,QAAgB;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;YACpD,KAAK,EAAE,EAAE,IAAI,EAAE;YACf,OAAO,EAAE;gBACP,WAAW,EAAE;oBACX,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;oBAC9B,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;iBACtC;gBACD,QAAQ,EAAE;oBACR,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;iBACvB;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,2BAA2B,QAAQ,GAAG,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,mBAAmB,CACzB,MAAc,EACd,IAAS;QAET,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9E,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,IAAI,4BAAmB,CAC3B,4BAA4B,KAAK,CAAC,OAAO,iDAAiD,CAC3F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,EACjC,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,GACG;QACZ,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,4BAAmB,CAAC,iCAAiC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,SAAS;gBAC7B,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC;gBAC9C,CAAC,CAAC,OAAO,CAAC;YACZ,MAAM,UAAU,GAAG,SAAS;gBAC1B,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC3C,CAAC,CAAC,IAAI,CAAC;YAET,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC/B,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACrD,MAAM,IAAI,4BAAmB,CAAC,2BAA2B,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAa;QAClD,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;oBACxD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;iBAC/B,CAAC,CAAC;gBAEH,IAAI,QAAQ,EAAE,CAAC;oBACb,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,SAAS,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC;oBACvD,KAAK,EAAE;wBACL,IAAI,EAAE;4BACJ,EAAE,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;yBAC7C;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAClD,CAAC;gBAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;oBACxD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;iBAC/B,CAAC,CAAC;gBAEH,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC1B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC;wBAC9C,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE;qBAChC,CAAC,CAAC;oBAEH,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;wBAC3C,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE;qBAChC,CAAC,CAAC;oBAEH,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC;wBAC9C,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;4BAChD,OAAO,EAAE,QAAQ,CAAC,EAAE;4BACpB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAE;4BAC3C,OAAO,EAAE,WAAW,CAAC,OAAO;4BAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;yBACvB,CAAC,CAAC;qBACJ,CAAC,CAAC;oBAEH,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxD,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;4BAC3C,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gCAC1C,OAAO,EAAE,QAAQ,CAAC,EAAE;gCACpB,IAAI,EAAE,QAAQ;6BACf,CAAC,CAAC;yBACJ,CAAC,CAAC;oBACL,CAAC;oBAED,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC;qBAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;wBACnD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ,CAAC,IAAI;4BACnB,WAAW,EAAE;gCACX,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;oCAClD,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAE;oCAC3C,OAAO,EAAE,WAAW,CAAC,OAAO;oCAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;iCACvB,CAAC,CAAC;6BACJ;4BACD,QAAQ,EAAE,QAAQ,CAAC,SAAS;gCAC1B,CAAC,CAAC;oCACE,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wCAC5C,IAAI,EAAE,QAAQ;qCACf,CAAC,CAAC;iCACJ;gCACH,CAAC,CAAC,SAAS;yBACd;qBACF,CAAC,CAAC;oBAEH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,QAAQ,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBACzE,MAAM,IAAI,4BAAmB,CAC3B,8BAA8B,QAAQ,CAAC,IAAI,MAAM,OAAO,EAAE,CAC3D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,QAAQ,CAAC,MAAM;YACzB,SAAS,EAAE,QAAQ;SACpB,CAAC;IACJ,CAAC;CACF,CAAA;AAxkBY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAQR,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,0BAAa,CAAC,CAAC,CAAA;IAEvC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,sBAAe,CAAC,CAAC,CAAA;IAEzC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,0BAAa,CAAC,CAAC,CAAA;IAEvC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,gCAAc,CAAC,CAAC,CAAA;IAExC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,kEAA8B,CAAC,CAAC,CAAA;qCAPzB,0BAAa;QAEX,sBAAe;QAEjB,0BAAa;QAEnB,gCAAc;QAEP,kEAA8B;GAhBtD,WAAW,CAwkBvB"}
1
+ {"version":3,"file":"mail.service.js","sourceRoot":"","sources":["../../src/mail/mail.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { PrismaService } from '@hed-hog/api-prisma';
2
+ import { WebhookIntegrationService } from '../webhook-integration/webhook-integration.service';
3
+ export type SesWebhookInfo = {
4
+ /** URL para assinar no topico SNS (subscription HTTPS). */
5
+ publicUrl: string | null;
6
+ publicUuid: string;
7
+ webhookIntegrationId: number;
8
+ };
9
+ /**
10
+ * Provisiona o webhook que recebe os eventos de entrega de um perfil SES.
11
+ *
12
+ * Idempotente: a chave e (protocol, integration_profile_id), entao chamar de
13
+ * novo devolve o mesmo UUID - e a URL ja assinada no topico SNS continua valida.
14
+ */
15
+ export declare class MailDeliveryProvisionService {
16
+ private readonly prisma;
17
+ private readonly webhookIntegration;
18
+ constructor(prisma: PrismaService, webhookIntegration: WebhookIntegrationService);
19
+ provision(integrationProfileId: number): Promise<SesWebhookInfo>;
20
+ }
21
+ //# sourceMappingURL=mail-delivery-provision.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-delivery-provision.service.d.ts","sourceRoot":"","sources":["../../src/mail-delivery/mail-delivery-provision.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAO/F,MAAM,MAAM,cAAc,GAAG;IAC3B,2DAA2D;IAC3D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;GAKG;AACH,qBACa,4BAA4B;IAGrC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBADlB,MAAM,EAAE,aAAa,EACrB,kBAAkB,EAAE,yBAAyB;IAG1D,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CA8BvE"}
@@ -0,0 +1,64 @@
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.MailDeliveryProvisionService = void 0;
16
+ const api_prisma_1 = require("@hed-hog/api-prisma");
17
+ const common_1 = require("@nestjs/common");
18
+ const webhook_integration_service_1 = require("../webhook-integration/webhook-integration.service");
19
+ const mail_delivery_constants_1 = require("./mail-delivery.constants");
20
+ /**
21
+ * Provisiona o webhook que recebe os eventos de entrega de um perfil SES.
22
+ *
23
+ * Idempotente: a chave e (protocol, integration_profile_id), entao chamar de
24
+ * novo devolve o mesmo UUID - e a URL ja assinada no topico SNS continua valida.
25
+ */
26
+ let MailDeliveryProvisionService = class MailDeliveryProvisionService {
27
+ constructor(prisma, webhookIntegration) {
28
+ this.prisma = prisma;
29
+ this.webhookIntegration = webhookIntegration;
30
+ }
31
+ async provision(integrationProfileId) {
32
+ var _a;
33
+ const profile = await this.prisma.integration_profile.findFirst({
34
+ where: {
35
+ id: integrationProfileId,
36
+ integration_provider: { slug: mail_delivery_constants_1.SES_PROVIDER_SLUG },
37
+ },
38
+ select: { id: true, slug: true, name: true },
39
+ });
40
+ if (!profile) {
41
+ throw new common_1.BadRequestException(`Integration profile ${integrationProfileId} is not a "${mail_delivery_constants_1.SES_PROVIDER_SLUG}" profile.`);
42
+ }
43
+ const webhook = await this.webhookIntegration.provisionProtocolWebhook({
44
+ slug: `${mail_delivery_constants_1.SES_WEBHOOK_SLUG_PREFIX}-${profile.slug}`,
45
+ name: `SES — entrega (${profile.name})`,
46
+ description: 'Recebe bounce, complaint e delivery do Amazon SES. A URL vai numa subscription HTTPS do tópico SNS configurado nas notificações da identidade.',
47
+ protocol: mail_delivery_constants_1.SES_DELIVERY_WEBHOOK_PROTOCOL,
48
+ integrationProfileId: profile.id,
49
+ });
50
+ return {
51
+ publicUrl: (_a = webhook.public_url) !== null && _a !== void 0 ? _a : null,
52
+ publicUuid: webhook.public_uuid,
53
+ webhookIntegrationId: webhook.id,
54
+ };
55
+ }
56
+ };
57
+ exports.MailDeliveryProvisionService = MailDeliveryProvisionService;
58
+ exports.MailDeliveryProvisionService = MailDeliveryProvisionService = __decorate([
59
+ (0, common_1.Injectable)(),
60
+ __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => api_prisma_1.PrismaService))),
61
+ __metadata("design:paramtypes", [api_prisma_1.PrismaService,
62
+ webhook_integration_service_1.WebhookIntegrationService])
63
+ ], MailDeliveryProvisionService);
64
+ //# sourceMappingURL=mail-delivery-provision.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-delivery-provision.service.js","sourceRoot":"","sources":["../../src/mail-delivery/mail-delivery-provision.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAoD;AACpD,2CAKwB;AACxB,oGAA+F;AAC/F,uEAImC;AASnC;;;;;GAKG;AAEI,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACvC,YAEmB,MAAqB,EACrB,kBAA6C;QAD7C,WAAM,GAAN,MAAM,CAAe;QACrB,uBAAkB,GAAlB,kBAAkB,CAA2B;IAC7D,CAAC;IAEJ,KAAK,CAAC,SAAS,CAAC,oBAA4B;;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC;YAC9D,KAAK,EAAE;gBACL,EAAE,EAAE,oBAAoB;gBACxB,oBAAoB,EAAE,EAAE,IAAI,EAAE,2CAAiB,EAAE;aAClD;YACD,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,4BAAmB,CAC3B,uBAAuB,oBAAoB,cAAc,2CAAiB,YAAY,CACvF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC;YACrE,IAAI,EAAE,GAAG,iDAAuB,IAAI,OAAO,CAAC,IAAI,EAAE;YAClD,IAAI,EAAE,kBAAkB,OAAO,CAAC,IAAI,GAAG;YACvC,WAAW,EACT,gJAAgJ;YAClJ,QAAQ,EAAE,uDAA6B;YACvC,oBAAoB,EAAE,OAAO,CAAC,EAAE;SACjC,CAAC,CAAC;QAEH,OAAO;YACL,SAAS,EAAE,MAAA,OAAO,CAAC,UAAU,mCAAI,IAAI;YACrC,UAAU,EAAE,OAAO,CAAC,WAAW;YAC/B,oBAAoB,EAAE,OAAO,CAAC,EAAE;SACjC,CAAC;IACJ,CAAC;CACF,CAAA;AArCY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,0BAAa,CAAC,CAAC,CAAA;qCACf,0BAAa;QACD,uDAAyB;GAJrD,4BAA4B,CAqCxC"}
@@ -0,0 +1,17 @@
1
+ /** Protocolo do adaptador registrado no WebhookProtocolRegistry. */
2
+ export declare const SES_DELIVERY_WEBHOOK_PROTOCOL = "aws-ses";
3
+ /** Prefixo do slug do webhook provisionado por perfil. */
4
+ export declare const SES_WEBHOOK_SLUG_PREFIX = "ses-delivery";
5
+ export declare const SES_PROVIDER_SLUG = "ses";
6
+ /**
7
+ * Desfecho consolidado gravado em `mail_sent.delivery_status`.
8
+ *
9
+ * A ordem e a precedencia: um evento so sobrescreve o status atual se tiver
10
+ * rank maior ou igual. Sem isso um `Delivery` que chega depois de um
11
+ * `Complaint` - o que acontece, porque o destinatario marca como spam depois de
12
+ * receber - apagaria a reclamacao e diria que esta tudo bem.
13
+ */
14
+ export declare const MAIL_DELIVERY_STATUS_RANK: Record<string, number>;
15
+ /** Tipo de evento do provedor -> desfecho que ele representa. */
16
+ export declare const MAIL_DELIVERY_EVENT_STATUS: Record<string, string>;
17
+ //# sourceMappingURL=mail-delivery.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-delivery.constants.d.ts","sourceRoot":"","sources":["../../src/mail-delivery/mail-delivery.constants.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,eAAO,MAAM,6BAA6B,YAAY,CAAC;AAEvD,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK5D,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM7D,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAIL_DELIVERY_EVENT_STATUS = exports.MAIL_DELIVERY_STATUS_RANK = exports.SES_PROVIDER_SLUG = exports.SES_WEBHOOK_SLUG_PREFIX = exports.SES_DELIVERY_WEBHOOK_PROTOCOL = void 0;
4
+ /** Protocolo do adaptador registrado no WebhookProtocolRegistry. */
5
+ exports.SES_DELIVERY_WEBHOOK_PROTOCOL = 'aws-ses';
6
+ /** Prefixo do slug do webhook provisionado por perfil. */
7
+ exports.SES_WEBHOOK_SLUG_PREFIX = 'ses-delivery';
8
+ exports.SES_PROVIDER_SLUG = 'ses';
9
+ /**
10
+ * Desfecho consolidado gravado em `mail_sent.delivery_status`.
11
+ *
12
+ * A ordem e a precedencia: um evento so sobrescreve o status atual se tiver
13
+ * rank maior ou igual. Sem isso um `Delivery` que chega depois de um
14
+ * `Complaint` - o que acontece, porque o destinatario marca como spam depois de
15
+ * receber - apagaria a reclamacao e diria que esta tudo bem.
16
+ */
17
+ exports.MAIL_DELIVERY_STATUS_RANK = {
18
+ delivered: 1,
19
+ rejected: 2,
20
+ bounced: 3,
21
+ complained: 4,
22
+ };
23
+ /** Tipo de evento do provedor -> desfecho que ele representa. */
24
+ exports.MAIL_DELIVERY_EVENT_STATUS = {
25
+ delivery: 'delivered',
26
+ bounce: 'bounced',
27
+ complaint: 'complained',
28
+ reject: 'rejected',
29
+ renderingfailure: 'rejected',
30
+ };
31
+ //# sourceMappingURL=mail-delivery.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-delivery.constants.js","sourceRoot":"","sources":["../../src/mail-delivery/mail-delivery.constants.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACvD,QAAA,6BAA6B,GAAG,SAAS,CAAC;AAEvD,0DAA0D;AAC7C,QAAA,uBAAuB,GAAG,cAAc,CAAC;AAEzC,QAAA,iBAAiB,GAAG,KAAK,CAAC;AAEvC;;;;;;;GAOG;AACU,QAAA,yBAAyB,GAA2B;IAC/D,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,iEAAiE;AACpD,QAAA,0BAA0B,GAA2B;IAChE,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,YAAY;IACvB,MAAM,EAAE,UAAU;IAClB,gBAAgB,EAAE,UAAU;CAC7B,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { MailDeliveryProvisionService } from './mail-delivery-provision.service';
2
+ /**
3
+ * Via administrativa do rastreio de entrega.
4
+ *
5
+ * O endpoint que recebe os eventos e o `/webhook/:uuid` publico do core, servido
6
+ * pelo adaptador do protocolo `aws-ses` - por isso ele nao aparece aqui nem no
7
+ * route.yaml: o RoleGuard curto-circuita em IS_PUBLIC_KEY antes de ler a tabela
8
+ * de rotas, e uma linha la seria peso morto.
9
+ */
10
+ export declare class MailDeliveryController {
11
+ private readonly provision;
12
+ constructor(provision: MailDeliveryProvisionService);
13
+ /**
14
+ * Devolve a URL para assinar no topico SNS. Idempotente: chamar de novo
15
+ * devolve o mesmo UUID, entao uma subscription ja criada continua valendo.
16
+ */
17
+ provisionWebhook(integrationProfileId: number): Promise<import("./mail-delivery-provision.service").SesWebhookInfo>;
18
+ }
19
+ //# sourceMappingURL=mail-delivery.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-delivery.controller.d.ts","sourceRoot":"","sources":["../../src/mail-delivery/mail-delivery.controller.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF;;;;;;;GAOG;AACH,qBAEa,sBAAsB;IAG/B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,4BAA4B;IAG1D;;;OAGG;IAEG,gBAAgB,CACyB,oBAAoB,EAAE,MAAM;CAI5E"}
@@ -0,0 +1,53 @@
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.MailDeliveryController = void 0;
16
+ const api_1 = require("@hed-hog/api");
17
+ const common_1 = require("@nestjs/common");
18
+ const mail_delivery_provision_service_1 = require("./mail-delivery-provision.service");
19
+ /**
20
+ * Via administrativa do rastreio de entrega.
21
+ *
22
+ * O endpoint que recebe os eventos e o `/webhook/:uuid` publico do core, servido
23
+ * pelo adaptador do protocolo `aws-ses` - por isso ele nao aparece aqui nem no
24
+ * route.yaml: o RoleGuard curto-circuita em IS_PUBLIC_KEY antes de ler a tabela
25
+ * de rotas, e uma linha la seria peso morto.
26
+ */
27
+ let MailDeliveryController = class MailDeliveryController {
28
+ constructor(provision) {
29
+ this.provision = provision;
30
+ }
31
+ /**
32
+ * Devolve a URL para assinar no topico SNS. Idempotente: chamar de novo
33
+ * devolve o mesmo UUID, entao uma subscription ja criada continua valendo.
34
+ */
35
+ async provisionWebhook(integrationProfileId) {
36
+ return this.provision.provision(integrationProfileId);
37
+ }
38
+ };
39
+ exports.MailDeliveryController = MailDeliveryController;
40
+ __decorate([
41
+ (0, common_1.Post)('provision/:integrationProfileId'),
42
+ __param(0, (0, common_1.Param)('integrationProfileId', common_1.ParseIntPipe)),
43
+ __metadata("design:type", Function),
44
+ __metadata("design:paramtypes", [Number]),
45
+ __metadata("design:returntype", Promise)
46
+ ], MailDeliveryController.prototype, "provisionWebhook", null);
47
+ exports.MailDeliveryController = MailDeliveryController = __decorate([
48
+ (0, api_1.Role)(),
49
+ (0, common_1.Controller)('mail-delivery'),
50
+ __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => mail_delivery_provision_service_1.MailDeliveryProvisionService))),
51
+ __metadata("design:paramtypes", [mail_delivery_provision_service_1.MailDeliveryProvisionService])
52
+ ], MailDeliveryController);
53
+ //# sourceMappingURL=mail-delivery.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-delivery.controller.js","sourceRoot":"","sources":["../../src/mail-delivery/mail-delivery.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAoC;AACpC,2CAOwB;AACxB,uFAAiF;AAEjF;;;;;;;GAOG;AAGI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YAEmB,SAAuC;QAAvC,cAAS,GAAT,SAAS,CAA8B;IACvD,CAAC;IAEJ;;;OAGG;IAEG,AAAN,KAAK,CAAC,gBAAgB,CACyB,oBAA4B;QAEzE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;CACF,CAAA;AAhBY,wDAAsB;AAW3B;IADL,IAAA,aAAI,EAAC,iCAAiC,CAAC;IAErC,WAAA,IAAA,cAAK,EAAC,sBAAsB,EAAE,qBAAY,CAAC,CAAA;;;;8DAG7C;iCAfU,sBAAsB;IAFlC,IAAA,UAAI,GAAE;IACN,IAAA,mBAAU,EAAC,eAAe,CAAC;IAGvB,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8DAA4B,CAAC,CAAC,CAAA;qCAC3B,8DAA4B;GAH/C,sBAAsB,CAgBlC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Rastreio de entrega do e-mail: consome o que o provedor diz depois de aceitar
3
+ * a mensagem e o reflete em `mail_sent`.
4
+ */
5
+ export declare class MailDeliveryModule {
6
+ }
7
+ //# sourceMappingURL=mail-delivery.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-delivery.module.d.ts","sourceRoot":"","sources":["../../src/mail-delivery/mail-delivery.module.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,qBAUa,kBAAkB;CAAG"}
@@ -0,0 +1,36 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MailDeliveryModule = void 0;
10
+ const api_prisma_1 = require("@hed-hog/api-prisma");
11
+ const common_1 = require("@nestjs/common");
12
+ const webhook_integration_module_1 = require("../webhook-integration/webhook-integration.module");
13
+ const mail_delivery_provision_service_1 = require("./mail-delivery-provision.service");
14
+ const mail_delivery_controller_1 = require("./mail-delivery.controller");
15
+ const mail_delivery_service_1 = require("./mail-delivery.service");
16
+ const ses_webhook_service_1 = require("./ses-webhook.service");
17
+ /**
18
+ * Rastreio de entrega do e-mail: consome o que o provedor diz depois de aceitar
19
+ * a mensagem e o reflete em `mail_sent`.
20
+ */
21
+ let MailDeliveryModule = class MailDeliveryModule {
22
+ };
23
+ exports.MailDeliveryModule = MailDeliveryModule;
24
+ exports.MailDeliveryModule = MailDeliveryModule = __decorate([
25
+ (0, common_1.Module)({
26
+ imports: [
27
+ (0, common_1.forwardRef)(() => api_prisma_1.PrismaModule),
28
+ // O adaptador se registra no WebhookProtocolRegistry, que mora aqui.
29
+ (0, common_1.forwardRef)(() => webhook_integration_module_1.WebhookIntegrationModule),
30
+ ],
31
+ controllers: [mail_delivery_controller_1.MailDeliveryController],
32
+ providers: [mail_delivery_service_1.MailDeliveryService, mail_delivery_provision_service_1.MailDeliveryProvisionService, ses_webhook_service_1.SesWebhookService],
33
+ exports: [mail_delivery_service_1.MailDeliveryService, mail_delivery_provision_service_1.MailDeliveryProvisionService],
34
+ })
35
+ ], MailDeliveryModule);
36
+ //# sourceMappingURL=mail-delivery.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-delivery.module.js","sourceRoot":"","sources":["../../src/mail-delivery/mail-delivery.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAmD;AACnD,2CAAoD;AACpD,kGAA6F;AAC7F,uFAAiF;AACjF,yEAAoE;AACpE,mEAA8D;AAC9D,+DAA0D;AAE1D;;;GAGG;AAWI,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAAG,CAAA;AAArB,gDAAkB;6BAAlB,kBAAkB;IAV9B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,yBAAY,CAAC;YAC9B,qEAAqE;YACrE,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,qDAAwB,CAAC;SAC3C;QACD,WAAW,EAAE,CAAC,iDAAsB,CAAC;QACrC,SAAS,EAAE,CAAC,2CAAmB,EAAE,8DAA4B,EAAE,uCAAiB,CAAC;QACjF,OAAO,EAAE,CAAC,2CAAmB,EAAE,8DAA4B,CAAC;KAC7D,CAAC;GACW,kBAAkB,CAAG"}
@@ -0,0 +1,38 @@
1
+ import { PrismaService } from '@hed-hog/api-prisma';
2
+ export type MailDeliveryIngestResult = {
3
+ events: number;
4
+ stored: number;
5
+ matched: number;
6
+ };
7
+ /**
8
+ * Grava o que o provedor diz depois de aceitar a mensagem.
9
+ *
10
+ * Ate existir isto, "enviado" no log de e-mails significava apenas "o provedor
11
+ * aceitou". Tres mensagens do chamado 202608-000020 sairam com MessageId de
12
+ * sucesso do SES e nenhuma chegou a caixa alguma - e nao havia nada no Hub que
13
+ * pudesse mostrar isso.
14
+ */
15
+ export declare class MailDeliveryService {
16
+ private readonly prisma;
17
+ private readonly logger;
18
+ constructor(prisma: PrismaService);
19
+ /** Processa uma notificacao ja desembrulhada do envelope do SNS. */
20
+ ingestSesNotification(payload: any): Promise<MailDeliveryIngestResult>;
21
+ private findMailSentId;
22
+ /**
23
+ * Devolve `false` quando o evento ja existia.
24
+ *
25
+ * O SNS reentrega quando a resposta demora, entao a colisao no indice de
26
+ * dedupe e o caminho normal - nao um erro a ser propagado.
27
+ */
28
+ private storeEvent;
29
+ /**
30
+ * Consolida o desfecho em `mail_sent.delivery_status`.
31
+ *
32
+ * So sobe na escala: uma reclamacao que chega depois da entrega nao pode ser
33
+ * apagada por um `Delivery` atrasado - e o destinatario marcar como spam
34
+ * depois de receber e exatamente o caso comum.
35
+ */
36
+ private applyStatus;
37
+ }
38
+ //# sourceMappingURL=mail-delivery.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-delivery.service.d.ts","sourceRoot":"","sources":["../../src/mail-delivery/mail-delivery.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,qBACa,mBAAmB;IAK5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAI5C,MAAM,EAAE,aAAa;IAGxC,oEAAoE;IAC9D,qBAAqB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,wBAAwB,CAAC;YA2B9D,cAAc;IAS5B;;;;;OAKG;YACW,UAAU;IAyCxB;;;;;;OAMG;YACW,WAAW;CA6B1B"}
@@ -0,0 +1,140 @@
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
+ var MailDeliveryService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.MailDeliveryService = void 0;
17
+ const api_prisma_1 = require("@hed-hog/api-prisma");
18
+ const common_1 = require("@nestjs/common");
19
+ const mail_delivery_constants_1 = require("./mail-delivery.constants");
20
+ const ses_event_parser_1 = require("./ses-event.parser");
21
+ /**
22
+ * Grava o que o provedor diz depois de aceitar a mensagem.
23
+ *
24
+ * Ate existir isto, "enviado" no log de e-mails significava apenas "o provedor
25
+ * aceitou". Tres mensagens do chamado 202608-000020 sairam com MessageId de
26
+ * sucesso do SES e nenhuma chegou a caixa alguma - e nao havia nada no Hub que
27
+ * pudesse mostrar isso.
28
+ */
29
+ let MailDeliveryService = MailDeliveryService_1 = class MailDeliveryService {
30
+ constructor(prisma) {
31
+ this.prisma = prisma;
32
+ this.logger = new common_1.Logger(MailDeliveryService_1.name);
33
+ }
34
+ /** Processa uma notificacao ja desembrulhada do envelope do SNS. */
35
+ async ingestSesNotification(payload) {
36
+ const events = (0, ses_event_parser_1.parseSesNotification)(payload);
37
+ if (!events.length) {
38
+ this.logger.warn(`Ignoring SES notification without a recognizable event type or messageId.`);
39
+ return { events: 0, stored: 0, matched: 0 };
40
+ }
41
+ let stored = 0;
42
+ let matched = 0;
43
+ for (const event of events) {
44
+ const mailSentId = await this.findMailSentId(event.providerMessageId);
45
+ if (mailSentId)
46
+ matched += 1;
47
+ const created = await this.storeEvent(event, mailSentId, payload);
48
+ if (created)
49
+ stored += 1;
50
+ }
51
+ // O status consolidado e por mensagem, nao por destinatario: e o que a
52
+ // listagem mostra numa linha so.
53
+ await this.applyStatus(events[0].providerMessageId, events);
54
+ return { events: events.length, stored, matched };
55
+ }
56
+ async findMailSentId(providerMessageId) {
57
+ var _a;
58
+ const row = await this.prisma.mail_sent.findFirst({
59
+ where: { provider_message_id: providerMessageId },
60
+ select: { id: true },
61
+ orderBy: { id: 'desc' },
62
+ });
63
+ return (_a = row === null || row === void 0 ? void 0 : row.id) !== null && _a !== void 0 ? _a : null;
64
+ }
65
+ /**
66
+ * Devolve `false` quando o evento ja existia.
67
+ *
68
+ * O SNS reentrega quando a resposta demora, entao a colisao no indice de
69
+ * dedupe e o caminho normal - nao um erro a ser propagado.
70
+ */
71
+ async storeEvent(event, mailSentId, payload) {
72
+ try {
73
+ await this.prisma.mail_delivery_event.create({
74
+ data: {
75
+ mail_sent_id: mailSentId,
76
+ provider_message_id: event.providerMessageId,
77
+ recipient_email: event.recipientEmail,
78
+ event_type: event.eventType,
79
+ bounce_type: event.bounceType,
80
+ bounce_subtype: event.bounceSubtype,
81
+ diagnostic_code: event.diagnosticCode,
82
+ reporting_mta: event.reportingMta,
83
+ payload: payload !== null && payload !== void 0 ? payload : undefined,
84
+ occurred_at: event.occurredAt,
85
+ },
86
+ });
87
+ if (!mailSentId) {
88
+ // Evento de um envio que nao esta no mail_sent: guardado de proposito,
89
+ // porque e justamente a evidencia de que algo saiu por fora.
90
+ this.logger.warn(`Delivery event "${event.eventType}" for unknown messageId ${event.providerMessageId}`);
91
+ }
92
+ return true;
93
+ }
94
+ catch (error) {
95
+ if ((error === null || error === void 0 ? void 0 : error.code) === 'P2002')
96
+ return false;
97
+ this.logger.error(`Failed to store delivery event for ${event.providerMessageId}: ${error === null || error === void 0 ? void 0 : error.message}`);
98
+ return false;
99
+ }
100
+ }
101
+ /**
102
+ * Consolida o desfecho em `mail_sent.delivery_status`.
103
+ *
104
+ * So sobe na escala: uma reclamacao que chega depois da entrega nao pode ser
105
+ * apagada por um `Delivery` atrasado - e o destinatario marcar como spam
106
+ * depois de receber e exatamente o caso comum.
107
+ */
108
+ async applyStatus(providerMessageId, events) {
109
+ let best = null;
110
+ for (const event of events) {
111
+ const status = mail_delivery_constants_1.MAIL_DELIVERY_EVENT_STATUS[event.eventType];
112
+ if (!status)
113
+ continue;
114
+ if (!best || mail_delivery_constants_1.MAIL_DELIVERY_STATUS_RANK[status] > mail_delivery_constants_1.MAIL_DELIVERY_STATUS_RANK[best]) {
115
+ best = status;
116
+ }
117
+ }
118
+ // Send, Open, Click e afins nao mudam o desfecho da entrega.
119
+ if (!best)
120
+ return;
121
+ const rank = mail_delivery_constants_1.MAIL_DELIVERY_STATUS_RANK[best];
122
+ const weaker = Object.entries(mail_delivery_constants_1.MAIL_DELIVERY_STATUS_RANK)
123
+ .filter(([, value]) => value < rank)
124
+ .map(([key]) => key);
125
+ await this.prisma.mail_sent.updateMany({
126
+ where: {
127
+ provider_message_id: providerMessageId,
128
+ OR: [{ delivery_status: null }, { delivery_status: { in: weaker } }],
129
+ },
130
+ data: { delivery_status: best, delivery_updated_at: new Date() },
131
+ });
132
+ }
133
+ };
134
+ exports.MailDeliveryService = MailDeliveryService;
135
+ exports.MailDeliveryService = MailDeliveryService = MailDeliveryService_1 = __decorate([
136
+ (0, common_1.Injectable)(),
137
+ __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => api_prisma_1.PrismaService))),
138
+ __metadata("design:paramtypes", [api_prisma_1.PrismaService])
139
+ ], MailDeliveryService);
140
+ //# sourceMappingURL=mail-delivery.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-delivery.service.js","sourceRoot":"","sources":["../../src/mail-delivery/mail-delivery.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Um evento de entrega ja normalizado, independente do formato em que o SES o
3
+ * enviou.
4
+ */
5
+ export type SesDeliveryEvent = {
6
+ providerMessageId: string;
7
+ recipientEmail: string | null;
8
+ /** minusculo: delivery | bounce | complaint | reject | send | open | click | ... */
9
+ eventType: string;
10
+ bounceType: string | null;
11
+ bounceSubtype: string | null;
12
+ diagnosticCode: string | null;
13
+ reportingMta: string | null;
14
+ occurredAt: Date;
15
+ };
16
+ /**
17
+ * O SES publica o mesmo fato em dois formatos, e qual deles chega depende de
18
+ * como as notificacoes foram ligadas:
19
+ *
20
+ * - notificacoes por identidade (o caminho simples): `notificationType`
21
+ * - configuration set com event destination: `eventType`
22
+ *
23
+ * Suportar os dois e barato e evita que a escolha feita no console da AWS - que
24
+ * nem sempre e nossa - quebre a ingestao.
25
+ */
26
+ export declare function parseSesNotification(payload: any): SesDeliveryEvent[];
27
+ //# sourceMappingURL=ses-event.parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ses-event.parser.d.ts","sourceRoot":"","sources":["../../src/mail-delivery/ses-event.parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,EAAE,CAiIrE"}