@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
|
@@ -37,6 +37,36 @@ export declare class MailSentController {
|
|
|
37
37
|
next: number;
|
|
38
38
|
}>;
|
|
39
39
|
get(id: number, locale: string): Promise<{
|
|
40
|
+
mail_sent_user: {
|
|
41
|
+
id: number;
|
|
42
|
+
user_id: number;
|
|
43
|
+
created_at: Date;
|
|
44
|
+
updated_at: Date;
|
|
45
|
+
status: import("@prisma/client").$Enums.mail_sent_user_status_606696b06e_enum;
|
|
46
|
+
mail_id: number;
|
|
47
|
+
mail_sent_id: number | null;
|
|
48
|
+
user_identifier_id: number | null;
|
|
49
|
+
recipient_email: string;
|
|
50
|
+
read_at: Date | null;
|
|
51
|
+
error_code: string | null;
|
|
52
|
+
error_message: string | null;
|
|
53
|
+
}[];
|
|
54
|
+
mail_delivery_event: {
|
|
55
|
+
id: number;
|
|
56
|
+
created_at: Date;
|
|
57
|
+
updated_at: Date;
|
|
58
|
+
provider_message_id: string;
|
|
59
|
+
mail_sent_id: number | null;
|
|
60
|
+
recipient_email: string | null;
|
|
61
|
+
event_type: string;
|
|
62
|
+
bounce_type: string | null;
|
|
63
|
+
bounce_subtype: string | null;
|
|
64
|
+
diagnostic_code: string | null;
|
|
65
|
+
reporting_mta: string | null;
|
|
66
|
+
payload: import("@prisma/client/runtime/library").JsonValue | null;
|
|
67
|
+
occurred_at: Date;
|
|
68
|
+
}[];
|
|
69
|
+
} & {
|
|
40
70
|
id: number;
|
|
41
71
|
created_at: Date;
|
|
42
72
|
updated_at: Date;
|
|
@@ -47,6 +77,9 @@ export declare class MailSentController {
|
|
|
47
77
|
cc: string | null;
|
|
48
78
|
bcc: string | null;
|
|
49
79
|
body: string;
|
|
80
|
+
provider_message_id: string | null;
|
|
81
|
+
delivery_status: string | null;
|
|
82
|
+
delivery_updated_at: Date | null;
|
|
50
83
|
}>;
|
|
51
84
|
create(data: CreateDTO): Promise<{
|
|
52
85
|
id: number;
|
|
@@ -59,6 +92,9 @@ export declare class MailSentController {
|
|
|
59
92
|
cc: string | null;
|
|
60
93
|
bcc: string | null;
|
|
61
94
|
body: string;
|
|
95
|
+
provider_message_id: string | null;
|
|
96
|
+
delivery_status: string | null;
|
|
97
|
+
delivery_updated_at: Date | null;
|
|
62
98
|
}>;
|
|
63
99
|
update(locale: string, id: number, data: UpdateDTO): Promise<{
|
|
64
100
|
id: number;
|
|
@@ -71,6 +107,9 @@ export declare class MailSentController {
|
|
|
71
107
|
cc: string | null;
|
|
72
108
|
bcc: string | null;
|
|
73
109
|
body: string;
|
|
110
|
+
provider_message_id: string | null;
|
|
111
|
+
delivery_status: string | null;
|
|
112
|
+
delivery_updated_at: Date | null;
|
|
74
113
|
}>;
|
|
75
114
|
delete(locale: string, data: DeleteDTO): Promise<{
|
|
76
115
|
count: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-sent.controller.d.ts","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAQ,MAAM,cAAc,CAAC;AAgB/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAEa,kBAAkB;IAG3B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAI7C,IAAI,CACM,gBAAgB,KAAA,EACrB,KAAK,EAAE,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAahC,GAAG,CACoB,EAAE,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"mail-sent.controller.d.ts","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAQ,MAAM,cAAc,CAAC;AAgB/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAEa,kBAAkB;IAG3B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAI7C,IAAI,CACM,gBAAgB,KAAA,EACrB,KAAK,EAAE,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAahC,GAAG,CACoB,EAAE,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMpB,MAAM,CAAS,IAAI,EAAE,SAAS;;;;;;;;;;;;;;;IAK9B,MAAM,CAAW,MAAM,EAAE,MAAM,EAA4B,EAAE,EAAE,MAAM,EAAU,IAAI,EAAE,SAAS;;;;;;;;;;;;;;;IAQ9F,MAAM,CAAW,MAAM,EAAE,MAAM,EAAS,IAAI,EAAE,SAAS;;;CAG9D"}
|
|
@@ -41,6 +41,36 @@ export declare class MailSentService {
|
|
|
41
41
|
next: number;
|
|
42
42
|
}>;
|
|
43
43
|
get(locale: string, id: number): Promise<{
|
|
44
|
+
mail_sent_user: {
|
|
45
|
+
id: number;
|
|
46
|
+
user_id: number;
|
|
47
|
+
created_at: Date;
|
|
48
|
+
updated_at: Date;
|
|
49
|
+
status: import("@prisma/client").$Enums.mail_sent_user_status_606696b06e_enum;
|
|
50
|
+
mail_id: number;
|
|
51
|
+
mail_sent_id: number | null;
|
|
52
|
+
user_identifier_id: number | null;
|
|
53
|
+
recipient_email: string;
|
|
54
|
+
read_at: Date | null;
|
|
55
|
+
error_code: string | null;
|
|
56
|
+
error_message: string | null;
|
|
57
|
+
}[];
|
|
58
|
+
mail_delivery_event: {
|
|
59
|
+
id: number;
|
|
60
|
+
created_at: Date;
|
|
61
|
+
updated_at: Date;
|
|
62
|
+
provider_message_id: string;
|
|
63
|
+
mail_sent_id: number | null;
|
|
64
|
+
recipient_email: string | null;
|
|
65
|
+
event_type: string;
|
|
66
|
+
bounce_type: string | null;
|
|
67
|
+
bounce_subtype: string | null;
|
|
68
|
+
diagnostic_code: string | null;
|
|
69
|
+
reporting_mta: string | null;
|
|
70
|
+
payload: import("@prisma/client/runtime/library").JsonValue | null;
|
|
71
|
+
occurred_at: Date;
|
|
72
|
+
}[];
|
|
73
|
+
} & {
|
|
44
74
|
id: number;
|
|
45
75
|
created_at: Date;
|
|
46
76
|
updated_at: Date;
|
|
@@ -51,6 +81,9 @@ export declare class MailSentService {
|
|
|
51
81
|
cc: string | null;
|
|
52
82
|
bcc: string | null;
|
|
53
83
|
body: string;
|
|
84
|
+
provider_message_id: string | null;
|
|
85
|
+
delivery_status: string | null;
|
|
86
|
+
delivery_updated_at: Date | null;
|
|
54
87
|
}>;
|
|
55
88
|
create({ body, from, mail_id, subject, bcc, cc, to }: CreateDTO): Promise<{
|
|
56
89
|
id: number;
|
|
@@ -63,6 +96,9 @@ export declare class MailSentService {
|
|
|
63
96
|
cc: string | null;
|
|
64
97
|
bcc: string | null;
|
|
65
98
|
body: string;
|
|
99
|
+
provider_message_id: string | null;
|
|
100
|
+
delivery_status: string | null;
|
|
101
|
+
delivery_updated_at: Date | null;
|
|
66
102
|
}>;
|
|
67
103
|
update(locale: string, { id, data }: {
|
|
68
104
|
id: number;
|
|
@@ -78,6 +114,9 @@ export declare class MailSentService {
|
|
|
78
114
|
cc: string | null;
|
|
79
115
|
bcc: string | null;
|
|
80
116
|
body: string;
|
|
117
|
+
provider_message_id: string | null;
|
|
118
|
+
delivery_status: string | null;
|
|
119
|
+
delivery_updated_at: Date | null;
|
|
81
120
|
}>;
|
|
82
121
|
delete(locale: string, { ids }: DeleteDTO): Promise<{
|
|
83
122
|
count: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-sent.service.d.ts","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,KAAK,kBAAkB,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,KAAK,eAAe,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAMF,qBACa,eAAe;IAGxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,aAAa,EAAE,aAAa,EAE5B,iBAAiB,EAAE,iBAAiB;IAGjD,IAAI,CAAC,gBAAgB,EAAE,oBAAoB;;;;;;;;
|
|
1
|
+
{"version":3,"file":"mail-sent.service.d.ts","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,KAAK,kBAAkB,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,KAAK,eAAe,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAMF,qBACa,eAAe;IAGxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,aAAa,EAAE,aAAa,EAE5B,iBAAiB,EAAE,iBAAiB;IAGjD,IAAI,CAAC,gBAAgB,EAAE,oBAAoB;;;;;;;;4BAiLrB,IAAI,GAAG,IAAI;;6BA7LtB,eAAe,EAAE;;;;;;;;;IA+M5B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkB9B,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS;;;;;;;;;;;;;;;IA+B/D,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE;;;;;;;;;;;;;;;IAelE,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,EAAE,GAAG,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CA2B3E"}
|
|
@@ -23,8 +23,19 @@ let MailSentService = class MailSentService {
|
|
|
23
23
|
this.paginationService = paginationService;
|
|
24
24
|
}
|
|
25
25
|
async list(paginationParams) {
|
|
26
|
-
var _a, _b, _c, _d;
|
|
27
|
-
|
|
26
|
+
var _a, _b, _c, _d, _e;
|
|
27
|
+
// `provider_message_id` entra na busca porque e o unico identificador que o
|
|
28
|
+
// evento do provedor traz: sem ele, ler um bounce no console da AWS e achar
|
|
29
|
+
// o envio correspondente aqui exigia adivinhacao.
|
|
30
|
+
const fields = [
|
|
31
|
+
'subject',
|
|
32
|
+
'from',
|
|
33
|
+
'to',
|
|
34
|
+
'cc',
|
|
35
|
+
'bcc',
|
|
36
|
+
'body',
|
|
37
|
+
'provider_message_id',
|
|
38
|
+
];
|
|
28
39
|
const OR = this.prismaService.createInsensitiveSearch(fields, paginationParams);
|
|
29
40
|
const AND = [];
|
|
30
41
|
if (paginationParams.status &&
|
|
@@ -70,9 +81,17 @@ let MailSentService = class MailSentService {
|
|
|
70
81
|
},
|
|
71
82
|
});
|
|
72
83
|
}
|
|
84
|
+
const deliveryStatus = (_c = paginationParams.deliveryStatus) === null || _c === void 0 ? void 0 : _c.trim();
|
|
85
|
+
if (deliveryStatus && deliveryStatus !== 'all') {
|
|
86
|
+
// `pending` e a ausencia de desfecho: o provedor aceitou e nao disse mais
|
|
87
|
+
// nada. E o estado em que ficam os envios que ninguem sabe se chegaram.
|
|
88
|
+
AND.push(deliveryStatus === 'pending'
|
|
89
|
+
? { delivery_status: null }
|
|
90
|
+
: { delivery_status: deliveryStatus });
|
|
91
|
+
}
|
|
73
92
|
const createdAt = {};
|
|
74
|
-
const createdAtFrom = (
|
|
75
|
-
const createdAtTo = (
|
|
93
|
+
const createdAtFrom = (_d = paginationParams.createdAtFrom) === null || _d === void 0 ? void 0 : _d.trim();
|
|
94
|
+
const createdAtTo = (_e = paginationParams.createdAtTo) === null || _e === void 0 ? void 0 : _e.trim();
|
|
76
95
|
if (createdAtFrom) {
|
|
77
96
|
const parsedFrom = new Date(createdAtFrom);
|
|
78
97
|
if (!isNaN(parsedFrom.getTime())) {
|
|
@@ -106,6 +125,22 @@ let MailSentService = class MailSentService {
|
|
|
106
125
|
updated_at: true,
|
|
107
126
|
},
|
|
108
127
|
},
|
|
128
|
+
// O que o provedor disse depois de aceitar. `mail_sent_user` so cobre
|
|
129
|
+
// destinatario que e usuario da plataforma; um solicitante externo nao
|
|
130
|
+
// deixava rastro nenhum de entrega.
|
|
131
|
+
mail_delivery_event: {
|
|
132
|
+
select: {
|
|
133
|
+
id: true,
|
|
134
|
+
recipient_email: true,
|
|
135
|
+
event_type: true,
|
|
136
|
+
bounce_type: true,
|
|
137
|
+
bounce_subtype: true,
|
|
138
|
+
diagnostic_code: true,
|
|
139
|
+
reporting_mta: true,
|
|
140
|
+
occurred_at: true,
|
|
141
|
+
},
|
|
142
|
+
orderBy: { occurred_at: 'desc' },
|
|
143
|
+
},
|
|
109
144
|
},
|
|
110
145
|
});
|
|
111
146
|
const data = result.data.map((item) => {
|
|
@@ -142,6 +177,12 @@ let MailSentService = class MailSentService {
|
|
|
142
177
|
async get(locale, id) {
|
|
143
178
|
const mailSent = await this.prismaService.mail_sent.findUnique({
|
|
144
179
|
where: { id: id },
|
|
180
|
+
// Sem os relacionamentos, abrir um envio direto pelo id devolvia um
|
|
181
|
+
// registro sem nenhuma informacao de entrega - so a listagem trazia.
|
|
182
|
+
include: {
|
|
183
|
+
mail_sent_user: true,
|
|
184
|
+
mail_delivery_event: { orderBy: { occurred_at: 'desc' } },
|
|
185
|
+
},
|
|
145
186
|
});
|
|
146
187
|
if (!mailSent) {
|
|
147
188
|
throw new common_1.NotFoundException((0, api_locale_1.getLocaleText)('mail_sent_not_found', locale));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-sent.service.js","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,oDAAoD;AACpD,4DAA4D;AAC5D,oDAAoD;AACpD,2CAMwB;AAyBjB,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAEmB,aAA4B,EAE5B,iBAAoC;QAFpC,kBAAa,GAAb,aAAa,CAAe;QAE5B,sBAAiB,GAAjB,iBAAiB,CAAmB;IACnD,CAAC;IAEL,KAAK,CAAC,IAAI,CAAC,gBAAsC;;QAC/C,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"mail-sent.service.js","sourceRoot":"","sources":["../../src/mail-sent/mail-sent.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Uma mensagem recebida, ainda crua.
|
|
3
|
+
*
|
|
4
|
+
* O fetcher devolve o MIME e nada mais. Interpretar (parsear cabeçalhos, cortar
|
|
5
|
+
* citação, decidir se é autoresposta) é do consumidor — assim os dois provedores
|
|
6
|
+
* compartilham exatamente o mesmo caminho de leitura, e o core não precisa
|
|
7
|
+
* conhecer mailparser nem as regras de atendimento.
|
|
8
|
+
*/
|
|
9
|
+
export interface RawInboundMessage {
|
|
10
|
+
/**
|
|
11
|
+
* Identidade da mensagem no provedor (Message-Id, id do Graph).
|
|
12
|
+
* É a chave de idempotência de quem consome.
|
|
13
|
+
*/
|
|
14
|
+
externalId: string;
|
|
15
|
+
/** Mensagem RFC 822 completa. */
|
|
16
|
+
source: Buffer;
|
|
17
|
+
receivedAt: Date;
|
|
18
|
+
}
|
|
19
|
+
export interface MailboxFetchTarget {
|
|
20
|
+
/** Perfil de integração com as credenciais. */
|
|
21
|
+
integrationProfileId: number;
|
|
22
|
+
/** Endereço monitorado. No Graph, é também o alvo do acesso app-only. */
|
|
23
|
+
address: string;
|
|
24
|
+
folder: string;
|
|
25
|
+
/**
|
|
26
|
+
* Cursor OPACO, como o fetcher o gravou da última vez.
|
|
27
|
+
*
|
|
28
|
+
* Cada provedor escolhe o formato — UID + UIDVALIDITY no IMAP, deltaLink no
|
|
29
|
+
* Graph. Manter isso opaco é o que permite um campo só no banco servir aos
|
|
30
|
+
* dois sem o consumidor entender nenhum dos dois.
|
|
31
|
+
*/
|
|
32
|
+
cursor: string | null;
|
|
33
|
+
markAsRead: boolean;
|
|
34
|
+
/** Teto por ciclo, para uma caixa esquecida não virar um poll infinito. */
|
|
35
|
+
maxMessages: number;
|
|
36
|
+
}
|
|
37
|
+
export interface MailboxFetchResult {
|
|
38
|
+
messages: RawInboundMessage[];
|
|
39
|
+
/** Cursor a gravar DEPOIS que as mensagens forem persistidas. */
|
|
40
|
+
cursor: string | null;
|
|
41
|
+
/**
|
|
42
|
+
* O provedor invalidou o cursor anterior (UIDVALIDITY novo, delta expirado).
|
|
43
|
+
* Serve para o consumidor registrar o fato — a releitura em si já vem
|
|
44
|
+
* resolvida no resultado.
|
|
45
|
+
*/
|
|
46
|
+
cursorReset: boolean;
|
|
47
|
+
}
|
|
48
|
+
/** Resultado de um teste de leitura, no mesmo formato do `MailVerifyResult`. */
|
|
49
|
+
export interface MailboxVerifyResult {
|
|
50
|
+
ok: boolean;
|
|
51
|
+
/** Evidência legível do sucesso. Nunca contém credencial. */
|
|
52
|
+
info?: string;
|
|
53
|
+
/** Motivo legível da falha. Nunca contém credencial. */
|
|
54
|
+
error?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Lê uma caixa de correio.
|
|
58
|
+
*
|
|
59
|
+
* Implementações vivem nas libraries donas do protocolo (IMAP no `sac`,
|
|
60
|
+
* Microsoft Graph no `microsoft`) e se registram aqui no boot.
|
|
61
|
+
*/
|
|
62
|
+
export interface IMailboxFetcher {
|
|
63
|
+
/** Falso quando o provedor está desligado ou mal configurado nesta instalação. */
|
|
64
|
+
isAvailable(): Promise<boolean>;
|
|
65
|
+
fetch(target: MailboxFetchTarget): Promise<MailboxFetchResult>;
|
|
66
|
+
/**
|
|
67
|
+
* Confere se ESTA caixa pode ser lida agora, exercitando o caminho real.
|
|
68
|
+
*
|
|
69
|
+
* Existe porque testar o perfil de integração não é a mesma coisa que testar a
|
|
70
|
+
* caixa: para o Entra, o teste do perfil só pede um token e passa mesmo sem
|
|
71
|
+
* permissão de e-mail, sem acesso àquele endereço e sem a pasta existir — ou
|
|
72
|
+
* seja, aprovaria uma caixa que nunca vai receber nada.
|
|
73
|
+
*
|
|
74
|
+
* Opcional: sem ela, o chamador cai no testador do perfil (o que basta para o
|
|
75
|
+
* IMAP, onde autenticar já prova o acesso).
|
|
76
|
+
*/
|
|
77
|
+
verify?(target: MailboxFetchTarget): Promise<MailboxVerifyResult>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Registro dos leitores de caixa, no mesmo padrão do MeetingProviderRegistry.
|
|
81
|
+
*
|
|
82
|
+
* Existe pelo mesmo motivo daquele: permitir que um módulo de negócio leia uma
|
|
83
|
+
* caixa do Microsoft 365 sem depender de `@hed-hog-pro/microsoft` — o que
|
|
84
|
+
* arrastaria as tabelas, as rotas e os crons daquela library para toda
|
|
85
|
+
* instalação, só para obter um token.
|
|
86
|
+
*
|
|
87
|
+
* A chave é o SLUG DO PROVIDER DE INTEGRAÇÃO (`imap`,
|
|
88
|
+
* `microsoft-entra-id-oauth`), então o caminho perfil → fetcher se resolve sem
|
|
89
|
+
* nenhuma tabela de-para.
|
|
90
|
+
*/
|
|
91
|
+
export declare class MailboxFetcherRegistry {
|
|
92
|
+
private readonly logger;
|
|
93
|
+
private readonly fetchers;
|
|
94
|
+
register(providerSlug: string, implementation: IMailboxFetcher): void;
|
|
95
|
+
get(providerSlug: string | null | undefined): IMailboxFetcher | null;
|
|
96
|
+
has(providerSlug: string | null | undefined): boolean;
|
|
97
|
+
/** Providers que sabem ler caixa nesta instalação (a UI filtra por isto). */
|
|
98
|
+
list(): string[];
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=mailbox-fetcher.registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-fetcher.registry.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox-fetcher.registry.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,iEAAiE;IACjE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/D;;;;;;;;;;OAUG;IACH,MAAM,CAAC,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnE;AAED;;;;;;;;;;;GAWG;AACH,qBACa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAE/D,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,GAAG,IAAI;IAYrE,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI;IAKpE,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAIrD,6EAA6E;IAC7E,IAAI,IAAI,MAAM,EAAE;CAGjB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
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 MailboxFetcherRegistry_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.MailboxFetcherRegistry = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
/**
|
|
13
|
+
* Registro dos leitores de caixa, no mesmo padrão do MeetingProviderRegistry.
|
|
14
|
+
*
|
|
15
|
+
* Existe pelo mesmo motivo daquele: permitir que um módulo de negócio leia uma
|
|
16
|
+
* caixa do Microsoft 365 sem depender de `@hed-hog-pro/microsoft` — o que
|
|
17
|
+
* arrastaria as tabelas, as rotas e os crons daquela library para toda
|
|
18
|
+
* instalação, só para obter um token.
|
|
19
|
+
*
|
|
20
|
+
* A chave é o SLUG DO PROVIDER DE INTEGRAÇÃO (`imap`,
|
|
21
|
+
* `microsoft-entra-id-oauth`), então o caminho perfil → fetcher se resolve sem
|
|
22
|
+
* nenhuma tabela de-para.
|
|
23
|
+
*/
|
|
24
|
+
let MailboxFetcherRegistry = MailboxFetcherRegistry_1 = class MailboxFetcherRegistry {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.logger = new common_1.Logger(MailboxFetcherRegistry_1.name);
|
|
27
|
+
this.fetchers = new Map();
|
|
28
|
+
}
|
|
29
|
+
register(providerSlug, implementation) {
|
|
30
|
+
const key = normalizeProvider(providerSlug);
|
|
31
|
+
if (!key)
|
|
32
|
+
throw new Error('Mailbox fetcher provider key is required.');
|
|
33
|
+
if (this.fetchers.has(key)) {
|
|
34
|
+
this.logger.warn(`Mailbox fetcher "${key}" was overwritten.`);
|
|
35
|
+
}
|
|
36
|
+
this.fetchers.set(key, implementation);
|
|
37
|
+
this.logger.log(`Registered mailbox fetcher "${key}"`);
|
|
38
|
+
}
|
|
39
|
+
get(providerSlug) {
|
|
40
|
+
var _a;
|
|
41
|
+
const key = normalizeProvider(providerSlug);
|
|
42
|
+
return key ? ((_a = this.fetchers.get(key)) !== null && _a !== void 0 ? _a : null) : null;
|
|
43
|
+
}
|
|
44
|
+
has(providerSlug) {
|
|
45
|
+
return this.get(providerSlug) !== null;
|
|
46
|
+
}
|
|
47
|
+
/** Providers que sabem ler caixa nesta instalação (a UI filtra por isto). */
|
|
48
|
+
list() {
|
|
49
|
+
return [...this.fetchers.keys()].sort();
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.MailboxFetcherRegistry = MailboxFetcherRegistry;
|
|
53
|
+
exports.MailboxFetcherRegistry = MailboxFetcherRegistry = MailboxFetcherRegistry_1 = __decorate([
|
|
54
|
+
(0, common_1.Injectable)()
|
|
55
|
+
], MailboxFetcherRegistry);
|
|
56
|
+
function normalizeProvider(providerSlug) {
|
|
57
|
+
return String(providerSlug !== null && providerSlug !== void 0 ? providerSlug : '').trim().toLowerCase();
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=mailbox-fetcher.registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-fetcher.registry.js","sourceRoot":"","sources":["../../src/mailbox/mailbox-fetcher.registry.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoD;AAqFpD;;;;;;;;;;;GAWG;AAEI,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IAA5B;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,wBAAsB,CAAC,IAAI,CAAC,CAAC;QACjD,aAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IA2BjE,CAAC;IAzBC,QAAQ,CAAC,YAAoB,EAAE,cAA+B;QAC5D,MAAM,GAAG,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAEvE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+BAA+B,GAAG,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,YAAuC;;QACzC,MAAM,GAAG,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC5C,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,YAAuC;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACzC,CAAC;IAED,6EAA6E;IAC7E,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;CACF,CAAA;AA7BY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;GACA,sBAAsB,CA6BlC;AAED,SAAS,iBAAiB,CAAC,YAAuC;IAChE,OAAO,MAAM,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Porta genérica de leitura de caixa de correio. Só carrega o registro — as
|
|
3
|
+
* implementações vêm de quem se registrar no boot (a library `sac` com a chave
|
|
4
|
+
* `imap`, a library `microsoft` com `microsoft-entra-id-oauth`).
|
|
5
|
+
*/
|
|
6
|
+
export declare class MailboxModule {
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=mailbox.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox.module.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox.module.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,qBAKa,aAAa;CAAG"}
|
|
@@ -0,0 +1,27 @@
|
|
|
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.MailboxModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const mailbox_fetcher_registry_1 = require("./mailbox-fetcher.registry");
|
|
12
|
+
/**
|
|
13
|
+
* Porta genérica de leitura de caixa de correio. Só carrega o registro — as
|
|
14
|
+
* implementações vêm de quem se registrar no boot (a library `sac` com a chave
|
|
15
|
+
* `imap`, a library `microsoft` com `microsoft-entra-id-oauth`).
|
|
16
|
+
*/
|
|
17
|
+
let MailboxModule = class MailboxModule {
|
|
18
|
+
};
|
|
19
|
+
exports.MailboxModule = MailboxModule;
|
|
20
|
+
exports.MailboxModule = MailboxModule = __decorate([
|
|
21
|
+
(0, common_1.Global)(),
|
|
22
|
+
(0, common_1.Module)({
|
|
23
|
+
providers: [mailbox_fetcher_registry_1.MailboxFetcherRegistry],
|
|
24
|
+
exports: [mailbox_fetcher_registry_1.MailboxFetcherRegistry],
|
|
25
|
+
})
|
|
26
|
+
], MailboxModule);
|
|
27
|
+
//# sourceMappingURL=mailbox.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox.module.js","sourceRoot":"","sources":["../../src/mailbox/mailbox.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,yEAAoE;AAEpE;;;;GAIG;AAMI,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IALzB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,iDAAsB,CAAC;QACnC,OAAO,EAAE,CAAC,iDAAsB,CAAC;KAClC,CAAC;GACW,aAAa,CAAG"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pedido de criação de uma reunião online para uma entidade de negócio qualquer.
|
|
3
|
+
*
|
|
4
|
+
* A tripla `sourceModule`/`sourceEntity`/`sourceEntityId` é o que amarra a reunião
|
|
5
|
+
* à origem sem que o provedor precise conhecer o domínio: o LMS envia
|
|
6
|
+
* `('lms', 'course_class_session', '42')` e recebe de volta, no evento de gravação,
|
|
7
|
+
* exatamente a mesma tripla.
|
|
8
|
+
*/
|
|
9
|
+
export interface CreateMeetingInput {
|
|
10
|
+
sourceModule: string;
|
|
11
|
+
sourceEntity: string;
|
|
12
|
+
sourceEntityId: string;
|
|
13
|
+
subject: string;
|
|
14
|
+
startAt: Date;
|
|
15
|
+
endAt: Date;
|
|
16
|
+
/** Liga a gravação automática, quando o provedor suportar. */
|
|
17
|
+
autoRecord?: boolean;
|
|
18
|
+
/** Usuário que pediu a criação (usado no modo delegado). */
|
|
19
|
+
requestedByUserId?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Usuários que devem poder controlar a reunião (iniciar/parar gravação, admitir
|
|
22
|
+
* participantes). Sem isso, num organizador de serviço, o professor entra como
|
|
23
|
+
* participante comum.
|
|
24
|
+
*/
|
|
25
|
+
coOrganizerUserIds?: number[];
|
|
26
|
+
/** Convidados do evento de calendário. */
|
|
27
|
+
attendeeEmails?: string[];
|
|
28
|
+
/** Local do evento (aula presencial/híbrida com reunião gerenciada). */
|
|
29
|
+
location?: string | null;
|
|
30
|
+
/** Texto da origem que acompanha o link no corpo do evento. */
|
|
31
|
+
description?: string | null;
|
|
32
|
+
}
|
|
33
|
+
export interface CreatedMeeting {
|
|
34
|
+
/** Link que o aluno abre. É o que vai para `meeting_url` da aula. */
|
|
35
|
+
joinUrl: string;
|
|
36
|
+
/** Id da reunião no provedor — necessário para buscar a gravação depois. */
|
|
37
|
+
providerMeetingId: string;
|
|
38
|
+
/** Id do evento de calendário, quando o provedor cria um. */
|
|
39
|
+
providerEventId?: string | null;
|
|
40
|
+
}
|
|
41
|
+
export interface MeetingSourceRef {
|
|
42
|
+
sourceModule: string;
|
|
43
|
+
sourceEntity: string;
|
|
44
|
+
sourceEntityIds: string[];
|
|
45
|
+
}
|
|
46
|
+
export type CreateMeetingResult = ({
|
|
47
|
+
ok: true;
|
|
48
|
+
} & CreatedMeeting) | {
|
|
49
|
+
ok: false;
|
|
50
|
+
sourceEntityId: string;
|
|
51
|
+
error: string;
|
|
52
|
+
};
|
|
53
|
+
/** Pedido de troca de convidados de uma reunião já existente. */
|
|
54
|
+
export interface UpdateMeetingAttendeesInput {
|
|
55
|
+
sourceModule: string;
|
|
56
|
+
sourceEntity: string;
|
|
57
|
+
sourceEntityId: string;
|
|
58
|
+
attendeeEmails: string[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Pedido de atualização de assunto/horário/local de uma reunião já existente.
|
|
62
|
+
*
|
|
63
|
+
* Separado de `createMeeting` pelo mesmo motivo de `updateAttendees`: recriar
|
|
64
|
+
* geraria link novo e derrubaria quem já tem o evento antigo na agenda.
|
|
65
|
+
*/
|
|
66
|
+
export interface UpdateMeetingDetailsInput {
|
|
67
|
+
sourceModule: string;
|
|
68
|
+
sourceEntity: string;
|
|
69
|
+
sourceEntityId: string;
|
|
70
|
+
subject: string;
|
|
71
|
+
startAt: Date;
|
|
72
|
+
endAt: Date;
|
|
73
|
+
location?: string | null;
|
|
74
|
+
description?: string | null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Estado de uma reunião, na forma em que o módulo de origem precisa ver.
|
|
78
|
+
*
|
|
79
|
+
* Existe para que o dono da origem consulte o provedor em vez de ler a tabela
|
|
80
|
+
* dele: o LMS não deve saber que existe uma `microsoft_meeting`.
|
|
81
|
+
*/
|
|
82
|
+
export interface MeetingSummary {
|
|
83
|
+
sourceEntityId: string;
|
|
84
|
+
joinUrl: string | null;
|
|
85
|
+
status: 'scheduled' | 'cancelled' | 'failed';
|
|
86
|
+
autoRecord: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Assunto e janela gravados no provedor, para a origem comparar com o que é
|
|
89
|
+
* desejado antes de mandar `updateDetails` — evita um PATCH a cada sync
|
|
90
|
+
* quando nada mudou. `null` em reuniões criadas antes deste campo existir.
|
|
91
|
+
*/
|
|
92
|
+
subject: string | null;
|
|
93
|
+
startAt: Date | null;
|
|
94
|
+
endAt: Date | null;
|
|
95
|
+
location: string | null;
|
|
96
|
+
description: string | null;
|
|
97
|
+
/**
|
|
98
|
+
* Convidados atualmente no evento de calendário.
|
|
99
|
+
*
|
|
100
|
+
* Existe para o módulo de origem comparar antes de mandar atualizar: alterar
|
|
101
|
+
* a lista faz o provedor reenviar convite/atualização para todos, então um
|
|
102
|
+
* PATCH incondicional a cada sincronização viraria spam na caixa de quem
|
|
103
|
+
* acompanha a turma.
|
|
104
|
+
*/
|
|
105
|
+
attendeeEmails: string[];
|
|
106
|
+
/** Estado da importação da gravação, quando `autoRecord` está ligado. */
|
|
107
|
+
recordingStatus: 'not_requested' | 'pending' | 'imported' | 'unavailable' | 'failed';
|
|
108
|
+
recordingFileId: number | null;
|
|
109
|
+
lastError: string | null;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Provedor de reuniões online (Teams hoje; Meet/Zoom cabem no mesmo contrato).
|
|
113
|
+
*
|
|
114
|
+
* Existe para que os módulos de negócio não dependam do pacote de um provedor
|
|
115
|
+
* específico: eles pedem ao registro e, se ninguém tiver se registrado, a
|
|
116
|
+
* funcionalidade simplesmente não aparece.
|
|
117
|
+
*/
|
|
118
|
+
export interface IMeetingProvider {
|
|
119
|
+
/** Se a integração está configurada a ponto de aceitar chamadas. */
|
|
120
|
+
isAvailable(): Promise<boolean>;
|
|
121
|
+
createMeeting(input: CreateMeetingInput): Promise<CreatedMeeting>;
|
|
122
|
+
/** Criação em lote; nunca rejeita — devolve o erro por item. */
|
|
123
|
+
createMeetings(inputs: CreateMeetingInput[]): Promise<CreateMeetingResult[]>;
|
|
124
|
+
/** Cancela no provedor as reuniões das origens informadas. Tolerante a ausências. */
|
|
125
|
+
cancelBySource(ref: MeetingSourceRef): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* Troca a lista de convidados do evento de uma reunião já criada.
|
|
128
|
+
*
|
|
129
|
+
* Separado de `createMeeting` porque o custo é diferente: recriar a reunião
|
|
130
|
+
* geraria um link novo e derrubaria quem já tinha o antigo na agenda, enquanto
|
|
131
|
+
* ajustar convidados preserva a reunião. Tolerante a reunião inexistente.
|
|
132
|
+
*/
|
|
133
|
+
updateAttendees(input: UpdateMeetingAttendeesInput): Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* Atualiza assunto, horário e local do evento/reunião já criados, sem gerar
|
|
136
|
+
* link novo. Tolerante a reunião inexistente (mesmo padrão de updateAttendees).
|
|
137
|
+
*/
|
|
138
|
+
updateDetails(input: UpdateMeetingDetailsInput): Promise<void>;
|
|
139
|
+
/** Estado das reuniões das origens informadas, para a UI do módulo de origem. */
|
|
140
|
+
findBySource(ref: MeetingSourceRef): Promise<MeetingSummary[]>;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Registro dos provedores de reunião, no mesmo padrão do WebhookProtocolRegistry:
|
|
144
|
+
* o módulo dono do provedor se registra no boot.
|
|
145
|
+
*/
|
|
146
|
+
export declare class MeetingProviderRegistry {
|
|
147
|
+
private readonly logger;
|
|
148
|
+
private readonly providers;
|
|
149
|
+
register(provider: string, implementation: IMeetingProvider): void;
|
|
150
|
+
get(provider: string | null | undefined): IMeetingProvider | null;
|
|
151
|
+
has(provider: string | null | undefined): boolean;
|
|
152
|
+
/** Provedores registrados (para a UI listar o que existe). */
|
|
153
|
+
list(): string[];
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=meeting-provider.registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-provider.registry.d.ts","sourceRoot":"","sources":["../../src/meeting/meeting-provider.registry.ts"],"names":[],"mappings":"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"}
|