@hed-hog/core 0.0.387 → 0.0.390
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 +12 -11
- package/dist/access-log/access-log.interceptor.d.ts.map +1 -1
- package/dist/access-log/access-log.interceptor.js +4 -2
- package/dist/access-log/access-log.interceptor.js.map +1 -1
- package/dist/ai/ai-attachment.fragments.d.ts +23 -0
- package/dist/ai/ai-attachment.fragments.d.ts.map +1 -0
- package/dist/ai/ai-attachment.fragments.js +34 -0
- package/dist/ai/ai-attachment.fragments.js.map +1 -0
- package/dist/ai/ai.controller.d.ts +7 -16
- package/dist/ai/ai.controller.d.ts.map +1 -1
- package/dist/ai/ai.prompts.d.ts +16 -0
- package/dist/ai/ai.prompts.d.ts.map +1 -0
- package/dist/ai/ai.prompts.js +37 -0
- package/dist/ai/ai.prompts.js.map +1 -0
- package/dist/ai/ai.service.d.ts +63 -12
- package/dist/ai/ai.service.d.ts.map +1 -1
- package/dist/ai/ai.service.js +215 -88
- package/dist/ai/ai.service.js.map +1 -1
- package/dist/ai/dto/chat.dto.d.ts +4 -1
- package/dist/ai/dto/chat.dto.d.ts.map +1 -1
- package/dist/ai/dto/chat.dto.js +23 -1
- package/dist/ai/dto/chat.dto.js.map +1 -1
- package/dist/ai/dto/create-agent.dto.d.ts +1 -1
- package/dist/ai/dto/create-agent.dto.d.ts.map +1 -1
- package/dist/ai/dto/create-agent.dto.js +1 -1
- package/dist/ai/dto/create-agent.dto.js.map +1 -1
- package/dist/ai/dto/update-agent.dto.d.ts +1 -1
- package/dist/ai/dto/update-agent.dto.d.ts.map +1 -1
- package/dist/ai/dto/update-agent.dto.js +1 -1
- package/dist/ai/dto/update-agent.dto.js.map +1 -1
- package/dist/ai-instruction/ai-instruction.controller.d.ts +61 -7
- package/dist/ai-instruction/ai-instruction.controller.d.ts.map +1 -1
- package/dist/ai-instruction/ai-instruction.controller.js +63 -20
- package/dist/ai-instruction/ai-instruction.controller.js.map +1 -1
- package/dist/ai-instruction/ai-instruction.module.d.ts.map +1 -1
- package/dist/ai-instruction/ai-instruction.module.js +13 -2
- package/dist/ai-instruction/ai-instruction.module.js.map +1 -1
- package/dist/ai-instruction/ai-instruction.service.d.ts +131 -6
- package/dist/ai-instruction/ai-instruction.service.d.ts.map +1 -1
- package/dist/ai-instruction/ai-instruction.service.js +533 -60
- package/dist/ai-instruction/ai-instruction.service.js.map +1 -1
- package/dist/ai-instruction/ai-prompt-builder.service.d.ts +8 -0
- package/dist/ai-instruction/ai-prompt-builder.service.d.ts.map +1 -1
- package/dist/ai-instruction/ai-prompt-builder.service.js +10 -1
- package/dist/ai-instruction/ai-prompt-builder.service.js.map +1 -1
- package/dist/ai-instruction/ai-prompt-registry.d.ts +45 -0
- package/dist/ai-instruction/ai-prompt-registry.d.ts.map +1 -0
- package/dist/ai-instruction/ai-prompt-registry.js +49 -0
- package/dist/ai-instruction/ai-prompt-registry.js.map +1 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.d.ts +89 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.d.ts.map +1 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.js +222 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.js.map +1 -0
- package/dist/ai-instruction/ai-prompt-template.util.d.ts +70 -0
- package/dist/ai-instruction/ai-prompt-template.util.d.ts.map +1 -0
- package/dist/ai-instruction/ai-prompt-template.util.js +154 -0
- package/dist/ai-instruction/ai-prompt-template.util.js.map +1 -0
- package/dist/ai-instruction/dto/create-ai-instruction.dto.d.ts +5 -0
- package/dist/ai-instruction/dto/create-ai-instruction.dto.d.ts.map +1 -1
- package/dist/ai-instruction/dto/create-ai-instruction.dto.js +27 -1
- package/dist/ai-instruction/dto/create-ai-instruction.dto.js.map +1 -1
- package/dist/ai-instruction/dto/preview-ai-instruction.dto.d.ts +14 -0
- package/dist/ai-instruction/dto/preview-ai-instruction.dto.d.ts.map +1 -0
- package/dist/ai-instruction/dto/preview-ai-instruction.dto.js +42 -0
- package/dist/ai-instruction/dto/preview-ai-instruction.dto.js.map +1 -0
- package/dist/ai-instruction/dto/update-ai-instruction.dto.d.ts +11 -0
- package/dist/ai-instruction/dto/update-ai-instruction.dto.d.ts.map +1 -1
- package/dist/ai-instruction/dto/update-ai-instruction.dto.js +34 -0
- package/dist/ai-instruction/dto/update-ai-instruction.dto.js.map +1 -1
- package/dist/ai-instruction/types/ai-instruction.types.d.ts +13 -1
- package/dist/ai-instruction/types/ai-instruction.types.d.ts.map +1 -1
- package/dist/ai-instruction/types/ai-instruction.types.js +10 -0
- package/dist/ai-instruction/types/ai-instruction.types.js.map +1 -1
- package/dist/auth/auth.controller.d.ts +24 -9
- package/dist/auth/auth.controller.d.ts.map +1 -1
- package/dist/auth/auth.controller.js +49 -21
- package/dist/auth/auth.controller.js.map +1 -1
- package/dist/auth/auth.service.d.ts +33 -8
- package/dist/auth/auth.service.d.ts.map +1 -1
- package/dist/auth/auth.service.js +78 -29
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/captcha/captcha.module.d.ts +3 -0
- package/dist/captcha/captcha.module.d.ts.map +1 -0
- package/dist/captcha/captcha.module.js +23 -0
- package/dist/captcha/captcha.module.js.map +1 -0
- package/dist/captcha/captcha.service.d.ts +38 -0
- package/dist/captcha/captcha.service.d.ts.map +1 -0
- package/dist/captcha/captcha.service.js +144 -0
- package/dist/captcha/captcha.service.js.map +1 -0
- package/dist/challenge/challenge.service.d.ts +16 -7
- package/dist/challenge/challenge.service.d.ts.map +1 -1
- package/dist/challenge/challenge.service.js +64 -16
- package/dist/challenge/challenge.service.js.map +1 -1
- package/dist/core.module.d.ts +3 -1
- package/dist/core.module.d.ts.map +1 -1
- package/dist/core.module.js +29 -2
- package/dist/core.module.js.map +1 -1
- package/dist/dashboard/dashboard/dashboard.controller.d.ts +15 -15
- package/dist/dashboard/dashboard/dashboard.service.d.ts +15 -15
- package/dist/dashboard/dashboard-component/dashboard-component.controller.d.ts +6 -6
- package/dist/dashboard/dashboard-component/dashboard-component.service.d.ts +6 -6
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.controller.d.ts +20 -20
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.d.ts +20 -20
- package/dist/dashboard/dashboard-core/dashboard-core.controller.d.ts +1 -1
- package/dist/dashboard/dashboard-core/dashboard-core.service.d.ts +1 -1
- package/dist/dashboard/dashboard-role/dashboard-role.controller.d.ts +13 -13
- package/dist/dashboard/dashboard-role/dashboard-role.service.d.ts +13 -13
- package/dist/file/file.service.d.ts +6 -0
- package/dist/file/file.service.d.ts.map +1 -1
- package/dist/file/file.service.js +44 -4
- package/dist/file/file.service.js.map +1 -1
- package/dist/incident/incident-notifier.service.d.ts +36 -0
- package/dist/incident/incident-notifier.service.d.ts.map +1 -0
- package/dist/incident/incident-notifier.service.js +208 -0
- package/dist/incident/incident-notifier.service.js.map +1 -0
- package/dist/incident/incident.controller.d.ts +23 -0
- package/dist/incident/incident.controller.d.ts.map +1 -0
- package/dist/incident/incident.controller.js +75 -0
- package/dist/incident/incident.controller.js.map +1 -0
- package/dist/incident/incident.module.d.ts +7 -0
- package/dist/incident/incident.module.d.ts.map +1 -0
- package/dist/incident/incident.module.js +32 -0
- package/dist/incident/incident.module.js.map +1 -0
- package/dist/incident/incident.service.d.ts +72 -0
- package/dist/incident/incident.service.d.ts.map +1 -0
- package/dist/incident/incident.service.js +184 -0
- package/dist/incident/incident.service.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -1
- package/dist/integration-profile/dto/test.dto.d.ts +13 -0
- package/dist/integration-profile/dto/test.dto.d.ts.map +1 -0
- package/dist/integration-profile/dto/test.dto.js +26 -0
- package/dist/integration-profile/dto/test.dto.js.map +1 -0
- package/dist/integration-profile/integration-profile.controller.d.ts +12 -1
- package/dist/integration-profile/integration-profile.controller.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.controller.js +9 -1
- package/dist/integration-profile/integration-profile.controller.js.map +1 -1
- package/dist/integration-profile/integration-profile.module.d.ts +6 -1
- package/dist/integration-profile/integration-profile.module.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.module.js +26 -3
- package/dist/integration-profile/integration-profile.module.js.map +1 -1
- package/dist/integration-profile/integration-profile.secrets.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.secrets.js +9 -1
- package/dist/integration-profile/integration-profile.secrets.js.map +1 -1
- package/dist/integration-profile/integration-profile.service.d.ts +26 -7
- package/dist/integration-profile/integration-profile.service.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.service.js +94 -91
- package/dist/integration-profile/integration-profile.service.js.map +1 -1
- package/dist/integration-profile/integration-profile.utils.d.ts +13 -1
- package/dist/integration-profile/integration-profile.utils.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.utils.js +20 -5
- package/dist/integration-profile/integration-profile.utils.js.map +1 -1
- package/dist/integration-profile/testers/ai.testers.d.ts +3 -0
- package/dist/integration-profile/testers/ai.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/ai.testers.js +125 -0
- package/dist/integration-profile/testers/ai.testers.js.map +1 -0
- package/dist/integration-profile/testers/captcha.testers.d.ts +3 -0
- package/dist/integration-profile/testers/captcha.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/captcha.testers.js +121 -0
- package/dist/integration-profile/testers/captcha.testers.js.map +1 -0
- package/dist/integration-profile/testers/email.testers.d.ts +3 -0
- package/dist/integration-profile/testers/email.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/email.testers.js +128 -0
- package/dist/integration-profile/testers/email.testers.js.map +1 -0
- package/dist/integration-profile/testers/http-probe.d.ts +57 -0
- package/dist/integration-profile/testers/http-probe.d.ts.map +1 -0
- package/dist/integration-profile/testers/http-probe.js +140 -0
- package/dist/integration-profile/testers/http-probe.js.map +1 -0
- package/dist/integration-profile/testers/index.d.ts +12 -0
- package/dist/integration-profile/testers/index.d.ts.map +1 -0
- package/dist/integration-profile/testers/index.js +45 -0
- package/dist/integration-profile/testers/index.js.map +1 -0
- package/dist/integration-profile/testers/infrastructure.testers.d.ts +3 -0
- package/dist/integration-profile/testers/infrastructure.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/infrastructure.testers.js +105 -0
- package/dist/integration-profile/testers/infrastructure.testers.js.map +1 -0
- package/dist/integration-profile/testers/integration-tester.registry.d.ts +17 -0
- package/dist/integration-profile/testers/integration-tester.registry.d.ts.map +1 -0
- package/dist/integration-profile/testers/integration-tester.registry.js +52 -0
- package/dist/integration-profile/testers/integration-tester.registry.js.map +1 -0
- package/dist/integration-profile/testers/integration-tester.types.d.ts +55 -0
- package/dist/integration-profile/testers/integration-tester.types.d.ts.map +1 -0
- package/dist/integration-profile/testers/integration-tester.types.js +16 -0
- package/dist/integration-profile/testers/integration-tester.types.js.map +1 -0
- package/dist/integration-profile/testers/messaging.testers.d.ts +3 -0
- package/dist/integration-profile/testers/messaging.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/messaging.testers.js +70 -0
- package/dist/integration-profile/testers/messaging.testers.js.map +1 -0
- package/dist/integration-profile/testers/oauth.testers.d.ts +3 -0
- package/dist/integration-profile/testers/oauth.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/oauth.testers.js +285 -0
- package/dist/integration-profile/testers/oauth.testers.js.map +1 -0
- package/dist/integration-profile/testers/payment.testers.d.ts +3 -0
- package/dist/integration-profile/testers/payment.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/payment.testers.js +169 -0
- package/dist/integration-profile/testers/payment.testers.js.map +1 -0
- package/dist/integration-profile/testers/storage.testers.d.ts +3 -0
- package/dist/integration-profile/testers/storage.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/storage.testers.js +208 -0
- package/dist/integration-profile/testers/storage.testers.js.map +1 -0
- package/dist/language/en.json +4 -2
- package/dist/language/pt.json +4 -2
- package/dist/leaked-password/leaked-password.controller.d.ts +24 -0
- package/dist/leaked-password/leaked-password.controller.d.ts.map +1 -0
- package/dist/leaked-password/leaked-password.controller.js +78 -0
- package/dist/leaked-password/leaked-password.controller.js.map +1 -0
- package/dist/leaked-password/leaked-password.module.d.ts +8 -0
- package/dist/leaked-password/leaked-password.module.d.ts.map +1 -0
- package/dist/leaked-password/leaked-password.module.js +31 -0
- package/dist/leaked-password/leaked-password.module.js.map +1 -0
- package/dist/leaked-password/leaked-password.service.d.ts +64 -0
- package/dist/leaked-password/leaked-password.service.d.ts.map +1 -0
- package/dist/leaked-password/leaked-password.service.js +218 -0
- package/dist/leaked-password/leaked-password.service.js.map +1 -0
- package/dist/locale/locale.controller.d.ts +1 -1
- package/dist/locale/locale.service.d.ts +1 -1
- package/dist/mail/dto/preview.dto.d.ts +18 -0
- package/dist/mail/dto/preview.dto.d.ts.map +1 -0
- package/dist/mail/dto/preview.dto.js +66 -0
- package/dist/mail/dto/preview.dto.js.map +1 -0
- package/dist/mail/dto/send.dto.d.ts +7 -0
- 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 +4 -0
- package/dist/mail/mail.controller.d.ts.map +1 -1
- package/dist/mail/mail.controller.js +16 -2
- package/dist/mail/mail.controller.js.map +1 -1
- package/dist/mail/mail.service.d.ts +23 -2
- package/dist/mail/mail.service.d.ts.map +1 -1
- package/dist/mail/mail.service.js +102 -13
- package/dist/mail/mail.service.js.map +1 -1
- package/dist/mail-layout/dto/update.dto.d.ts +17 -0
- package/dist/mail-layout/dto/update.dto.d.ts.map +1 -0
- package/dist/mail-layout/dto/update.dto.js +27 -0
- package/dist/mail-layout/dto/update.dto.js.map +1 -0
- package/dist/mail-layout/mail-layout.controller.d.ts +15 -0
- package/dist/mail-layout/mail-layout.controller.d.ts.map +1 -0
- package/dist/mail-layout/mail-layout.controller.js +71 -0
- package/dist/mail-layout/mail-layout.controller.js.map +1 -0
- package/dist/mail-layout/mail-layout.module.d.ts +3 -0
- package/dist/mail-layout/mail-layout.module.d.ts.map +1 -0
- package/dist/mail-layout/mail-layout.module.js +35 -0
- package/dist/mail-layout/mail-layout.module.js.map +1 -0
- package/dist/mail-layout/mail-layout.service.d.ts +27 -0
- package/dist/mail-layout/mail-layout.service.d.ts.map +1 -0
- package/dist/mail-layout/mail-layout.service.js +80 -0
- package/dist/mail-layout/mail-layout.service.js.map +1 -0
- package/dist/mcp-chat/mcp-chat.controller.d.ts +2 -2
- package/dist/mcp-chat/mcp-chat.service.d.ts +24 -2
- package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
- package/dist/mcp-chat/mcp-chat.service.js +80 -24
- package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
- package/dist/menu/menu.controller.d.ts +3 -3
- package/dist/menu/menu.service.d.ts +3 -3
- package/dist/notification/notification.controller.d.ts +12 -12
- package/dist/notification/notification.service.d.ts +12 -12
- package/dist/oauth/oauth-token-broker.service.d.ts +72 -0
- package/dist/oauth/oauth-token-broker.service.d.ts.map +1 -0
- package/dist/oauth/oauth-token-broker.service.js +258 -0
- package/dist/oauth/oauth-token-broker.service.js.map +1 -0
- package/dist/oauth/oauth.module.d.ts.map +1 -1
- package/dist/oauth/oauth.module.js +3 -1
- package/dist/oauth/oauth.module.js.map +1 -1
- package/dist/oauth/oauth.service.d.ts +2 -0
- package/dist/oauth/oauth.service.d.ts.map +1 -1
- package/dist/oauth/oauth.service.js +6 -3
- package/dist/oauth/oauth.service.js.map +1 -1
- package/dist/pdf/pdf.service.d.ts +8 -0
- package/dist/pdf/pdf.service.d.ts.map +1 -1
- package/dist/pdf/pdf.service.js +52 -0
- package/dist/pdf/pdf.service.js.map +1 -1
- package/dist/presence/presence.controller.d.ts +16 -0
- package/dist/presence/presence.controller.d.ts.map +1 -0
- package/dist/presence/presence.controller.js +60 -0
- package/dist/presence/presence.controller.js.map +1 -0
- package/dist/presence/presence.listener.d.ts +29 -0
- package/dist/presence/presence.listener.d.ts.map +1 -0
- package/dist/presence/presence.listener.js +82 -0
- package/dist/presence/presence.listener.js.map +1 -0
- package/dist/presence/presence.module.d.ts +3 -0
- package/dist/presence/presence.module.d.ts.map +1 -0
- package/dist/presence/presence.module.js +32 -0
- package/dist/presence/presence.module.js.map +1 -0
- package/dist/presence/presence.service.d.ts +42 -0
- package/dist/presence/presence.service.d.ts.map +1 -0
- package/dist/presence/presence.service.js +147 -0
- package/dist/presence/presence.service.js.map +1 -0
- package/dist/profile/dto/delete-account.dto.d.ts +8 -0
- package/dist/profile/dto/delete-account.dto.d.ts.map +1 -0
- package/dist/profile/dto/delete-account.dto.js +22 -0
- package/dist/profile/dto/delete-account.dto.js.map +1 -0
- package/dist/profile/events/profile-account-deleted.event.d.ts +12 -0
- package/dist/profile/events/profile-account-deleted.event.d.ts.map +1 -0
- package/dist/profile/events/profile-account-deleted.event.js +17 -0
- package/dist/profile/events/profile-account-deleted.event.js.map +1 -0
- package/dist/profile/profile.controller.d.ts +21 -15
- package/dist/profile/profile.controller.d.ts.map +1 -1
- package/dist/profile/profile.controller.js +75 -46
- package/dist/profile/profile.controller.js.map +1 -1
- package/dist/profile/profile.service.d.ts +30 -18
- package/dist/profile/profile.service.d.ts.map +1 -1
- package/dist/profile/profile.service.js +113 -37
- package/dist/profile/profile.service.js.map +1 -1
- package/dist/realtime/realtime.gateway.d.ts +48 -0
- package/dist/realtime/realtime.gateway.d.ts.map +1 -0
- package/dist/realtime/realtime.gateway.js +156 -0
- package/dist/realtime/realtime.gateway.js.map +1 -0
- package/dist/realtime/realtime.module.d.ts +8 -0
- package/dist/realtime/realtime.module.d.ts.map +1 -0
- package/dist/realtime/realtime.module.js +29 -0
- package/dist/realtime/realtime.module.js.map +1 -0
- package/dist/realtime/realtime.service.d.ts +51 -0
- package/dist/realtime/realtime.service.d.ts.map +1 -0
- package/dist/realtime/realtime.service.js +177 -0
- package/dist/realtime/realtime.service.js.map +1 -0
- package/dist/redis/redis-pubsub.d.ts +27 -0
- package/dist/redis/redis-pubsub.d.ts.map +1 -0
- package/dist/redis/redis-pubsub.js +140 -0
- package/dist/redis/redis-pubsub.js.map +1 -0
- package/dist/role/role.controller.d.ts +3 -3
- package/dist/role/role.service.d.ts +3 -3
- package/dist/setting/dto/create.dto.d.ts.map +1 -1
- package/dist/setting/dto/create.dto.js +9 -2
- package/dist/setting/dto/create.dto.js.map +1 -1
- package/dist/setting/setting.controller.d.ts +5 -5
- package/dist/setting/setting.service.d.ts +8 -5
- package/dist/setting/setting.service.d.ts.map +1 -1
- package/dist/setting/setting.service.js +25 -1
- package/dist/setting/setting.service.js.map +1 -1
- package/dist/user/dto/create-with-email-and-password.dto.d.ts +2 -0
- package/dist/user/dto/create-with-email-and-password.dto.d.ts.map +1 -1
- package/dist/user/dto/create-with-email-and-password.dto.js +5 -0
- package/dist/user/dto/create-with-email-and-password.dto.js.map +1 -1
- package/dist/user/dto/query-user-mail-list.dto.d.ts +5 -0
- package/dist/user/dto/query-user-mail-list.dto.d.ts.map +1 -0
- package/dist/user/dto/query-user-mail-list.dto.js +25 -0
- package/dist/user/dto/query-user-mail-list.dto.js.map +1 -0
- package/dist/user/user-credential.util.d.ts +19 -0
- package/dist/user/user-credential.util.d.ts.map +1 -0
- package/dist/user/user-credential.util.js +32 -0
- package/dist/user/user-credential.util.js.map +1 -0
- package/dist/user/user.controller.d.ts +17 -5
- package/dist/user/user.controller.d.ts.map +1 -1
- package/dist/user/user.controller.js +18 -3
- package/dist/user/user.controller.js.map +1 -1
- package/dist/user/user.service.d.ts +28 -6
- package/dist/user/user.service.d.ts.map +1 -1
- package/dist/user/user.service.js +204 -13
- package/dist/user/user.service.js.map +1 -1
- package/dist/validators/is-strong-password-with-settings.validator.d.ts.map +1 -1
- package/dist/validators/is-strong-password-with-settings.validator.js +11 -0
- package/dist/validators/is-strong-password-with-settings.validator.js.map +1 -1
- package/dist/validators/service-locator.d.ts +9 -0
- package/dist/validators/service-locator.d.ts.map +1 -1
- package/dist/validators/service-locator.js +12 -0
- package/dist/validators/service-locator.js.map +1 -1
- package/dist/whatsapp-sender/whatsapp-sender.module.d.ts +3 -0
- package/dist/whatsapp-sender/whatsapp-sender.module.d.ts.map +1 -0
- package/dist/whatsapp-sender/whatsapp-sender.module.js +23 -0
- package/dist/whatsapp-sender/whatsapp-sender.module.js.map +1 -0
- package/dist/whatsapp-sender/whatsapp-sender.service.d.ts +50 -0
- package/dist/whatsapp-sender/whatsapp-sender.service.d.ts.map +1 -0
- package/dist/whatsapp-sender/whatsapp-sender.service.js +224 -0
- package/dist/whatsapp-sender/whatsapp-sender.service.js.map +1 -0
- package/hedhog/data/integration_provider.yaml +16 -0
- package/hedhog/data/mail.yaml +88 -61
- package/hedhog/data/mail_layout.yaml +188 -0
- package/hedhog/data/menu.yaml +67 -3
- package/hedhog/data/route.yaml +135 -0
- package/hedhog/data/setting_group.yaml +139 -1
- package/hedhog/frontend/app/account/components/mfa-setup-dialog.tsx.ejs +36 -0
- package/hedhog/frontend/app/account/components/two-factor-auth.tsx.ejs +2 -0
- package/hedhog/frontend/app/account/hooks/use-mfa-setup.ts.ejs +10 -7
- package/hedhog/frontend/app/ai_agent/page.tsx.ejs +7 -4
- package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-form.tsx.ejs +580 -0
- package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-preview.tsx.ejs +150 -0
- package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-versions.tsx.ejs +199 -0
- package/hedhog/frontend/app/ai_instruction/_components/prompt-diff.tsx.ejs +63 -0
- package/hedhog/frontend/app/ai_instruction/_lib/line-diff.spec.ts.ejs +59 -0
- package/hedhog/frontend/app/ai_instruction/_lib/line-diff.ts.ejs +72 -0
- package/hedhog/frontend/app/ai_instruction/_lib/prompt-template.spec.ts.ejs +170 -0
- package/hedhog/frontend/app/ai_instruction/_lib/prompt-template.ts.ejs +167 -0
- package/hedhog/frontend/app/ai_instruction/_lib/types.ts.ejs +99 -0
- package/hedhog/frontend/app/ai_instruction/page.tsx.ejs +422 -0
- package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +51 -4
- package/hedhog/frontend/app/incidents/page.tsx.ejs +400 -0
- package/hedhog/frontend/app/integration/profiles/page.tsx.ejs +153 -84
- package/hedhog/frontend/app/mail/layout/page.tsx.ejs +344 -0
- package/hedhog/frontend/app/mail/template/page.tsx.ejs +155 -121
- package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +129 -17
- package/hedhog/frontend/app/pages/_components/page-delete-dialog.tsx.ejs +343 -0
- package/hedhog/frontend/app/pages/_components/page-detail-sheet.tsx.ejs +438 -0
- package/hedhog/frontend/app/pages/_components/page-wizard-sheet.tsx.ejs +1009 -0
- package/hedhog/frontend/app/pages/_components/system-page-types.ts.ejs +56 -0
- package/hedhog/frontend/app/pages/_components/use-system-pages.ts.ejs +171 -0
- package/hedhog/frontend/app/pages/page.tsx.ejs +514 -0
- package/hedhog/frontend/app/users/page.tsx.ejs +119 -13
- package/hedhog/frontend/app/users/user-activity-timeline.tsx.ejs +231 -0
- package/hedhog/frontend/app/users/user-mails.tsx.ejs +399 -0
- package/hedhog/frontend/app/users/user-sheet.tsx.ejs +60 -75
- package/hedhog/frontend/messages/en.json +499 -3
- package/hedhog/frontend/messages/pt.json +499 -3
- package/hedhog/table/ai_agent.yaml +1 -0
- package/hedhog/table/ai_instruction.yaml +15 -0
- package/hedhog/table/leaked_password.yaml +18 -0
- package/hedhog/table/mail_layout.yaml +35 -0
- package/hedhog/table/mail_var.yaml +4 -0
- package/hedhog/table/setting.yaml +1 -0
- package/hedhog/table/system_incident.yaml +59 -0
- package/hedhog/table/user_presence.yaml +36 -0
- package/package.json +8 -4
- package/src/access-log/access-log.interceptor.ts +4 -2
- package/src/ai/ai-attachment.fragments.spec.ts +319 -0
- package/src/ai/ai-attachment.fragments.ts +35 -0
- package/src/ai/ai.prompts.ts +38 -0
- package/src/ai/ai.service.spec.ts +280 -0
- package/src/ai/ai.service.ts +338 -82
- package/src/ai/dto/chat.dto.ts +33 -3
- package/src/ai/dto/create-agent.dto.ts +2 -2
- package/src/ai/dto/update-agent.dto.ts +2 -2
- package/src/ai-instruction/ai-instruction.controller.ts +40 -9
- package/src/ai-instruction/ai-instruction.module.ts +13 -2
- package/src/ai-instruction/ai-instruction.service.spec.ts +658 -0
- package/src/ai-instruction/ai-instruction.service.ts +661 -62
- package/src/ai-instruction/ai-prompt-builder.service.ts +10 -1
- package/src/ai-instruction/ai-prompt-registry.ts +87 -0
- package/src/ai-instruction/ai-prompt-resolver.service.spec.ts +375 -0
- package/src/ai-instruction/ai-prompt-resolver.service.ts +295 -0
- package/src/ai-instruction/ai-prompt-template.util.spec.ts +162 -0
- package/src/ai-instruction/ai-prompt-template.util.ts +199 -0
- package/src/ai-instruction/dto/create-ai-instruction.dto.ts +39 -3
- package/src/ai-instruction/dto/preview-ai-instruction.dto.ts +26 -0
- package/src/ai-instruction/dto/update-ai-instruction.dto.ts +42 -1
- package/src/ai-instruction/types/ai-instruction.types.ts +24 -1
- package/src/auth/auth.controller.ts +31 -5
- package/src/auth/auth.service.spec.ts +3 -1
- package/src/auth/auth.service.ts +101 -36
- package/src/captcha/captcha.module.ts +10 -0
- package/src/captcha/captcha.service.spec.ts +210 -0
- package/src/captcha/captcha.service.ts +191 -0
- package/src/challenge/challenge.service.spec.ts +39 -4
- package/src/challenge/challenge.service.ts +72 -17
- package/src/core.module.ts +27 -1
- package/src/file/file.service.spec.ts +105 -0
- package/src/file/file.service.ts +60 -3
- package/src/incident/incident-notifier.service.spec.ts +205 -0
- package/src/incident/incident-notifier.service.ts +241 -0
- package/src/incident/incident.controller.ts +38 -0
- package/src/incident/incident.module.ts +19 -0
- package/src/incident/incident.service.spec.ts +150 -0
- package/src/incident/incident.service.ts +209 -0
- package/src/index.ts +37 -0
- package/src/integration-profile/dto/test.dto.ts +19 -0
- package/src/integration-profile/integration-profile.controller.ts +10 -1
- package/src/integration-profile/integration-profile.module.spec.ts +51 -0
- package/src/integration-profile/integration-profile.module.ts +23 -4
- package/src/integration-profile/integration-profile.secrets.ts +9 -1
- package/src/integration-profile/integration-profile.service.spec.ts +279 -0
- package/src/integration-profile/integration-profile.service.ts +120 -124
- package/src/integration-profile/integration-profile.utils.spec.ts +22 -0
- package/src/integration-profile/integration-profile.utils.ts +40 -3
- package/src/integration-profile/testers/ai.testers.ts +165 -0
- package/src/integration-profile/testers/captcha.testers.spec.ts +92 -0
- package/src/integration-profile/testers/captcha.testers.ts +139 -0
- package/src/integration-profile/testers/email.testers.ts +161 -0
- package/src/integration-profile/testers/http-probe.spec.ts +153 -0
- package/src/integration-profile/testers/http-probe.ts +171 -0
- package/src/integration-profile/testers/index.ts +30 -0
- package/src/integration-profile/testers/infrastructure.testers.ts +122 -0
- package/src/integration-profile/testers/integration-tester.registry.spec.ts +75 -0
- package/src/integration-profile/testers/integration-tester.registry.ts +43 -0
- package/src/integration-profile/testers/integration-tester.types.ts +61 -0
- package/src/integration-profile/testers/messaging.testers.ts +102 -0
- package/src/integration-profile/testers/oauth.testers.spec.ts +220 -0
- package/src/integration-profile/testers/oauth.testers.ts +305 -0
- package/src/integration-profile/testers/payment.testers.ts +185 -0
- package/src/integration-profile/testers/remaining.testers.spec.ts +401 -0
- package/src/integration-profile/testers/storage.testers.spec.ts +185 -0
- package/src/integration-profile/testers/storage.testers.ts +226 -0
- package/src/integration-profile/testers/tester-coverage.spec.ts +58 -0
- package/src/language/en.json +4 -2
- package/src/language/pt.json +4 -2
- package/src/leaked-password/README.md +83 -0
- package/src/leaked-password/leaked-password.controller.ts +52 -0
- package/src/leaked-password/leaked-password.module.ts +18 -0
- package/src/leaked-password/leaked-password.service.ts +242 -0
- package/src/leaked-password/seed/build-seed-sql.mjs +180 -0
- package/src/leaked-password/seed/common-passwords.txt +335 -0
- package/src/mail/dto/preview.dto.ts +50 -0
- package/src/mail/dto/send.dto.ts +14 -1
- package/src/mail/mail-template.spec.ts +197 -0
- package/src/mail/mail.controller.ts +9 -2
- package/src/mail/mail.service.spec.ts +116 -1
- package/src/mail/mail.service.ts +118 -12
- package/src/mail-layout/dto/update.dto.ts +19 -0
- package/src/mail-layout/mail-layout.controller.ts +47 -0
- package/src/mail-layout/mail-layout.module.ts +22 -0
- package/src/mail-layout/mail-layout.service.ts +94 -0
- package/src/mcp-chat/mcp-chat.service.spec.ts +236 -0
- package/src/mcp-chat/mcp-chat.service.ts +122 -26
- package/src/oauth/oauth-token-broker.service.spec.ts +172 -0
- package/src/oauth/oauth-token-broker.service.ts +363 -0
- package/src/oauth/oauth.module.ts +3 -1
- package/src/oauth/oauth.service.ts +8 -2
- package/src/pdf/pdf.service.ts +75 -0
- package/src/presence/presence.controller.ts +29 -0
- package/src/presence/presence.listener.ts +53 -0
- package/src/presence/presence.module.ts +19 -0
- package/src/presence/presence.service.spec.ts +97 -0
- package/src/presence/presence.service.ts +160 -0
- package/src/profile/dto/delete-account.dto.ts +11 -0
- package/src/profile/events/profile-account-deleted.event.ts +13 -0
- package/src/profile/profile.controller.ts +46 -34
- package/src/profile/profile.service.ts +138 -38
- package/src/realtime/realtime.gateway.ts +138 -0
- package/src/realtime/realtime.module.ts +16 -0
- package/src/realtime/realtime.service.spec.ts +50 -0
- package/src/realtime/realtime.service.ts +187 -0
- package/src/redis/redis-pubsub.ts +179 -0
- package/src/setting/dto/create.dto.ts +13 -2
- package/src/setting/setting.service.spec.ts +56 -0
- package/src/setting/setting.service.ts +29 -1
- package/src/user/dto/create-with-email-and-password.dto.ts +6 -1
- package/src/user/dto/query-user-mail-list.dto.ts +10 -0
- package/src/user/user-credential.util.ts +35 -0
- package/src/user/user.controller.ts +17 -2
- package/src/user/user.service.spec.ts +153 -0
- package/src/user/user.service.ts +255 -12
- package/src/validators/is-strong-password-with-settings.validator.ts +12 -0
- package/src/validators/service-locator.ts +15 -0
- package/src/whatsapp-sender/whatsapp-sender.module.ts +10 -0
- package/src/whatsapp-sender/whatsapp-sender.service.ts +313 -0
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { Request } from 'express';
|
|
2
2
|
import { DeleteDTO } from '../dto/delete.dto';
|
|
3
3
|
import { CreateWithEmailAndPasswordDTO } from './dto/create-with-email-and-password.dto';
|
|
4
|
+
import { QueryUserMailListDTO } from './dto/query-user-mail-list.dto';
|
|
4
5
|
import { ResetPasswordDTO } from './dto/reset-password.dto';
|
|
5
6
|
import { UpdateDTO } from './dto/update.dto';
|
|
6
7
|
import { UserService } from './user.service';
|
|
7
8
|
export declare class UserController {
|
|
8
9
|
private readonly userService;
|
|
9
10
|
constructor(userService: UserService);
|
|
10
|
-
list(paginationParams: any): Promise<{
|
|
11
|
+
list(paginationParams: any, filter?: string): Promise<{
|
|
11
12
|
paginate: {
|
|
13
|
+
data: any;
|
|
12
14
|
total: any;
|
|
13
15
|
lastPage: number;
|
|
14
16
|
page: number;
|
|
15
17
|
pageSize: number;
|
|
16
|
-
data: any;
|
|
17
18
|
};
|
|
18
19
|
stats: {
|
|
19
20
|
total: number;
|
|
@@ -112,9 +113,7 @@ export declare class UserController {
|
|
|
112
113
|
deactivated_at: Date | null;
|
|
113
114
|
updated_at: Date;
|
|
114
115
|
};
|
|
115
|
-
|
|
116
|
-
challengeId: number;
|
|
117
|
-
};
|
|
116
|
+
hasChallenge: boolean;
|
|
118
117
|
}>;
|
|
119
118
|
update(userId: number, data: UpdateDTO, locale: string, actor: any): Promise<{
|
|
120
119
|
id: number;
|
|
@@ -195,6 +194,19 @@ export declare class UserController {
|
|
|
195
194
|
page: number;
|
|
196
195
|
pageSize: number;
|
|
197
196
|
}>;
|
|
197
|
+
listMails(userId: number, paginationParams: any, query: QueryUserMailListDTO, locale: string): Promise<{
|
|
198
|
+
stats: {
|
|
199
|
+
total: number;
|
|
200
|
+
received: number;
|
|
201
|
+
read: number;
|
|
202
|
+
error: number;
|
|
203
|
+
};
|
|
204
|
+
data: any;
|
|
205
|
+
total: any;
|
|
206
|
+
lastPage: number;
|
|
207
|
+
page: number;
|
|
208
|
+
pageSize: number;
|
|
209
|
+
}>;
|
|
198
210
|
assignRoleToUser(userId: number, roleId: number, locale: string, actor: any): Promise<{
|
|
199
211
|
id: number;
|
|
200
212
|
user_id: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.controller.d.ts","sourceRoot":"","sources":["../../src/user/user.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user.controller.d.ts","sourceRoot":"","sources":["../../src/user/user.controller.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAEa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAIrC,IAAI,CAAe,gBAAgB,KAAA,EAAmB,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;;;IAKrE,GAAG,CAAgC,MAAM,EAAE,MAAM,EAAY,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM3E,gBAAgB,CACW,MAAM,EAAE,MAAM,EACnC,MAAM,EAAE,MAAM,EACjB,GAAG,EAAE,OAAO,EACZ,GAAG,KAAA;IAMN,MAAM,CAAS,IAAI,EAAE,6BAA6B,EAAY,MAAM,EAAE,MAAM;;;;;;;;;;;;;;IAK5E,MAAM,CACqB,MAAM,EAAE,MAAM,EACrC,IAAI,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EAChB,KAAK,KAAA;;;;;;;;;;;IAMT,aAAa,CACc,MAAM,EAAE,MAAM,EACrC,IAAI,EAAE,gBAAgB,EACpB,MAAM,EAAE,MAAM,EAChB,KAAK,KAAA;;;;IAgBT,YAAY,CACN,MAAM,EAAE,MAAM,EACO,MAAM,EAAE,MAAM,EAC7B,MAAM,EAAE,UAAU,EAC1B,KAAK,KAAA;;;;IAMT,gBAAgB,CACV,MAAM,EAAE,MAAM,EACO,MAAM,EAAE,MAAM,EACR,YAAY,EAAE,MAAM;;;;;;;;;;IAMrD,MAAM,CAAS,IAAI,EAAE,SAAS,EAAY,MAAM,EAAE,MAAM;IAKtD,YAAY,CACe,MAAM,EAAE,MAAM,EACnC,MAAM,EAAE,MAAM;;;;;;;IAMtB,YAAY,CACe,MAAM,EAAE,MAAM,EACnC,MAAM,EAAE,MAAM;;;;;;;;;IAMpB,aAAa,CAAgC,MAAM,EAAE,MAAM,EAAY,MAAM,EAAE,MAAM;;;;;;IAMrF,gBAAgB,CACZ,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAChB,gBAAgB,KAAA,EACpB,MAAM,EAAE,MAAM;;;;;;;IAMpB,QAAQ,CACmB,MAAM,EAAE,MAAM,EAC/B,gBAAgB,KAAA,EACpB,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;IAMpB,SAAS,CACkB,MAAM,EAAE,MAAM,EAC/B,gBAAgB,KAAA,EACrB,KAAK,EAAE,oBAAoB,EAC1B,MAAM,EAAE,MAAM;;;;;;;;;;;;;IASpB,gBAAgB,CACW,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACnC,MAAM,EAAE,MAAM,EAChB,KAAK,KAAA;;;;;;;IAMT,kBAAkB,CACS,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACnC,MAAM,EAAE,MAAM,EAChB,KAAK,KAAA;;;CAIhB"}
|
|
@@ -20,6 +20,7 @@ const common_1 = require("@nestjs/common");
|
|
|
20
20
|
const platform_express_1 = require("@nestjs/platform-express");
|
|
21
21
|
const delete_dto_1 = require("../dto/delete.dto");
|
|
22
22
|
const create_with_email_and_password_dto_1 = require("./dto/create-with-email-and-password.dto");
|
|
23
|
+
const query_user_mail_list_dto_1 = require("./dto/query-user-mail-list.dto");
|
|
23
24
|
const reset_password_dto_1 = require("./dto/reset-password.dto");
|
|
24
25
|
const update_dto_1 = require("./dto/update.dto");
|
|
25
26
|
const user_service_1 = require("./user.service");
|
|
@@ -27,8 +28,8 @@ let UserController = class UserController {
|
|
|
27
28
|
constructor(userService) {
|
|
28
29
|
this.userService = userService;
|
|
29
30
|
}
|
|
30
|
-
async list(paginationParams) {
|
|
31
|
-
return this.userService.list(paginationParams);
|
|
31
|
+
async list(paginationParams, filter) {
|
|
32
|
+
return this.userService.list(paginationParams, filter);
|
|
32
33
|
}
|
|
33
34
|
async get(userId, locale) {
|
|
34
35
|
return this.userService.get(locale, userId);
|
|
@@ -69,6 +70,9 @@ let UserController = class UserController {
|
|
|
69
70
|
async listLogs(userId, paginationParams, locale) {
|
|
70
71
|
return this.userService.listUserChangeLogs(locale, userId, paginationParams);
|
|
71
72
|
}
|
|
73
|
+
async listMails(userId, paginationParams, query, locale) {
|
|
74
|
+
return this.userService.listUserMails(locale, userId, Object.assign(Object.assign({}, paginationParams), { status: query.status }));
|
|
75
|
+
}
|
|
72
76
|
async assignRoleToUser(userId, roleId, locale, actor) {
|
|
73
77
|
return this.userService.assignRoleToUser(locale, userId, roleId, actor === null || actor === void 0 ? void 0 : actor.id);
|
|
74
78
|
}
|
|
@@ -80,8 +84,9 @@ exports.UserController = UserController;
|
|
|
80
84
|
__decorate([
|
|
81
85
|
(0, common_1.Get)(),
|
|
82
86
|
__param(0, (0, api_pagination_1.Pagination)()),
|
|
87
|
+
__param(1, (0, common_1.Query)('filter')),
|
|
83
88
|
__metadata("design:type", Function),
|
|
84
|
-
__metadata("design:paramtypes", [Object]),
|
|
89
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
85
90
|
__metadata("design:returntype", Promise)
|
|
86
91
|
], UserController.prototype, "list", null);
|
|
87
92
|
__decorate([
|
|
@@ -209,6 +214,16 @@ __decorate([
|
|
|
209
214
|
__metadata("design:paramtypes", [Number, Object, String]),
|
|
210
215
|
__metadata("design:returntype", Promise)
|
|
211
216
|
], UserController.prototype, "listLogs", null);
|
|
217
|
+
__decorate([
|
|
218
|
+
(0, common_1.Get)(':userId/mail'),
|
|
219
|
+
__param(0, (0, common_1.Param)('userId', common_1.ParseIntPipe)),
|
|
220
|
+
__param(1, (0, api_pagination_1.Pagination)()),
|
|
221
|
+
__param(2, (0, common_1.Query)()),
|
|
222
|
+
__param(3, (0, api_locale_1.Locale)()),
|
|
223
|
+
__metadata("design:type", Function),
|
|
224
|
+
__metadata("design:paramtypes", [Number, Object, query_user_mail_list_dto_1.QueryUserMailListDTO, String]),
|
|
225
|
+
__metadata("design:returntype", Promise)
|
|
226
|
+
], UserController.prototype, "listMails", null);
|
|
212
227
|
__decorate([
|
|
213
228
|
(0, common_1.Post)(':userId/role/:roleId'),
|
|
214
229
|
__param(0, (0, common_1.Param)('userId', common_1.ParseIntPipe)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.controller.js","sourceRoot":"","sources":["../../src/user/user.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAA0D;AAC1D,oDAA6C;AAC7C,4DAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"user.controller.js","sourceRoot":"","sources":["../../src/user/user.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ export declare class UserService {
|
|
|
18
18
|
private readonly file;
|
|
19
19
|
private readonly integrationApi;
|
|
20
20
|
private readonly settingService;
|
|
21
|
+
private readonly logger;
|
|
21
22
|
constructor(prismaService: PrismaService, paginationService: PaginationService, security: SecurityService, challenge: ChallengeService, file: FileService, integrationApi: IntegrationDeveloperApiService, settingService: SettingService);
|
|
22
23
|
private validateUserExists;
|
|
23
24
|
private validateRoleExists;
|
|
@@ -32,13 +33,13 @@ export declare class UserService {
|
|
|
32
33
|
enabled: boolean;
|
|
33
34
|
verified_at: Date | null;
|
|
34
35
|
}>;
|
|
35
|
-
list(paginationParams: any): Promise<{
|
|
36
|
+
list(paginationParams: any, filter?: string): Promise<{
|
|
36
37
|
paginate: {
|
|
38
|
+
data: any;
|
|
37
39
|
total: any;
|
|
38
40
|
lastPage: number;
|
|
39
41
|
page: number;
|
|
40
42
|
pageSize: number;
|
|
41
|
-
data: any;
|
|
42
43
|
};
|
|
43
44
|
stats: {
|
|
44
45
|
total: number;
|
|
@@ -124,7 +125,7 @@ export declare class UserService {
|
|
|
124
125
|
deactivated_at: Date | null;
|
|
125
126
|
updated_at: Date;
|
|
126
127
|
}>;
|
|
127
|
-
createWithEmailAndPassword(locale: string, { email, name, password }: CreateWithEmailAndPasswordDTO): Promise<{
|
|
128
|
+
createWithEmailAndPassword(locale: string, { email, name, password, app }: CreateWithEmailAndPasswordDTO): Promise<{
|
|
128
129
|
user: {
|
|
129
130
|
id: number;
|
|
130
131
|
created_at: Date;
|
|
@@ -136,9 +137,7 @@ export declare class UserService {
|
|
|
136
137
|
deactivated_at: Date | null;
|
|
137
138
|
updated_at: Date;
|
|
138
139
|
};
|
|
139
|
-
|
|
140
|
-
challengeId: number;
|
|
141
|
-
};
|
|
140
|
+
hasChallenge: boolean;
|
|
142
141
|
}>;
|
|
143
142
|
update(locale: string, userId: number, { name }: UpdateDTO, actorUserId?: number): Promise<{
|
|
144
143
|
id: number;
|
|
@@ -342,6 +341,26 @@ export declare class UserService {
|
|
|
342
341
|
page: number;
|
|
343
342
|
pageSize: number;
|
|
344
343
|
}>;
|
|
344
|
+
listUserMails(locale: string, userId: number, params: {
|
|
345
|
+
page?: number;
|
|
346
|
+
pageSize?: number;
|
|
347
|
+
search?: string;
|
|
348
|
+
sortField?: string;
|
|
349
|
+
sortOrder?: 'asc' | 'desc';
|
|
350
|
+
status?: 'all' | 'received' | 'read' | 'error';
|
|
351
|
+
}): Promise<{
|
|
352
|
+
stats: {
|
|
353
|
+
total: number;
|
|
354
|
+
received: number;
|
|
355
|
+
read: number;
|
|
356
|
+
error: number;
|
|
357
|
+
};
|
|
358
|
+
data: any;
|
|
359
|
+
total: any;
|
|
360
|
+
lastPage: number;
|
|
361
|
+
page: number;
|
|
362
|
+
pageSize: number;
|
|
363
|
+
}>;
|
|
345
364
|
listUserActivities(locale: string, userId: number, paginationParams: any): Promise<{
|
|
346
365
|
data: any;
|
|
347
366
|
total: any;
|
|
@@ -353,6 +372,9 @@ export declare class UserService {
|
|
|
353
372
|
private deleteOldAvatar;
|
|
354
373
|
private getDefaultUserRole;
|
|
355
374
|
private generateRandomPassword;
|
|
375
|
+
private buildUserFilterWhere;
|
|
376
|
+
private buildUserSearchWhere;
|
|
377
|
+
private buildUserListWhere;
|
|
356
378
|
private getUserIncludeClause;
|
|
357
379
|
private getUserStatistics;
|
|
358
380
|
private getAllRolesWithLocale;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../src/user/user.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../src/user/user.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
|
+
var UserService_1;
|
|
14
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
16
|
exports.UserService = void 0;
|
|
16
17
|
const api_locale_1 = require("@hed-hog/api-locale");
|
|
@@ -24,6 +25,7 @@ const integration_developer_api_service_1 = require("../integration/services/int
|
|
|
24
25
|
const security_service_1 = require("../security/security.service");
|
|
25
26
|
const setting_service_1 = require("../setting/setting.service");
|
|
26
27
|
const user_constants_1 = require("./constants/user.constants");
|
|
28
|
+
const user_credential_util_1 = require("./user-credential.util");
|
|
27
29
|
// Constants
|
|
28
30
|
const IDENTIFIER_TYPE = {
|
|
29
31
|
EMAIL: 'email',
|
|
@@ -52,8 +54,7 @@ const USER_SORT_FIELDS = [
|
|
|
52
54
|
'created_at',
|
|
53
55
|
'updated_at',
|
|
54
56
|
];
|
|
55
|
-
|
|
56
|
-
let UserService = class UserService {
|
|
57
|
+
let UserService = UserService_1 = class UserService {
|
|
57
58
|
constructor(prismaService, paginationService, security, challenge, file, integrationApi, settingService) {
|
|
58
59
|
this.prismaService = prismaService;
|
|
59
60
|
this.paginationService = paginationService;
|
|
@@ -62,6 +63,7 @@ let UserService = class UserService {
|
|
|
62
63
|
this.file = file;
|
|
63
64
|
this.integrationApi = integrationApi;
|
|
64
65
|
this.settingService = settingService;
|
|
66
|
+
this.logger = new common_1.Logger(UserService_1.name);
|
|
65
67
|
}
|
|
66
68
|
// ==========================================
|
|
67
69
|
// Validation Helpers
|
|
@@ -108,20 +110,28 @@ let UserService = class UserService {
|
|
|
108
110
|
// ==========================================
|
|
109
111
|
// CRUD Operations
|
|
110
112
|
// ==========================================
|
|
111
|
-
async list(paginationParams) {
|
|
112
|
-
|
|
113
|
+
async list(paginationParams, filter) {
|
|
114
|
+
var _a;
|
|
115
|
+
const paginate = await this.paginationService.paginatePrismaModel(this.prismaService.user, Object.assign(Object.assign({}, paginationParams), { validSortFields: USER_SORT_FIELDS, where: this.buildUserListWhere(filter, paginationParams === null || paginationParams === void 0 ? void 0 : paginationParams.search), include: this.getUserIncludeClause() }));
|
|
113
116
|
const stats = await this.getUserStatistics();
|
|
114
|
-
return {
|
|
117
|
+
return {
|
|
118
|
+
paginate: Object.assign(Object.assign({}, paginate), { data: ((_a = paginate === null || paginate === void 0 ? void 0 : paginate.data) !== null && _a !== void 0 ? _a : []).map((user) => {
|
|
119
|
+
var _a, _b, _c;
|
|
120
|
+
return (Object.assign(Object.assign({}, user), { requires_password_reset: (0, user_credential_util_1.hasPendingPasswordReset)(user), last_login_at: (_c = (_b = (_a = user === null || user === void 0 ? void 0 : user.user_activity) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.created_at) !== null && _c !== void 0 ? _c : null }));
|
|
121
|
+
}) }),
|
|
122
|
+
stats,
|
|
123
|
+
};
|
|
115
124
|
}
|
|
116
125
|
async get(locale, userId) {
|
|
117
126
|
return this.findUserById(locale, userId);
|
|
118
127
|
}
|
|
119
|
-
async createWithEmailAndPassword(locale, { email, name, password }) {
|
|
128
|
+
async createWithEmailAndPassword(locale, { email, name, password, app }) {
|
|
129
|
+
var _a;
|
|
120
130
|
await this.validateEmailAvailable(locale, email);
|
|
121
131
|
const passwordHash = await this.security.hashArgon2(password);
|
|
122
132
|
const user = await this.prismaService.$transaction(async (tx) => {
|
|
123
133
|
const role = await this.getDefaultUserRole(locale, tx);
|
|
124
|
-
const
|
|
134
|
+
const created = await tx.user.create({
|
|
125
135
|
data: {
|
|
126
136
|
name,
|
|
127
137
|
user_identifier: {
|
|
@@ -144,9 +154,19 @@ let UserService = class UserService {
|
|
|
144
154
|
},
|
|
145
155
|
},
|
|
146
156
|
});
|
|
147
|
-
return
|
|
157
|
+
return created;
|
|
158
|
+
}).catch((error) => {
|
|
159
|
+
if ((error === null || error === void 0 ? void 0 : error.code) === 'P2002') {
|
|
160
|
+
throw new common_1.BadRequestException((0, api_locale_1.getLocaleText)('signup.emailExists', locale, 'Email already in use.'));
|
|
161
|
+
}
|
|
162
|
+
throw error;
|
|
148
163
|
});
|
|
149
|
-
|
|
164
|
+
try {
|
|
165
|
+
await this.challenge.verifyEmail(locale, user.id, email, app);
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
this.logger.warn(`Signup confirmation email failed for user ${user.id}: ${(_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : error}`);
|
|
169
|
+
}
|
|
150
170
|
await this.registerUserActivity(user.id, 'register');
|
|
151
171
|
await this.integrationApi.publishEvent({
|
|
152
172
|
eventName: 'core.user.created',
|
|
@@ -155,7 +175,7 @@ let UserService = class UserService {
|
|
|
155
175
|
aggregateId: String(user.id),
|
|
156
176
|
payload: { id: user.id, name: user.name, email },
|
|
157
177
|
}).catch(() => null);
|
|
158
|
-
return { user,
|
|
178
|
+
return { user, hasChallenge: true };
|
|
159
179
|
}
|
|
160
180
|
async update(locale, userId, { name }, actorUserId) {
|
|
161
181
|
var _a, _b;
|
|
@@ -302,7 +322,10 @@ let UserService = class UserService {
|
|
|
302
322
|
include: {
|
|
303
323
|
user_identifier: true,
|
|
304
324
|
user_credential: true,
|
|
305
|
-
user_activity:
|
|
325
|
+
user_activity: {
|
|
326
|
+
orderBy: { created_at: 'desc' },
|
|
327
|
+
take: 20,
|
|
328
|
+
},
|
|
306
329
|
user_session: true,
|
|
307
330
|
user_account: true,
|
|
308
331
|
role_user: {
|
|
@@ -575,6 +598,105 @@ let UserService = class UserService {
|
|
|
575
598
|
};
|
|
576
599
|
}) });
|
|
577
600
|
}
|
|
601
|
+
// ==========================================
|
|
602
|
+
// Sent Mails (delivery history per user)
|
|
603
|
+
// ==========================================
|
|
604
|
+
async listUserMails(locale, userId, params) {
|
|
605
|
+
var _a;
|
|
606
|
+
await this.validateUserExists(locale, userId);
|
|
607
|
+
const identifiers = await this.prismaService.user_identifier.findMany({
|
|
608
|
+
where: { user_id: userId, type: IDENTIFIER_TYPE.EMAIL },
|
|
609
|
+
select: { value: true },
|
|
610
|
+
});
|
|
611
|
+
const emails = [
|
|
612
|
+
...new Set(identifiers
|
|
613
|
+
.map((identifier) => { var _a; return (_a = identifier.value) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase(); })
|
|
614
|
+
.filter((value) => Boolean(value))),
|
|
615
|
+
];
|
|
616
|
+
// Tracked deliveries plus a fallback over the raw recipient fields, so
|
|
617
|
+
// mails sent before the tracking table existed still show up here.
|
|
618
|
+
const OR = [{ mail_sent_user: { some: { user_id: userId } } }];
|
|
619
|
+
for (const email of emails) {
|
|
620
|
+
OR.push({ to: { contains: email, mode: 'insensitive' } });
|
|
621
|
+
OR.push({ cc: { contains: email, mode: 'insensitive' } });
|
|
622
|
+
OR.push({ bcc: { contains: email, mode: 'insensitive' } });
|
|
623
|
+
}
|
|
624
|
+
const AND = [];
|
|
625
|
+
const status = params === null || params === void 0 ? void 0 : params.status;
|
|
626
|
+
if (status && status !== 'all') {
|
|
627
|
+
AND.push({ mail_sent_user: { some: { user_id: userId, status } } });
|
|
628
|
+
}
|
|
629
|
+
const search = (_a = params === null || params === void 0 ? void 0 : params.search) === null || _a === void 0 ? void 0 : _a.trim();
|
|
630
|
+
if (search) {
|
|
631
|
+
AND.push({ subject: { contains: search, mode: 'insensitive' } });
|
|
632
|
+
}
|
|
633
|
+
const paginated = await this.paginationService.paginatePrismaModel(this.prismaService.mail_sent, {
|
|
634
|
+
page: params === null || params === void 0 ? void 0 : params.page,
|
|
635
|
+
pageSize: params === null || params === void 0 ? void 0 : params.pageSize,
|
|
636
|
+
sortField: (params === null || params === void 0 ? void 0 : params.sortField) || 'created_at',
|
|
637
|
+
sortOrder: (params === null || params === void 0 ? void 0 : params.sortOrder) || 'desc',
|
|
638
|
+
validSortFields: ['id', 'created_at', 'subject'],
|
|
639
|
+
where: Object.assign({ OR }, (AND.length > 0 ? { AND } : {})),
|
|
640
|
+
include: {
|
|
641
|
+
mail: { select: { id: true, slug: true } },
|
|
642
|
+
mail_sent_user: {
|
|
643
|
+
where: { user_id: userId },
|
|
644
|
+
select: {
|
|
645
|
+
id: true,
|
|
646
|
+
recipient_email: true,
|
|
647
|
+
status: true,
|
|
648
|
+
read_at: true,
|
|
649
|
+
error_code: true,
|
|
650
|
+
error_message: true,
|
|
651
|
+
},
|
|
652
|
+
},
|
|
653
|
+
},
|
|
654
|
+
});
|
|
655
|
+
// `total` conta o mesmo universo da lista (rastreados + fallback), para o
|
|
656
|
+
// KPI não divergir da quantidade de itens exibidos. Os demais contadores só
|
|
657
|
+
// existem para envios rastreados.
|
|
658
|
+
const [totalMails, grouped] = await Promise.all([
|
|
659
|
+
this.prismaService.mail_sent.count({ where: { OR } }),
|
|
660
|
+
this.prismaService.mail_sent_user.groupBy({
|
|
661
|
+
by: ['status'],
|
|
662
|
+
where: { user_id: userId },
|
|
663
|
+
_count: { _all: true },
|
|
664
|
+
}),
|
|
665
|
+
]);
|
|
666
|
+
const stats = grouped.reduce((acc, group) => {
|
|
667
|
+
var _a, _b;
|
|
668
|
+
const count = (_b = (_a = group._count) === null || _a === void 0 ? void 0 : _a._all) !== null && _b !== void 0 ? _b : 0;
|
|
669
|
+
if (group.status === 'received')
|
|
670
|
+
acc.received += count;
|
|
671
|
+
if (group.status === 'read')
|
|
672
|
+
acc.read += count;
|
|
673
|
+
if (group.status === 'error')
|
|
674
|
+
acc.error += count;
|
|
675
|
+
return acc;
|
|
676
|
+
}, { total: totalMails, received: 0, read: 0, error: 0 });
|
|
677
|
+
return Object.assign(Object.assign({}, paginated), { stats, data: (paginated.data || []).map((mailSent) => {
|
|
678
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
679
|
+
const tracking = (_b = (_a = mailSent.mail_sent_user) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
|
|
680
|
+
return {
|
|
681
|
+
id: mailSent.id,
|
|
682
|
+
mailId: mailSent.mail_id,
|
|
683
|
+
mailSlug: (_d = (_c = mailSent.mail) === null || _c === void 0 ? void 0 : _c.slug) !== null && _d !== void 0 ? _d : null,
|
|
684
|
+
subject: mailSent.subject,
|
|
685
|
+
from: mailSent.from,
|
|
686
|
+
to: mailSent.to,
|
|
687
|
+
cc: mailSent.cc,
|
|
688
|
+
bcc: mailSent.bcc,
|
|
689
|
+
body: mailSent.body,
|
|
690
|
+
createdAt: ((_f = (_e = mailSent.created_at) === null || _e === void 0 ? void 0 : _e.toISOString) === null || _f === void 0 ? void 0 : _f.call(_e)) || null,
|
|
691
|
+
tracked: Boolean(tracking),
|
|
692
|
+
recipientEmail: (_g = tracking === null || tracking === void 0 ? void 0 : tracking.recipient_email) !== null && _g !== void 0 ? _g : null,
|
|
693
|
+
status: (_h = tracking === null || tracking === void 0 ? void 0 : tracking.status) !== null && _h !== void 0 ? _h : null,
|
|
694
|
+
readAt: ((_k = (_j = tracking === null || tracking === void 0 ? void 0 : tracking.read_at) === null || _j === void 0 ? void 0 : _j.toISOString) === null || _k === void 0 ? void 0 : _k.call(_j)) || null,
|
|
695
|
+
errorCode: (_l = tracking === null || tracking === void 0 ? void 0 : tracking.error_code) !== null && _l !== void 0 ? _l : null,
|
|
696
|
+
errorMessage: (_m = tracking === null || tracking === void 0 ? void 0 : tracking.error_message) !== null && _m !== void 0 ? _m : null,
|
|
697
|
+
};
|
|
698
|
+
}) });
|
|
699
|
+
}
|
|
578
700
|
async listUserActivities(locale, userId, paginationParams) {
|
|
579
701
|
await this.validateUserExists(locale, userId);
|
|
580
702
|
const paginated = await this.paginationService.paginatePrismaModel(this.prismaService.user_activity, {
|
|
@@ -655,10 +777,66 @@ let UserService = class UserService {
|
|
|
655
777
|
}
|
|
656
778
|
return passwordChars.slice(0, length).join('');
|
|
657
779
|
}
|
|
780
|
+
buildUserFilterWhere(filter) {
|
|
781
|
+
switch (filter) {
|
|
782
|
+
case 'new':
|
|
783
|
+
return {
|
|
784
|
+
created_at: {
|
|
785
|
+
gte: new Date(Date.now() - NEW_USERS_PERIOD_DAYS * DAYS_IN_MS),
|
|
786
|
+
},
|
|
787
|
+
};
|
|
788
|
+
case 'blocked':
|
|
789
|
+
return { suspended_until: { gt: new Date() } };
|
|
790
|
+
case 'password-reset':
|
|
791
|
+
return { user_credential: user_credential_util_1.PENDING_PASSWORD_RESET_WHERE };
|
|
792
|
+
default:
|
|
793
|
+
return {};
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
// O e-mail não é coluna de `user`: mora em `user_identifier`, junto de
|
|
797
|
+
// username, telefone e cpf. Por isso a busca é montada aqui, e não via
|
|
798
|
+
// `searchFields` da paginação, que só sabe filtrar colunas escalares.
|
|
799
|
+
buildUserSearchWhere(search) {
|
|
800
|
+
const term = typeof search === 'string' ? search.trim() : '';
|
|
801
|
+
if (!term) {
|
|
802
|
+
return null;
|
|
803
|
+
}
|
|
804
|
+
return {
|
|
805
|
+
OR: [
|
|
806
|
+
{ name: { contains: term, mode: 'insensitive' } },
|
|
807
|
+
{
|
|
808
|
+
user_identifier: {
|
|
809
|
+
some: { value: { contains: term, mode: 'insensitive' } },
|
|
810
|
+
},
|
|
811
|
+
},
|
|
812
|
+
],
|
|
813
|
+
};
|
|
814
|
+
}
|
|
815
|
+
buildUserListWhere(filter, search) {
|
|
816
|
+
const filterWhere = this.buildUserFilterWhere(filter);
|
|
817
|
+
const searchWhere = this.buildUserSearchWhere(search);
|
|
818
|
+
if (!searchWhere) {
|
|
819
|
+
return filterWhere;
|
|
820
|
+
}
|
|
821
|
+
if (!Object.keys(filterWhere).length) {
|
|
822
|
+
return searchWhere;
|
|
823
|
+
}
|
|
824
|
+
return { AND: [filterWhere, searchWhere] };
|
|
825
|
+
}
|
|
658
826
|
getUserIncludeClause() {
|
|
659
827
|
return {
|
|
660
828
|
user_account: true,
|
|
661
|
-
user_credential:
|
|
829
|
+
user_credential: {
|
|
830
|
+
select: {
|
|
831
|
+
id: true,
|
|
832
|
+
type: true,
|
|
833
|
+
requires_reset: true,
|
|
834
|
+
revoked_at: true,
|
|
835
|
+
expires_at: true,
|
|
836
|
+
created_at: true,
|
|
837
|
+
updated_at: true,
|
|
838
|
+
},
|
|
839
|
+
},
|
|
662
840
|
user_identifier: {
|
|
663
841
|
where: { enabled: true },
|
|
664
842
|
},
|
|
@@ -666,9 +844,22 @@ let UserService = class UserService {
|
|
|
666
844
|
where: { verified_at: { not: null } },
|
|
667
845
|
},
|
|
668
846
|
user_activity: {
|
|
847
|
+
where: { action: 'login' },
|
|
669
848
|
orderBy: { created_at: 'desc' },
|
|
849
|
+
take: 1,
|
|
670
850
|
},
|
|
671
851
|
user_session: {
|
|
852
|
+
select: {
|
|
853
|
+
id: true,
|
|
854
|
+
user_id: true,
|
|
855
|
+
ip_address: true,
|
|
856
|
+
user_agent: true,
|
|
857
|
+
browser_id: true,
|
|
858
|
+
revoked_at: true,
|
|
859
|
+
expires_at: true,
|
|
860
|
+
created_at: true,
|
|
861
|
+
updated_at: true,
|
|
862
|
+
},
|
|
672
863
|
where: {
|
|
673
864
|
revoked_at: null,
|
|
674
865
|
expires_at: { gt: new Date() },
|
|
@@ -742,7 +933,7 @@ let UserService = class UserService {
|
|
|
742
933
|
}
|
|
743
934
|
};
|
|
744
935
|
exports.UserService = UserService;
|
|
745
|
-
exports.UserService = UserService = __decorate([
|
|
936
|
+
exports.UserService = UserService = UserService_1 = __decorate([
|
|
746
937
|
(0, common_1.Injectable)(),
|
|
747
938
|
__param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => api_prisma_1.PrismaService))),
|
|
748
939
|
__param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => api_pagination_1.PaginationService))),
|