@hed-hog/core 0.0.386 → 0.0.390
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -11
- package/dist/access-log/access-log.interceptor.d.ts.map +1 -1
- package/dist/access-log/access-log.interceptor.js +4 -2
- package/dist/access-log/access-log.interceptor.js.map +1 -1
- package/dist/ai/ai-attachment.fragments.d.ts +23 -0
- package/dist/ai/ai-attachment.fragments.d.ts.map +1 -0
- package/dist/ai/ai-attachment.fragments.js +34 -0
- package/dist/ai/ai-attachment.fragments.js.map +1 -0
- package/dist/ai/ai.controller.d.ts +7 -16
- package/dist/ai/ai.controller.d.ts.map +1 -1
- package/dist/ai/ai.prompts.d.ts +16 -0
- package/dist/ai/ai.prompts.d.ts.map +1 -0
- package/dist/ai/ai.prompts.js +37 -0
- package/dist/ai/ai.prompts.js.map +1 -0
- package/dist/ai/ai.service.d.ts +63 -12
- package/dist/ai/ai.service.d.ts.map +1 -1
- package/dist/ai/ai.service.js +215 -88
- package/dist/ai/ai.service.js.map +1 -1
- package/dist/ai/dto/chat.dto.d.ts +4 -1
- package/dist/ai/dto/chat.dto.d.ts.map +1 -1
- package/dist/ai/dto/chat.dto.js +23 -1
- package/dist/ai/dto/chat.dto.js.map +1 -1
- package/dist/ai/dto/create-agent.dto.d.ts +1 -1
- package/dist/ai/dto/create-agent.dto.d.ts.map +1 -1
- package/dist/ai/dto/create-agent.dto.js +1 -1
- package/dist/ai/dto/create-agent.dto.js.map +1 -1
- package/dist/ai/dto/update-agent.dto.d.ts +1 -1
- package/dist/ai/dto/update-agent.dto.d.ts.map +1 -1
- package/dist/ai/dto/update-agent.dto.js +1 -1
- package/dist/ai/dto/update-agent.dto.js.map +1 -1
- package/dist/ai-instruction/ai-instruction.controller.d.ts +61 -7
- package/dist/ai-instruction/ai-instruction.controller.d.ts.map +1 -1
- package/dist/ai-instruction/ai-instruction.controller.js +63 -20
- package/dist/ai-instruction/ai-instruction.controller.js.map +1 -1
- package/dist/ai-instruction/ai-instruction.module.d.ts.map +1 -1
- package/dist/ai-instruction/ai-instruction.module.js +13 -2
- package/dist/ai-instruction/ai-instruction.module.js.map +1 -1
- package/dist/ai-instruction/ai-instruction.service.d.ts +131 -6
- package/dist/ai-instruction/ai-instruction.service.d.ts.map +1 -1
- package/dist/ai-instruction/ai-instruction.service.js +533 -60
- package/dist/ai-instruction/ai-instruction.service.js.map +1 -1
- package/dist/ai-instruction/ai-prompt-builder.service.d.ts +8 -0
- package/dist/ai-instruction/ai-prompt-builder.service.d.ts.map +1 -1
- package/dist/ai-instruction/ai-prompt-builder.service.js +10 -1
- package/dist/ai-instruction/ai-prompt-builder.service.js.map +1 -1
- package/dist/ai-instruction/ai-prompt-registry.d.ts +45 -0
- package/dist/ai-instruction/ai-prompt-registry.d.ts.map +1 -0
- package/dist/ai-instruction/ai-prompt-registry.js +49 -0
- package/dist/ai-instruction/ai-prompt-registry.js.map +1 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.d.ts +89 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.d.ts.map +1 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.js +222 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.js.map +1 -0
- package/dist/ai-instruction/ai-prompt-template.util.d.ts +70 -0
- package/dist/ai-instruction/ai-prompt-template.util.d.ts.map +1 -0
- package/dist/ai-instruction/ai-prompt-template.util.js +154 -0
- package/dist/ai-instruction/ai-prompt-template.util.js.map +1 -0
- package/dist/ai-instruction/dto/create-ai-instruction.dto.d.ts +5 -0
- package/dist/ai-instruction/dto/create-ai-instruction.dto.d.ts.map +1 -1
- package/dist/ai-instruction/dto/create-ai-instruction.dto.js +27 -1
- package/dist/ai-instruction/dto/create-ai-instruction.dto.js.map +1 -1
- package/dist/ai-instruction/dto/preview-ai-instruction.dto.d.ts +14 -0
- package/dist/ai-instruction/dto/preview-ai-instruction.dto.d.ts.map +1 -0
- package/dist/ai-instruction/dto/preview-ai-instruction.dto.js +42 -0
- package/dist/ai-instruction/dto/preview-ai-instruction.dto.js.map +1 -0
- package/dist/ai-instruction/dto/update-ai-instruction.dto.d.ts +11 -0
- package/dist/ai-instruction/dto/update-ai-instruction.dto.d.ts.map +1 -1
- package/dist/ai-instruction/dto/update-ai-instruction.dto.js +34 -0
- package/dist/ai-instruction/dto/update-ai-instruction.dto.js.map +1 -1
- package/dist/ai-instruction/types/ai-instruction.types.d.ts +13 -1
- package/dist/ai-instruction/types/ai-instruction.types.d.ts.map +1 -1
- package/dist/ai-instruction/types/ai-instruction.types.js +10 -0
- package/dist/ai-instruction/types/ai-instruction.types.js.map +1 -1
- package/dist/auth/auth.controller.d.ts +26 -10
- package/dist/auth/auth.controller.d.ts.map +1 -1
- package/dist/auth/auth.controller.js +49 -21
- package/dist/auth/auth.controller.js.map +1 -1
- package/dist/auth/auth.service.d.ts +35 -9
- package/dist/auth/auth.service.d.ts.map +1 -1
- package/dist/auth/auth.service.js +78 -29
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/captcha/captcha.module.d.ts +3 -0
- package/dist/captcha/captcha.module.d.ts.map +1 -0
- package/dist/captcha/captcha.module.js +23 -0
- package/dist/captcha/captcha.module.js.map +1 -0
- package/dist/captcha/captcha.service.d.ts +38 -0
- package/dist/captcha/captcha.service.d.ts.map +1 -0
- package/dist/captcha/captcha.service.js +144 -0
- package/dist/captcha/captcha.service.js.map +1 -0
- package/dist/challenge/challenge.service.d.ts +16 -7
- package/dist/challenge/challenge.service.d.ts.map +1 -1
- package/dist/challenge/challenge.service.js +64 -16
- package/dist/challenge/challenge.service.js.map +1 -1
- package/dist/core.module.d.ts +3 -1
- package/dist/core.module.d.ts.map +1 -1
- package/dist/core.module.js +29 -2
- package/dist/core.module.js.map +1 -1
- package/dist/dashboard/dashboard/dashboard.controller.d.ts +15 -15
- package/dist/dashboard/dashboard/dashboard.service.d.ts +15 -15
- package/dist/dashboard/dashboard-component/dashboard-component.controller.d.ts +6 -6
- package/dist/dashboard/dashboard-component/dashboard-component.service.d.ts +6 -6
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.controller.d.ts +20 -20
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.d.ts +20 -20
- package/dist/dashboard/dashboard-core/dashboard-core.controller.d.ts +1 -1
- package/dist/dashboard/dashboard-core/dashboard-core.service.d.ts +1 -1
- package/dist/dashboard/dashboard-role/dashboard-role.controller.d.ts +13 -13
- package/dist/dashboard/dashboard-role/dashboard-role.service.d.ts +13 -13
- package/dist/file/file.service.d.ts +6 -0
- package/dist/file/file.service.d.ts.map +1 -1
- package/dist/file/file.service.js +44 -4
- package/dist/file/file.service.js.map +1 -1
- package/dist/incident/incident-notifier.service.d.ts +36 -0
- package/dist/incident/incident-notifier.service.d.ts.map +1 -0
- package/dist/incident/incident-notifier.service.js +208 -0
- package/dist/incident/incident-notifier.service.js.map +1 -0
- package/dist/incident/incident.controller.d.ts +23 -0
- package/dist/incident/incident.controller.d.ts.map +1 -0
- package/dist/incident/incident.controller.js +75 -0
- package/dist/incident/incident.controller.js.map +1 -0
- package/dist/incident/incident.module.d.ts +7 -0
- package/dist/incident/incident.module.d.ts.map +1 -0
- package/dist/incident/incident.module.js +32 -0
- package/dist/incident/incident.module.js.map +1 -0
- package/dist/incident/incident.service.d.ts +72 -0
- package/dist/incident/incident.service.d.ts.map +1 -0
- package/dist/incident/incident.service.js +184 -0
- package/dist/incident/incident.service.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -1
- package/dist/integration-profile/dto/test.dto.d.ts +13 -0
- package/dist/integration-profile/dto/test.dto.d.ts.map +1 -0
- package/dist/integration-profile/dto/test.dto.js +26 -0
- package/dist/integration-profile/dto/test.dto.js.map +1 -0
- package/dist/integration-profile/integration-profile.controller.d.ts +12 -1
- package/dist/integration-profile/integration-profile.controller.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.controller.js +9 -1
- package/dist/integration-profile/integration-profile.controller.js.map +1 -1
- package/dist/integration-profile/integration-profile.module.d.ts +6 -1
- package/dist/integration-profile/integration-profile.module.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.module.js +26 -3
- package/dist/integration-profile/integration-profile.module.js.map +1 -1
- package/dist/integration-profile/integration-profile.secrets.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.secrets.js +12 -2
- package/dist/integration-profile/integration-profile.secrets.js.map +1 -1
- package/dist/integration-profile/integration-profile.service.d.ts +28 -2
- package/dist/integration-profile/integration-profile.service.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.service.js +105 -31
- package/dist/integration-profile/integration-profile.service.js.map +1 -1
- package/dist/integration-profile/integration-profile.utils.d.ts +31 -1
- package/dist/integration-profile/integration-profile.utils.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.utils.js +35 -4
- package/dist/integration-profile/integration-profile.utils.js.map +1 -1
- package/dist/integration-profile/testers/ai.testers.d.ts +3 -0
- package/dist/integration-profile/testers/ai.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/ai.testers.js +125 -0
- package/dist/integration-profile/testers/ai.testers.js.map +1 -0
- package/dist/integration-profile/testers/captcha.testers.d.ts +3 -0
- package/dist/integration-profile/testers/captcha.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/captcha.testers.js +121 -0
- package/dist/integration-profile/testers/captcha.testers.js.map +1 -0
- package/dist/integration-profile/testers/email.testers.d.ts +3 -0
- package/dist/integration-profile/testers/email.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/email.testers.js +128 -0
- package/dist/integration-profile/testers/email.testers.js.map +1 -0
- package/dist/integration-profile/testers/http-probe.d.ts +57 -0
- package/dist/integration-profile/testers/http-probe.d.ts.map +1 -0
- package/dist/integration-profile/testers/http-probe.js +140 -0
- package/dist/integration-profile/testers/http-probe.js.map +1 -0
- package/dist/integration-profile/testers/index.d.ts +12 -0
- package/dist/integration-profile/testers/index.d.ts.map +1 -0
- package/dist/integration-profile/testers/index.js +45 -0
- package/dist/integration-profile/testers/index.js.map +1 -0
- package/dist/integration-profile/testers/infrastructure.testers.d.ts +3 -0
- package/dist/integration-profile/testers/infrastructure.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/infrastructure.testers.js +105 -0
- package/dist/integration-profile/testers/infrastructure.testers.js.map +1 -0
- package/dist/integration-profile/testers/integration-tester.registry.d.ts +17 -0
- package/dist/integration-profile/testers/integration-tester.registry.d.ts.map +1 -0
- package/dist/integration-profile/testers/integration-tester.registry.js +52 -0
- package/dist/integration-profile/testers/integration-tester.registry.js.map +1 -0
- package/dist/integration-profile/testers/integration-tester.types.d.ts +55 -0
- package/dist/integration-profile/testers/integration-tester.types.d.ts.map +1 -0
- package/dist/integration-profile/testers/integration-tester.types.js +16 -0
- package/dist/integration-profile/testers/integration-tester.types.js.map +1 -0
- package/dist/integration-profile/testers/messaging.testers.d.ts +3 -0
- package/dist/integration-profile/testers/messaging.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/messaging.testers.js +70 -0
- package/dist/integration-profile/testers/messaging.testers.js.map +1 -0
- package/dist/integration-profile/testers/oauth.testers.d.ts +3 -0
- package/dist/integration-profile/testers/oauth.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/oauth.testers.js +285 -0
- package/dist/integration-profile/testers/oauth.testers.js.map +1 -0
- package/dist/integration-profile/testers/payment.testers.d.ts +3 -0
- package/dist/integration-profile/testers/payment.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/payment.testers.js +169 -0
- package/dist/integration-profile/testers/payment.testers.js.map +1 -0
- package/dist/integration-profile/testers/storage.testers.d.ts +3 -0
- package/dist/integration-profile/testers/storage.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/storage.testers.js +208 -0
- package/dist/integration-profile/testers/storage.testers.js.map +1 -0
- package/dist/language/en.json +4 -2
- package/dist/language/pt.json +4 -2
- package/dist/leaked-password/leaked-password.controller.d.ts +24 -0
- package/dist/leaked-password/leaked-password.controller.d.ts.map +1 -0
- package/dist/leaked-password/leaked-password.controller.js +78 -0
- package/dist/leaked-password/leaked-password.controller.js.map +1 -0
- package/dist/leaked-password/leaked-password.module.d.ts +8 -0
- package/dist/leaked-password/leaked-password.module.d.ts.map +1 -0
- package/dist/leaked-password/leaked-password.module.js +31 -0
- package/dist/leaked-password/leaked-password.module.js.map +1 -0
- package/dist/leaked-password/leaked-password.service.d.ts +64 -0
- package/dist/leaked-password/leaked-password.service.d.ts.map +1 -0
- package/dist/leaked-password/leaked-password.service.js +218 -0
- package/dist/leaked-password/leaked-password.service.js.map +1 -0
- package/dist/locale/locale.controller.d.ts +1 -1
- package/dist/locale/locale.service.d.ts +1 -1
- package/dist/mail/dto/preview.dto.d.ts +18 -0
- package/dist/mail/dto/preview.dto.d.ts.map +1 -0
- package/dist/mail/dto/preview.dto.js +66 -0
- package/dist/mail/dto/preview.dto.js.map +1 -0
- package/dist/mail/dto/send.dto.d.ts +7 -0
- package/dist/mail/dto/send.dto.d.ts.map +1 -1
- package/dist/mail/dto/send.dto.js +10 -0
- package/dist/mail/dto/send.dto.js.map +1 -1
- package/dist/mail/mail.controller.d.ts +4 -0
- package/dist/mail/mail.controller.d.ts.map +1 -1
- package/dist/mail/mail.controller.js +16 -2
- package/dist/mail/mail.controller.js.map +1 -1
- package/dist/mail/mail.service.d.ts +23 -2
- package/dist/mail/mail.service.d.ts.map +1 -1
- package/dist/mail/mail.service.js +102 -13
- package/dist/mail/mail.service.js.map +1 -1
- package/dist/mail-layout/dto/update.dto.d.ts +17 -0
- package/dist/mail-layout/dto/update.dto.d.ts.map +1 -0
- package/dist/mail-layout/dto/update.dto.js +27 -0
- package/dist/mail-layout/dto/update.dto.js.map +1 -0
- package/dist/mail-layout/mail-layout.controller.d.ts +15 -0
- package/dist/mail-layout/mail-layout.controller.d.ts.map +1 -0
- package/dist/mail-layout/mail-layout.controller.js +71 -0
- package/dist/mail-layout/mail-layout.controller.js.map +1 -0
- package/dist/mail-layout/mail-layout.module.d.ts +3 -0
- package/dist/mail-layout/mail-layout.module.d.ts.map +1 -0
- package/dist/mail-layout/mail-layout.module.js +35 -0
- package/dist/mail-layout/mail-layout.module.js.map +1 -0
- package/dist/mail-layout/mail-layout.service.d.ts +27 -0
- package/dist/mail-layout/mail-layout.service.d.ts.map +1 -0
- package/dist/mail-layout/mail-layout.service.js +80 -0
- package/dist/mail-layout/mail-layout.service.js.map +1 -0
- package/dist/mcp-chat/mcp-chat.controller.d.ts +2 -2
- package/dist/mcp-chat/mcp-chat.service.d.ts +24 -2
- package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
- package/dist/mcp-chat/mcp-chat.service.js +80 -24
- package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
- package/dist/menu/menu.controller.d.ts +3 -3
- package/dist/menu/menu.service.d.ts +3 -3
- package/dist/notification/notification.controller.d.ts +12 -12
- package/dist/notification/notification.service.d.ts +12 -12
- package/dist/oauth/oauth-token-broker.service.d.ts +72 -0
- package/dist/oauth/oauth-token-broker.service.d.ts.map +1 -0
- package/dist/oauth/oauth-token-broker.service.js +258 -0
- package/dist/oauth/oauth-token-broker.service.js.map +1 -0
- package/dist/oauth/oauth.module.d.ts.map +1 -1
- package/dist/oauth/oauth.module.js +3 -1
- package/dist/oauth/oauth.module.js.map +1 -1
- package/dist/oauth/oauth.service.d.ts +2 -0
- package/dist/oauth/oauth.service.d.ts.map +1 -1
- package/dist/oauth/oauth.service.js +6 -3
- package/dist/oauth/oauth.service.js.map +1 -1
- package/dist/pdf/pdf.service.d.ts +8 -0
- package/dist/pdf/pdf.service.d.ts.map +1 -1
- package/dist/pdf/pdf.service.js +52 -0
- package/dist/pdf/pdf.service.js.map +1 -1
- package/dist/presence/presence.controller.d.ts +16 -0
- package/dist/presence/presence.controller.d.ts.map +1 -0
- package/dist/presence/presence.controller.js +60 -0
- package/dist/presence/presence.controller.js.map +1 -0
- package/dist/presence/presence.listener.d.ts +29 -0
- package/dist/presence/presence.listener.d.ts.map +1 -0
- package/dist/presence/presence.listener.js +82 -0
- package/dist/presence/presence.listener.js.map +1 -0
- package/dist/presence/presence.module.d.ts +3 -0
- package/dist/presence/presence.module.d.ts.map +1 -0
- package/dist/presence/presence.module.js +32 -0
- package/dist/presence/presence.module.js.map +1 -0
- package/dist/presence/presence.service.d.ts +42 -0
- package/dist/presence/presence.service.d.ts.map +1 -0
- package/dist/presence/presence.service.js +147 -0
- package/dist/presence/presence.service.js.map +1 -0
- package/dist/profile/dto/delete-account.dto.d.ts +8 -0
- package/dist/profile/dto/delete-account.dto.d.ts.map +1 -0
- package/dist/profile/dto/delete-account.dto.js +22 -0
- package/dist/profile/dto/delete-account.dto.js.map +1 -0
- package/dist/profile/events/profile-account-deleted.event.d.ts +12 -0
- package/dist/profile/events/profile-account-deleted.event.d.ts.map +1 -0
- package/dist/profile/events/profile-account-deleted.event.js +17 -0
- package/dist/profile/events/profile-account-deleted.event.js.map +1 -0
- package/dist/profile/profile.controller.d.ts +24 -17
- 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 +34 -21
- package/dist/profile/profile.service.d.ts.map +1 -1
- package/dist/profile/profile.service.js +113 -37
- package/dist/profile/profile.service.js.map +1 -1
- package/dist/realtime/realtime.gateway.d.ts +48 -0
- package/dist/realtime/realtime.gateway.d.ts.map +1 -0
- package/dist/realtime/realtime.gateway.js +156 -0
- package/dist/realtime/realtime.gateway.js.map +1 -0
- package/dist/realtime/realtime.module.d.ts +8 -0
- package/dist/realtime/realtime.module.d.ts.map +1 -0
- package/dist/realtime/realtime.module.js +29 -0
- package/dist/realtime/realtime.module.js.map +1 -0
- package/dist/realtime/realtime.service.d.ts +51 -0
- package/dist/realtime/realtime.service.d.ts.map +1 -0
- package/dist/realtime/realtime.service.js +177 -0
- package/dist/realtime/realtime.service.js.map +1 -0
- package/dist/redis/redis-pubsub.d.ts +27 -0
- package/dist/redis/redis-pubsub.d.ts.map +1 -0
- package/dist/redis/redis-pubsub.js +140 -0
- package/dist/redis/redis-pubsub.js.map +1 -0
- package/dist/role/role.controller.d.ts +3 -3
- package/dist/role/role.service.d.ts +3 -3
- package/dist/setting/dto/create.dto.d.ts.map +1 -1
- package/dist/setting/dto/create.dto.js +9 -2
- package/dist/setting/dto/create.dto.js.map +1 -1
- package/dist/setting/setting.controller.d.ts +5 -5
- package/dist/setting/setting.service.d.ts +8 -5
- package/dist/setting/setting.service.d.ts.map +1 -1
- package/dist/setting/setting.service.js +25 -1
- package/dist/setting/setting.service.js.map +1 -1
- package/dist/user/dto/create-with-email-and-password.dto.d.ts +2 -0
- package/dist/user/dto/create-with-email-and-password.dto.d.ts.map +1 -1
- package/dist/user/dto/create-with-email-and-password.dto.js +5 -0
- package/dist/user/dto/create-with-email-and-password.dto.js.map +1 -1
- package/dist/user/dto/query-user-mail-list.dto.d.ts +5 -0
- package/dist/user/dto/query-user-mail-list.dto.d.ts.map +1 -0
- package/dist/user/dto/query-user-mail-list.dto.js +25 -0
- package/dist/user/dto/query-user-mail-list.dto.js.map +1 -0
- package/dist/user/user-credential.util.d.ts +19 -0
- package/dist/user/user-credential.util.d.ts.map +1 -0
- package/dist/user/user-credential.util.js +32 -0
- package/dist/user/user-credential.util.js.map +1 -0
- package/dist/user/user.controller.d.ts +17 -5
- package/dist/user/user.controller.d.ts.map +1 -1
- package/dist/user/user.controller.js +18 -3
- package/dist/user/user.controller.js.map +1 -1
- package/dist/user/user.service.d.ts +28 -6
- package/dist/user/user.service.d.ts.map +1 -1
- package/dist/user/user.service.js +204 -13
- package/dist/user/user.service.js.map +1 -1
- package/dist/validators/is-strong-password-with-settings.validator.d.ts.map +1 -1
- package/dist/validators/is-strong-password-with-settings.validator.js +11 -0
- package/dist/validators/is-strong-password-with-settings.validator.js.map +1 -1
- package/dist/validators/service-locator.d.ts +9 -0
- package/dist/validators/service-locator.d.ts.map +1 -1
- package/dist/validators/service-locator.js +12 -0
- package/dist/validators/service-locator.js.map +1 -1
- package/dist/webhook-integration/webhook-integration.controller.d.ts +5 -8
- package/dist/webhook-integration/webhook-integration.controller.d.ts.map +1 -1
- package/dist/webhook-integration/webhook-integration.controller.js +31 -8
- package/dist/webhook-integration/webhook-integration.controller.js.map +1 -1
- package/dist/webhook-integration/webhook-integration.module.d.ts.map +1 -1
- package/dist/webhook-integration/webhook-integration.module.js +5 -0
- package/dist/webhook-integration/webhook-integration.module.js.map +1 -1
- package/dist/webhook-integration/webhook-integration.service.d.ts +33 -1
- package/dist/webhook-integration/webhook-integration.service.d.ts.map +1 -1
- package/dist/webhook-integration/webhook-integration.service.js +109 -4
- package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
- package/dist/webhook-integration/webhook-protocol.registry.d.ts +63 -0
- package/dist/webhook-integration/webhook-protocol.registry.d.ts.map +1 -0
- package/dist/webhook-integration/webhook-protocol.registry.js +51 -0
- package/dist/webhook-integration/webhook-protocol.registry.js.map +1 -0
- package/dist/whatsapp-sender/whatsapp-sender.module.d.ts +3 -0
- package/dist/whatsapp-sender/whatsapp-sender.module.d.ts.map +1 -0
- package/dist/whatsapp-sender/whatsapp-sender.module.js +23 -0
- package/dist/whatsapp-sender/whatsapp-sender.module.js.map +1 -0
- package/dist/whatsapp-sender/whatsapp-sender.service.d.ts +50 -0
- package/dist/whatsapp-sender/whatsapp-sender.service.d.ts.map +1 -0
- package/dist/whatsapp-sender/whatsapp-sender.service.js +224 -0
- package/dist/whatsapp-sender/whatsapp-sender.service.js.map +1 -0
- package/hedhog/data/integration_provider.yaml +16 -0
- package/hedhog/data/mail.yaml +88 -61
- package/hedhog/data/mail_layout.yaml +188 -0
- package/hedhog/data/menu.yaml +67 -3
- package/hedhog/data/route.yaml +135 -0
- package/hedhog/data/setting_group.yaml +139 -1
- package/hedhog/frontend/app/account/components/mfa-setup-dialog.tsx.ejs +36 -0
- package/hedhog/frontend/app/account/components/two-factor-auth.tsx.ejs +2 -0
- package/hedhog/frontend/app/account/hooks/use-mfa-setup.ts.ejs +10 -7
- package/hedhog/frontend/app/ai_agent/page.tsx.ejs +7 -4
- package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-form.tsx.ejs +580 -0
- package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-preview.tsx.ejs +150 -0
- package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-versions.tsx.ejs +199 -0
- package/hedhog/frontend/app/ai_instruction/_components/prompt-diff.tsx.ejs +63 -0
- package/hedhog/frontend/app/ai_instruction/_lib/line-diff.spec.ts.ejs +59 -0
- package/hedhog/frontend/app/ai_instruction/_lib/line-diff.ts.ejs +72 -0
- package/hedhog/frontend/app/ai_instruction/_lib/prompt-template.spec.ts.ejs +170 -0
- package/hedhog/frontend/app/ai_instruction/_lib/prompt-template.ts.ejs +167 -0
- package/hedhog/frontend/app/ai_instruction/_lib/types.ts.ejs +99 -0
- package/hedhog/frontend/app/ai_instruction/page.tsx.ejs +422 -0
- package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +51 -4
- package/hedhog/frontend/app/incidents/page.tsx.ejs +400 -0
- package/hedhog/frontend/app/integration/profiles/page.tsx.ejs +169 -92
- package/hedhog/frontend/app/mail/layout/page.tsx.ejs +344 -0
- package/hedhog/frontend/app/mail/template/page.tsx.ejs +155 -121
- package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +129 -17
- package/hedhog/frontend/app/pages/_components/page-delete-dialog.tsx.ejs +343 -0
- package/hedhog/frontend/app/pages/_components/page-detail-sheet.tsx.ejs +438 -0
- package/hedhog/frontend/app/pages/_components/page-wizard-sheet.tsx.ejs +1009 -0
- package/hedhog/frontend/app/pages/_components/system-page-types.ts.ejs +56 -0
- package/hedhog/frontend/app/pages/_components/use-system-pages.ts.ejs +171 -0
- package/hedhog/frontend/app/pages/page.tsx.ejs +514 -0
- package/hedhog/frontend/app/users/page.tsx.ejs +119 -13
- package/hedhog/frontend/app/users/user-activity-timeline.tsx.ejs +231 -0
- package/hedhog/frontend/app/users/user-mails.tsx.ejs +399 -0
- package/hedhog/frontend/app/users/user-sheet.tsx.ejs +60 -75
- package/hedhog/frontend/messages/en.json +521 -3
- package/hedhog/frontend/messages/pt.json +521 -3
- package/hedhog/table/ai_agent.yaml +1 -0
- package/hedhog/table/ai_instruction.yaml +15 -0
- package/hedhog/table/leaked_password.yaml +18 -0
- package/hedhog/table/mail_layout.yaml +35 -0
- package/hedhog/table/mail_var.yaml +4 -0
- package/hedhog/table/setting.yaml +1 -0
- package/hedhog/table/system_incident.yaml +59 -0
- package/hedhog/table/user_presence.yaml +36 -0
- package/hedhog/table/webhook_integration.yaml +64 -43
- package/package.json +8 -4
- package/src/access-log/access-log.interceptor.ts +4 -2
- package/src/ai/ai-attachment.fragments.spec.ts +319 -0
- package/src/ai/ai-attachment.fragments.ts +35 -0
- package/src/ai/ai.prompts.ts +38 -0
- package/src/ai/ai.service.spec.ts +280 -0
- package/src/ai/ai.service.ts +338 -82
- package/src/ai/dto/chat.dto.ts +33 -3
- package/src/ai/dto/create-agent.dto.ts +2 -2
- package/src/ai/dto/update-agent.dto.ts +2 -2
- package/src/ai-instruction/ai-instruction.controller.ts +40 -9
- package/src/ai-instruction/ai-instruction.module.ts +13 -2
- package/src/ai-instruction/ai-instruction.service.spec.ts +658 -0
- package/src/ai-instruction/ai-instruction.service.ts +661 -62
- package/src/ai-instruction/ai-prompt-builder.service.ts +10 -1
- package/src/ai-instruction/ai-prompt-registry.ts +87 -0
- package/src/ai-instruction/ai-prompt-resolver.service.spec.ts +375 -0
- package/src/ai-instruction/ai-prompt-resolver.service.ts +295 -0
- package/src/ai-instruction/ai-prompt-template.util.spec.ts +162 -0
- package/src/ai-instruction/ai-prompt-template.util.ts +199 -0
- package/src/ai-instruction/dto/create-ai-instruction.dto.ts +39 -3
- package/src/ai-instruction/dto/preview-ai-instruction.dto.ts +26 -0
- package/src/ai-instruction/dto/update-ai-instruction.dto.ts +42 -1
- package/src/ai-instruction/types/ai-instruction.types.ts +24 -1
- package/src/auth/auth.controller.ts +33 -6
- package/src/auth/auth.service.spec.ts +3 -1
- package/src/auth/auth.service.ts +103 -37
- package/src/captcha/captcha.module.ts +10 -0
- package/src/captcha/captcha.service.spec.ts +210 -0
- package/src/captcha/captcha.service.ts +191 -0
- package/src/challenge/challenge.service.spec.ts +39 -4
- package/src/challenge/challenge.service.ts +72 -17
- package/src/core.module.ts +27 -1
- package/src/file/file.service.spec.ts +105 -0
- package/src/file/file.service.ts +60 -3
- package/src/incident/incident-notifier.service.spec.ts +205 -0
- package/src/incident/incident-notifier.service.ts +241 -0
- package/src/incident/incident.controller.ts +38 -0
- package/src/incident/incident.module.ts +19 -0
- package/src/incident/incident.service.spec.ts +150 -0
- package/src/incident/incident.service.ts +209 -0
- package/src/index.ts +38 -0
- package/src/integration-profile/dto/test.dto.ts +19 -0
- package/src/integration-profile/integration-profile.controller.ts +10 -1
- package/src/integration-profile/integration-profile.module.spec.ts +51 -0
- package/src/integration-profile/integration-profile.module.ts +23 -4
- package/src/integration-profile/integration-profile.secrets.ts +12 -2
- package/src/integration-profile/integration-profile.service.spec.ts +279 -0
- package/src/integration-profile/integration-profile.service.ts +132 -29
- package/src/integration-profile/integration-profile.utils.spec.ts +97 -0
- package/src/integration-profile/integration-profile.utils.ts +79 -3
- package/src/integration-profile/testers/ai.testers.ts +165 -0
- package/src/integration-profile/testers/captcha.testers.spec.ts +92 -0
- package/src/integration-profile/testers/captcha.testers.ts +139 -0
- package/src/integration-profile/testers/email.testers.ts +161 -0
- package/src/integration-profile/testers/http-probe.spec.ts +153 -0
- package/src/integration-profile/testers/http-probe.ts +171 -0
- package/src/integration-profile/testers/index.ts +30 -0
- package/src/integration-profile/testers/infrastructure.testers.ts +122 -0
- package/src/integration-profile/testers/integration-tester.registry.spec.ts +75 -0
- package/src/integration-profile/testers/integration-tester.registry.ts +43 -0
- package/src/integration-profile/testers/integration-tester.types.ts +61 -0
- package/src/integration-profile/testers/messaging.testers.ts +102 -0
- package/src/integration-profile/testers/oauth.testers.spec.ts +220 -0
- package/src/integration-profile/testers/oauth.testers.ts +305 -0
- package/src/integration-profile/testers/payment.testers.ts +185 -0
- package/src/integration-profile/testers/remaining.testers.spec.ts +401 -0
- package/src/integration-profile/testers/storage.testers.spec.ts +185 -0
- package/src/integration-profile/testers/storage.testers.ts +226 -0
- package/src/integration-profile/testers/tester-coverage.spec.ts +58 -0
- package/src/language/en.json +4 -2
- package/src/language/pt.json +4 -2
- package/src/leaked-password/README.md +83 -0
- package/src/leaked-password/leaked-password.controller.ts +52 -0
- package/src/leaked-password/leaked-password.module.ts +18 -0
- package/src/leaked-password/leaked-password.service.ts +242 -0
- package/src/leaked-password/seed/build-seed-sql.mjs +180 -0
- package/src/leaked-password/seed/common-passwords.txt +335 -0
- package/src/mail/dto/preview.dto.ts +50 -0
- package/src/mail/dto/send.dto.ts +14 -1
- package/src/mail/mail-template.spec.ts +197 -0
- package/src/mail/mail.controller.ts +9 -2
- package/src/mail/mail.service.spec.ts +116 -1
- package/src/mail/mail.service.ts +118 -12
- package/src/mail-layout/dto/update.dto.ts +19 -0
- package/src/mail-layout/mail-layout.controller.ts +47 -0
- package/src/mail-layout/mail-layout.module.ts +22 -0
- package/src/mail-layout/mail-layout.service.ts +94 -0
- package/src/mcp-chat/mcp-chat.service.spec.ts +236 -0
- package/src/mcp-chat/mcp-chat.service.ts +122 -26
- package/src/oauth/oauth-token-broker.service.spec.ts +172 -0
- package/src/oauth/oauth-token-broker.service.ts +363 -0
- package/src/oauth/oauth.module.ts +3 -1
- package/src/oauth/oauth.service.ts +8 -2
- package/src/pdf/pdf.service.ts +75 -0
- package/src/presence/presence.controller.ts +29 -0
- package/src/presence/presence.listener.ts +53 -0
- package/src/presence/presence.module.ts +19 -0
- package/src/presence/presence.service.spec.ts +97 -0
- package/src/presence/presence.service.ts +160 -0
- package/src/profile/dto/delete-account.dto.ts +11 -0
- package/src/profile/events/profile-account-deleted.event.ts +13 -0
- package/src/profile/profile.controller.ts +52 -36
- package/src/profile/profile.service.ts +143 -41
- package/src/realtime/realtime.gateway.ts +138 -0
- package/src/realtime/realtime.module.ts +16 -0
- package/src/realtime/realtime.service.spec.ts +50 -0
- package/src/realtime/realtime.service.ts +187 -0
- package/src/redis/redis-pubsub.ts +179 -0
- package/src/setting/dto/create.dto.ts +13 -2
- package/src/setting/setting.service.spec.ts +56 -0
- package/src/setting/setting.service.ts +29 -1
- package/src/user/dto/create-with-email-and-password.dto.ts +6 -1
- package/src/user/dto/query-user-mail-list.dto.ts +10 -0
- package/src/user/user-credential.util.ts +35 -0
- package/src/user/user.controller.ts +17 -2
- package/src/user/user.service.spec.ts +153 -0
- package/src/user/user.service.ts +255 -12
- package/src/validators/is-strong-password-with-settings.validator.ts +12 -0
- package/src/validators/service-locator.ts +15 -0
- package/src/webhook-integration/webhook-integration.controller.ts +40 -2
- package/src/webhook-integration/webhook-integration.module.ts +5 -0
- package/src/webhook-integration/webhook-integration.service.ts +133 -0
- package/src/webhook-integration/webhook-protocol.registry.spec.ts +70 -0
- package/src/webhook-integration/webhook-protocol.registry.ts +93 -0
- package/src/whatsapp-sender/whatsapp-sender.module.ts +10 -0
- package/src/whatsapp-sender/whatsapp-sender.service.ts +313 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEEPSEEK_DEFAULT_MODEL = exports.DEEPSEEK_API_BASE_URL = exports.DEFAULT_GRAPH_API_VERSION = void 0;
|
|
3
4
|
exports.buildMailConfigFromIntegration = buildMailConfigFromIntegration;
|
|
4
5
|
exports.buildResendConfigFromIntegration = buildResendConfigFromIntegration;
|
|
5
6
|
exports.getFromAddress = getFromAddress;
|
|
6
7
|
exports.getReplyToAddress = getReplyToAddress;
|
|
8
|
+
exports.buildWhatsappOfficialConfigFromIntegration = buildWhatsappOfficialConfigFromIntegration;
|
|
7
9
|
exports.buildStorageConfigFromIntegration = buildStorageConfigFromIntegration;
|
|
8
10
|
exports.resolveStorageEnumProvider = resolveStorageEnumProvider;
|
|
9
11
|
exports.resolveFileProviderSlug = resolveFileProviderSlug;
|
|
@@ -87,6 +89,20 @@ function getReplyToAddress(config) {
|
|
|
87
89
|
const replyToName = String((_c = cfg.reply_to_name) !== null && _c !== void 0 ? _c : '').trim();
|
|
88
90
|
return replyToName ? `${replyToName} <${replyToEmail}>` : replyToEmail;
|
|
89
91
|
}
|
|
92
|
+
// ─── Messaging utilities ──────────────────────────────────────────────────────
|
|
93
|
+
exports.DEFAULT_GRAPH_API_VERSION = 'v21.0';
|
|
94
|
+
/**
|
|
95
|
+
* Maps an integration_profile config JSON to the Meta WhatsApp Cloud API credentials.
|
|
96
|
+
*
|
|
97
|
+
* Os números não vêm daqui: um WABA pode ter vários e cada um tem estado próprio,
|
|
98
|
+
* então eles vivem na tabela whatsapp_phone_number (library whatsapp).
|
|
99
|
+
*/
|
|
100
|
+
function buildWhatsappOfficialConfigFromIntegration(config) {
|
|
101
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
102
|
+
const cfg = (_a = config) !== null && _a !== void 0 ? _a : {};
|
|
103
|
+
const environment = String((_b = cfg.environment) !== null && _b !== void 0 ? _b : 'production').trim();
|
|
104
|
+
return Object.assign(Object.assign({ appId: String((_c = cfg.app_id) !== null && _c !== void 0 ? _c : '').trim(), appSecret: String((_d = cfg.app_secret) !== null && _d !== void 0 ? _d : '').trim() }, (cfg.business_id ? { businessId: String(cfg.business_id).trim() } : {})), { wabaId: String((_e = cfg.waba_id) !== null && _e !== void 0 ? _e : '').trim(), accessToken: String((_f = cfg.access_token) !== null && _f !== void 0 ? _f : '').trim(), graphApiVersion: String((_g = cfg.graph_api_version) !== null && _g !== void 0 ? _g : '').trim() || exports.DEFAULT_GRAPH_API_VERSION, verifyToken: String((_h = cfg.verify_token) !== null && _h !== void 0 ? _h : '').trim(), environment: environment === 'test' ? 'test' : 'production' });
|
|
105
|
+
}
|
|
90
106
|
// ─── Storage utilities ────────────────────────────────────────────────────────
|
|
91
107
|
/**
|
|
92
108
|
* Maps an integration_profile config JSON to the flat settings dict that the
|
|
@@ -193,16 +209,31 @@ function buildKubernetesConfigFromIntegration(providerSlug, config) {
|
|
|
193
209
|
};
|
|
194
210
|
}
|
|
195
211
|
// ─── AI utilities ─────────────────────────────────────────────────────────────
|
|
196
|
-
/**
|
|
212
|
+
/**
|
|
213
|
+
* Base URL da API do DeepSeek. A API é compatível com o formato OpenAI
|
|
214
|
+
* (`POST {base}/chat/completions`), então os consumidores reaproveitam o mesmo
|
|
215
|
+
* corpo de requisição trocando apenas a URL e a chave.
|
|
216
|
+
*/
|
|
217
|
+
exports.DEEPSEEK_API_BASE_URL = 'https://api.deepseek.com';
|
|
218
|
+
/** Modelo usado quando o perfil DeepSeek não define um (`deepseek-reasoner` é o de raciocínio). */
|
|
219
|
+
exports.DEEPSEEK_DEFAULT_MODEL = 'deepseek-chat';
|
|
220
|
+
/** Maps an integration_profile config JSON to the API key and optional org/model/timeout needed by AI providers. */
|
|
197
221
|
function buildAiConfigFromIntegration(providerSlug, config) {
|
|
198
|
-
var _a, _b, _c;
|
|
222
|
+
var _a, _b, _c, _d, _e, _f;
|
|
199
223
|
const cfg = (_a = config) !== null && _a !== void 0 ? _a : {};
|
|
224
|
+
const model = String((_b = cfg.model) !== null && _b !== void 0 ? _b : '').trim() || undefined;
|
|
225
|
+
const parsedTimeout = Number(cfg.timeout_ms);
|
|
226
|
+
const timeoutMs = Number.isFinite(parsedTimeout) && parsedTimeout > 0 ? parsedTimeout : undefined;
|
|
200
227
|
switch (providerSlug.toLowerCase()) {
|
|
201
228
|
case 'openai':
|
|
202
|
-
return Object.assign({ apiKey: String((
|
|
229
|
+
return Object.assign(Object.assign(Object.assign({ apiKey: String((_c = cfg.api_key) !== null && _c !== void 0 ? _c : '') }, (cfg.organization ? { organization: String(cfg.organization) } : {})), (model ? { model } : {})), (timeoutMs ? { timeoutMs } : {}));
|
|
230
|
+
case 'deepseek':
|
|
231
|
+
return Object.assign(Object.assign(Object.assign({ apiKey: String((_d = cfg.api_key) !== null && _d !== void 0 ? _d : '') }, (model ? { model } : {})), (timeoutMs ? { timeoutMs } : {})), { baseUrl: String((_e = cfg.base_url) !== null && _e !== void 0 ? _e : '')
|
|
232
|
+
.trim()
|
|
233
|
+
.replace(/\/+$/, '') || exports.DEEPSEEK_API_BASE_URL });
|
|
203
234
|
case 'gemini':
|
|
204
235
|
case 'claude':
|
|
205
|
-
return { apiKey: String((
|
|
236
|
+
return Object.assign(Object.assign({ apiKey: String((_f = cfg.api_key) !== null && _f !== void 0 ? _f : '') }, (model ? { model } : {})), (timeoutMs ? { timeoutMs } : {}));
|
|
206
237
|
default:
|
|
207
238
|
throw new common_1.BadRequestException(`Unsupported AI provider: ${providerSlug}`);
|
|
208
239
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-profile.utils.js","sourceRoot":"","sources":["../../src/integration-profile/integration-profile.utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"integration-profile.utils.js","sourceRoot":"","sources":["../../src/integration-profile/integration-profile.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.testers.d.ts","sourceRoot":"","sources":["../../../src/integration-profile/testers/ai.testers.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAsJ/D,eAAO,MAAM,UAAU,EAAE,iBAAiB,EAMzC,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AI_TESTERS = void 0;
|
|
4
|
+
const http_probe_1 = require("./http-probe");
|
|
5
|
+
/**
|
|
6
|
+
* Testadores dos providers de IA e geração de vídeo.
|
|
7
|
+
*
|
|
8
|
+
* Todos listam modelos: é a chamada autenticada mais barata de cada API (não consome
|
|
9
|
+
* token nem gera cobrança) e prova que a chave está ativa.
|
|
10
|
+
*/
|
|
11
|
+
const openAiTester = {
|
|
12
|
+
providerSlug: 'openai',
|
|
13
|
+
test: async (config, ctx) => {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
const missing = (0, http_probe_1.requireFields)(config, [['api_key', 'API key']]);
|
|
16
|
+
if (missing)
|
|
17
|
+
return missing;
|
|
18
|
+
const organization = (0, http_probe_1.str)(config, 'organization');
|
|
19
|
+
const headers = Object.assign({ Authorization: `Bearer ${String((_a = config.api_key) !== null && _a !== void 0 ? _a : '')}` }, (organization ? { 'OpenAI-Organization': organization } : {}));
|
|
20
|
+
const result = await (0, http_probe_1.probeJson)('https://api.openai.com/v1/models', { headers }, ctx.signal);
|
|
21
|
+
if (result.status === 401)
|
|
22
|
+
return (0, http_probe_1.fail)('Invalid OpenAI API key.');
|
|
23
|
+
if (result.status === 403) {
|
|
24
|
+
return (0, http_probe_1.fail)('This API key has no permission to list models.');
|
|
25
|
+
}
|
|
26
|
+
if (!result.ok) {
|
|
27
|
+
return (0, http_probe_1.fail)((0, http_probe_1.describeHttpError)(result, 'OpenAI rejected the credentials.'));
|
|
28
|
+
}
|
|
29
|
+
const models = Array.isArray((_b = result.body) === null || _b === void 0 ? void 0 : _b.data)
|
|
30
|
+
? result.body.data
|
|
31
|
+
: [];
|
|
32
|
+
const wanted = (0, http_probe_1.str)(config, 'model');
|
|
33
|
+
// Modelo indisponível para a conta não invalida a chave — o operador só precisa
|
|
34
|
+
// saber antes de descobrir na primeira chamada real.
|
|
35
|
+
if (wanted && !models.some((model) => model.id === wanted)) {
|
|
36
|
+
return (0, http_probe_1.pass)(`OpenAI — ${models.length} model(s) available`, `The model "${wanted}" is not available for this account.`);
|
|
37
|
+
}
|
|
38
|
+
return (0, http_probe_1.pass)(`OpenAI — ${models.length} model(s) available${wanted ? ` (${wanted} ok)` : ''}`);
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
const geminiTester = {
|
|
42
|
+
providerSlug: 'gemini',
|
|
43
|
+
test: async (config, ctx) => {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
const missing = (0, http_probe_1.requireFields)(config, [['api_key', 'API key']]);
|
|
46
|
+
if (missing)
|
|
47
|
+
return missing;
|
|
48
|
+
const url = `https://generativelanguage.googleapis.com/v1beta/models?key=${encodeURIComponent(String((_a = config.api_key) !== null && _a !== void 0 ? _a : ''))}`;
|
|
49
|
+
const result = await (0, http_probe_1.probeJson)(url, {}, ctx.signal);
|
|
50
|
+
if (result.status === 400 || result.status === 401 || result.status === 403) {
|
|
51
|
+
return (0, http_probe_1.fail)('Invalid Gemini API key.');
|
|
52
|
+
}
|
|
53
|
+
if (!result.ok) {
|
|
54
|
+
return (0, http_probe_1.fail)((0, http_probe_1.describeHttpError)(result, 'Google rejected the credentials.'));
|
|
55
|
+
}
|
|
56
|
+
const models = Array.isArray((_b = result.body) === null || _b === void 0 ? void 0 : _b.models)
|
|
57
|
+
? result.body.models
|
|
58
|
+
: [];
|
|
59
|
+
return (0, http_probe_1.pass)(`Gemini — ${models.length} model(s) available`);
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
const claudeTester = {
|
|
63
|
+
providerSlug: 'claude',
|
|
64
|
+
test: async (config, ctx) => {
|
|
65
|
+
var _a, _b;
|
|
66
|
+
const missing = (0, http_probe_1.requireFields)(config, [['api_key', 'API key']]);
|
|
67
|
+
if (missing)
|
|
68
|
+
return missing;
|
|
69
|
+
const result = await (0, http_probe_1.probeJson)('https://api.anthropic.com/v1/models', {
|
|
70
|
+
headers: {
|
|
71
|
+
'x-api-key': String((_a = config.api_key) !== null && _a !== void 0 ? _a : ''),
|
|
72
|
+
'anthropic-version': '2023-06-01',
|
|
73
|
+
},
|
|
74
|
+
}, ctx.signal);
|
|
75
|
+
if (result.status === 401)
|
|
76
|
+
return (0, http_probe_1.fail)('Invalid Anthropic API key.');
|
|
77
|
+
if (!result.ok) {
|
|
78
|
+
return (0, http_probe_1.fail)((0, http_probe_1.describeHttpError)(result, 'Anthropic rejected the credentials.'));
|
|
79
|
+
}
|
|
80
|
+
const models = Array.isArray((_b = result.body) === null || _b === void 0 ? void 0 : _b.data) ? result.body.data : [];
|
|
81
|
+
return (0, http_probe_1.pass)(`Claude — ${models.length} model(s) available`);
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
const deepseekTester = {
|
|
85
|
+
providerSlug: 'deepseek',
|
|
86
|
+
test: async (config, ctx) => {
|
|
87
|
+
var _a, _b;
|
|
88
|
+
const missing = (0, http_probe_1.requireFields)(config, [['api_key', 'API key']]);
|
|
89
|
+
if (missing)
|
|
90
|
+
return missing;
|
|
91
|
+
const result = await (0, http_probe_1.probeJson)('https://api.deepseek.com/models', { headers: { Authorization: `Bearer ${String((_a = config.api_key) !== null && _a !== void 0 ? _a : '')}` } }, ctx.signal);
|
|
92
|
+
if (result.status === 401)
|
|
93
|
+
return (0, http_probe_1.fail)('Invalid DeepSeek API key.');
|
|
94
|
+
if (!result.ok) {
|
|
95
|
+
return (0, http_probe_1.fail)((0, http_probe_1.describeHttpError)(result, 'DeepSeek rejected the credentials.'));
|
|
96
|
+
}
|
|
97
|
+
const models = Array.isArray((_b = result.body) === null || _b === void 0 ? void 0 : _b.data) ? result.body.data : [];
|
|
98
|
+
return (0, http_probe_1.pass)(`DeepSeek — ${models.length} model(s) available`);
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
const lumaTester = {
|
|
102
|
+
providerSlug: 'luma',
|
|
103
|
+
test: async (config, ctx) => {
|
|
104
|
+
var _a;
|
|
105
|
+
const missing = (0, http_probe_1.requireFields)(config, [['api_key', 'API key']]);
|
|
106
|
+
if (missing)
|
|
107
|
+
return missing;
|
|
108
|
+
const result = await (0, http_probe_1.probeJson)('https://api.lumalabs.ai/dream-machine/v1/generations?limit=1', { headers: { Authorization: `Bearer ${String((_a = config.api_key) !== null && _a !== void 0 ? _a : '')}` } }, ctx.signal);
|
|
109
|
+
if (result.status === 401 || result.status === 403) {
|
|
110
|
+
return (0, http_probe_1.fail)('Invalid Luma API key.');
|
|
111
|
+
}
|
|
112
|
+
if (!result.ok) {
|
|
113
|
+
return (0, http_probe_1.fail)((0, http_probe_1.describeHttpError)(result, 'Luma rejected the credentials.'));
|
|
114
|
+
}
|
|
115
|
+
return (0, http_probe_1.pass)('Luma Dream Machine');
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
exports.AI_TESTERS = [
|
|
119
|
+
openAiTester,
|
|
120
|
+
geminiTester,
|
|
121
|
+
claudeTester,
|
|
122
|
+
deepseekTester,
|
|
123
|
+
lumaTester,
|
|
124
|
+
];
|
|
125
|
+
//# sourceMappingURL=ai.testers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.testers.js","sourceRoot":"","sources":["../../../src/integration-profile/testers/ai.testers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captcha.testers.d.ts","sourceRoot":"","sources":["../../../src/integration-profile/testers/captcha.testers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAoI/D,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAI9C,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CAPTCHA_TESTERS = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const http_probe_1 = require("./http-probe");
|
|
6
|
+
/**
|
|
7
|
+
* Testadores dos providers de captcha.
|
|
8
|
+
*
|
|
9
|
+
* Um captcha só é resolvido por um humano no navegador, então não há token válido para
|
|
10
|
+
* enviar aqui. O truque é que ambos os endpoints de `siteverify` validam o SEGREDO antes
|
|
11
|
+
* do token: mandamos um token vazio e lemos qual das duas reclamações voltou.
|
|
12
|
+
*
|
|
13
|
+
* invalid-input-secret → segredo errado → REPROVA
|
|
14
|
+
* invalid-input-response → segredo aceito, faltou só o token (era o esperado) → APROVA
|
|
15
|
+
*/
|
|
16
|
+
const recaptchaTester = {
|
|
17
|
+
providerSlug: 'recaptcha',
|
|
18
|
+
test: async (config, ctx) => {
|
|
19
|
+
var _a, _b;
|
|
20
|
+
const missing = (0, http_probe_1.requireFields)(config, [
|
|
21
|
+
['site_key', 'Site key'],
|
|
22
|
+
['secret_key', 'Secret key'],
|
|
23
|
+
]);
|
|
24
|
+
if (missing)
|
|
25
|
+
return missing;
|
|
26
|
+
const result = await (0, http_probe_1.probeJson)('https://www.google.com/recaptcha/api/siteverify', {
|
|
27
|
+
method: 'POST',
|
|
28
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
29
|
+
body: new URLSearchParams({
|
|
30
|
+
secret: String((_a = config.secret_key) !== null && _a !== void 0 ? _a : ''),
|
|
31
|
+
response: '',
|
|
32
|
+
}).toString(),
|
|
33
|
+
}, ctx.signal);
|
|
34
|
+
const codes = Array.isArray((_b = result.body) === null || _b === void 0 ? void 0 : _b['error-codes'])
|
|
35
|
+
? result.body['error-codes']
|
|
36
|
+
: [];
|
|
37
|
+
if (codes.includes('invalid-input-secret')) {
|
|
38
|
+
return (0, http_probe_1.fail)('Invalid reCAPTCHA secret key.');
|
|
39
|
+
}
|
|
40
|
+
if (codes.includes('missing-input-secret')) {
|
|
41
|
+
return (0, http_probe_1.fail)('reCAPTCHA secret key is required.');
|
|
42
|
+
}
|
|
43
|
+
if (codes.includes('missing-input-response') ||
|
|
44
|
+
codes.includes('invalid-input-response')) {
|
|
45
|
+
return (0, http_probe_1.pass)('Google accepted the reCAPTCHA secret key');
|
|
46
|
+
}
|
|
47
|
+
if (!result.ok) {
|
|
48
|
+
return (0, http_probe_1.fail)(`Google returned HTTP ${result.status}.`);
|
|
49
|
+
}
|
|
50
|
+
return (0, http_probe_1.pass)('Google accepted the reCAPTCHA secret key');
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
const turnstileTester = {
|
|
54
|
+
providerSlug: 'cloudflare-turnstile',
|
|
55
|
+
test: async (config, ctx) => {
|
|
56
|
+
var _a, _b;
|
|
57
|
+
const missing = (0, http_probe_1.requireFields)(config, [
|
|
58
|
+
['site_key', 'Site key'],
|
|
59
|
+
['secret_key', 'Secret key'],
|
|
60
|
+
]);
|
|
61
|
+
if (missing)
|
|
62
|
+
return missing;
|
|
63
|
+
const result = await (0, http_probe_1.probeJson)('https://challenges.cloudflare.com/turnstile/v0/siteverify', {
|
|
64
|
+
method: 'POST',
|
|
65
|
+
headers: { 'Content-Type': 'application/json' },
|
|
66
|
+
body: JSON.stringify({
|
|
67
|
+
secret: String((_a = config.secret_key) !== null && _a !== void 0 ? _a : ''),
|
|
68
|
+
response: 'hedhog-connection-test',
|
|
69
|
+
}),
|
|
70
|
+
}, ctx.signal);
|
|
71
|
+
const codes = Array.isArray((_b = result.body) === null || _b === void 0 ? void 0 : _b['error-codes'])
|
|
72
|
+
? result.body['error-codes']
|
|
73
|
+
: [];
|
|
74
|
+
if (codes.includes('invalid-input-secret')) {
|
|
75
|
+
return (0, http_probe_1.fail)('Invalid Turnstile secret key.');
|
|
76
|
+
}
|
|
77
|
+
if (codes.includes('missing-input-secret')) {
|
|
78
|
+
return (0, http_probe_1.fail)('Turnstile secret key is required.');
|
|
79
|
+
}
|
|
80
|
+
if (codes.includes('invalid-input-response') ||
|
|
81
|
+
codes.includes('missing-input-response')) {
|
|
82
|
+
return (0, http_probe_1.pass)('Cloudflare accepted the Turnstile secret key');
|
|
83
|
+
}
|
|
84
|
+
if (!result.ok) {
|
|
85
|
+
return (0, http_probe_1.fail)(`Cloudflare returned HTTP ${result.status}.`);
|
|
86
|
+
}
|
|
87
|
+
return (0, http_probe_1.pass)('Cloudflare accepted the Turnstile secret key');
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
const altchaTester = {
|
|
91
|
+
providerSlug: 'altcha',
|
|
92
|
+
test: async (config) => {
|
|
93
|
+
var _a;
|
|
94
|
+
const missing = (0, http_probe_1.requireFields)(config, [['hmac_key', 'HMAC key']]);
|
|
95
|
+
if (missing)
|
|
96
|
+
return missing;
|
|
97
|
+
const hmacKey = String((_a = config.hmac_key) !== null && _a !== void 0 ? _a : '');
|
|
98
|
+
if (hmacKey.length < 16) {
|
|
99
|
+
return (0, http_probe_1.fail)('The HMAC key is too short — use at least 16 characters.');
|
|
100
|
+
}
|
|
101
|
+
// Altcha é self-hosted: não existe endpoint remoto para validar a chave. O que dá
|
|
102
|
+
// para provar é que ela gera um desafio assinado, que é o uso dela em produção.
|
|
103
|
+
try {
|
|
104
|
+
const challenge = (0, node_crypto_1.createHmac)('sha256', hmacKey)
|
|
105
|
+
.update('hedhog-connection-test')
|
|
106
|
+
.digest('hex');
|
|
107
|
+
if (!challenge)
|
|
108
|
+
throw new Error('empty digest');
|
|
109
|
+
}
|
|
110
|
+
catch (_b) {
|
|
111
|
+
return (0, http_probe_1.fail)('Could not sign a challenge with this HMAC key.');
|
|
112
|
+
}
|
|
113
|
+
return (0, http_probe_1.pass)('HMAC key is usable', 'Altcha is self-hosted: the key was validated locally, with no remote check.');
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
exports.CAPTCHA_TESTERS = [
|
|
117
|
+
recaptchaTester,
|
|
118
|
+
turnstileTester,
|
|
119
|
+
altchaTester,
|
|
120
|
+
];
|
|
121
|
+
//# sourceMappingURL=captcha.testers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captcha.testers.js","sourceRoot":"","sources":["../../../src/integration-profile/testers/captcha.testers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email.testers.d.ts","sourceRoot":"","sources":["../../../src/integration-profile/testers/email.testers.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAkJ/D,eAAO,MAAM,aAAa,EAAE,iBAAiB,EAK5C,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EMAIL_TESTERS = void 0;
|
|
4
|
+
const api_mail_1 = require("@hed-hog/api-mail");
|
|
5
|
+
const http_probe_1 = require("./http-probe");
|
|
6
|
+
/**
|
|
7
|
+
* Testadores dos providers de e-mail.
|
|
8
|
+
*
|
|
9
|
+
* Todos exigem `from_email`: sem remetente o perfil não envia nada, e essa validação
|
|
10
|
+
* já era o contrato do teste antes de existirem chamadas de rede.
|
|
11
|
+
*/
|
|
12
|
+
const smtpTester = {
|
|
13
|
+
providerSlug: 'smtp',
|
|
14
|
+
test: async (config) => {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
const missing = (0, http_probe_1.requireFields)(config, [
|
|
17
|
+
['host', 'SMTP host'],
|
|
18
|
+
['from_email', 'Sender email'],
|
|
19
|
+
]);
|
|
20
|
+
if (missing)
|
|
21
|
+
return missing;
|
|
22
|
+
const result = await (0, api_mail_1.verifySmtpConnection)({
|
|
23
|
+
host: (0, http_probe_1.str)(config, 'host'),
|
|
24
|
+
port: Number((_a = config.port) !== null && _a !== void 0 ? _a : 587),
|
|
25
|
+
secure: Boolean(config.secure),
|
|
26
|
+
username: (0, http_probe_1.str)(config, 'username'),
|
|
27
|
+
password: String((_b = config.password) !== null && _b !== void 0 ? _b : ''),
|
|
28
|
+
timeoutMs: 8000,
|
|
29
|
+
});
|
|
30
|
+
return result.ok ? (0, http_probe_1.pass)(result.info) : (0, http_probe_1.fail)(result.error);
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
const sesTester = {
|
|
34
|
+
providerSlug: 'ses',
|
|
35
|
+
test: async (config, ctx) => {
|
|
36
|
+
var _a;
|
|
37
|
+
const missing = (0, http_probe_1.requireFields)(config, [
|
|
38
|
+
['region', 'AWS region'],
|
|
39
|
+
['access_key_id', 'Access key ID'],
|
|
40
|
+
['secret_access_key', 'Secret access key'],
|
|
41
|
+
['from_email', 'Sender email'],
|
|
42
|
+
]);
|
|
43
|
+
if (missing)
|
|
44
|
+
return missing;
|
|
45
|
+
const result = await (0, api_mail_1.verifySesCredentials)({
|
|
46
|
+
region: (0, http_probe_1.str)(config, 'region'),
|
|
47
|
+
accessKeyId: (0, http_probe_1.str)(config, 'access_key_id'),
|
|
48
|
+
secretAccessKey: String((_a = config.secret_access_key) !== null && _a !== void 0 ? _a : ''),
|
|
49
|
+
signal: ctx.signal,
|
|
50
|
+
});
|
|
51
|
+
return result.ok ? (0, http_probe_1.pass)(result.info) : (0, http_probe_1.fail)(result.error);
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
const gmailTester = {
|
|
55
|
+
providerSlug: 'gmail',
|
|
56
|
+
test: async (config, ctx) => {
|
|
57
|
+
var _a, _b, _c, _d;
|
|
58
|
+
const missing = (0, http_probe_1.requireFields)(config, [
|
|
59
|
+
['client_id', 'Client ID'],
|
|
60
|
+
['client_secret', 'Client secret'],
|
|
61
|
+
['refresh_token', 'Refresh token'],
|
|
62
|
+
['from_email', 'Sender email'],
|
|
63
|
+
]);
|
|
64
|
+
if (missing)
|
|
65
|
+
return missing;
|
|
66
|
+
// Troca real do refresh token: separa credencial de app errada (invalid_client)
|
|
67
|
+
// de autorização revogada pelo usuário (invalid_grant).
|
|
68
|
+
const result = await (0, http_probe_1.probeJson)('https://oauth2.googleapis.com/token', {
|
|
69
|
+
method: 'POST',
|
|
70
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
71
|
+
body: new URLSearchParams({
|
|
72
|
+
client_id: (0, http_probe_1.str)(config, 'client_id'),
|
|
73
|
+
client_secret: String((_a = config.client_secret) !== null && _a !== void 0 ? _a : ''),
|
|
74
|
+
refresh_token: String((_b = config.refresh_token) !== null && _b !== void 0 ? _b : ''),
|
|
75
|
+
grant_type: 'refresh_token',
|
|
76
|
+
}).toString(),
|
|
77
|
+
}, ctx.signal);
|
|
78
|
+
if (result.ok) {
|
|
79
|
+
return (0, http_probe_1.pass)(`Gmail authorized for ${(0, http_probe_1.str)(config, 'from_email')}`);
|
|
80
|
+
}
|
|
81
|
+
const code = String((_d = (_c = result.body) === null || _c === void 0 ? void 0 : _c.error) !== null && _d !== void 0 ? _d : '');
|
|
82
|
+
if (code === 'invalid_client') {
|
|
83
|
+
return (0, http_probe_1.fail)('Invalid Client ID or Client secret.');
|
|
84
|
+
}
|
|
85
|
+
if (code === 'invalid_grant') {
|
|
86
|
+
return (0, http_probe_1.fail)('The refresh token is invalid or was revoked. Authorize the account again.');
|
|
87
|
+
}
|
|
88
|
+
return (0, http_probe_1.fail)((0, http_probe_1.describeHttpError)(result, 'Google rejected the credentials.'));
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
const resendTester = {
|
|
92
|
+
providerSlug: 'resend',
|
|
93
|
+
test: async (config, ctx) => {
|
|
94
|
+
var _a, _b, _c;
|
|
95
|
+
const missing = (0, http_probe_1.requireFields)(config, [
|
|
96
|
+
['api_token', 'Resend API token'],
|
|
97
|
+
['domain', 'Resend sending domain'],
|
|
98
|
+
]);
|
|
99
|
+
if (missing)
|
|
100
|
+
return missing;
|
|
101
|
+
const domain = (0, http_probe_1.str)(config, 'domain').toLowerCase();
|
|
102
|
+
const result = await (0, http_probe_1.probeJson)('https://api.resend.com/domains', { headers: { Authorization: `Bearer ${String((_a = config.api_token) !== null && _a !== void 0 ? _a : '')}` } }, ctx.signal);
|
|
103
|
+
if (result.status === 401 || result.status === 403) {
|
|
104
|
+
return (0, http_probe_1.fail)('Invalid Resend API token.');
|
|
105
|
+
}
|
|
106
|
+
if (!result.ok) {
|
|
107
|
+
return (0, http_probe_1.fail)((0, http_probe_1.describeHttpError)(result, 'Resend rejected the credentials.'));
|
|
108
|
+
}
|
|
109
|
+
const domains = Array.isArray((_b = result.body) === null || _b === void 0 ? void 0 : _b.data)
|
|
110
|
+
? result.body.data
|
|
111
|
+
: [];
|
|
112
|
+
const match = domains.find((item) => { var _a; return String((_a = item === null || item === void 0 ? void 0 : item.name) !== null && _a !== void 0 ? _a : '').toLowerCase() === domain; });
|
|
113
|
+
if (!match) {
|
|
114
|
+
return (0, http_probe_1.pass)(`Resend token is valid (${domains.length} domain(s))`, `The domain "${domain}" is not registered in this Resend account.`);
|
|
115
|
+
}
|
|
116
|
+
if (String((_c = match.status) !== null && _c !== void 0 ? _c : '').toLowerCase() !== 'verified') {
|
|
117
|
+
return (0, http_probe_1.pass)(`Resend token is valid — ${domain}`, `The domain "${domain}" is not verified yet (status: ${match.status}).`);
|
|
118
|
+
}
|
|
119
|
+
return (0, http_probe_1.pass)(`Resend — ${domain} (verified)`);
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
exports.EMAIL_TESTERS = [
|
|
123
|
+
smtpTester,
|
|
124
|
+
sesTester,
|
|
125
|
+
gmailTester,
|
|
126
|
+
resendTester,
|
|
127
|
+
];
|
|
128
|
+
//# sourceMappingURL=email.testers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email.testers.js","sourceRoot":"","sources":["../../../src/integration-profile/testers/email.testers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilidades compartilhadas pelos testadores de conexão.
|
|
3
|
+
*
|
|
4
|
+
* Concentra as três coisas que todo tester precisa acertar e que são fáceis de errar
|
|
5
|
+
* caso a caso: respeitar o timeout, não vazar segredo na mensagem de erro e traduzir
|
|
6
|
+
* falha de rede em texto que o operador entenda.
|
|
7
|
+
*/
|
|
8
|
+
import { IntegrationTestOutcome } from './integration-tester.types';
|
|
9
|
+
/** Atalho para um veredito de sucesso. */
|
|
10
|
+
export declare function pass(info?: string, warning?: string): IntegrationTestOutcome;
|
|
11
|
+
/** Atalho para um veredito de falha. */
|
|
12
|
+
export declare function fail(error: string): IntegrationTestOutcome;
|
|
13
|
+
/**
|
|
14
|
+
* Exige que um campo esteja preenchido. Devolve `null` quando está tudo certo, ou o
|
|
15
|
+
* veredito de falha pronto — evita repetir o mesmo `if` em 31 testers.
|
|
16
|
+
*/
|
|
17
|
+
export declare function requireFields(config: Record<string, unknown>, fields: Array<[key: string, label: string]>): IntegrationTestOutcome | null;
|
|
18
|
+
/** Lê uma chave do config como string já trimada. */
|
|
19
|
+
export declare function str(config: Record<string, unknown>, key: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Valida uma URL fornecida pelo usuário (host do Evolution, api_server do k8s,
|
|
22
|
+
* endpoint S3-compatible, base da ADN).
|
|
23
|
+
*
|
|
24
|
+
* Ranges privados são PERMITIDOS de propósito: k8s e Evolution self-hosted vivem em
|
|
25
|
+
* rede interna, e bloqueá-los quebraria o caso de uso principal. O que barramos são
|
|
26
|
+
* esquemas fora de http/https (file:, gopher:, etc.).
|
|
27
|
+
*/
|
|
28
|
+
export declare function assertHttpUrl(raw: string, field: string): URL;
|
|
29
|
+
export type ProbeResult = {
|
|
30
|
+
ok: boolean;
|
|
31
|
+
status: number;
|
|
32
|
+
/** Corpo parseado como JSON, ou `{}` quando a resposta não é JSON. */
|
|
33
|
+
body: any;
|
|
34
|
+
/** Corpo cru (truncado), útil quando a API responde texto puro. */
|
|
35
|
+
text: string;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* `fetch` que não lança em status != 2xx — o status faz parte do veredito na maioria
|
|
39
|
+
* dos testers (401 vs 404 vs 403 dizem coisas diferentes).
|
|
40
|
+
*/
|
|
41
|
+
export declare function probeJson(url: string, init: RequestInit, signal: AbortSignal): Promise<ProbeResult>;
|
|
42
|
+
/** Remove qualquer ocorrência dos segredos do texto. */
|
|
43
|
+
export declare function redactSecrets(text: string, secretValues: string[]): string;
|
|
44
|
+
/**
|
|
45
|
+
* Converte qualquer erro em mensagem segura para a UI e para o config do perfil.
|
|
46
|
+
*
|
|
47
|
+
* Ordem importa: timeout e falha de DNS/conexão precisam de texto PRÓPRIO, senão o
|
|
48
|
+
* operador de um cluster sem saída para a internet lê "não foi possível validar" e
|
|
49
|
+
* conclui que a credencial está errada.
|
|
50
|
+
*/
|
|
51
|
+
export declare function sanitizeTesterError(error: unknown, secretValues: string[], host?: string): string;
|
|
52
|
+
/**
|
|
53
|
+
* Mensagem curta a partir de uma resposta HTTP de erro, procurando o campo de mensagem
|
|
54
|
+
* nos formatos mais comuns (`error.message`, `error_description`, `message`, `error`).
|
|
55
|
+
*/
|
|
56
|
+
export declare function describeHttpError(result: ProbeResult, fallback: string): string;
|
|
57
|
+
//# sourceMappingURL=http-probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-probe.d.ts","sourceRoot":"","sources":["../../../src/integration-profile/testers/http-probe.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAKpE,0CAA0C;AAC1C,wBAAgB,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAE5E;AAED,wCAAwC;AACxC,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAE1D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAC1C,sBAAsB,GAAG,IAAI,CAO/B;AAED,qDAAqD;AACrD,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAExE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAW7D;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,IAAI,EAAE,GAAG,CAAC;IACV,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAU1E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAgCR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAa/E"}
|