@hed-hog/core 0.0.387 → 0.0.393
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -11
- 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 +11 -6
- 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-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 +12 -17
- 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.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 +92 -12
- package/dist/ai/ai.service.d.ts.map +1 -1
- package/dist/ai/ai.service.js +309 -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/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/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/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 +59 -5
- 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 +89 -15
- package/dist/auth/auth.controller.d.ts.map +1 -1
- package/dist/auth/auth.controller.js +116 -44
- 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 +169 -12
- package/dist/auth/auth.service.d.ts.map +1 -1
- package/dist/auth/auth.service.js +314 -67
- 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/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 +31 -9
- package/dist/challenge/challenge.service.d.ts.map +1 -1
- package/dist/challenge/challenge.service.js +111 -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 +46 -2
- package/dist/core.module.js.map +1 -1
- package/dist/dashboard/dashboard/dashboard.controller.d.ts +21 -21
- package/dist/dashboard/dashboard/dashboard.service.d.ts +21 -21
- package/dist/dashboard/dashboard-component/dashboard-component.controller.d.ts +10 -10
- package/dist/dashboard/dashboard-component/dashboard-component.service.d.ts +10 -10
- 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 +3 -3
- package/dist/dashboard/dashboard-core/dashboard-core.service.d.ts +3 -3
- 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/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.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 +134 -1
- package/dist/file/file.service.d.ts.map +1 -1
- package/dist/file/file.service.js +363 -12
- 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/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 +43 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -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/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 +12 -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 +27 -1
- package/dist/integration-profile/integration-profile.utils.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.utils.js +46 -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 +156 -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 +15 -2
- package/dist/language/pt.json +15 -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 +44 -0
- package/dist/mail/dto/send.dto.d.ts.map +1 -1
- package/dist/mail/dto/send.dto.js +20 -0
- package/dist/mail/dto/send.dto.js.map +1 -1
- package/dist/mail/mail.controller.d.ts +5 -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.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 +69 -4
- package/dist/mail/mail.service.d.ts.map +1 -1
- package/dist/mail/mail.service.js +278 -37
- 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-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/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/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/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/menu/menu.controller.d.ts +3 -3
- package/dist/menu/menu.service.d.ts +3 -3
- 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/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/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 +11 -6
- package/dist/pdf/pdf.service.d.ts.map +1 -1
- package/dist/pdf/pdf.service.js +60 -20
- 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 +32 -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 +41 -18
- package/dist/profile/profile.service.d.ts.map +1 -1
- package/dist/profile/profile.service.js +133 -48
- 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 +184 -0
- package/dist/redis/redis-pubsub.js.map +1 -0
- 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/role/role.controller.d.ts +3 -3
- package/dist/role/role.service.d.ts +3 -3
- 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/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.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 +41 -5
- package/dist/setting/setting.service.d.ts.map +1 -1
- package/dist/setting/setting.service.js +113 -1
- 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/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 +24 -26
- 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 +71 -29
- package/dist/user/user.service.d.ts.map +1 -1
- package/dist/user/user.service.js +291 -17
- 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/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/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/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 +25 -0
- package/hedhog/data/mail.yaml +275 -112
- package/hedhog/data/mail_layout.yaml +198 -0
- package/hedhog/data/menu.yaml +69 -3
- package/hedhog/data/role.yaml +16 -0
- package/hedhog/data/route.yaml +307 -3
- package/hedhog/data/setting_group.yaml +315 -1
- 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/mfa-setup-dialog.tsx.ejs +36 -0
- package/hedhog/frontend/app/account/components/profile-form.tsx.ejs +2 -1
- package/hedhog/frontend/app/account/components/two-factor-auth.tsx.ejs +2 -0
- 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/hooks/use-mfa-setup.ts.ejs +10 -7
- package/hedhog/frontend/app/account/layout.tsx.ejs +2 -0
- 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.test.tsx.ejs +298 -0
- package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +410 -1223
- 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/log/page.tsx.ejs +210 -3
- package/hedhog/frontend/app/mail/template/page.tsx.ejs +292 -200
- 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/active-session.tsx.ejs +58 -11
- package/hedhog/frontend/app/users/page.tsx.ejs +186 -21
- 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 +250 -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-mails.tsx.ejs +399 -0
- package/hedhog/frontend/app/users/user-sheet.tsx.ejs +106 -99
- package/hedhog/frontend/messages/en.json +643 -49
- package/hedhog/frontend/messages/pt.json +643 -49
- package/hedhog/table/access_log.yaml +7 -0
- package/hedhog/table/ai_agent.yaml +1 -0
- package/hedhog/table/ai_instruction.yaml +15 -0
- package/hedhog/table/file.yaml +8 -0
- package/hedhog/table/leaked_password.yaml +18 -0
- package/hedhog/table/mail_delivery_event.yaml +76 -0
- package/hedhog/table/mail_layout.yaml +35 -0
- package/hedhog/table/mail_sent.yaml +23 -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_activity.yaml +9 -0
- package/hedhog/table/user_device.yaml +52 -0
- package/hedhog/table/user_presence.yaml +36 -0
- package/hedhog/table/user_session.yaml +20 -1
- package/package.json +7 -2
- package/src/access-log/access-log.controller.ts +1 -0
- package/src/access-log/access-log.interceptor.ts +9 -3
- 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-attachment.fragments.spec.ts +319 -0
- package/src/ai/ai-attachment.fragments.ts +35 -0
- package/src/ai/ai.controller.ts +9 -0
- package/src/ai/ai.module.ts +3 -2
- package/src/ai/ai.prompts.ts +38 -0
- package/src/ai/ai.service.spec.ts +280 -0
- package/src/ai/ai.service.ts +475 -82
- package/src/ai/dto/chat.dto.ts +33 -3
- package/src/ai/dto/create-agent.dto.ts +2 -2
- package/src/ai/dto/richtext-edit-html.dto.ts +11 -0
- package/src/ai/dto/update-agent.dto.ts +2 -2
- package/src/ai/richtext-ai.prompts.ts +57 -0
- package/src/ai/richtext-ai.service.ts +109 -0
- 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 +78 -13
- package/src/auth/auth.module.ts +2 -0
- package/src/auth/auth.service.spec.ts +386 -7
- package/src/auth/auth.service.ts +435 -81
- 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/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 +112 -4
- package/src/challenge/challenge.service.ts +131 -17
- package/src/core.module.ts +46 -1
- package/src/file/file.controller.ts +54 -4
- package/src/file/file.service.spec.ts +275 -0
- package/src/file/file.service.ts +468 -16
- 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/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 +58 -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/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 +12 -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 +78 -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 +194 -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 +15 -2
- package/src/language/pt.json +15 -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 +58 -1
- package/src/mail/mail-template.spec.ts +274 -0
- package/src/mail/mail.controller.ts +9 -2
- package/src/mail/mail.module.ts +2 -0
- package/src/mail/mail.service.spec.ts +422 -6
- package/src/mail/mail.service.ts +337 -34
- 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-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/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/mcp-chat/mcp-chat.service.spec.ts +236 -0
- package/src/mcp-chat/mcp-chat.service.ts +122 -26
- 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/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/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 +81 -24
- 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 +164 -46
- 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 +190 -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/dto/create.dto.ts +13 -2
- package/src/setting/setting.module.ts +3 -2
- package/src/setting/setting.service.spec.ts +135 -1
- package/src/setting/setting.service.ts +138 -2
- package/src/token/token.service.spec.ts +62 -0
- package/src/token/token.service.ts +57 -3
- 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 +186 -2
- package/src/user/user.service.ts +361 -16
- 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/validators/is-strong-password-with-settings.validator.ts +12 -0
- package/src/validators/service-locator.ts +15 -0
- package/src/webhook-integration/webhook-integration.service.ts +57 -3
- package/src/webhook-integration/webhook-protocol.registry.ts +6 -0
- package/src/whatsapp-sender/whatsapp-sender.module.ts +10 -0
- package/src/whatsapp-sender/whatsapp-sender.service.ts +313 -0
|
@@ -75,6 +75,7 @@
|
|
|
75
75
|
"tab2fa": "2FA",
|
|
76
76
|
"tabAccounts": "Accounts",
|
|
77
77
|
"tabSessions": "Sessions",
|
|
78
|
+
"tabDevices": "Devices",
|
|
78
79
|
"tabMcpTokens": "MCP Tokens",
|
|
79
80
|
"tabTokens": "Tokens",
|
|
80
81
|
"breadcrumbLabel": "Account",
|
|
@@ -255,6 +256,8 @@
|
|
|
255
256
|
"tabIdentifiers": "Identifiers",
|
|
256
257
|
"tabMfa": "MFA",
|
|
257
258
|
"tabSessions": "Sessions",
|
|
259
|
+
"tabDevices": "Devices",
|
|
260
|
+
"tabEmails": "Emails",
|
|
258
261
|
"tabLogs": "Logs",
|
|
259
262
|
"cardLastLoginDescription": "Last Login",
|
|
260
263
|
"cardLastLoginTitle": "Never",
|
|
@@ -265,6 +268,9 @@
|
|
|
265
268
|
"cardMfaMethods": "MFA Methods",
|
|
266
269
|
"cardUserId": "User ID",
|
|
267
270
|
"recentActivityTitle": "Recent Activities",
|
|
271
|
+
"activityToday": "Today",
|
|
272
|
+
"activityYesterday": "Yesterday",
|
|
273
|
+
"activityEventsCount": "{count, plural, one {# event} other {# events}}",
|
|
268
274
|
"buttonDeleteUser": "Delete User",
|
|
269
275
|
"dialogDeleteUserTitle": "Delete User Confirmation",
|
|
270
276
|
"dialogDeleteUserDescription": "Are you sure to delete this user? This can not be undone.",
|
|
@@ -354,6 +360,7 @@
|
|
|
354
360
|
"passwordLastChangedAbsolute": "Last recorded update: {absoluteLabel}",
|
|
355
361
|
"passwordLastChangedUnavailable": "The system could not determine when this password was last updated.",
|
|
356
362
|
"passwordResetNotice": "After this reset, the user must change the password on the next login.",
|
|
363
|
+
"passwordResetSelfNotice": "You can't reset your own password from here — this would immediately require you to change it, and you wouldn't have the generated password to do so. Use your account settings (My Account > Password) instead.",
|
|
357
364
|
"buttonResetPassword": "Reset Password",
|
|
358
365
|
"passwordResetDialogTitle": "Reset User Password",
|
|
359
366
|
"passwordResetDialogDescription": "A strong password is generated by default. You can edit it before confirming.",
|
|
@@ -373,7 +380,14 @@
|
|
|
373
380
|
"viewModeCards": "Cards",
|
|
374
381
|
"columnName": "Name",
|
|
375
382
|
"columnEmail": "Email",
|
|
376
|
-
"columnStatus": "Status"
|
|
383
|
+
"columnStatus": "Status",
|
|
384
|
+
"columnPasswordReset": "Password",
|
|
385
|
+
"columnLastLogin": "Last login",
|
|
386
|
+
"passwordResetPending": "Reset pending",
|
|
387
|
+
"passwordResetNone": "Up to date",
|
|
388
|
+
"neverLoggedIn": "Never signed in",
|
|
389
|
+
"filterOptionPasswordReset": "Password reset pending",
|
|
390
|
+
"activityByActor": "by {name}"
|
|
377
391
|
},
|
|
378
392
|
"RolePage": {
|
|
379
393
|
"title": "Roles Management",
|
|
@@ -573,12 +587,14 @@
|
|
|
573
587
|
"variablesHelp": "Use '{{variable}}' in the email body",
|
|
574
588
|
"bodyLabel": "HTML Body",
|
|
575
589
|
"localeLabel": "Language",
|
|
590
|
+
"sectionIdentification": "Identification",
|
|
576
591
|
"preview": "Preview",
|
|
577
592
|
"availableVariables": "Available variables:",
|
|
578
593
|
"testValuePlaceholder": "Test value",
|
|
579
594
|
"downloadYAML": "Download YAML",
|
|
580
595
|
"generateMigration": "Generate Migration",
|
|
581
596
|
"sendTestEmail": "Send test email",
|
|
597
|
+
"moreActions": "More actions",
|
|
582
598
|
"cancel": "Cancel",
|
|
583
599
|
"saveChanges": "Save Changes",
|
|
584
600
|
"createTemplate": "Create Template",
|
|
@@ -617,7 +633,9 @@
|
|
|
617
633
|
"importConflictTitle": "Templates already exist",
|
|
618
634
|
"importConflictDescription": "The following templates already exist in the database. Do you want to overwrite them?",
|
|
619
635
|
"conflictingSlugs": "Conflicting slugs",
|
|
620
|
-
"overwrite": "Overwrite"
|
|
636
|
+
"overwrite": "Overwrite",
|
|
637
|
+
"fullDocumentWarningTitle": "Full HTML document",
|
|
638
|
+
"fullDocumentWarningDesc": "This body is a complete HTML document, so the base layout will not be applied to it."
|
|
621
639
|
},
|
|
622
640
|
"MailProfilePage": {
|
|
623
641
|
"breadcrumbHome": "Home",
|
|
@@ -706,7 +724,11 @@
|
|
|
706
724
|
"logout": "Logged out",
|
|
707
725
|
"resetPassword": "Reset the password",
|
|
708
726
|
"revokeAllSessions": "Revoked all sessions",
|
|
709
|
-
"revokeSession": "Revoked a session"
|
|
727
|
+
"revokeSession": "Revoked a session",
|
|
728
|
+
"impersonationStarted": "Access simulated by an operator",
|
|
729
|
+
"impersonationEnded": "Access simulation ended",
|
|
730
|
+
"impersonationPerformed": "Simulated another user’s access",
|
|
731
|
+
"impersonationPerformedEnded": "Ended the access simulation"
|
|
710
732
|
},
|
|
711
733
|
"LoginPage": {
|
|
712
734
|
"title": "Authentication",
|
|
@@ -748,6 +770,36 @@
|
|
|
748
770
|
"emailRequired": "Email is required",
|
|
749
771
|
"emailInvalid": "Email is invalid"
|
|
750
772
|
},
|
|
773
|
+
"ResetPasswordPage": {
|
|
774
|
+
"title": "Reset Password",
|
|
775
|
+
"newPasswordLabel": "New Password",
|
|
776
|
+
"newPasswordPlaceholder": "Enter your new password",
|
|
777
|
+
"confirmPasswordLabel": "Confirm New Password",
|
|
778
|
+
"confirmPasswordPlaceholder": "Confirm your new password",
|
|
779
|
+
"newPasswordMinLength": "Password must be at least {minLength} characters",
|
|
780
|
+
"newPasswordMinSymbols": "Password must contain at least {minSymbols} special symbols",
|
|
781
|
+
"newPasswordMinUppercase": "Password must contain at least {minUppercase} uppercase letters",
|
|
782
|
+
"newPasswordMinNumbers": "Password must contain at least {minNumbers} numbers",
|
|
783
|
+
"confirmPasswordRequired": "Please confirm your new password",
|
|
784
|
+
"passwordsDontMatch": "Passwords don't match",
|
|
785
|
+
"missingTokenTitle": "Invalid link",
|
|
786
|
+
"missingToken": "This password reset link is invalid or missing. Please request a new one.",
|
|
787
|
+
"errorTitle": "Reset Failed",
|
|
788
|
+
"successTitle": "Password updated",
|
|
789
|
+
"successDescription": "Your password has been reset successfully. Redirecting you now...",
|
|
790
|
+
"submitButton": "Reset Password",
|
|
791
|
+
"submitButtonLoading": "Resetting..."
|
|
792
|
+
},
|
|
793
|
+
"ConfirmEmailPage": {
|
|
794
|
+
"title": "Email confirmation",
|
|
795
|
+
"checking": "One moment while we validate the link...",
|
|
796
|
+
"invalidTitle": "Invalid link",
|
|
797
|
+
"invalidDescription": "This confirmation link is invalid or has expired. Your account is still active — just sign in normally.",
|
|
798
|
+
"successTitle": "Email confirmed",
|
|
799
|
+
"successDescription": "All set! Your email address has been confirmed.",
|
|
800
|
+
"alreadyConfirmedDescription": "Your email was already confirmed. There is nothing else to do.",
|
|
801
|
+
"goToLogin": "Go to sign in"
|
|
802
|
+
},
|
|
751
803
|
"NavUser": {
|
|
752
804
|
"account": "Account",
|
|
753
805
|
"notifications": "Notifications",
|
|
@@ -994,7 +1046,38 @@
|
|
|
994
1046
|
"revokeSuccess": "Session revoked successfully!",
|
|
995
1047
|
"revokeFailure": "Failed to revoke session",
|
|
996
1048
|
"revokeAllSuccess": "Sessions revoked successfully!",
|
|
997
|
-
"revokeAllFailure": "Failed to revoke sessions"
|
|
1049
|
+
"revokeAllFailure": "Failed to revoke sessions",
|
|
1050
|
+
"simulatedBy": "Simulated by {name}"
|
|
1051
|
+
},
|
|
1052
|
+
"UserMails": {
|
|
1053
|
+
"title": "Sent emails",
|
|
1054
|
+
"searchPlaceholder": "Search by subject...",
|
|
1055
|
+
"filterByStatus": "Status",
|
|
1056
|
+
"statusAll": "All statuses",
|
|
1057
|
+
"statusReceived": "Received",
|
|
1058
|
+
"statusRead": "Read",
|
|
1059
|
+
"statusError": "Error",
|
|
1060
|
+
"statusUntracked": "Not tracked",
|
|
1061
|
+
"status_received": "Received",
|
|
1062
|
+
"status_read": "Read",
|
|
1063
|
+
"status_error": "Error",
|
|
1064
|
+
"kpiTotal": "Total sent",
|
|
1065
|
+
"kpiRead": "Read",
|
|
1066
|
+
"kpiError": "With error",
|
|
1067
|
+
"emptyTitle": "No emails sent",
|
|
1068
|
+
"emptyDescription": "The system has not sent any email to this user yet.",
|
|
1069
|
+
"detailsTitle": "Email details",
|
|
1070
|
+
"detailsDescription": "Content and delivery status of the sent email.",
|
|
1071
|
+
"subject": "Subject",
|
|
1072
|
+
"from": "From",
|
|
1073
|
+
"to": "To",
|
|
1074
|
+
"cc": "Cc",
|
|
1075
|
+
"bcc": "Bcc",
|
|
1076
|
+
"body": "Body",
|
|
1077
|
+
"delivery": "Delivery",
|
|
1078
|
+
"createdAt": "Sent at",
|
|
1079
|
+
"readAt": "Read at",
|
|
1080
|
+
"errorMessage": "Error"
|
|
998
1081
|
},
|
|
999
1082
|
"UserChangeLog": {
|
|
1000
1083
|
"title": "Change History",
|
|
@@ -1006,7 +1089,10 @@
|
|
|
1006
1089
|
"role_removed": "Role removed",
|
|
1007
1090
|
"avatar_changed": "Avatar changed",
|
|
1008
1091
|
"emptyTitle": "No changes recorded",
|
|
1009
|
-
"emptyDescription": "Administrative changes made to this user will appear here."
|
|
1092
|
+
"emptyDescription": "Administrative changes made to this user will appear here.",
|
|
1093
|
+
"impersonation_requested": "Access simulation requested",
|
|
1094
|
+
"impersonation_started": "Access simulation started",
|
|
1095
|
+
"impersonation_ended": "Access simulation ended"
|
|
1010
1096
|
},
|
|
1011
1097
|
"UserActiveSessions": {
|
|
1012
1098
|
"title": "Active Sessions",
|
|
@@ -1023,7 +1109,9 @@
|
|
|
1023
1109
|
"revokeSuccess": "Session successfully revoked!",
|
|
1024
1110
|
"revokeFailure": "Failed to revoke session",
|
|
1025
1111
|
"revokeAllSuccess": "Sessions successfully revoked!",
|
|
1026
|
-
"revokeAllFailure": "Failed to revoke sessions"
|
|
1112
|
+
"revokeAllFailure": "Failed to revoke sessions",
|
|
1113
|
+
"simulatedSession": "Simulated access",
|
|
1114
|
+
"simulatedBy": "Simulated by {name}"
|
|
1027
1115
|
},
|
|
1028
1116
|
"UserIdentifiers": {
|
|
1029
1117
|
"title": "User Identifiers",
|
|
@@ -1106,6 +1194,8 @@
|
|
|
1106
1194
|
"descriptionRemove": "Enter your verification code to confirm removal",
|
|
1107
1195
|
"descriptionSetup": "Follow the instructions to setup two-factor authentication",
|
|
1108
1196
|
"scanQrCode": "Scan this QR code with your authenticator app",
|
|
1197
|
+
"manualCodeHint": "Can't scan it? Type this code into the authenticator app:",
|
|
1198
|
+
"manualCodeCopy": "Copy code",
|
|
1109
1199
|
"methodNameLabel": "Method Name",
|
|
1110
1200
|
"methodNamePlaceholder": "e.g., {methodLabel} {example}",
|
|
1111
1201
|
"securityKeyNameLabel": "Security Key Name",
|
|
@@ -1222,6 +1312,7 @@
|
|
|
1222
1312
|
"to": "To",
|
|
1223
1313
|
"cc": "CC",
|
|
1224
1314
|
"bcc": "BCC",
|
|
1315
|
+
"providerMessageId": "Provider message ID",
|
|
1225
1316
|
"body": "Body",
|
|
1226
1317
|
"createdAt": "Created At",
|
|
1227
1318
|
"updatedAt": "Updated At",
|
|
@@ -1241,6 +1332,20 @@
|
|
|
1241
1332
|
"statusRead": "Read",
|
|
1242
1333
|
"statusError": "Error",
|
|
1243
1334
|
"statusUnavailable": "No status",
|
|
1335
|
+
"filterByDelivery": "Delivery",
|
|
1336
|
+
"deliveryAll": "Any delivery outcome",
|
|
1337
|
+
"deliveryPending": "No answer yet",
|
|
1338
|
+
"deliveryPendingHint": "The provider accepted the message and has not reported the outcome yet.",
|
|
1339
|
+
"deliveryDelivered": "Delivered",
|
|
1340
|
+
"deliveryBounced": "Bounced",
|
|
1341
|
+
"deliveryComplained": "Marked as spam",
|
|
1342
|
+
"deliveryRejected": "Rejected",
|
|
1343
|
+
"undeliveredCurrentPage": "Not delivered (page)",
|
|
1344
|
+
"undeliveredHint": "Accepted by the provider and returned afterwards",
|
|
1345
|
+
"providerEvents": "Provider delivery events",
|
|
1346
|
+
"noProviderEvents": "The provider has not reported anything about this message yet.",
|
|
1347
|
+
"allRecipients": "All recipients",
|
|
1348
|
+
"reportingMta": "Reported by",
|
|
1244
1349
|
"statusReceivedShort": "Received: {count}",
|
|
1245
1350
|
"statusReadShort": "Read: {count}",
|
|
1246
1351
|
"statusErrorShort": "Errors: {count}",
|
|
@@ -1292,7 +1397,7 @@
|
|
|
1292
1397
|
"fileUploaded": "File uploaded successfully.",
|
|
1293
1398
|
"fileUploadFailed": "Failed to upload file.",
|
|
1294
1399
|
"fileIdNotReturned": "File ID not returned.",
|
|
1295
|
-
"
|
|
1400
|
+
"apiBaseUrlNotConfigured": "API base URL is not configured.",
|
|
1296
1401
|
"uploadedFileAlt": "Uploaded file",
|
|
1297
1402
|
"fileUrlPlaceholder": "File URL",
|
|
1298
1403
|
"durationUnitSeconds": "Seconds",
|
|
@@ -1316,49 +1421,33 @@
|
|
|
1316
1421
|
"oauthProfileEmptyState": "No OAuth profiles found.",
|
|
1317
1422
|
"selectPaymentProfile": "Select a payment profile",
|
|
1318
1423
|
"paymentProfileEmptyState": "No payment profiles found.",
|
|
1319
|
-
"
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
"
|
|
1326
|
-
"
|
|
1327
|
-
"
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
"
|
|
1331
|
-
"
|
|
1332
|
-
"
|
|
1333
|
-
"
|
|
1334
|
-
"smtpUsernameLabel": "SMTP Username *",
|
|
1335
|
-
"smtpUsernamePlaceholder": "user@example.com",
|
|
1336
|
-
"smtpPasswordLabel": "SMTP Password *",
|
|
1337
|
-
"replyToEmailLabel": "Reply-to email",
|
|
1338
|
-
"replyToEmailPlaceholder": "support@company.com",
|
|
1339
|
-
"clientIdLabel": "Client ID *",
|
|
1340
|
-
"clientSecretLabel": "Client Secret *",
|
|
1341
|
-
"refreshTokenLabel": "Refresh Token *",
|
|
1342
|
-
"accessKeyIdLabel": "Access Key ID *",
|
|
1343
|
-
"secretAccessKeyLabel": "Secret Access Key *",
|
|
1344
|
-
"regionLabel": "Region *",
|
|
1345
|
-
"regionPlaceholder": "us-east-1"
|
|
1346
|
-
},
|
|
1347
|
-
"whatsappProfile": {
|
|
1348
|
-
"nameLabel": "Name *",
|
|
1349
|
-
"namePlaceholder": "My WhatsApp Profile",
|
|
1350
|
-
"providerLabel": "Provider *",
|
|
1351
|
-
"hostLabel": "API Host *",
|
|
1352
|
-
"hostPlaceholder": "https://api.example.com",
|
|
1353
|
-
"instanceNameLabel": "Instance Name *",
|
|
1354
|
-
"instanceNamePlaceholder": "MyInstance",
|
|
1355
|
-
"tokenLabel": "Token *",
|
|
1356
|
-
"tokenPlaceholder": "Authentication token"
|
|
1424
|
+
"whatsappProfileEmptyState": "No WhatsApp profiles found.",
|
|
1425
|
+
"selectIntegrationProfile": "Select an integration profile",
|
|
1426
|
+
"integrationProfileEmptyState": "No integration profiles found.",
|
|
1427
|
+
"editProfileAria": "Edit {profile}",
|
|
1428
|
+
"createProfileAria": "Create {profile}",
|
|
1429
|
+
"profileTypeNames": {
|
|
1430
|
+
"ai": "AI profile",
|
|
1431
|
+
"email": "email profile",
|
|
1432
|
+
"whatsapp": "WhatsApp profile",
|
|
1433
|
+
"storage": "storage profile",
|
|
1434
|
+
"oauth": "OAuth profile",
|
|
1435
|
+
"payment": "payment profile",
|
|
1436
|
+
"infrastructure": "infrastructure profile",
|
|
1437
|
+
"kubernetes": "Kubernetes profile",
|
|
1438
|
+
"generic": "integration profile"
|
|
1357
1439
|
},
|
|
1358
1440
|
"selectInfraProfile": "Select infrastructure profile",
|
|
1359
1441
|
"infraProfileEmptyState": "No infrastructure profiles found. Create a DigitalOcean or Kubernetes profile first.",
|
|
1360
1442
|
"selectK8sInfraProfile": "Select Kubernetes profile",
|
|
1361
|
-
"k8sInfraProfileEmptyState": "No Kubernetes infrastructure profiles found. Create one first."
|
|
1443
|
+
"k8sInfraProfileEmptyState": "No Kubernetes infrastructure profiles found. Create one first.",
|
|
1444
|
+
"openLink": "Open",
|
|
1445
|
+
"settingOptions": {
|
|
1446
|
+
"commerce-android-checkout-mode": {
|
|
1447
|
+
"web": "Website checkout",
|
|
1448
|
+
"play_billing": "Google Play Billing (in-app purchase)"
|
|
1449
|
+
}
|
|
1450
|
+
}
|
|
1362
1451
|
},
|
|
1363
1452
|
"AddWidgetDialog": {
|
|
1364
1453
|
"title": "Select Dashboard Components",
|
|
@@ -1739,7 +1828,13 @@
|
|
|
1739
1828
|
"decreaseZoom": "Decrease zoom",
|
|
1740
1829
|
"resetZoom": "Reset zoom",
|
|
1741
1830
|
"increaseZoom": "Increase zoom",
|
|
1742
|
-
"saveAndClose": "Save and Close"
|
|
1831
|
+
"saveAndClose": "Save and Close",
|
|
1832
|
+
"aiEdit": "Edit with AI",
|
|
1833
|
+
"aiEditPromptLabel": "What do you want to change?",
|
|
1834
|
+
"aiEditPromptPlaceholder": "e.g., make the tone more formal and add a bullet list of next steps",
|
|
1835
|
+
"aiEditSubmit": "Generate",
|
|
1836
|
+
"aiEditSuccess": "Content updated by AI",
|
|
1837
|
+
"aiEditError": "Could not update the content with AI"
|
|
1743
1838
|
},
|
|
1744
1839
|
"DashboardManagement": {
|
|
1745
1840
|
"title": "Dashboard Management",
|
|
@@ -2331,7 +2426,14 @@
|
|
|
2331
2426
|
"detailsDescription": "Full details of this access log entry",
|
|
2332
2427
|
"os": "Operating System",
|
|
2333
2428
|
"location": "Location",
|
|
2334
|
-
"rawUserAgent": "User Agent"
|
|
2429
|
+
"rawUserAgent": "User Agent",
|
|
2430
|
+
"simulated": "Simulated",
|
|
2431
|
+
"simulatedBy": "Simulated by {name}",
|
|
2432
|
+
"simulatedAccess": "Simulated access",
|
|
2433
|
+
"filterBySimulated": "Simulation",
|
|
2434
|
+
"simulatedAll": "All accesses",
|
|
2435
|
+
"simulatedOnly": "Simulated only",
|
|
2436
|
+
"simulatedExclude": "Exclude simulated"
|
|
2335
2437
|
},
|
|
2336
2438
|
"IntegrationProfilePage": {
|
|
2337
2439
|
"breadcrumbHome": "Home",
|
|
@@ -2393,15 +2495,30 @@
|
|
|
2393
2495
|
"tableSlug": "Slug",
|
|
2394
2496
|
"tableProvider": "Provider",
|
|
2395
2497
|
"tableStatus": "Status",
|
|
2498
|
+
"tableValidation": "Validation",
|
|
2396
2499
|
"tableUses": "Uses",
|
|
2397
2500
|
"tableUpdated": "Updated",
|
|
2398
2501
|
"tableActions": "Actions",
|
|
2399
2502
|
"statusActive": "Active",
|
|
2400
2503
|
"statusInactive": "Inactive",
|
|
2504
|
+
"validationOk": "Validated",
|
|
2505
|
+
"validationError": "Failed",
|
|
2506
|
+
"validationNever": "Never tested",
|
|
2507
|
+
"validationTooltipAt": "Last tested on {date}",
|
|
2401
2508
|
"noProfilesFound": "No profiles found",
|
|
2402
2509
|
"noProfilesHint": "Create a new profile to store connection credentials.",
|
|
2403
2510
|
"createProfile": "Create Profile",
|
|
2404
2511
|
"saveChanges": "Save Changes",
|
|
2512
|
+
"testConnection": "Test connection",
|
|
2513
|
+
"testing": "Testing...",
|
|
2514
|
+
"testConnectionRunning": "Testing connection...",
|
|
2515
|
+
"testConnectionSuccess": "Connection validated successfully.",
|
|
2516
|
+
"testConnectionOkWithInfo": "Connection validated: {info}",
|
|
2517
|
+
"testConnectionWarning": "Credentials are valid, but: {warning}",
|
|
2518
|
+
"testConnectionError": "Connection test failed.",
|
|
2519
|
+
"testConnectionErrorFallback": "Could not validate the credentials.",
|
|
2520
|
+
"testConnectionNotPersisted": "Save the profile to record the result.",
|
|
2521
|
+
"loadingProfile": "Loading profile...",
|
|
2405
2522
|
"cancel": "Cancel",
|
|
2406
2523
|
"delete": "Delete",
|
|
2407
2524
|
"deleteConfirmTitle": "Confirm Deletion",
|
|
@@ -2421,6 +2538,8 @@
|
|
|
2421
2538
|
"fieldFromEmail": "From Email",
|
|
2422
2539
|
"fieldFromName": "From Name",
|
|
2423
2540
|
"fieldReplyTo": "Reply-To Email",
|
|
2541
|
+
"fieldReplyToName": "Reply-To Name",
|
|
2542
|
+
"fieldSnsTopicArn": "SNS Topic ARN (delivery tracking)",
|
|
2424
2543
|
"fieldClientId": "Client ID",
|
|
2425
2544
|
"fieldClientSecret": "Client Secret",
|
|
2426
2545
|
"fieldRefreshToken": "Refresh Token",
|
|
@@ -2428,6 +2547,7 @@
|
|
|
2428
2547
|
"fieldSecretAccessKey": "Secret Access Key",
|
|
2429
2548
|
"fieldRegion": "Region",
|
|
2430
2549
|
"fieldDomain": "Domain",
|
|
2550
|
+
"fieldImapSecure": "Direct TLS (port 993)",
|
|
2431
2551
|
"fieldToken": "Token",
|
|
2432
2552
|
"fieldInstanceName": "Instance Name",
|
|
2433
2553
|
"fieldPhoneNumberId": "Phone Number ID",
|
|
@@ -2441,6 +2561,13 @@
|
|
|
2441
2561
|
"fieldEnvironmentTest": "Test",
|
|
2442
2562
|
"fieldEnvironmentProduction": "Production",
|
|
2443
2563
|
"copiedToClipboard": "Copied to clipboard",
|
|
2564
|
+
"sesWebhookSectionTitle": "Delivery tracking (SNS)",
|
|
2565
|
+
"sesWebhookDescription": "Without this subscription the Hub only knows the provider accepted the message, not whether it was delivered.",
|
|
2566
|
+
"sesWebhookEndpointLabel": "Endpoint URL",
|
|
2567
|
+
"sesWebhookStep1": "Create an SNS topic in the same region as this SES profile.",
|
|
2568
|
+
"sesWebhookStep2": "Add an HTTPS subscription to the topic using the URL above. It is confirmed automatically.",
|
|
2569
|
+
"sesWebhookStep3": "In SES, open the sending identity and point Bounce, Complaint and Delivery notifications to that topic.",
|
|
2570
|
+
"sesWebhookStep4": "Paste the topic ARN in the field above so events from other topics are rejected.",
|
|
2444
2571
|
"whatsappWebhookSectionTitle": "Meta Webhook",
|
|
2445
2572
|
"whatsappWebhookDescription": "Register this webhook in your Meta app to receive WhatsApp messages.",
|
|
2446
2573
|
"whatsappWebhookCallbackUrlLabel": "Callback URL",
|
|
@@ -2454,6 +2581,49 @@
|
|
|
2454
2581
|
"whatsappWebhookStep2": "Click \"Verify and save\".",
|
|
2455
2582
|
"whatsappWebhookStep3": "Subscribe to the \"messages\" field.",
|
|
2456
2583
|
"whatsappWebhookStep4": "Send a test message and confirm it arrives.",
|
|
2584
|
+
"microsoftWebhookSectionTitle": "Microsoft Graph webhook",
|
|
2585
|
+
"microsoftWebhookDescription": "A single URL that receives all Microsoft Graph events (ended meetings/calls, recordings, transcripts, presence, messages and Entra users). Registered automatically in the webhooks list.",
|
|
2586
|
+
"microsoftWebhookUrlLabel": "Webhook URL (notificationUrl)",
|
|
2587
|
+
"microsoftWebhookLoading": "Generating URL…",
|
|
2588
|
+
"microsoftWebhookUnavailable": "URL unavailable — check the API base URL setting (api-url must be a public HTTPS URL).",
|
|
2589
|
+
"microsoftWebhookSaveFirst": "Save the profile to generate the webhook URL.",
|
|
2590
|
+
"microsoftSyncButton": "Sync subscriptions",
|
|
2591
|
+
"microsoftSyncing": "Syncing…",
|
|
2592
|
+
"microsoftSyncResult": "Subscriptions synced: {created} created, {reused} kept, {failed} failed.",
|
|
2593
|
+
"microsoftSyncError": "Failed to sync subscriptions.",
|
|
2594
|
+
"microsoftStepsTitle": "In the Azure portal (Microsoft Entra ID → App registrations):",
|
|
2595
|
+
"microsoftStep1": "Register an app (or use the existing one) and copy the application (client) id and directory (tenant) id into the fields above.",
|
|
2596
|
+
"microsoftStep2": "Under \"Certificates & secrets\", create a client secret and paste it above.",
|
|
2597
|
+
"microsoftStep3": "Under \"Authentication\", add the OAuth redirect URI (callbacks tab) so sign-in works.",
|
|
2598
|
+
"microsoftStep4": "Under \"API permissions\", grant the permissions below and click \"Grant admin consent\".",
|
|
2599
|
+
"microsoftStep5": "Save the profile, copy the webhook URL above and click \"Sync subscriptions\".",
|
|
2600
|
+
"microsoftPermissionsTitle": "Microsoft Graph permissions",
|
|
2601
|
+
"microsoftPermissionsApplication": "Application (admin consent)",
|
|
2602
|
+
"microsoftPermissionsDelegated": "Delegated (per user)",
|
|
2603
|
+
"microsoftProtectedSuffix": "(protected API — requires an approved request to Microsoft)",
|
|
2604
|
+
"microsoftNotes": "App-only meetings/transcripts require an Application Access Policy created via PowerShell (New-CsApplicationAccessPolicy). Org-wide chat message subscriptions only work after Microsoft approves protected-API access.",
|
|
2605
|
+
"paymentWebhookSectionTitle": "Payment gateway webhook",
|
|
2606
|
+
"paymentWebhookDescription": "Register this URL in your payment provider so it notifies HedHog of payments, refunds and subscription changes.",
|
|
2607
|
+
"paymentWebhookUrlLabel": "Webhook URL",
|
|
2608
|
+
"paymentWebhookLoading": "Generating URL…",
|
|
2609
|
+
"paymentWebhookUnavailable": "URL unavailable — check the API base URL setting.",
|
|
2610
|
+
"paymentWebhookSaveFirst": "Save the profile to generate the webhook URL.",
|
|
2611
|
+
"paymentWebhookBaseUrlMissing": "URL unavailable — set a public HTTPS API URL (the api-url setting) so the webhook can be registered in the gateway.",
|
|
2612
|
+
"paymentWebhookStepsTitle": "In your payment provider dashboard:",
|
|
2613
|
+
"paymentStripeStep1": "Open Developers → Webhooks and click \"Add endpoint\".",
|
|
2614
|
+
"paymentStripeStep2": "Paste the Webhook URL above as the endpoint URL.",
|
|
2615
|
+
"paymentStripeStep3": "Select the events to send (payment_intent, charge, checkout.session, invoice, customer.subscription).",
|
|
2616
|
+
"paymentStripeStep4": "Copy the endpoint's \"Signing secret\" and paste it into the Webhook Secret field above.",
|
|
2617
|
+
"paymentMercadoPagoStep1": "Open Your integrations → your application → Webhooks / Notifications.",
|
|
2618
|
+
"paymentMercadoPagoStep2": "Paste the Webhook URL above and select the payment and subscription events.",
|
|
2619
|
+
"paymentMercadoPagoStep3": "Save to generate the secret key used for signature validation.",
|
|
2620
|
+
"paymentMercadoPagoStep4": "Copy that secret and paste it into the Webhook Secret field above.",
|
|
2621
|
+
"paymentGooglePlayStep1": "In Google Play Console, open Monetization setup and set the Pub/Sub topic for real-time developer notifications (RTDN).",
|
|
2622
|
+
"paymentGooglePlayStep2": "Create a Pub/Sub push subscription pointing to the Webhook URL above.",
|
|
2623
|
+
"paymentGooglePlayStep3": "Grant the Play publisher service account permission to publish to the topic.",
|
|
2624
|
+
"paymentGooglePlayStep4": "Send a test notification and confirm it arrives.",
|
|
2625
|
+
"paymentWebhookSecretRequiredNote": "In production mode, set the Webhook Secret from the provider — without it, production webhooks are rejected (unsigned requests are not processed).",
|
|
2626
|
+
"paymentGooglePlayNote": "Google Play RTDN is authenticated by Pub/Sub (OIDC push); there is no webhook secret to configure. The subscription state is always re-fetched from the Play Developer API.",
|
|
2457
2627
|
"fieldBasePath": "Base Path",
|
|
2458
2628
|
"fieldBucket": "Bucket",
|
|
2459
2629
|
"fieldProjectId": "Project ID",
|
|
@@ -2464,6 +2634,7 @@
|
|
|
2464
2634
|
"fieldContainer": "Container",
|
|
2465
2635
|
"fieldEndpoint": "Endpoint URL",
|
|
2466
2636
|
"fieldApiKey": "API Key",
|
|
2637
|
+
"fieldModel": "Model",
|
|
2467
2638
|
"fieldOrganization": "Organization ID",
|
|
2468
2639
|
"fieldRedirectUri": "Redirect URI",
|
|
2469
2640
|
"fieldTenantId": "Tenant ID",
|
|
@@ -2481,6 +2652,13 @@
|
|
|
2481
2652
|
"fieldHmacKey": "HMAC Key",
|
|
2482
2653
|
"fieldScoreThreshold": "Score Threshold",
|
|
2483
2654
|
"fieldApiUrl": "API URL",
|
|
2655
|
+
"fieldPackageName": "Android Package Name",
|
|
2656
|
+
"fieldServiceAccountJson": "Service Account JSON",
|
|
2657
|
+
"fieldServiceAccountPrivateKey": "Service Account Private Key (PEM)",
|
|
2658
|
+
"fieldClientEmail": "Service Account Email",
|
|
2659
|
+
"fieldSessionToken": "Session Token (STS)",
|
|
2660
|
+
"fieldRoleArn": "Role ARN",
|
|
2661
|
+
"fieldExternalId": "External ID",
|
|
2484
2662
|
"callbackUrlsSectionTitle": "Callback URLs",
|
|
2485
2663
|
"callbackUrlsDescription": "Register these URLs in your OAuth application settings.",
|
|
2486
2664
|
"addCallbackUrl": "Add URL",
|
|
@@ -2535,6 +2713,422 @@
|
|
|
2535
2713
|
"fieldTimeoutMs": "Timeout (ms)",
|
|
2536
2714
|
"fieldMaxRetries": "Max retries",
|
|
2537
2715
|
"fileStored": "A file is stored and encrypted. Click to replace it.",
|
|
2538
|
-
"fileSelected": "New file selected. It will be encrypted on save."
|
|
2716
|
+
"fileSelected": "New file selected. It will be encrypted on save.",
|
|
2717
|
+
"fieldRtdnServiceAccount": "Notifications Service Account (RTDN)",
|
|
2718
|
+
"fieldRtdnAudience": "Notifications Audience (RTDN)"
|
|
2719
|
+
},
|
|
2720
|
+
"SystemPagesPage": {
|
|
2721
|
+
"title": "Pages",
|
|
2722
|
+
"description": "Catalog of the admin pages, with menu, permissions and endpoints for each one.",
|
|
2723
|
+
"breadcrumbHome": "Home",
|
|
2724
|
+
"breadcrumbManagement": "Management",
|
|
2725
|
+
"newPage": "New page",
|
|
2726
|
+
"statsTotal": "Pages",
|
|
2727
|
+
"statsLibraries": "Libraries",
|
|
2728
|
+
"statsResidue": "Likely residue",
|
|
2729
|
+
"statsWithoutI18n": "Without translation",
|
|
2730
|
+
"searchPlaceholder": "Search by route, file or library",
|
|
2731
|
+
"filterByLibrary": "Library",
|
|
2732
|
+
"allLibraries": "All libraries",
|
|
2733
|
+
"filterByMenuStatus": "Menu link",
|
|
2734
|
+
"allMenuStatuses": "All links",
|
|
2735
|
+
"menuStatusLinked": "With menu",
|
|
2736
|
+
"menuStatusOrphan": "Without menu",
|
|
2737
|
+
"menuStatusResidue": "Likely residue",
|
|
2738
|
+
"viewMode": "View",
|
|
2739
|
+
"viewModeTable": "Table",
|
|
2740
|
+
"viewModeCards": "Cards",
|
|
2741
|
+
"emptyStateTitle": "No page found",
|
|
2742
|
+
"emptyStateDescription": "Adjust the search or the filters to see other pages.",
|
|
2743
|
+
"emptyStateLoading": "Loading menus and permissions...",
|
|
2744
|
+
"columnRoute": "Route",
|
|
2745
|
+
"columnLibrary": "Library",
|
|
2746
|
+
"columnTemplate": "Template",
|
|
2747
|
+
"columnMenu": "Menu",
|
|
2748
|
+
"columnRoles": "Roles",
|
|
2749
|
+
"columnReferences": "References",
|
|
2750
|
+
"columnEndpoints": "Endpoints",
|
|
2751
|
+
"orphanBadge": "No menu",
|
|
2752
|
+
"residueBadge": "Residue",
|
|
2753
|
+
"cardEndpoints": "{count} endpoints",
|
|
2754
|
+
"cardLoc": "{count} lines",
|
|
2755
|
+
"template_list-kpi": "List with KPIs",
|
|
2756
|
+
"template_list-simple": "Simple list",
|
|
2757
|
+
"template_detail-form": "Detail / form",
|
|
2758
|
+
"template_dashboard": "Dashboard",
|
|
2759
|
+
"template_custom": "Custom",
|
|
2760
|
+
"tabOverview": "Overview",
|
|
2761
|
+
"tabMenu": "Menu",
|
|
2762
|
+
"tabPermissions": "Permissions",
|
|
2763
|
+
"tabFiles": "Files",
|
|
2764
|
+
"fieldRoute": "Route",
|
|
2765
|
+
"fieldLibrary": "Library",
|
|
2766
|
+
"fieldTemplate": "Template",
|
|
2767
|
+
"fieldLoc": "Lines",
|
|
2768
|
+
"fieldFile": "File",
|
|
2769
|
+
"fieldNamespaces": "Translation namespaces",
|
|
2770
|
+
"noNamespaces": "No namespace detected",
|
|
2771
|
+
"fieldFeatures": "Detected components",
|
|
2772
|
+
"fieldReferencedBy": "Referenced by",
|
|
2773
|
+
"noReferences": "No code file navigates to this page",
|
|
2774
|
+
"feature_pageHeader": "PageHeader",
|
|
2775
|
+
"feature_kpis": "KPIs",
|
|
2776
|
+
"feature_searchBar": "Search",
|
|
2777
|
+
"feature_pagination": "Pagination",
|
|
2778
|
+
"feature_viewModeToggle": "Table/cards",
|
|
2779
|
+
"feature_formSheet": "Form sheet",
|
|
2780
|
+
"feature_dataTable": "Data table",
|
|
2781
|
+
"feature_widgets": "Widgets",
|
|
2782
|
+
"menuName": "Menu name",
|
|
2783
|
+
"menuSlug": "Slug",
|
|
2784
|
+
"menuUrl": "URL",
|
|
2785
|
+
"menuIcon": "Icon",
|
|
2786
|
+
"menuParent": "Parent menu",
|
|
2787
|
+
"menuRoot": "Root menu",
|
|
2788
|
+
"menuOrder": "Order",
|
|
2789
|
+
"openMenuManager": "Open menu manager",
|
|
2790
|
+
"orphanTitle": "Page without a linked menu",
|
|
2791
|
+
"orphanDescription": "No menu points to {route}. The page exists in the code but is only reachable by direct link.",
|
|
2792
|
+
"menuRolesTitle": "Roles with menu access",
|
|
2793
|
+
"menuRolesDescription": "Roles that see this item in the sidebar.",
|
|
2794
|
+
"noRoles": "No role",
|
|
2795
|
+
"endpointsTitle": "Consumed endpoints",
|
|
2796
|
+
"endpointsDescription": "Inferred from the page and its components; double-check before treating it as the source of truth.",
|
|
2797
|
+
"noEndpoints": "No endpoint detected",
|
|
2798
|
+
"columnMethod": "Method",
|
|
2799
|
+
"columnEndpoint": "Endpoint",
|
|
2800
|
+
"columnEndpointRoles": "Roles",
|
|
2801
|
+
"endpointNotRegistered": "Not registered in routes",
|
|
2802
|
+
"noComponents": "No dedicated components",
|
|
2803
|
+
"filesHint": "Paths relative to the monorepo root.",
|
|
2804
|
+
"deletePage": "Delete page",
|
|
2805
|
+
"deleteHintResidue": "No menu and no code references — likely residue.",
|
|
2806
|
+
"deleteHintReferenced": "{count} file(s) navigate to this page.",
|
|
2807
|
+
"deleteTitle": "Delete page",
|
|
2808
|
+
"deleteConfirmLabel": "Type the exact route to confirm",
|
|
2809
|
+
"deleteConfirm": "Delete from disk",
|
|
2810
|
+
"deleteClose": "Close",
|
|
2811
|
+
"deletePreviewLoading": "Computing what will be removed...",
|
|
2812
|
+
"deletePreviewError": "Could not compute the deletion.",
|
|
2813
|
+
"deleteError": "Could not delete the page.",
|
|
2814
|
+
"deleteMenuError": "Files removed, but the menu was not deleted from the database.",
|
|
2815
|
+
"deleteSuccess": "Page deleted.",
|
|
2816
|
+
"deleteReferencedTitle": "This page is referenced in the code",
|
|
2817
|
+
"deleteReferencedDescription": "{count} file(s) navigate to this route and may break. Review before deleting.",
|
|
2818
|
+
"deleteMenuChildrenTitle": "Menu with submenus",
|
|
2819
|
+
"deleteMenuChildrenDescription": "The menu has child items and will not be removed from the database — only the files will be deleted. Adjust the menu manually under Menus.",
|
|
2820
|
+
"deleteCategory_page": "Page files",
|
|
2821
|
+
"deleteCategory_mirror": "Library mirror",
|
|
2822
|
+
"deleteCategory_i18n": "Translations",
|
|
2823
|
+
"deleteCategory_menu": "Menu (YAML)",
|
|
2824
|
+
"deleteCategory_migration": "Migration",
|
|
2825
|
+
"deleteAction_delete": "delete",
|
|
2826
|
+
"deleteAction_rewrite": "rewrite",
|
|
2827
|
+
"deleteAction_create": "create",
|
|
2828
|
+
"deleteDoneTitle": "Page deleted",
|
|
2829
|
+
"deleteDoneDescription": "The files were removed. Git is the safety net: git checkout / git clean undoes everything.",
|
|
2830
|
+
"deleteDoneSteps": "Next steps"
|
|
2831
|
+
},
|
|
2832
|
+
"PageWizard": {
|
|
2833
|
+
"title": "New page",
|
|
2834
|
+
"description": "Generates the page, translations, menu and library CRUD following the repository standard. Development only.",
|
|
2835
|
+
"steps": {
|
|
2836
|
+
"target": "Target",
|
|
2837
|
+
"template": "Template",
|
|
2838
|
+
"columns": "Data model",
|
|
2839
|
+
"backend": "Backend",
|
|
2840
|
+
"menu": "Menu and roles",
|
|
2841
|
+
"review": "Review"
|
|
2842
|
+
},
|
|
2843
|
+
"fieldLibrary": "Library",
|
|
2844
|
+
"fieldLibraryPlaceholder": "Select the library",
|
|
2845
|
+
"fieldEntity": "Entity",
|
|
2846
|
+
"fieldEntityHint": "Singular snake_case. Also the table name.",
|
|
2847
|
+
"fieldRoute": "Page route",
|
|
2848
|
+
"fieldApiBasePath": "API prefix",
|
|
2849
|
+
"fieldLabelPt": "Title (pt)",
|
|
2850
|
+
"fieldLabelEn": "Title (en)",
|
|
2851
|
+
"fieldDescriptionPt": "Description (pt)",
|
|
2852
|
+
"fieldDescriptionEn": "Description (en)",
|
|
2853
|
+
"template_list-kpi": "List with KPIs",
|
|
2854
|
+
"template_list-simple": "Simple list",
|
|
2855
|
+
"template_detail-form": "Detail / form",
|
|
2856
|
+
"template_dashboard": "Dashboard",
|
|
2857
|
+
"templateHint_list-kpi": "PageHeader, KPIs, search with filters, table/cards, pagination and form sheet.",
|
|
2858
|
+
"templateHint_list-simple": "Same listing without the KPI row. For auxiliary lookups.",
|
|
2859
|
+
"templateHint_detail-form": "Single form, settings-like: loads with GET and saves with PATCH.",
|
|
2860
|
+
"templateHint_dashboard": "Panel with KPIs and a widget area, without a paginated list.",
|
|
2861
|
+
"columnsHint": "User-facing text must use locale_varchar/locale_text so the translation table is generated.",
|
|
2862
|
+
"columnName": "Column",
|
|
2863
|
+
"columnLabelPt": "Label (pt)",
|
|
2864
|
+
"columnLabelEn": "Label (en)",
|
|
2865
|
+
"columnEnumValues": "Comma-separated values",
|
|
2866
|
+
"columnReferences": "Referenced table",
|
|
2867
|
+
"columnNullable": "Nullable",
|
|
2868
|
+
"columnInList": "In the list",
|
|
2869
|
+
"columnInFilters": "As a filter",
|
|
2870
|
+
"addColumn": "Add column",
|
|
2871
|
+
"generateBackend": "Generate backend",
|
|
2872
|
+
"generateBackendHint": "Creates table YAML, migration, DTO, service, controller and NestJS module.",
|
|
2873
|
+
"menuParent": "Parent menu",
|
|
2874
|
+
"menuRoot": "Root menu",
|
|
2875
|
+
"menuIcon": "Icon",
|
|
2876
|
+
"menuOrder": "Order",
|
|
2877
|
+
"rolesTitle": "Roles with access",
|
|
2878
|
+
"rolesHint": "The admin role is always included.",
|
|
2879
|
+
"issuesTitle": "Fix before generating",
|
|
2880
|
+
"conflictsTitle": "Files already exist",
|
|
2881
|
+
"overwrite": "Overwrite the existing files",
|
|
2882
|
+
"previewLoading": "Building preview...",
|
|
2883
|
+
"previewError": "Could not build the preview.",
|
|
2884
|
+
"applyError": "Could not write the files.",
|
|
2885
|
+
"applySuccess": "{count} files written.",
|
|
2886
|
+
"action_create": "create",
|
|
2887
|
+
"action_merge": "append",
|
|
2888
|
+
"action_patch": "patch",
|
|
2889
|
+
"action_manual": "manual",
|
|
2890
|
+
"back": "Back",
|
|
2891
|
+
"next": "Next",
|
|
2892
|
+
"refreshPreview": "Refresh preview",
|
|
2893
|
+
"generate": "Generate files",
|
|
2894
|
+
"close": "Close",
|
|
2895
|
+
"doneTitle": "Files generated",
|
|
2896
|
+
"doneDescription": "{count} files were written to the repository.",
|
|
2897
|
+
"doneFiles": "Files",
|
|
2898
|
+
"doneSteps": "Next steps",
|
|
2899
|
+
"doneStepsHint": "The wizard does not run commands. Review the generated migration before applying it."
|
|
2900
|
+
},
|
|
2901
|
+
"Incidents": {
|
|
2902
|
+
"breadcrumbHome": "Home",
|
|
2903
|
+
"breadcrumbTitle": "Incidents",
|
|
2904
|
+
"title": "Incidents",
|
|
2905
|
+
"description": "Failures that would otherwise be swallowed silently by the system.",
|
|
2906
|
+
"kpiOpen": "Open",
|
|
2907
|
+
"kpiCritical": "Critical",
|
|
2908
|
+
"kpiOccurrences": "Occurrences",
|
|
2909
|
+
"kpiResolved": "Resolved",
|
|
2910
|
+
"searchPlaceholder": "Search by message, code or source",
|
|
2911
|
+
"filterByStatus": "Status",
|
|
2912
|
+
"statusOpen": "Open",
|
|
2913
|
+
"statusResolved": "Resolved",
|
|
2914
|
+
"statusAll": "All",
|
|
2915
|
+
"filterBySeverity": "Severity",
|
|
2916
|
+
"severityAll": "All severities",
|
|
2917
|
+
"severityCritical": "Critical",
|
|
2918
|
+
"severityError": "Error",
|
|
2919
|
+
"severityWarning": "Warning",
|
|
2920
|
+
"severity_critical": "Critical",
|
|
2921
|
+
"severity_error": "Error",
|
|
2922
|
+
"severity_warning": "Warning",
|
|
2923
|
+
"filterBySource": "Source",
|
|
2924
|
+
"sourceAll": "All sources",
|
|
2925
|
+
"columnSeverity": "Severity",
|
|
2926
|
+
"columnSource": "Source",
|
|
2927
|
+
"columnMessage": "Message",
|
|
2928
|
+
"columnOccurrences": "Occurrences",
|
|
2929
|
+
"columnLastSeen": "Last seen",
|
|
2930
|
+
"firstSeen": "First seen",
|
|
2931
|
+
"context": "Context",
|
|
2932
|
+
"resolve": "Mark as resolved",
|
|
2933
|
+
"reopen": "Reopen",
|
|
2934
|
+
"emptyTitle": "No open incidents",
|
|
2935
|
+
"emptyDescription": "Nothing failed silently in this period."
|
|
2936
|
+
},
|
|
2937
|
+
"AiInstructionPage": {
|
|
2938
|
+
"breadcrumbDashboard": "Dashboard",
|
|
2939
|
+
"breadcrumbManagement": "Management",
|
|
2940
|
+
"breadcrumbCurrent": "AI Prompts",
|
|
2941
|
+
"title": "AI Prompts",
|
|
2942
|
+
"description": "View and edit every prompt the system sends to AI models, grouped by module. Each prompt keeps a canonical copy in code: if a stored prompt is missing, empty or invalid, that copy is used instead and the flow keeps working.",
|
|
2943
|
+
"searchPlaceholder": "Search by slug or name...",
|
|
2944
|
+
"loading": "Loading...",
|
|
2945
|
+
"empty": "No prompts found",
|
|
2946
|
+
"emptyDescription": "Adjust the filters or clear the search to see the registered prompts.",
|
|
2947
|
+
"edit": "Edit",
|
|
2948
|
+
"cancel": "Cancel",
|
|
2949
|
+
"save": "Save",
|
|
2950
|
+
"saving": "Saving...",
|
|
2951
|
+
"saveSuccess": "Prompt saved.",
|
|
2952
|
+
"saveError": "Could not save the prompt.",
|
|
2953
|
+
"filterLayer": "Layer",
|
|
2954
|
+
"filterModule": "Module",
|
|
2955
|
+
"filterStatus": "Status",
|
|
2956
|
+
"filterAllLayers": "All layers",
|
|
2957
|
+
"filterAllModules": "All modules",
|
|
2958
|
+
"filterAllStatuses": "All statuses",
|
|
2959
|
+
"filterActive": "Active",
|
|
2960
|
+
"filterInactive": "Inactive",
|
|
2961
|
+
"layer_task": "Task",
|
|
2962
|
+
"layer_system": "System",
|
|
2963
|
+
"layer_product": "Product",
|
|
2964
|
+
"layer_module": "Module",
|
|
2965
|
+
"layer_agent": "Agent",
|
|
2966
|
+
"layer_tool": "Tool",
|
|
2967
|
+
"layer_output": "Output",
|
|
2968
|
+
"columnName": "Name",
|
|
2969
|
+
"columnLayer": "Layer",
|
|
2970
|
+
"columnModule": "Module",
|
|
2971
|
+
"columnParams": "Parameters",
|
|
2972
|
+
"columnState": "State",
|
|
2973
|
+
"columnUpdatedAt": "Updated",
|
|
2974
|
+
"badgeDefault": "Default",
|
|
2975
|
+
"badgeCustomized": "Customized",
|
|
2976
|
+
"badgeLocked": "Locked",
|
|
2977
|
+
"badgeInactive": "Inactive",
|
|
2978
|
+
"tabContent": "Content",
|
|
2979
|
+
"tabVariables": "Variables",
|
|
2980
|
+
"tabPreview": "Preview",
|
|
2981
|
+
"tabHistory": "History",
|
|
2982
|
+
"fieldSlug": "Slug",
|
|
2983
|
+
"fieldName": "Name",
|
|
2984
|
+
"fieldLocale": "Language",
|
|
2985
|
+
"fieldIsActive": "Active",
|
|
2986
|
+
"fieldContent": "Prompt content",
|
|
2987
|
+
"fieldChangeNote": "Change note",
|
|
2988
|
+
"fieldModel": "Model",
|
|
2989
|
+
"fieldTemperature": "Temperature",
|
|
2990
|
+
"fieldMaxTokens": "Max tokens",
|
|
2991
|
+
"slugImmutable": "The slug cannot be changed: the code resolves the prompt by it.",
|
|
2992
|
+
"copySlug": "Copy slug",
|
|
2993
|
+
"slugCopied": "Slug copied.",
|
|
2994
|
+
"isActiveHint": "When inactive, the flow uses the copy in the code.",
|
|
2995
|
+
"changeNotePlaceholder": "What changed and why",
|
|
2996
|
+
"charCountWithTokens": "{chars} characters · ~{tokens} tokens",
|
|
2997
|
+
"restoreDefault": "Restore default",
|
|
2998
|
+
"restoreDefaultApplied": "Default content applied. Save to confirm.",
|
|
2999
|
+
"inheritPlaceholder": "inherit",
|
|
3000
|
+
"modelParamsTitle": "Model parameters",
|
|
3001
|
+
"modelParamsHint": "Leave empty to keep what the integration profile or the code already uses.",
|
|
3002
|
+
"unbalancedBlocksError": "Unclosed template block: {blocks}. This would discard the rest of the prompt.",
|
|
3003
|
+
"missingRequiredError": "Required variables missing from the content: {variables}.",
|
|
3004
|
+
"missingPhrasesWarning": "Safety phrases removed: {phrases}.",
|
|
3005
|
+
"allPhrasesMissingWarning": "Every safety phrase was removed. At runtime this prompt will be ignored and the copy in the code will be used instead.",
|
|
3006
|
+
"lockedTitle": "Security-sensitive prompt",
|
|
3007
|
+
"lockedDescription": "This prompt is the prompt-injection defence for automated grading. Changing it can allow grade manipulation.",
|
|
3008
|
+
"unlockEditing": "Unlock editing",
|
|
3009
|
+
"unlockDialogTitle": "Unlock editing",
|
|
3010
|
+
"unlockDialogDescription": "Type the prompt slug to confirm you reviewed the security impact of this change.",
|
|
3011
|
+
"variablesEmpty": "This prompt takes no variables.",
|
|
3012
|
+
"variablesFromCode": "Variables declared in code. The prompt must keep using the required ones.",
|
|
3013
|
+
"columnVariable": "Variable",
|
|
3014
|
+
"columnVariableType": "Type",
|
|
3015
|
+
"columnVariableRequired": "Required",
|
|
3016
|
+
"columnVariableDescription": "Description",
|
|
3017
|
+
"variableRequired": "Required",
|
|
3018
|
+
"variableConditional": "Conditional",
|
|
3019
|
+
"previewNoVariables": "This prompt takes no variables; render it to see the final text.",
|
|
3020
|
+
"previewRender": "Render",
|
|
3021
|
+
"previewRendering": "Rendering...",
|
|
3022
|
+
"previewError": "Could not render the preview.",
|
|
3023
|
+
"versionsEmpty": "No versions recorded yet.",
|
|
3024
|
+
"versionsSelectHint": "Select a version to compare it with the current content.",
|
|
3025
|
+
"versionCurrent": "current",
|
|
3026
|
+
"columnVersionDate": "Date",
|
|
3027
|
+
"columnVersionAuthor": "Author",
|
|
3028
|
+
"columnVersionNote": "Note",
|
|
3029
|
+
"columnVersionSize": "Chars",
|
|
3030
|
+
"restoreVersion": "Restore",
|
|
3031
|
+
"restoring": "Restoring...",
|
|
3032
|
+
"restoreSuccess": "Version {version} restored as a new version.",
|
|
3033
|
+
"restoreError": "Could not restore the version.",
|
|
3034
|
+
"restoreDialogTitle": "Restore version",
|
|
3035
|
+
"restoreDialogDescription": "The content of version {version} becomes a new version on top of the current one. Nothing is deleted.",
|
|
3036
|
+
"diffCurrentLabel": "current",
|
|
3037
|
+
"diffVersionLabel": "version {version}",
|
|
3038
|
+
"diffIdentical": "This version is identical to the current content."
|
|
3039
|
+
},
|
|
3040
|
+
"HtmlCodeEditor": {
|
|
3041
|
+
"zoomIn": "Increase font size",
|
|
3042
|
+
"zoomOut": "Decrease font size",
|
|
3043
|
+
"resetZoom": "Reset zoom"
|
|
3044
|
+
},
|
|
3045
|
+
"HtmlContentEditor": {
|
|
3046
|
+
"tabPreview": "Preview",
|
|
3047
|
+
"tabEditor": "Editor",
|
|
3048
|
+
"tabCode": "HTML",
|
|
3049
|
+
"previewTitle": "HTML preview",
|
|
3050
|
+
"noContent": "No content to preview",
|
|
3051
|
+
"complexHtmlWarningTitle": "Complex HTML detected",
|
|
3052
|
+
"complexHtmlWarningDesc": "This content has style, head or script tags that the visual editor removes. Use the HTML tab to edit it.",
|
|
3053
|
+
"aiEditTitle": "Adjust HTML with AI",
|
|
3054
|
+
"aiInstructionPlaceholder": "Describe the adjustment the AI should make to this HTML.",
|
|
3055
|
+
"aiApplyButton": "Adjust with AI",
|
|
3056
|
+
"aiApplying": "Adjusting...",
|
|
3057
|
+
"aiEditAppliedDefault": "HTML adjusted by AI. Review before saving.",
|
|
3058
|
+
"aiEditErrorDefault": "Could not adjust the HTML with AI.",
|
|
3059
|
+
"enterFullscreen": "Fullscreen",
|
|
3060
|
+
"exitFullscreen": "Exit fullscreen",
|
|
3061
|
+
"enterSplitView": "View panels side by side",
|
|
3062
|
+
"exitSplitView": "View as tabs",
|
|
3063
|
+
"splitViewLabel": "Preview, HTML and AI side by side"
|
|
3064
|
+
},
|
|
3065
|
+
"MailLayoutPage": {
|
|
3066
|
+
"breadcrumbHome": "Home",
|
|
3067
|
+
"breadcrumbMail": "Email Templates",
|
|
3068
|
+
"breadcrumbTitle": "Base Layout",
|
|
3069
|
+
"title": "Base Layout",
|
|
3070
|
+
"description": "Wrapper, header and footer applied to every email the system sends",
|
|
3071
|
+
"save": "Save layout",
|
|
3072
|
+
"saving": "Saving...",
|
|
3073
|
+
"localeLabel": "Language",
|
|
3074
|
+
"tabHeader": "Header",
|
|
3075
|
+
"tabFooter": "Footer",
|
|
3076
|
+
"tabWrapper": "Wrapper",
|
|
3077
|
+
"headerHelp": "Fragment rendered above the message content. Translated per language.",
|
|
3078
|
+
"footerHelp": "Fragment rendered below the message content. Translated per language.",
|
|
3079
|
+
"wrapperHelp": "Full HTML document with the structure and CSS. Shared by every language, so it is edited as raw HTML only.",
|
|
3080
|
+
"tokensHelp": "Available tokens:",
|
|
3081
|
+
"sampleSubject": "Sample subject",
|
|
3082
|
+
"sampleBody": "Hello,<br>This is a sample body used only to preview the base layout.<br>Best regards.",
|
|
3083
|
+
"loadError": "Failed to load the base layout",
|
|
3084
|
+
"saveSuccess": "Base layout saved",
|
|
3085
|
+
"saveError": "Failed to save the base layout",
|
|
3086
|
+
"missingContentTokenError": "The wrapper must contain the {{{content}}} token, otherwise every email would be sent empty."
|
|
3087
|
+
},
|
|
3088
|
+
"KnownDevices": {
|
|
3089
|
+
"title": "Known Devices",
|
|
3090
|
+
"description": "Devices your account already recognizes. A sign-in from a device outside this list triggers an email alert.",
|
|
3091
|
+
"adminDescription": "Devices this user's account already recognizes.",
|
|
3092
|
+
"device": "Device",
|
|
3093
|
+
"browser": "Browser",
|
|
3094
|
+
"lastIp": "Last IP",
|
|
3095
|
+
"lastSeen": "Last seen",
|
|
3096
|
+
"firstSeen": "First seen",
|
|
3097
|
+
"action": "Action",
|
|
3098
|
+
"unknown": "Unknown",
|
|
3099
|
+
"forget": "Forget",
|
|
3100
|
+
"noDevices": "No recognized devices yet",
|
|
3101
|
+
"forgetTitle": "Forget device",
|
|
3102
|
+
"forgetDescription": "The next sign-in from this device will be treated as unrecognized and will trigger an email alert. Sessions already open on it stay valid — revoke the sessions to end those.",
|
|
3103
|
+
"cancel": "Cancel",
|
|
3104
|
+
"forgetSuccess": "Device forgotten",
|
|
3105
|
+
"forgetFailure": "Could not forget the device",
|
|
3106
|
+
"simulatedNotRecorded": "Simulated accesses are not recorded as devices — see the sessions tab."
|
|
3107
|
+
},
|
|
3108
|
+
"AccessSimulation": {
|
|
3109
|
+
"action": "Simulate access",
|
|
3110
|
+
"dialogTitle": "Simulate access",
|
|
3111
|
+
"dialogDescription": "Open a short, audited session seeing the system as {name}. Everything you do is recorded under their name and yours.",
|
|
3112
|
+
"targetApp": "Target application",
|
|
3113
|
+
"targetAppPlaceholder": "Choose where to open the session",
|
|
3114
|
+
"noAppsConfigured": "No application has a URL configured in the app-urls setting.",
|
|
3115
|
+
"reason": "Reason (optional)",
|
|
3116
|
+
"reasonPlaceholder": "Ticket, request or context for this simulation",
|
|
3117
|
+
"auditWarning": "The simulation is recorded in the sessions, access log and activity timeline of both users. It lasts 30 minutes and cannot be renewed.",
|
|
3118
|
+
"confirm": "Start simulation",
|
|
3119
|
+
"cancel": "Cancel",
|
|
3120
|
+
"opening": "Opening…",
|
|
3121
|
+
"startFailure": "Could not start the access simulation.",
|
|
3122
|
+
"bannerViewingAs": "SIMULATED ACCESS — you are seeing the system as",
|
|
3123
|
+
"bannerOperator": "Operator",
|
|
3124
|
+
"bannerExpiresIn": "expires in",
|
|
3125
|
+
"bannerStop": "End simulation",
|
|
3126
|
+
"bannerStopping": "Ending…",
|
|
3127
|
+
"redeemLoading": "Starting access simulation…",
|
|
3128
|
+
"redeemInvalidTitle": "Simulation link is no longer valid",
|
|
3129
|
+
"redeemInvalidDescription": "This link works only once and expires after a minute. Ask the operator to start a new simulation.",
|
|
3130
|
+
"redeemMissingCode": "No simulation code found in the link.",
|
|
3131
|
+
"noAdminAccessTitle": "This user has no access to the admin panel",
|
|
3132
|
+
"noAdminAccessDescription": "{name} has no administrative role, so there is nothing to show here. Simulate them in the application they actually use."
|
|
2539
3133
|
}
|
|
2540
3134
|
}
|