@hed-hog/core 0.0.390 → 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.
- package/README.md +39 -0
- package/dist/access-log/access-log.controller.d.ts.map +1 -1
- package/dist/access-log/access-log.controller.js +1 -1
- package/dist/access-log/access-log.controller.js.map +1 -1
- package/dist/access-log/access-log.interceptor.d.ts.map +1 -1
- package/dist/access-log/access-log.interceptor.js +8 -5
- package/dist/access-log/access-log.interceptor.js.map +1 -1
- package/dist/access-log/access-log.service.d.ts +4 -0
- package/dist/access-log/access-log.service.d.ts.map +1 -1
- package/dist/access-log/access-log.service.js +31 -4
- package/dist/access-log/access-log.service.js.map +1 -1
- package/dist/access-log/dto/query-access-log.dto.d.ts +2 -0
- package/dist/access-log/dto/query-access-log.dto.d.ts.map +1 -1
- package/dist/access-log/dto/query-access-log.dto.js +5 -0
- package/dist/access-log/dto/query-access-log.dto.js.map +1 -1
- package/dist/ai/ai.controller.d.ts +12 -8
- package/dist/ai/ai.controller.d.ts.map +1 -1
- package/dist/ai/ai.controller.js +17 -2
- package/dist/ai/ai.controller.js.map +1 -1
- package/dist/ai/ai.module.d.ts.map +1 -1
- package/dist/ai/ai.module.js +3 -2
- package/dist/ai/ai.module.js.map +1 -1
- package/dist/ai/ai.service.d.ts +30 -1
- package/dist/ai/ai.service.d.ts.map +1 -1
- package/dist/ai/ai.service.js +97 -3
- package/dist/ai/ai.service.js.map +1 -1
- package/dist/ai/dto/richtext-edit-html.dto.d.ts +5 -0
- package/dist/ai/dto/richtext-edit-html.dto.d.ts.map +1 -0
- package/dist/ai/dto/richtext-edit-html.dto.js +27 -0
- package/dist/ai/dto/richtext-edit-html.dto.js.map +1 -0
- package/dist/ai/richtext-ai.prompts.d.ts +5 -0
- package/dist/ai/richtext-ai.prompts.d.ts.map +1 -0
- package/dist/ai/richtext-ai.prompts.js +57 -0
- package/dist/ai/richtext-ai.prompts.js.map +1 -0
- package/dist/ai/richtext-ai.service.d.ts +34 -0
- package/dist/ai/richtext-ai.service.d.ts.map +1 -0
- package/dist/ai/richtext-ai.service.js +95 -0
- package/dist/ai/richtext-ai.service.js.map +1 -0
- package/dist/ai-instruction/ai-instruction.controller.d.ts +5 -5
- package/dist/auth/auth.controller.d.ts +66 -7
- package/dist/auth/auth.controller.d.ts.map +1 -1
- package/dist/auth/auth.controller.js +67 -23
- package/dist/auth/auth.controller.js.map +1 -1
- package/dist/auth/auth.module.d.ts.map +1 -1
- package/dist/auth/auth.module.js +2 -0
- package/dist/auth/auth.module.js.map +1 -1
- package/dist/auth/auth.service.d.ts +136 -4
- package/dist/auth/auth.service.d.ts.map +1 -1
- package/dist/auth/auth.service.js +246 -48
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/auth/dto/confirm-email.dto.d.ts +4 -0
- package/dist/auth/dto/confirm-email.dto.d.ts.map +1 -0
- package/dist/auth/dto/confirm-email.dto.js +22 -0
- package/dist/auth/dto/confirm-email.dto.js.map +1 -0
- package/dist/auth/dto/resend-confirmation.dto.d.ts +8 -0
- package/dist/auth/dto/resend-confirmation.dto.d.ts.map +1 -0
- package/dist/auth/dto/resend-confirmation.dto.js +36 -0
- package/dist/auth/dto/resend-confirmation.dto.js.map +1 -0
- package/dist/authorize/authorize.controller.d.ts +1 -1
- package/dist/authorize/authorize.controller.d.ts.map +1 -1
- package/dist/authorize/authorize.controller.js +4 -2
- package/dist/authorize/authorize.controller.js.map +1 -1
- package/dist/authorize/authorize.service.d.ts +7 -0
- package/dist/authorize/authorize.service.d.ts.map +1 -1
- package/dist/authorize/authorize.service.js +1 -1
- package/dist/authorize/authorize.service.js.map +1 -1
- package/dist/challenge/challenge.service.d.ts +18 -5
- package/dist/challenge/challenge.service.d.ts.map +1 -1
- package/dist/challenge/challenge.service.js +50 -3
- package/dist/challenge/challenge.service.js.map +1 -1
- package/dist/core.module.d.ts.map +1 -1
- package/dist/core.module.js +17 -0
- package/dist/core.module.js.map +1 -1
- package/dist/dashboard/dashboard/dashboard.controller.d.ts +6 -6
- package/dist/dashboard/dashboard/dashboard.service.d.ts +6 -6
- package/dist/dashboard/dashboard-component/dashboard-component.controller.d.ts +4 -4
- package/dist/dashboard/dashboard-component/dashboard-component.service.d.ts +4 -4
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.controller.d.ts +1 -1
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.d.ts +1 -1
- package/dist/dashboard/dashboard-core/dashboard-core.controller.d.ts +2 -2
- package/dist/dashboard/dashboard-core/dashboard-core.service.d.ts +2 -2
- package/dist/dashboard/dashboard-item/dashboard-item.controller.d.ts +2 -2
- package/dist/dashboard/dashboard-item/dashboard-item.service.d.ts +2 -2
- package/dist/file/file.controller.d.ts +8 -1
- package/dist/file/file.controller.d.ts.map +1 -1
- package/dist/file/file.controller.js +45 -7
- package/dist/file/file.controller.js.map +1 -1
- package/dist/file/file.service.d.ts +128 -1
- package/dist/file/file.service.d.ts.map +1 -1
- package/dist/file/file.service.js +319 -8
- package/dist/file/file.service.js.map +1 -1
- package/dist/file/image-optimization.service.d.ts +43 -0
- package/dist/file/image-optimization.service.d.ts.map +1 -1
- package/dist/file/image-optimization.service.js +154 -0
- package/dist/file/image-optimization.service.js.map +1 -1
- package/dist/file/provider/abstract.provider.d.ts +16 -0
- package/dist/file/provider/abstract.provider.d.ts.map +1 -1
- package/dist/file/provider/abstract.provider.js +4 -0
- package/dist/file/provider/abstract.provider.js.map +1 -1
- package/dist/file/provider/gcs.provider.d.ts +2 -0
- package/dist/file/provider/gcs.provider.d.ts.map +1 -1
- package/dist/file/provider/gcs.provider.js +10 -0
- package/dist/file/provider/gcs.provider.js.map +1 -1
- package/dist/file/provider/local.provider.d.ts +1 -0
- package/dist/file/provider/local.provider.d.ts.map +1 -1
- package/dist/file/provider/local.provider.js +13 -0
- package/dist/file/provider/local.provider.js.map +1 -1
- package/dist/file/provider/s3.provider.d.ts +5 -0
- package/dist/file/provider/s3.provider.d.ts.map +1 -1
- package/dist/file/provider/s3.provider.js +15 -0
- package/dist/file/provider/s3.provider.js.map +1 -1
- package/dist/file/provider/spaces.provider.d.ts +5 -0
- package/dist/file/provider/spaces.provider.d.ts.map +1 -1
- package/dist/file/provider/spaces.provider.js +16 -0
- package/dist/file/provider/spaces.provider.js.map +1 -1
- package/dist/impersonation/dto/redeem-impersonation.dto.d.ts +4 -0
- package/dist/impersonation/dto/redeem-impersonation.dto.d.ts.map +1 -0
- package/dist/impersonation/dto/redeem-impersonation.dto.js +23 -0
- package/dist/impersonation/dto/redeem-impersonation.dto.js.map +1 -0
- package/dist/impersonation/dto/start-impersonation.dto.d.ts +7 -0
- package/dist/impersonation/dto/start-impersonation.dto.d.ts.map +1 -0
- package/dist/impersonation/dto/start-impersonation.dto.js +27 -0
- package/dist/impersonation/dto/start-impersonation.dto.js.map +1 -0
- package/dist/impersonation/impersonation-restrictions.d.ts +26 -0
- package/dist/impersonation/impersonation-restrictions.d.ts.map +1 -0
- package/dist/impersonation/impersonation-restrictions.js +76 -0
- package/dist/impersonation/impersonation-restrictions.js.map +1 -0
- package/dist/impersonation/impersonation.controller.d.ts +90 -0
- package/dist/impersonation/impersonation.controller.d.ts.map +1 -0
- package/dist/impersonation/impersonation.controller.js +135 -0
- package/dist/impersonation/impersonation.controller.js.map +1 -0
- package/dist/impersonation/impersonation.module.d.ts +8 -0
- package/dist/impersonation/impersonation.module.d.ts.map +1 -0
- package/dist/impersonation/impersonation.module.js +44 -0
- package/dist/impersonation/impersonation.module.js.map +1 -0
- package/dist/impersonation/impersonation.service.d.ts +164 -0
- package/dist/impersonation/impersonation.service.d.ts.map +1 -0
- package/dist/impersonation/impersonation.service.js +408 -0
- package/dist/impersonation/impersonation.service.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -1
- package/dist/integration/services/outbox-polling.coordinator.d.ts +2 -0
- package/dist/integration/services/outbox-polling.coordinator.d.ts.map +1 -1
- package/dist/integration/services/outbox-polling.coordinator.js +50 -30
- package/dist/integration/services/outbox-polling.coordinator.js.map +1 -1
- package/dist/integration/services/outbox.service.d.ts.map +1 -1
- package/dist/integration/services/outbox.service.js +5 -1
- package/dist/integration/services/outbox.service.js.map +1 -1
- package/dist/integration-profile/integration-profile.secrets.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.secrets.js +3 -0
- package/dist/integration-profile/integration-profile.secrets.js.map +1 -1
- package/dist/integration-profile/integration-profile.utils.d.ts +14 -0
- package/dist/integration-profile/integration-profile.utils.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.utils.js +26 -0
- package/dist/integration-profile/integration-profile.utils.js.map +1 -1
- package/dist/integration-profile/testers/email.testers.d.ts.map +1 -1
- package/dist/integration-profile/testers/email.testers.js +28 -0
- package/dist/integration-profile/testers/email.testers.js.map +1 -1
- package/dist/language/en.json +11 -0
- package/dist/language/pt.json +11 -0
- package/dist/mail/dto/send.dto.d.ts +38 -1
- package/dist/mail/dto/send.dto.d.ts.map +1 -1
- package/dist/mail/dto/send.dto.js +10 -0
- package/dist/mail/dto/send.dto.js.map +1 -1
- package/dist/mail/mail.controller.d.ts +1 -0
- package/dist/mail/mail.controller.d.ts.map +1 -1
- package/dist/mail/mail.module.d.ts.map +1 -1
- package/dist/mail/mail.module.js +2 -0
- package/dist/mail/mail.module.js.map +1 -1
- package/dist/mail/mail.service.d.ts +48 -4
- package/dist/mail/mail.service.d.ts.map +1 -1
- package/dist/mail/mail.service.js +187 -35
- package/dist/mail/mail.service.js.map +1 -1
- package/dist/mail-delivery/mail-delivery-provision.service.d.ts +21 -0
- package/dist/mail-delivery/mail-delivery-provision.service.d.ts.map +1 -0
- package/dist/mail-delivery/mail-delivery-provision.service.js +64 -0
- package/dist/mail-delivery/mail-delivery-provision.service.js.map +1 -0
- package/dist/mail-delivery/mail-delivery.constants.d.ts +17 -0
- package/dist/mail-delivery/mail-delivery.constants.d.ts.map +1 -0
- package/dist/mail-delivery/mail-delivery.constants.js +31 -0
- package/dist/mail-delivery/mail-delivery.constants.js.map +1 -0
- package/dist/mail-delivery/mail-delivery.controller.d.ts +19 -0
- package/dist/mail-delivery/mail-delivery.controller.d.ts.map +1 -0
- package/dist/mail-delivery/mail-delivery.controller.js +53 -0
- package/dist/mail-delivery/mail-delivery.controller.js.map +1 -0
- package/dist/mail-delivery/mail-delivery.module.d.ts +7 -0
- package/dist/mail-delivery/mail-delivery.module.d.ts.map +1 -0
- package/dist/mail-delivery/mail-delivery.module.js +36 -0
- package/dist/mail-delivery/mail-delivery.module.js.map +1 -0
- package/dist/mail-delivery/mail-delivery.service.d.ts +38 -0
- package/dist/mail-delivery/mail-delivery.service.d.ts.map +1 -0
- package/dist/mail-delivery/mail-delivery.service.js +140 -0
- package/dist/mail-delivery/mail-delivery.service.js.map +1 -0
- package/dist/mail-delivery/ses-event.parser.d.ts +27 -0
- package/dist/mail-delivery/ses-event.parser.d.ts.map +1 -0
- package/dist/mail-delivery/ses-event.parser.js +131 -0
- package/dist/mail-delivery/ses-event.parser.js.map +1 -0
- package/dist/mail-delivery/ses-webhook.service.d.ts +58 -0
- package/dist/mail-delivery/ses-webhook.service.d.ts.map +1 -0
- package/dist/mail-delivery/ses-webhook.service.js +214 -0
- package/dist/mail-delivery/ses-webhook.service.js.map +1 -0
- package/dist/mail-delivery/sns-message.util.d.ts +38 -0
- package/dist/mail-delivery/sns-message.util.d.ts.map +1 -0
- package/dist/mail-delivery/sns-message.util.js +109 -0
- package/dist/mail-delivery/sns-message.util.js.map +1 -0
- package/dist/mail-sent/dto/query-mail-sent-list.dto.d.ts +5 -0
- package/dist/mail-sent/dto/query-mail-sent-list.dto.d.ts.map +1 -1
- package/dist/mail-sent/dto/query-mail-sent-list.dto.js +6 -0
- package/dist/mail-sent/dto/query-mail-sent-list.dto.js.map +1 -1
- package/dist/mail-sent/mail-sent.controller.d.ts +39 -0
- package/dist/mail-sent/mail-sent.controller.d.ts.map +1 -1
- package/dist/mail-sent/mail-sent.service.d.ts +39 -0
- package/dist/mail-sent/mail-sent.service.d.ts.map +1 -1
- package/dist/mail-sent/mail-sent.service.js +45 -4
- package/dist/mail-sent/mail-sent.service.js.map +1 -1
- package/dist/mailbox/mailbox-fetcher.registry.d.ts +100 -0
- package/dist/mailbox/mailbox-fetcher.registry.d.ts.map +1 -0
- package/dist/mailbox/mailbox-fetcher.registry.js +59 -0
- package/dist/mailbox/mailbox-fetcher.registry.js.map +1 -0
- package/dist/mailbox/mailbox.module.d.ts +8 -0
- package/dist/mailbox/mailbox.module.d.ts.map +1 -0
- package/dist/mailbox/mailbox.module.js +27 -0
- package/dist/mailbox/mailbox.module.js.map +1 -0
- package/dist/meeting/meeting-provider.registry.d.ts +155 -0
- package/dist/meeting/meeting-provider.registry.d.ts.map +1 -0
- package/dist/meeting/meeting-provider.registry.js +53 -0
- package/dist/meeting/meeting-provider.registry.js.map +1 -0
- package/dist/meeting/meeting.constants.d.ts +47 -0
- package/dist/meeting/meeting.constants.d.ts.map +1 -0
- package/dist/meeting/meeting.constants.js +21 -0
- package/dist/meeting/meeting.constants.js.map +1 -0
- package/dist/meeting/meeting.module.d.ts +7 -0
- package/dist/meeting/meeting.module.d.ts.map +1 -0
- package/dist/meeting/meeting.module.js +26 -0
- package/dist/meeting/meeting.module.js.map +1 -0
- package/dist/middlewares/locale-injection.middleware.d.ts +12 -0
- package/dist/middlewares/locale-injection.middleware.d.ts.map +1 -1
- package/dist/middlewares/locale-injection.middleware.js +20 -4
- package/dist/middlewares/locale-injection.middleware.js.map +1 -1
- package/dist/oauth/providers/google.provider.d.ts +7 -0
- package/dist/oauth/providers/google.provider.d.ts.map +1 -1
- package/dist/oauth/providers/google.provider.js +43 -13
- package/dist/oauth/providers/google.provider.js.map +1 -1
- package/dist/observability/monitored-cron.d.ts +34 -0
- package/dist/observability/monitored-cron.d.ts.map +1 -0
- package/dist/observability/monitored-cron.js +118 -0
- package/dist/observability/monitored-cron.js.map +1 -0
- package/dist/pairing/dto/approve-reverse-pairing.dto.d.ts +12 -0
- package/dist/pairing/dto/approve-reverse-pairing.dto.d.ts.map +1 -0
- package/dist/pairing/dto/approve-reverse-pairing.dto.js +30 -0
- package/dist/pairing/dto/approve-reverse-pairing.dto.js.map +1 -0
- package/dist/pairing/dto/claim-pairing.dto.d.ts +11 -0
- package/dist/pairing/dto/claim-pairing.dto.d.ts.map +1 -0
- package/dist/pairing/dto/claim-pairing.dto.js +35 -0
- package/dist/pairing/dto/claim-pairing.dto.js.map +1 -0
- package/dist/pairing/dto/confirm-pairing.dto.d.ts +10 -0
- package/dist/pairing/dto/confirm-pairing.dto.d.ts.map +1 -0
- package/dist/pairing/dto/confirm-pairing.dto.js +24 -0
- package/dist/pairing/dto/confirm-pairing.dto.js.map +1 -0
- package/dist/pairing/dto/poll-reverse-pairing.dto.d.ts +5 -0
- package/dist/pairing/dto/poll-reverse-pairing.dto.d.ts.map +1 -0
- package/dist/pairing/dto/poll-reverse-pairing.dto.js +24 -0
- package/dist/pairing/dto/poll-reverse-pairing.dto.js.map +1 -0
- package/dist/pairing/dto/start-pairing.dto.d.ts +11 -0
- package/dist/pairing/dto/start-pairing.dto.d.ts.map +1 -0
- package/dist/pairing/dto/start-pairing.dto.js +30 -0
- package/dist/pairing/dto/start-pairing.dto.js.map +1 -0
- package/dist/pairing/dto/start-reverse-pairing.dto.d.ts +24 -0
- package/dist/pairing/dto/start-reverse-pairing.dto.d.ts.map +1 -0
- package/dist/pairing/dto/start-reverse-pairing.dto.js +47 -0
- package/dist/pairing/dto/start-reverse-pairing.dto.js.map +1 -0
- package/dist/pairing/pairing.controller.d.ts +118 -0
- package/dist/pairing/pairing.controller.d.ts.map +1 -0
- package/dist/pairing/pairing.controller.js +296 -0
- package/dist/pairing/pairing.controller.js.map +1 -0
- package/dist/pairing/pairing.module.d.ts +10 -0
- package/dist/pairing/pairing.module.d.ts.map +1 -0
- package/dist/pairing/pairing.module.js +40 -0
- package/dist/pairing/pairing.module.js.map +1 -0
- package/dist/pairing/pairing.service.d.ts +238 -0
- package/dist/pairing/pairing.service.d.ts.map +1 -0
- package/dist/pairing/pairing.service.js +495 -0
- package/dist/pairing/pairing.service.js.map +1 -0
- package/dist/pdf/pdf.service.d.ts +3 -6
- package/dist/pdf/pdf.service.d.ts.map +1 -1
- package/dist/pdf/pdf.service.js +8 -20
- package/dist/pdf/pdf.service.js.map +1 -1
- package/dist/profile/profile.controller.d.ts +11 -0
- package/dist/profile/profile.controller.d.ts.map +1 -1
- package/dist/profile/profile.service.d.ts +11 -0
- package/dist/profile/profile.service.d.ts.map +1 -1
- package/dist/profile/profile.service.js +20 -11
- package/dist/profile/profile.service.js.map +1 -1
- package/dist/redis/redis-pubsub.d.ts.map +1 -1
- package/dist/redis/redis-pubsub.js +44 -0
- package/dist/redis/redis-pubsub.js.map +1 -1
- package/dist/role/guards/role.guard.d.ts +5 -0
- package/dist/role/guards/role.guard.d.ts.map +1 -1
- package/dist/role/guards/role.guard.js +41 -39
- package/dist/role/guards/role.guard.js.map +1 -1
- package/dist/session/session.controller.d.ts +2 -0
- package/dist/session/session.controller.d.ts.map +1 -1
- package/dist/session/session.service.d.ts +39 -0
- package/dist/session/session.service.d.ts.map +1 -1
- package/dist/session/session.service.js +91 -8
- package/dist/session/session.service.js.map +1 -1
- package/dist/setting/brand-asset.service.d.ts +48 -0
- package/dist/setting/brand-asset.service.d.ts.map +1 -0
- package/dist/setting/brand-asset.service.js +130 -0
- package/dist/setting/brand-asset.service.js.map +1 -0
- package/dist/setting/setting.module.d.ts.map +1 -1
- package/dist/setting/setting.module.js +3 -2
- package/dist/setting/setting.module.js.map +1 -1
- package/dist/setting/setting.service.d.ts +33 -0
- package/dist/setting/setting.service.d.ts.map +1 -1
- package/dist/setting/setting.service.js +88 -0
- package/dist/setting/setting.service.js.map +1 -1
- package/dist/token/token.service.d.ts +23 -2
- package/dist/token/token.service.d.ts.map +1 -1
- package/dist/token/token.service.js +39 -4
- package/dist/token/token.service.js.map +1 -1
- package/dist/user/user.controller.d.ts +8 -22
- package/dist/user/user.controller.d.ts.map +1 -1
- package/dist/user/user.service.d.ts +44 -24
- package/dist/user/user.service.d.ts.map +1 -1
- package/dist/user/user.service.js +89 -6
- package/dist/user/user.service.js.map +1 -1
- package/dist/user-device/user-device.controller.d.ts +54 -0
- package/dist/user-device/user-device.controller.d.ts.map +1 -0
- package/dist/user-device/user-device.controller.js +103 -0
- package/dist/user-device/user-device.controller.js.map +1 -0
- package/dist/user-device/user-device.module.d.ts +3 -0
- package/dist/user-device/user-device.module.d.ts.map +1 -0
- package/dist/user-device/user-device.module.js +26 -0
- package/dist/user-device/user-device.module.js.map +1 -0
- package/dist/user-device/user-device.service.d.ts +71 -0
- package/dist/user-device/user-device.service.d.ts.map +1 -0
- package/dist/user-device/user-device.service.js +158 -0
- package/dist/user-device/user-device.service.js.map +1 -0
- package/dist/utils/device-key.d.ts +23 -0
- package/dist/utils/device-key.d.ts.map +1 -0
- package/dist/utils/device-key.js +31 -0
- package/dist/utils/device-key.js.map +1 -0
- package/dist/utils/geo-ip.d.ts +38 -0
- package/dist/utils/geo-ip.d.ts.map +1 -0
- package/dist/utils/geo-ip.js +122 -0
- package/dist/utils/geo-ip.js.map +1 -0
- package/dist/utils/locale-context.d.ts +10 -7
- package/dist/utils/locale-context.d.ts.map +1 -1
- package/dist/utils/locale-context.js +14 -8
- package/dist/utils/locale-context.js.map +1 -1
- package/dist/utils/security-event-vars.d.ts +56 -0
- package/dist/utils/security-event-vars.d.ts.map +1 -0
- package/dist/utils/security-event-vars.js +109 -0
- package/dist/utils/security-event-vars.js.map +1 -0
- package/dist/utils/user-agent.d.ts +19 -0
- package/dist/utils/user-agent.d.ts.map +1 -0
- package/dist/utils/user-agent.js +36 -0
- package/dist/utils/user-agent.js.map +1 -0
- package/dist/webhook-integration/webhook-integration.service.d.ts +5 -0
- package/dist/webhook-integration/webhook-integration.service.d.ts.map +1 -1
- package/dist/webhook-integration/webhook-integration.service.js +50 -4
- package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
- package/dist/webhook-integration/webhook-protocol.registry.d.ts +6 -0
- package/dist/webhook-integration/webhook-protocol.registry.d.ts.map +1 -1
- package/dist/webhook-integration/webhook-protocol.registry.js.map +1 -1
- package/hedhog/data/integration_provider.yaml +9 -0
- package/hedhog/data/mail.yaml +198 -62
- package/hedhog/data/mail_layout.yaml +43 -33
- package/hedhog/data/menu.yaml +2 -0
- package/hedhog/data/role.yaml +16 -0
- package/hedhog/data/route.yaml +172 -3
- package/hedhog/data/setting_group.yaml +178 -2
- package/hedhog/data/setting_subgroup.yaml +8 -0
- package/hedhog/frontend/app/_lib/hooks/use-core-access.test.tsx.ejs +125 -0
- package/hedhog/frontend/app/_lib/hooks/use-core-access.ts.ejs +29 -0
- package/hedhog/frontend/app/_lib/hooks/use-impersonation-access.test.ts.ejs +71 -0
- package/hedhog/frontend/app/_lib/hooks/use-impersonation-access.ts.ejs +32 -0
- package/hedhog/frontend/app/access-log/page.tsx.ejs +96 -22
- package/hedhog/frontend/app/account/components/active-sessions.tsx.ejs +17 -1
- package/hedhog/frontend/app/account/components/known-devices.tsx.ejs +89 -0
- package/hedhog/frontend/app/account/components/profile-form.tsx.ejs +2 -1
- package/hedhog/frontend/app/account/components/user-devices-list.tsx.ejs +186 -0
- package/hedhog/frontend/app/account/devices/page.tsx.ejs +5 -0
- package/hedhog/frontend/app/account/layout.tsx.ejs +2 -0
- package/hedhog/frontend/app/configurations/[slug]/components/setting-field.test.tsx.ejs +298 -0
- package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +376 -1236
- package/hedhog/frontend/app/mail/log/page.tsx.ejs +210 -3
- package/hedhog/frontend/app/mail/template/page.tsx.ejs +190 -132
- package/hedhog/frontend/app/users/active-session.tsx.ejs +58 -11
- package/hedhog/frontend/app/users/page.tsx.ejs +69 -10
- package/hedhog/frontend/app/users/simulate-access-dialog.test.tsx.ejs +202 -0
- package/hedhog/frontend/app/users/simulate-access-dialog.tsx.ejs +170 -0
- package/hedhog/frontend/app/users/user-activity-timeline.tsx.ejs +19 -0
- package/hedhog/frontend/app/users/user-devices.tsx.ejs +89 -0
- package/hedhog/frontend/app/users/user-logs.tsx.ejs +13 -1
- package/hedhog/frontend/app/users/user-sheet.tsx.ejs +46 -24
- package/hedhog/frontend/messages/en.json +146 -48
- package/hedhog/frontend/messages/pt.json +146 -48
- package/hedhog/table/access_log.yaml +7 -0
- package/hedhog/table/file.yaml +8 -0
- package/hedhog/table/mail_delivery_event.yaml +76 -0
- package/hedhog/table/mail_sent.yaml +23 -0
- package/hedhog/table/user_activity.yaml +9 -0
- package/hedhog/table/user_device.yaml +52 -0
- package/hedhog/table/user_session.yaml +20 -1
- package/package.json +6 -5
- package/src/access-log/access-log.controller.ts +1 -0
- package/src/access-log/access-log.interceptor.ts +5 -1
- package/src/access-log/access-log.service.spec.ts +33 -2
- package/src/access-log/access-log.service.ts +38 -0
- package/src/access-log/dto/query-access-log.dto.ts +5 -0
- package/src/ai/ai.controller.ts +9 -0
- package/src/ai/ai.module.ts +3 -2
- package/src/ai/ai.service.ts +150 -13
- package/src/ai/dto/richtext-edit-html.dto.ts +11 -0
- package/src/ai/richtext-ai.prompts.ts +57 -0
- package/src/ai/richtext-ai.service.ts +109 -0
- package/src/auth/auth.controller.ts +47 -8
- package/src/auth/auth.module.ts +2 -0
- package/src/auth/auth.service.spec.ts +383 -6
- package/src/auth/auth.service.ts +345 -56
- package/src/auth/dto/confirm-email.dto.ts +7 -0
- package/src/auth/dto/resend-confirmation.dto.ts +20 -0
- package/src/authorize/authorize.controller.ts +2 -0
- package/src/authorize/authorize.service.spec.ts +23 -0
- package/src/authorize/authorize.service.ts +8 -0
- package/src/challenge/challenge.service.spec.ts +73 -0
- package/src/challenge/challenge.service.ts +62 -3
- package/src/core.module.ts +19 -0
- package/src/file/file.controller.ts +54 -4
- package/src/file/file.service.spec.ts +275 -105
- package/src/file/file.service.ts +409 -14
- package/src/file/image-optimization.service.spec.ts +92 -0
- package/src/file/image-optimization.service.ts +202 -0
- package/src/file/provider/abstract.provider.ts +23 -0
- package/src/file/provider/gcs.provider.ts +17 -0
- package/src/file/provider/local.provider.ts +21 -0
- package/src/file/provider/s3.provider.ts +25 -0
- package/src/file/provider/spaces.provider.ts +26 -0
- package/src/impersonation/dto/redeem-impersonation.dto.ts +8 -0
- package/src/impersonation/dto/start-impersonation.dto.ts +13 -0
- package/src/impersonation/impersonation-restrictions.ts +84 -0
- package/src/impersonation/impersonation.controller.ts +109 -0
- package/src/impersonation/impersonation.module.ts +31 -0
- package/src/impersonation/impersonation.service.spec.ts +427 -0
- package/src/impersonation/impersonation.service.ts +577 -0
- package/src/index.ts +21 -0
- package/src/integration/services/outbox-polling.coordinator.spec.ts +90 -0
- package/src/integration/services/outbox-polling.coordinator.ts +62 -40
- package/src/integration/services/outbox.service.spec.ts +8 -0
- package/src/integration/services/outbox.service.ts +19 -13
- package/src/integration-profile/integration-profile.secrets.ts +3 -0
- package/src/integration-profile/integration-profile.utils.ts +38 -0
- package/src/integration-profile/testers/email.testers.ts +34 -1
- package/src/language/en.json +11 -0
- package/src/language/pt.json +11 -0
- package/src/mail/dto/send.dto.ts +46 -2
- package/src/mail/mail-template.spec.ts +79 -2
- package/src/mail/mail.module.ts +2 -0
- package/src/mail/mail.service.spec.ts +307 -6
- package/src/mail/mail.service.ts +227 -30
- package/src/mail-delivery/mail-delivery-provision.service.ts +66 -0
- package/src/mail-delivery/mail-delivery.constants.ts +31 -0
- package/src/mail-delivery/mail-delivery.controller.ts +38 -0
- package/src/mail-delivery/mail-delivery.module.ts +23 -0
- package/src/mail-delivery/mail-delivery.service.spec.ts +136 -0
- package/src/mail-delivery/mail-delivery.service.ts +152 -0
- package/src/mail-delivery/ses-event.parser.spec.ts +140 -0
- package/src/mail-delivery/ses-event.parser.ts +191 -0
- package/src/mail-delivery/ses-webhook.service.spec.ts +170 -0
- package/src/mail-delivery/ses-webhook.service.ts +240 -0
- package/src/mail-delivery/sns-message.util.spec.ts +163 -0
- package/src/mail-delivery/sns-message.util.ts +125 -0
- package/src/mail-sent/dto/query-mail-sent-list.dto.ts +15 -0
- package/src/mail-sent/mail-sent.service.ts +46 -2
- package/src/mailbox/mailbox-fetcher.registry.ts +132 -0
- package/src/mailbox/mailbox.module.ts +14 -0
- package/src/meeting/meeting-provider.registry.ts +193 -0
- package/src/meeting/meeting.constants.ts +53 -0
- package/src/meeting/meeting.module.ts +13 -0
- package/src/middlewares/locale-injection.middleware.ts +25 -6
- package/src/oauth/providers/google.provider.ts +49 -15
- package/src/observability/monitored-cron.spec.ts +102 -0
- package/src/observability/monitored-cron.ts +110 -0
- package/src/pairing/dto/approve-reverse-pairing.dto.ts +20 -0
- package/src/pairing/dto/claim-pairing.dto.ts +19 -0
- package/src/pairing/dto/confirm-pairing.dto.ts +14 -0
- package/src/pairing/dto/poll-reverse-pairing.dto.ts +9 -0
- package/src/pairing/dto/start-pairing.dto.ts +19 -0
- package/src/pairing/dto/start-reverse-pairing.dto.ts +45 -0
- package/src/pairing/pairing.controller.ts +246 -0
- package/src/pairing/pairing.module.ts +27 -0
- package/src/pairing/pairing.service.spec.ts +462 -0
- package/src/pairing/pairing.service.ts +614 -0
- package/src/pdf/pdf.service.ts +6 -24
- package/src/profile/profile.service.ts +26 -8
- package/src/redis/redis-pubsub.ts +11 -0
- package/src/role/guards/role.guard.spec.ts +75 -0
- package/src/role/guards/role.guard.ts +64 -46
- package/src/session/session.service.spec.ts +81 -0
- package/src/session/session.service.ts +93 -6
- package/src/setting/brand-asset.service.ts +137 -0
- package/src/setting/setting.module.ts +3 -2
- package/src/setting/setting.service.spec.ts +79 -1
- package/src/setting/setting.service.ts +109 -1
- package/src/token/token.service.spec.ts +62 -0
- package/src/token/token.service.ts +57 -3
- package/src/user/user.service.spec.ts +33 -2
- package/src/user/user.service.ts +108 -6
- package/src/user-device/user-device.controller.ts +77 -0
- package/src/user-device/user-device.module.ts +13 -0
- package/src/user-device/user-device.service.spec.ts +234 -0
- package/src/user-device/user-device.service.ts +168 -0
- package/src/utils/device-key.spec.ts +57 -0
- package/src/utils/device-key.ts +32 -0
- package/src/utils/geo-ip.spec.ts +134 -0
- package/src/utils/geo-ip.ts +93 -0
- package/src/utils/locale-context.spec.ts +27 -1
- package/src/utils/locale-context.ts +15 -12
- package/src/utils/security-event-vars.spec.ts +161 -0
- package/src/utils/security-event-vars.ts +153 -0
- package/src/utils/user-agent.spec.ts +37 -0
- package/src/utils/user-agent.ts +46 -0
- package/src/webhook-integration/webhook-integration.service.ts +57 -3
- package/src/webhook-integration/webhook-protocol.registry.ts +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail.service.js","sourceRoot":"","sources":["../../src/mail/mail.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mail.service.js","sourceRoot":"","sources":["../../src/mail/mail.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAK6B;AAC7B,gDAM2B;AAE3B,oDAAoD;AACpD,2CAQwB;AACxB,uDAAyC;AACzC,gGAI0D;AAC1D,iHAA2G;AAC3G,wEAAmE;AACnE,gEAA4D;AAO5D,mEAA+D;AAKxD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAMtB,YAEE,aAA6C,EAE7C,eAAiD,EAEjD,aAA6C,EAE7C,OAAwC,EAExC,cAA+D,EAE/D,QAA0C,EAE1C,UAA8C;QAZ7B,kBAAa,GAAb,aAAa,CAAe;QAE5B,oBAAe,GAAf,eAAe,CAAiB;QAEhC,kBAAa,GAAb,aAAa,CAAe;QAE5B,YAAO,GAAP,OAAO,CAAgB;QAEvB,mBAAc,GAAd,cAAc,CAAgC;QAE9C,aAAQ,GAAR,QAAQ,CAAiB;QAEzB,eAAU,GAAV,UAAU,CAAmB;QAnB/B,WAAM,GAAG,IAAI,eAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;QACtC,cAAS,GAAG,MAAM,CAAC;QACnB,kCAA6B,GAC5C,6BAA6B,CAAC;IAiB5B,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,kEAAkE;gBAClE,oEAAoE;gBACpE,yDAAyD;gBACzD,IAAI,aAAW,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;gBAC/C,CAAC;gBAED,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;IAYO,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;IAED;;;;OAIG;IACK,KAAK,CAAC,iBAAiB;QAI7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACnD,qBAAqB;YACrB,gCAAgC;SACjC,CAAC,CAAC;QAEH,OAAO;YACL,YAAY,EACT,QAAQ,CAAC,qBAAqB,CAAY,IAAI,gCAAqB;YACtE,iBAAiB,EACd,QAAQ,CAAC,gCAAgC,CAAY;gBACtD,qCAA0B;SAC7B,CAAC;IACJ,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;YAC5C,MAAM,OAAO,GAAG,IAAA,6CAAiB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAElD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC1E,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;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CACrB,MAAc,EACd,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAwB;;QAEnF,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,wEAAwE;YACxE,0DAA0D;YAC1D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACnB,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,oEAAoE;gBAC7E,OAAO,EAAE,EAAE,IAAI,EAAE;aAClB,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,CAAC;YACH,mEAAmE;YACnE,uEAAuE;YACvE,oEAAoE;YACpE,qBAAqB;YACrB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/E,MAAM,eAAe,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,KAAI,cAAc,CAAC;YAC1D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACjF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAEhE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,uEAAuE;gBACvE,mEAAmE;gBACnE,qCAAqC;gBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,iCAAiC,CAAC,CAAC;gBACtE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACnB,MAAM,EAAE,WAAW;oBACnB,IAAI,EAAE,yBAAyB;oBAC/B,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,aAAa,IAAI,wCAAwC;oBAClE,GAAG,EAAE,IAAI;oBACT,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE;iBAC3C,CAAC,CAAC;gBAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;YAC5D,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;YAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC/E,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3E,MAAM,eAAe,mBAAK,SAAS,EAAE,YAAY,EAAE,iBAAiB,IAAK,SAAS,CAAE,CAAC;YACrF,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAEnE,MAAM,UAAU,GAAQ,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,+BACrD,EAAE,EAAE,KAAK,EACT,IAAI,IACD,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACxD,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,uEAAuE;gBACvE,mEAAmE;gBACnE,MAAM,EAAE,cAAc,EACtB,GAAG,IACH,CAAC;YAEH,MAAM,iBAAiB,GACrB,MAAA,MAAA,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,0CAAE,SAAS,mCAC7B,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,0CAAE,SAAS,mCAC7B,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,0CAAE,IAAI,0CAAE,EAAE,mCAC5B,IAAI,CAAC;YAEP,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;aACxE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YAC1D,0EAA0E;YAC1E,kCAAkC;YAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACnB,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,GAAG,EAAE,IAAI;gBACT,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aAC1B,CAAC,CAAC;YAEH,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,sBAAsB,CAC1B,KAAa,EACb,YAA4B,EAC5B,MAAe;;QAEf,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAEnE,uEAAuE;YACvE,wEAAwE;YACxE,oEAAoE;YACpE,6CAA6C;YAC7C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,OAAO,MAAA,IAAA,gCAAmB,EAAC,YAAY,CAAC,mCAAI,QAAQ,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,qEAAqE,KAAK,EAAE,CAC7E,CAAC;YAEF,OAAO,MAAA,IAAA,gCAAmB,EAAC,YAAY,CAAC,mCAAI,IAAI,CAAC;QACnD,CAAC;IACH,CAAC;IAED,4EAA4E;IACpE,KAAK,CAAC,iBAAiB,CAAC,KAAa;;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC;YACpE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;YAC/B,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAC1B,CAAC,CAAC;QAEH,OAAO,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,mCAAI,IAAI,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACK,eAAe,CAAC,IAAS,EAAE,SAAiB;;QAClD,MAAM,YAAY,GAAG,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,mCAAI,EAAE,CAAC;aAC3C,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;;YAAC,OAAA,CAAC;gBACnB,OAAO,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO;gBACtB,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI;gBAChB,IAAI,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,IAAI;aACzB,CAAC,CAAA;SAAA,CAAC;aACF,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QAEjF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAC9B,YAAY,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAEvD,OAAO,MAAA,MAAA,MAAA,MAAM,CAAC,SAAS,CAAC,mCAAI,MAAM,CAAC,IAAI,CAAC,mCAAI,MAAM,CAAC,IAAI,CAAC,mCAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY;QACxC,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,MAAM,EAAE;wBACN,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE,IAAI;wBACV,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;qBACnC;iBACF;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,aAAa,CAAC,CAAC;QAClD,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;;;;;OAKG;IACK,KAAK,CAAC,oBAAoB,CAChC,MAAc;;QAEd,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC;YAC/D,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;YAC3B,OAAO,EAAE;gBACP,kBAAkB,EAAE;oBAClB,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;iBAChD;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,kBAAkB,IAAI,EAAE,CAAC;QACxD,MAAM,WAAW,GACf,YAAY,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,MAAM,0CAAE,IAAI,MAAK,MAAM,CAAA,EAAA,CAAC;YACxD,YAAY,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,MAAM,0CAAE,IAAI,MAAK,IAAI,CAAA,EAAA,CAAC;YACtD,YAAY,CAAC,CAAC,CAAC,CAAC;QAElB,OAAO;YACL,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,MAAM,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,mCAAI,EAAE;YACjC,MAAM,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,mCAAI,EAAE;SAClC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CACX,MAAc,EACd,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAc;;QAE5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACnD,aAAa;YACb,qBAAqB;YACrB,gCAAgC;YAChC,WAAW;SACZ,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAW,CAAC;QACpD,MAAM,YAAY,GACf,QAAQ,CAAC,qBAAqB,CAAY,IAAI,gCAAqB,CAAC;QACvE,MAAM,iBAAiB,GACpB,QAAQ,CAAC,gCAAgC,CAAY;YACtD,qCAA0B,CAAC;QAC7B,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAW,CAAC;QACnD,MAAM,OAAO,GAAG,UAAU;YACxB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,SAAS;YAClE,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,IAAI,mBAAK,SAAS,EAAE,YAAY,EAAE,iBAAiB,IAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAE,CAAC;QAClF,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpE,IAAI,cAAc,GAAsB,IAAI,CAAC;QAE7C,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACzB,cAAc,GAAG,MAAM;gBACrB,CAAC,CAAC;oBACE,OAAO,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE;oBAC7B,MAAM,EAAE,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE;oBAC3B,MAAM,EAAE,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE;iBAC5B;gBACH,CAAC,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,6BAAkB,EAAC;YAC9B,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,UAAU;YAChB,sEAAsE;YACtE,wBAAwB;YACxB,MAAM,EAAE,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc;YAC/D,SAAS;YACT,YAAY;YACZ,iBAAiB;YACjB,OAAO;YACP,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,EACjC,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,GACG;QACZ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,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,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC7E,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3E,MAAM,eAAe,mBAAK,SAAS,EAAE,YAAY,EAAE,iBAAiB,IAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAE,CAAC;YAC7F,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAEnE,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;gBACJ,MAAM;aACP,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;;AAr2BU,kCAAW;AAgDtB,+EAA+E;AACvD,uBAAW,GAAG,IAAI,GAAG,CAAC;IAC5C,WAAW;IACX,KAAK;IACL,SAAS;IACT,aAAa;IACb,qBAAqB;IACrB,gCAAgC;CACjC,CAAC,AAPiC,CAOhC;sBAxDQ,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;IAExD,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,kCAAe,CAAC,CAAC,CAAA;IAEzC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,uCAAiB,CAAC,CAAC,CAAA;qCAXZ,0BAAa;QAEX,sBAAe;QAEjB,0BAAa;QAEnB,gCAAc;QAEP,kEAA8B;QAEpC,kCAAe;QAEb,uCAAiB;GApBrC,WAAW,CAs2BvB"}
|
|
@@ -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 @@
|
|
|
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"}
|