@hed-hog/core 0.0.399 → 0.0.401
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/dist/ai/ai-agent.sort.d.ts +6 -0
- package/dist/ai/ai-agent.sort.d.ts.map +1 -0
- package/dist/ai/ai-agent.sort.js +21 -0
- package/dist/ai/ai-agent.sort.js.map +1 -0
- package/dist/ai/ai.controller.d.ts +6 -4
- package/dist/ai/ai.controller.d.ts.map +1 -1
- package/dist/ai/ai.service.d.ts +121 -6
- package/dist/ai/ai.service.d.ts.map +1 -1
- package/dist/ai/ai.service.js +355 -160
- package/dist/ai/ai.service.js.map +1 -1
- package/dist/ai-instruction/ai-instruction.service.d.ts.map +1 -1
- package/dist/ai-instruction/ai-instruction.service.js +26 -23
- package/dist/ai-instruction/ai-instruction.service.js.map +1 -1
- package/dist/ai-instruction/ai-instruction.sort.d.ts +16 -0
- package/dist/ai-instruction/ai-instruction.sort.d.ts.map +1 -0
- package/dist/ai-instruction/ai-instruction.sort.js +32 -0
- package/dist/ai-instruction/ai-instruction.sort.js.map +1 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.d.ts +12 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.d.ts.map +1 -1
- package/dist/ai-instruction/ai-prompt-resolver.service.js +26 -0
- package/dist/ai-instruction/ai-prompt-resolver.service.js.map +1 -1
- package/dist/auth/auth.controller.d.ts +24 -8
- package/dist/auth/auth.controller.d.ts.map +1 -1
- package/dist/auth/auth.module.d.ts.map +1 -1
- package/dist/auth/auth.module.js +8 -1
- package/dist/auth/auth.module.js.map +1 -1
- package/dist/auth/auth.service.d.ts +72 -25
- package/dist/auth/auth.service.d.ts.map +1 -1
- package/dist/auth/auth.service.js +41 -4
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/auth/guards/auth.guard.d.ts +3 -1
- package/dist/auth/guards/auth.guard.d.ts.map +1 -1
- package/dist/auth/guards/auth.guard.js +12 -3
- package/dist/auth/guards/auth.guard.js.map +1 -1
- package/dist/authorize/authorize.controller.d.ts +29 -5
- package/dist/authorize/authorize.controller.d.ts.map +1 -1
- package/dist/authorize/authorize.controller.js +120 -13
- package/dist/authorize/authorize.controller.js.map +1 -1
- package/dist/authorize/authorize.errors.d.ts +34 -0
- package/dist/authorize/authorize.errors.d.ts.map +1 -0
- package/dist/authorize/authorize.errors.js +37 -0
- package/dist/authorize/authorize.errors.js.map +1 -0
- package/dist/authorize/authorize.module.d.ts.map +1 -1
- package/dist/authorize/authorize.module.js +6 -1
- package/dist/authorize/authorize.module.js.map +1 -1
- package/dist/authorize/authorize.service.d.ts +77 -3
- package/dist/authorize/authorize.service.d.ts.map +1 -1
- package/dist/authorize/authorize.service.js +212 -21
- package/dist/authorize/authorize.service.js.map +1 -1
- package/dist/authorize/dto/authorize-info.dto.d.ts +10 -1
- package/dist/authorize/dto/authorize-info.dto.d.ts.map +1 -1
- package/dist/authorize/dto/authorize-info.dto.js +16 -1
- package/dist/authorize/dto/authorize-info.dto.js.map +1 -1
- package/dist/authorize/dto/consent.dto.d.ts +10 -1
- package/dist/authorize/dto/consent.dto.d.ts.map +1 -1
- package/dist/authorize/dto/consent.dto.js +16 -1
- package/dist/authorize/dto/consent.dto.js.map +1 -1
- package/dist/authorize/dto/token.dto.d.ts +12 -0
- package/dist/authorize/dto/token.dto.d.ts.map +1 -1
- package/dist/authorize/dto/token.dto.js +21 -1
- package/dist/authorize/dto/token.dto.js.map +1 -1
- package/dist/authorize/oauth-exception.filter.d.ts +17 -0
- package/dist/authorize/oauth-exception.filter.d.ts.map +1 -0
- package/dist/authorize/oauth-exception.filter.js +54 -0
- package/dist/authorize/oauth-exception.filter.js.map +1 -0
- package/dist/authorize/oauth-metadata.service.d.ts +39 -0
- package/dist/authorize/oauth-metadata.service.d.ts.map +1 -0
- package/dist/authorize/oauth-metadata.service.js +81 -0
- package/dist/authorize/oauth-metadata.service.js.map +1 -0
- package/dist/authorize/well-known.controller.d.ts +67 -0
- package/dist/authorize/well-known.controller.d.ts.map +1 -0
- package/dist/authorize/well-known.controller.js +126 -0
- package/dist/authorize/well-known.controller.js.map +1 -0
- package/dist/captcha/captcha.service.d.ts +32 -2
- package/dist/captcha/captcha.service.d.ts.map +1 -1
- package/dist/captcha/captcha.service.js +85 -12
- package/dist/captcha/captcha.service.js.map +1 -1
- package/dist/challenge/challenge.service.d.ts +2 -2
- package/dist/core.module.d.ts.map +1 -1
- package/dist/core.module.js +9 -0
- package/dist/core.module.js.map +1 -1
- package/dist/dashboard/dashboard/dashboard.controller.d.ts +9 -9
- package/dist/dashboard/dashboard/dashboard.service.d.ts +9 -9
- package/dist/dashboard/dashboard-component/dashboard-component.controller.d.ts +3 -3
- package/dist/dashboard/dashboard-component/dashboard-component.service.d.ts +3 -3
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.controller.d.ts +3 -3
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.d.ts +3 -3
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.d.ts.map +1 -1
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.js +2 -4
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.js.map +1 -1
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.sort.d.ts +8 -0
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.sort.d.ts.map +1 -0
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.sort.js +18 -0
- package/dist/dashboard/dashboard-component-role/dashboard-component-role.sort.js.map +1 -0
- package/dist/dashboard/dashboard-item/dashboard-item.service.d.ts.map +1 -1
- package/dist/dashboard/dashboard-item/dashboard-item.service.js +2 -4
- package/dist/dashboard/dashboard-item/dashboard-item.service.js.map +1 -1
- package/dist/dashboard/dashboard-item/dashboard-item.sort.d.ts +9 -0
- package/dist/dashboard/dashboard-item/dashboard-item.sort.d.ts.map +1 -0
- package/dist/dashboard/dashboard-item/dashboard-item.sort.js +19 -0
- package/dist/dashboard/dashboard-item/dashboard-item.sort.js.map +1 -0
- package/dist/dashboard/dashboard-role/dashboard-role.controller.d.ts +3 -3
- package/dist/dashboard/dashboard-role/dashboard-role.service.d.ts +3 -3
- package/dist/dashboard/dashboard-role/dashboard-role.service.d.ts.map +1 -1
- package/dist/dashboard/dashboard-role/dashboard-role.service.js +2 -4
- package/dist/dashboard/dashboard-role/dashboard-role.service.js.map +1 -1
- package/dist/dashboard/dashboard-role/dashboard-role.sort.d.ts +8 -0
- package/dist/dashboard/dashboard-role/dashboard-role.sort.d.ts.map +1 -0
- package/dist/dashboard/dashboard-role/dashboard-role.sort.js +16 -0
- package/dist/dashboard/dashboard-role/dashboard-role.sort.js.map +1 -0
- package/dist/document-kit/document-kit.module.d.ts +3 -0
- package/dist/document-kit/document-kit.module.d.ts.map +1 -0
- package/dist/document-kit/document-kit.module.js +24 -0
- package/dist/document-kit/document-kit.module.js.map +1 -0
- package/dist/document-kit/document-kit.registry.d.ts +55 -0
- package/dist/document-kit/document-kit.registry.d.ts.map +1 -0
- package/dist/document-kit/document-kit.registry.js +91 -0
- package/dist/document-kit/document-kit.registry.js.map +1 -0
- package/dist/document-kit/document-kit.service.d.ts +49 -0
- package/dist/document-kit/document-kit.service.d.ts.map +1 -0
- package/dist/document-kit/document-kit.service.js +135 -0
- package/dist/document-kit/document-kit.service.js.map +1 -0
- package/dist/file/file-upload-ticket.service.d.ts +160 -0
- package/dist/file/file-upload-ticket.service.d.ts.map +1 -0
- package/dist/file/file-upload-ticket.service.js +382 -0
- package/dist/file/file-upload-ticket.service.js.map +1 -0
- package/dist/file/file.controller.d.ts +24 -1
- package/dist/file/file.controller.d.ts.map +1 -1
- package/dist/file/file.controller.js +63 -2
- package/dist/file/file.controller.js.map +1 -1
- package/dist/file/file.module.d.ts.map +1 -1
- package/dist/file/file.module.js +14 -2
- package/dist/file/file.module.js.map +1 -1
- package/dist/file/file.service.d.ts +197 -7
- package/dist/file/file.service.d.ts.map +1 -1
- package/dist/file/file.service.js +438 -78
- package/dist/file/file.service.js.map +1 -1
- package/dist/file/filename-encoding.util.d.ts +24 -0
- package/dist/file/filename-encoding.util.d.ts.map +1 -0
- package/dist/file/filename-encoding.util.js +63 -0
- package/dist/file/filename-encoding.util.js.map +1 -0
- package/dist/file/image-optimization.service.d.ts +27 -0
- package/dist/file/image-optimization.service.d.ts.map +1 -1
- package/dist/file/image-optimization.service.js +63 -14
- package/dist/file/image-optimization.service.js.map +1 -1
- package/dist/file/mcp-file-source.schema.d.ts +33 -0
- package/dist/file/mcp-file-source.schema.d.ts.map +1 -0
- package/dist/file/mcp-file-source.schema.js +78 -0
- package/dist/file/mcp-file-source.schema.js.map +1 -0
- package/dist/file/mcp-file-source.service.d.ts +124 -0
- package/dist/file/mcp-file-source.service.d.ts.map +1 -0
- package/dist/file/mcp-file-source.service.js +262 -0
- package/dist/file/mcp-file-source.service.js.map +1 -0
- package/dist/file/mimetype-sniff.util.d.ts +62 -0
- package/dist/file/mimetype-sniff.util.d.ts.map +1 -0
- package/dist/file/mimetype-sniff.util.js +226 -0
- package/dist/file/mimetype-sniff.util.js.map +1 -0
- package/dist/file/remote-fetch.util.d.ts +35 -0
- package/dist/file/remote-fetch.util.d.ts.map +1 -0
- package/dist/file/remote-fetch.util.js +236 -0
- package/dist/file/remote-fetch.util.js.map +1 -0
- package/dist/impersonation/dto/start-impersonation.dto.d.ts +4 -1
- package/dist/impersonation/dto/start-impersonation.dto.d.ts.map +1 -1
- package/dist/impersonation/dto/start-impersonation.dto.js +1 -1
- package/dist/impersonation/dto/start-impersonation.dto.js.map +1 -1
- package/dist/impersonation/impersonation.service.d.ts +8 -3
- package/dist/impersonation/impersonation.service.d.ts.map +1 -1
- package/dist/impersonation/impersonation.service.js +14 -4
- package/dist/impersonation/impersonation.service.js.map +1 -1
- package/dist/incident/incident.controller.d.ts +2 -1
- package/dist/incident/incident.controller.d.ts.map +1 -1
- package/dist/incident/incident.controller.js +10 -6
- package/dist/incident/incident.controller.js.map +1 -1
- package/dist/incident/incident.service.d.ts +2 -0
- package/dist/incident/incident.service.d.ts.map +1 -1
- package/dist/incident/incident.service.js +4 -0
- package/dist/incident/incident.service.js.map +1 -1
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/integration-profile/integration-profile.secrets.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.secrets.js +28 -0
- package/dist/integration-profile/integration-profile.secrets.js.map +1 -1
- package/dist/integration-profile/integration-profile.service.d.ts +0 -13
- package/dist/integration-profile/integration-profile.service.d.ts.map +1 -1
- package/dist/integration-profile/integration-profile.service.js +5 -40
- package/dist/integration-profile/integration-profile.service.js.map +1 -1
- package/dist/integration-profile/integration-profile.utils.js +5 -5
- package/dist/integration-profile/integration-profile.utils.js.map +1 -1
- package/dist/integration-profile/testers/ai.testers.d.ts.map +1 -1
- package/dist/integration-profile/testers/ai.testers.js +46 -8
- package/dist/integration-profile/testers/ai.testers.js.map +1 -1
- package/dist/integration-profile/testers/index.d.ts.map +1 -1
- package/dist/integration-profile/testers/index.js +2 -0
- package/dist/integration-profile/testers/index.js.map +1 -1
- package/dist/integration-profile/testers/shipping.testers.d.ts +3 -0
- package/dist/integration-profile/testers/shipping.testers.d.ts.map +1 -0
- package/dist/integration-profile/testers/shipping.testers.js +71 -0
- package/dist/integration-profile/testers/shipping.testers.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/send.dto.d.ts +6 -1
- package/dist/mail/dto/send.dto.d.ts.map +1 -1
- package/dist/mail/dto/send.dto.js.map +1 -1
- package/dist/mail/mail.service.d.ts +9 -0
- package/dist/mail/mail.service.d.ts.map +1 -1
- package/dist/mail/mail.service.js +34 -14
- package/dist/mail/mail.service.js.map +1 -1
- package/dist/mail-sent/mail-sent.controller.d.ts +1 -1
- package/dist/mail-sent/mail-sent.service.d.ts +1 -1
- package/dist/mail-sent/mail-sent.service.d.ts.map +1 -1
- package/dist/mail-sent/mail-sent.service.js +2 -1
- package/dist/mail-sent/mail-sent.service.js.map +1 -1
- package/dist/mail-sent/mail-sent.sort.d.ts +9 -0
- package/dist/mail-sent/mail-sent.sort.d.ts.map +1 -0
- package/dist/mail-sent/mail-sent.sort.js +19 -0
- package/dist/mail-sent/mail-sent.sort.js.map +1 -0
- package/dist/mcp/filters/mcp-challenge.filter.d.ts +20 -0
- package/dist/mcp/filters/mcp-challenge.filter.d.ts.map +1 -0
- package/dist/mcp/filters/mcp-challenge.filter.js +69 -0
- package/dist/mcp/filters/mcp-challenge.filter.js.map +1 -0
- package/dist/mcp/guards/mcp-auth.guard.d.ts +4 -1
- package/dist/mcp/guards/mcp-auth.guard.d.ts.map +1 -1
- package/dist/mcp/guards/mcp-auth.guard.js +19 -5
- package/dist/mcp/guards/mcp-auth.guard.js.map +1 -1
- package/dist/mcp/guards/mcp-permission.guard.d.ts +25 -3
- package/dist/mcp/guards/mcp-permission.guard.d.ts.map +1 -1
- package/dist/mcp/guards/mcp-permission.guard.js +46 -26
- package/dist/mcp/guards/mcp-permission.guard.js.map +1 -1
- package/dist/mcp/mcp-audit.service.d.ts +17 -0
- package/dist/mcp/mcp-audit.service.d.ts.map +1 -1
- package/dist/mcp/mcp-audit.service.js +32 -3
- package/dist/mcp/mcp-audit.service.js.map +1 -1
- package/dist/mcp/mcp-permission.service.d.ts +64 -0
- package/dist/mcp/mcp-permission.service.d.ts.map +1 -0
- package/dist/mcp/mcp-permission.service.js +178 -0
- package/dist/mcp/mcp-permission.service.js.map +1 -0
- package/dist/mcp/mcp-server.service.d.ts +3 -1
- package/dist/mcp/mcp-server.service.d.ts.map +1 -1
- package/dist/mcp/mcp-server.service.js +36 -15
- package/dist/mcp/mcp-server.service.js.map +1 -1
- package/dist/mcp/mcp.controller.d.ts.map +1 -1
- package/dist/mcp/mcp.controller.js +10 -2
- package/dist/mcp/mcp.controller.js.map +1 -1
- package/dist/mcp/mcp.module.d.ts.map +1 -1
- package/dist/mcp/mcp.module.js +7 -1
- package/dist/mcp/mcp.module.js.map +1 -1
- package/dist/mcp/tools/core-access-log.mcp-tools.d.ts +17 -0
- package/dist/mcp/tools/core-access-log.mcp-tools.d.ts.map +1 -0
- package/dist/mcp/tools/core-access-log.mcp-tools.js +74 -0
- package/dist/mcp/tools/core-access-log.mcp-tools.js.map +1 -0
- package/dist/mcp/tools/core-ai.mcp-tools.js +2 -9
- package/dist/mcp/tools/core-ai.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-dashboard-items.mcp-tools.js +1 -1
- package/dist/mcp/tools/core-dashboard-items.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-dashboard.mcp-tools.js +2 -9
- package/dist/mcp/tools/core-dashboard.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-event-webhooks.mcp-tools.d.ts.map +1 -1
- package/dist/mcp/tools/core-event-webhooks.mcp-tools.js +2 -10
- package/dist/mcp/tools/core-event-webhooks.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-files.mcp-tools.d.ts +17 -5
- package/dist/mcp/tools/core-files.mcp-tools.d.ts.map +1 -1
- package/dist/mcp/tools/core-files.mcp-tools.js +186 -24
- package/dist/mcp/tools/core-files.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-integration-events.mcp-tools.js +2 -9
- package/dist/mcp/tools/core-integration-events.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-mail-sent.mcp-tools.js +2 -14
- package/dist/mcp/tools/core-mail-sent.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-mail.mcp-tools.js +2 -9
- package/dist/mcp/tools/core-mail.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-menus.mcp-tools.d.ts.map +1 -1
- package/dist/mcp/tools/core-menus.mcp-tools.js +2 -10
- package/dist/mcp/tools/core-menus.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-notifications.mcp-tools.d.ts.map +1 -1
- package/dist/mcp/tools/core-notifications.mcp-tools.js +0 -1
- package/dist/mcp/tools/core-notifications.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-roles.mcp-tools.d.ts.map +1 -1
- package/dist/mcp/tools/core-roles.mcp-tools.js +2 -13
- package/dist/mcp/tools/core-roles.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-routes.mcp-tools.d.ts.map +1 -1
- package/dist/mcp/tools/core-routes.mcp-tools.js +2 -11
- package/dist/mcp/tools/core-routes.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-screens.mcp-tools.d.ts.map +1 -1
- package/dist/mcp/tools/core-screens.mcp-tools.js +2 -11
- package/dist/mcp/tools/core-screens.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-sessions.mcp-tools.d.ts.map +1 -1
- package/dist/mcp/tools/core-sessions.mcp-tools.js +0 -2
- package/dist/mcp/tools/core-sessions.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-settings.mcp-tools.d.ts.map +1 -1
- package/dist/mcp/tools/core-settings.mcp-tools.js +2 -10
- package/dist/mcp/tools/core-settings.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-users.mcp-tools.js +2 -9
- package/dist/mcp/tools/core-users.mcp-tools.js.map +1 -1
- package/dist/mcp/tools/core-webhooks.mcp-tools.d.ts.map +1 -1
- package/dist/mcp/tools/core-webhooks.mcp-tools.js +2 -10
- package/dist/mcp/tools/core-webhooks.mcp-tools.js.map +1 -1
- package/dist/mcp/types/mcp-context.type.d.ts +9 -0
- package/dist/mcp/types/mcp-context.type.d.ts.map +1 -1
- package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
- package/dist/mcp-chat/mcp-chat.service.js +8 -0
- package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
- package/dist/meeting/meeting-provider.registry.d.ts +187 -0
- package/dist/meeting/meeting-provider.registry.d.ts.map +1 -1
- package/dist/meeting/meeting-provider.registry.js.map +1 -1
- package/dist/meeting/meeting.constants.d.ts +70 -0
- package/dist/meeting/meeting.constants.d.ts.map +1 -1
- package/dist/meeting/meeting.constants.js +9 -1
- package/dist/meeting/meeting.constants.js.map +1 -1
- package/dist/menu/menu.service.d.ts.map +1 -1
- package/dist/menu/menu.service.js +29 -9
- package/dist/menu/menu.service.js.map +1 -1
- package/dist/message-template/dto/update-message-template.dto.d.ts +18 -0
- package/dist/message-template/dto/update-message-template.dto.d.ts.map +1 -0
- package/dist/message-template/dto/update-message-template.dto.js +38 -0
- package/dist/message-template/dto/update-message-template.dto.js.map +1 -0
- package/dist/message-template/message-template-admin.service.d.ts +70 -0
- package/dist/message-template/message-template-admin.service.d.ts.map +1 -0
- package/dist/message-template/message-template-admin.service.js +226 -0
- package/dist/message-template/message-template-admin.service.js.map +1 -0
- package/dist/message-template/message-template.controller.d.ts +29 -0
- package/dist/message-template/message-template.controller.d.ts.map +1 -0
- package/dist/message-template/message-template.controller.js +101 -0
- package/dist/message-template/message-template.controller.js.map +1 -0
- package/dist/message-template/message-template.module.d.ts +10 -0
- package/dist/message-template/message-template.module.d.ts.map +1 -0
- package/dist/message-template/message-template.module.js +33 -0
- package/dist/message-template/message-template.module.js.map +1 -0
- package/dist/message-template/message-template.registry.d.ts +55 -0
- package/dist/message-template/message-template.registry.d.ts.map +1 -0
- package/dist/message-template/message-template.registry.js +64 -0
- package/dist/message-template/message-template.registry.js.map +1 -0
- package/dist/message-template/message-template.service.d.ts +59 -0
- package/dist/message-template/message-template.service.d.ts.map +1 -0
- package/dist/message-template/message-template.service.js +166 -0
- package/dist/message-template/message-template.service.js.map +1 -0
- package/dist/notification/notification.constants.d.ts +11 -0
- package/dist/notification/notification.constants.d.ts.map +1 -0
- package/dist/notification/notification.constants.js +14 -0
- package/dist/notification/notification.constants.js.map +1 -0
- package/dist/notification/notification.controller.d.ts +20 -20
- package/dist/notification/notification.module.d.ts.map +1 -1
- package/dist/notification/notification.module.js +3 -0
- package/dist/notification/notification.module.js.map +1 -1
- package/dist/notification/notification.service.d.ts +33 -21
- package/dist/notification/notification.service.d.ts.map +1 -1
- package/dist/notification/notification.service.js +36 -2
- package/dist/notification/notification.service.js.map +1 -1
- package/dist/oauth/oauth-token-broker.service.d.ts +50 -1
- package/dist/oauth/oauth-token-broker.service.d.ts.map +1 -1
- package/dist/oauth/oauth-token-broker.service.js +105 -3
- package/dist/oauth/oauth-token-broker.service.js.map +1 -1
- package/dist/oauth/oauth.controller.d.ts +4 -6
- package/dist/oauth/oauth.controller.d.ts.map +1 -1
- package/dist/oauth/oauth.controller.js +0 -1
- package/dist/oauth/oauth.controller.js.map +1 -1
- package/dist/oauth/oauth.errors.d.ts +15 -1
- package/dist/oauth/oauth.errors.d.ts.map +1 -1
- package/dist/oauth/oauth.errors.js +9 -1
- package/dist/oauth/oauth.errors.js.map +1 -1
- package/dist/oauth/oauth.module.d.ts.map +1 -1
- package/dist/oauth/oauth.module.js +6 -1
- package/dist/oauth/oauth.module.js.map +1 -1
- package/dist/oauth/oauth.service.d.ts +25 -5
- package/dist/oauth/oauth.service.d.ts.map +1 -1
- package/dist/oauth/oauth.service.js +63 -27
- package/dist/oauth/oauth.service.js.map +1 -1
- package/dist/oauth/providers/abstract.provider.d.ts +10 -0
- package/dist/oauth/providers/abstract.provider.d.ts.map +1 -1
- package/dist/oauth/providers/abstract.provider.js +39 -12
- package/dist/oauth/providers/abstract.provider.js.map +1 -1
- package/dist/oauth/providers/github.provider.d.ts +1 -1
- package/dist/oauth/providers/github.provider.d.ts.map +1 -1
- package/dist/oauth/providers/github.provider.js +48 -22
- package/dist/oauth/providers/github.provider.js.map +1 -1
- package/dist/oauth/providers/microsoft-entra-id.provider.d.ts +6 -0
- package/dist/oauth/providers/microsoft-entra-id.provider.d.ts.map +1 -1
- package/dist/oauth/providers/microsoft-entra-id.provider.js +36 -4
- package/dist/oauth/providers/microsoft-entra-id.provider.js.map +1 -1
- package/dist/observability/monitored-cron.d.ts +29 -12
- package/dist/observability/monitored-cron.d.ts.map +1 -1
- package/dist/observability/monitored-cron.js +131 -46
- package/dist/observability/monitored-cron.js.map +1 -1
- package/dist/pairing/pairing.service.d.ts +6 -2
- package/dist/pairing/pairing.service.d.ts.map +1 -1
- package/dist/pdf/document/charts/chart-bar.d.ts +24 -0
- package/dist/pdf/document/charts/chart-bar.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-bar.js +117 -0
- package/dist/pdf/document/charts/chart-bar.js.map +1 -0
- package/dist/pdf/document/charts/chart-donut.d.ts +16 -0
- package/dist/pdf/document/charts/chart-donut.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-donut.js +89 -0
- package/dist/pdf/document/charts/chart-donut.js.map +1 -0
- package/dist/pdf/document/charts/chart-gauge.d.ts +15 -0
- package/dist/pdf/document/charts/chart-gauge.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-gauge.js +60 -0
- package/dist/pdf/document/charts/chart-gauge.js.map +1 -0
- package/dist/pdf/document/charts/chart-line.d.ts +29 -0
- package/dist/pdf/document/charts/chart-line.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-line.js +89 -0
- package/dist/pdf/document/charts/chart-line.js.map +1 -0
- package/dist/pdf/document/charts/chart-primitives.d.ts +64 -0
- package/dist/pdf/document/charts/chart-primitives.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-primitives.js +110 -0
- package/dist/pdf/document/charts/chart-primitives.js.map +1 -0
- package/dist/pdf/document/charts/chart-radar.d.ts +13 -0
- package/dist/pdf/document/charts/chart-radar.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-radar.js +83 -0
- package/dist/pdf/document/charts/chart-radar.js.map +1 -0
- package/dist/pdf/document/charts/chart-scale.d.ts +39 -0
- package/dist/pdf/document/charts/chart-scale.d.ts.map +1 -0
- package/dist/pdf/document/charts/chart-scale.js +118 -0
- package/dist/pdf/document/charts/chart-scale.js.map +1 -0
- package/dist/pdf/document/charts/index.d.ts +8 -0
- package/dist/pdf/document/charts/index.d.ts.map +1 -0
- package/dist/pdf/document/charts/index.js +24 -0
- package/dist/pdf/document/charts/index.js.map +1 -0
- package/dist/pdf/document/index.d.ts +8 -0
- package/dist/pdf/document/index.d.ts.map +1 -0
- package/dist/pdf/document/index.js +24 -0
- package/dist/pdf/document/index.js.map +1 -0
- package/dist/pdf/document/pdf-document.chrome.d.ts +20 -0
- package/dist/pdf/document/pdf-document.chrome.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.chrome.js +36 -0
- package/dist/pdf/document/pdf-document.chrome.js.map +1 -0
- package/dist/pdf/document/pdf-document.css.d.ts +20 -0
- package/dist/pdf/document/pdf-document.css.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.css.js +239 -0
- package/dist/pdf/document/pdf-document.css.js.map +1 -0
- package/dist/pdf/document/pdf-document.renderer.d.ts +10 -0
- package/dist/pdf/document/pdf-document.renderer.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.renderer.js +153 -0
- package/dist/pdf/document/pdf-document.renderer.js.map +1 -0
- package/dist/pdf/document/pdf-document.service.d.ts +27 -0
- package/dist/pdf/document/pdf-document.service.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.service.js +81 -0
- package/dist/pdf/document/pdf-document.service.js.map +1 -0
- package/dist/pdf/document/pdf-document.theme.d.ts +41 -0
- package/dist/pdf/document/pdf-document.theme.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.theme.js +105 -0
- package/dist/pdf/document/pdf-document.theme.js.map +1 -0
- package/dist/pdf/document/pdf-document.types.d.ts +108 -0
- package/dist/pdf/document/pdf-document.types.d.ts.map +1 -0
- package/dist/pdf/document/pdf-document.types.js +18 -0
- package/dist/pdf/document/pdf-document.types.js.map +1 -0
- package/dist/pdf/pdf.module.d.ts.map +1 -1
- package/dist/pdf/pdf.module.js +3 -2
- package/dist/pdf/pdf.module.js.map +1 -1
- package/dist/pdf/pdf.service.d.ts +69 -1
- package/dist/pdf/pdf.service.d.ts.map +1 -1
- package/dist/pdf/pdf.service.js +164 -63
- package/dist/pdf/pdf.service.js.map +1 -1
- package/dist/pdf/templates/commercial-proposal.template.d.ts +96 -0
- package/dist/pdf/templates/commercial-proposal.template.d.ts.map +1 -0
- package/dist/pdf/templates/commercial-proposal.template.js +276 -0
- package/dist/pdf/templates/commercial-proposal.template.js.map +1 -0
- package/dist/profile/dto/change-password.dto.d.ts.map +1 -1
- package/dist/profile/dto/change-password.dto.js +4 -6
- package/dist/profile/dto/change-password.dto.js.map +1 -1
- package/dist/profile/profile.controller.d.ts +1 -1
- package/dist/profile/profile.service.d.ts +1 -1
- package/dist/profile/profile.service.d.ts.map +1 -1
- package/dist/profile/profile.service.js +9 -3
- package/dist/profile/profile.service.js.map +1 -1
- package/dist/realtime/realtime-tick.coalescer.d.ts +34 -0
- package/dist/realtime/realtime-tick.coalescer.d.ts.map +1 -0
- package/dist/realtime/realtime-tick.coalescer.js +60 -0
- package/dist/realtime/realtime-tick.coalescer.js.map +1 -0
- package/dist/realtime/realtime.service.d.ts +2 -0
- package/dist/realtime/realtime.service.d.ts.map +1 -1
- package/dist/realtime/realtime.service.js +22 -2
- package/dist/realtime/realtime.service.js.map +1 -1
- package/dist/redis/redis-kv.service.d.ts +90 -0
- package/dist/redis/redis-kv.service.d.ts.map +1 -0
- package/dist/redis/redis-kv.service.js +247 -0
- package/dist/redis/redis-kv.service.js.map +1 -0
- package/dist/redis/redis-master.d.ts +29 -0
- package/dist/redis/redis-master.d.ts.map +1 -0
- package/dist/redis/redis-master.js +81 -0
- package/dist/redis/redis-master.js.map +1 -0
- package/dist/redis/redis-pubsub.d.ts +12 -0
- package/dist/redis/redis-pubsub.d.ts.map +1 -1
- package/dist/redis/redis-pubsub.js +25 -2
- package/dist/redis/redis-pubsub.js.map +1 -1
- package/dist/redis/redis.module.d.ts +11 -0
- package/dist/redis/redis.module.d.ts.map +1 -0
- package/dist/redis/redis.module.js +30 -0
- package/dist/redis/redis.module.js.map +1 -0
- package/dist/session/session.controller.d.ts +6 -2
- package/dist/session/session.controller.d.ts.map +1 -1
- package/dist/session/session.service.d.ts +118 -15
- package/dist/session/session.service.d.ts.map +1 -1
- package/dist/session/session.service.js +251 -77
- package/dist/session/session.service.js.map +1 -1
- package/dist/setting/favicon.controller.d.ts +26 -0
- package/dist/setting/favicon.controller.d.ts.map +1 -0
- package/dist/setting/favicon.controller.js +130 -0
- package/dist/setting/favicon.controller.js.map +1 -0
- package/dist/setting/setting.controller.d.ts +5 -0
- package/dist/setting/setting.controller.d.ts.map +1 -1
- package/dist/setting/setting.module.d.ts.map +1 -1
- package/dist/setting/setting.module.js +2 -1
- package/dist/setting/setting.module.js.map +1 -1
- package/dist/setting/setting.service.d.ts +7 -0
- package/dist/setting/setting.service.d.ts.map +1 -1
- package/dist/setting/setting.service.js +38 -3
- package/dist/setting/setting.service.js.map +1 -1
- package/dist/task/task.service.d.ts +17 -0
- package/dist/task/task.service.d.ts.map +1 -1
- package/dist/task/task.service.js +48 -13
- package/dist/task/task.service.js.map +1 -1
- package/dist/token/token.service.d.ts +19 -1
- package/dist/token/token.service.d.ts.map +1 -1
- package/dist/token/token.service.js +39 -2
- package/dist/token/token.service.js.map +1 -1
- package/dist/user/user-credential.util.d.ts +10 -0
- package/dist/user/user-credential.util.d.ts.map +1 -1
- package/dist/user/user-credential.util.js +14 -1
- package/dist/user/user-credential.util.js.map +1 -1
- package/dist/user/user.service.d.ts +12 -4
- package/dist/user/user.service.d.ts.map +1 -1
- package/dist/user/user.service.js +2 -11
- package/dist/user/user.service.js.map +1 -1
- package/dist/user/user.sort.d.ts +16 -0
- package/dist/user/user.sort.d.ts.map +1 -0
- package/dist/user/user.sort.js +25 -0
- package/dist/user/user.sort.js.map +1 -0
- package/dist/utils/abbreviate-name.d.ts +13 -0
- package/dist/utils/abbreviate-name.d.ts.map +1 -0
- package/dist/utils/abbreviate-name.js +42 -0
- package/dist/utils/abbreviate-name.js.map +1 -0
- package/dist/utils/date-range-query.dto.d.ts +11 -0
- package/dist/utils/date-range-query.dto.d.ts.map +1 -0
- package/dist/utils/date-range-query.dto.js +63 -0
- package/dist/utils/date-range-query.dto.js.map +1 -0
- package/dist/utils/date-range.d.ts +96 -0
- package/dist/utils/date-range.d.ts.map +1 -0
- package/dist/utils/date-range.js +172 -0
- package/dist/utils/date-range.js.map +1 -0
- package/dist/webhook-integration/webhook-utils.d.ts.map +1 -1
- package/dist/webhook-integration/webhook-utils.js +24 -0
- package/dist/webhook-integration/webhook-utils.js.map +1 -1
- package/dist/whatsapp-sender/whatsapp-recipients.d.ts +49 -0
- package/dist/whatsapp-sender/whatsapp-recipients.d.ts.map +1 -0
- package/dist/whatsapp-sender/whatsapp-recipients.js +66 -0
- package/dist/whatsapp-sender/whatsapp-recipients.js.map +1 -0
- package/dist/whatsapp-sender/whatsapp-sender.service.d.ts +25 -0
- package/dist/whatsapp-sender/whatsapp-sender.service.d.ts.map +1 -1
- package/dist/whatsapp-sender/whatsapp-sender.service.js +71 -7
- package/dist/whatsapp-sender/whatsapp-sender.service.js.map +1 -1
- package/hedhog/data/integration_provider.yaml +9 -0
- package/hedhog/data/integration_type.yaml +12 -0
- package/hedhog/data/locale.yaml +0 -1
- package/hedhog/data/mail.yaml +2 -2
- package/hedhog/data/mail_layout.yaml +6 -3
- package/hedhog/data/menu.yaml +25 -5
- package/hedhog/data/route.yaml +148 -0
- package/hedhog/data/setting_group.yaml +189 -3
- package/hedhog/frontend/app/access-log/page.tsx.ejs +47 -53
- package/hedhog/frontend/app/account/components/active-sessions.tsx.ejs +33 -8
- package/hedhog/frontend/app/account/components/mcp-tokens.tsx.ejs +54 -13
- package/hedhog/frontend/app/account/components/mfa-method-card.tsx.ejs +7 -1
- package/hedhog/frontend/app/account/components/recovery-codes-dialog.tsx.ejs +1 -0
- package/hedhog/frontend/app/account/components/tokens.tsx.ejs +47 -17
- package/hedhog/frontend/app/ai_agent/page.tsx.ejs +46 -5
- package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-form.tsx.ejs +101 -30
- package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-versions.tsx.ejs +24 -8
- package/hedhog/frontend/app/ai_instruction/page.tsx.ejs +80 -15
- package/hedhog/frontend/app/configurations/[slug]/components/image-optimization-action.tsx.ejs +166 -0
- package/hedhog/frontend/app/configurations/[slug]/components/setting-field.test.tsx.ejs +145 -45
- package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +99 -219
- package/hedhog/frontend/app/configurations/[slug]/page.tsx.ejs +19 -1
- package/hedhog/frontend/app/configurations/layout.tsx.ejs +19 -5
- package/hedhog/frontend/app/dashboard/[slug]/widget-renderer.tsx.ejs +2 -8
- package/hedhog/frontend/app/dashboard/components/dynamic-widget.tsx.ejs +3 -0
- package/hedhog/frontend/app/dashboard/components/widget-wrapper.tsx.ejs +4 -0
- package/hedhog/frontend/app/dashboard/dashboard-home-tabs.tsx.ejs +43 -44
- package/hedhog/frontend/app/dashboard/management/tabs/component-roles-tab.tsx.ejs +41 -3
- package/hedhog/frontend/app/dashboard/management/tabs/components-tab.tsx.ejs +42 -2
- package/hedhog/frontend/app/dashboard/management/tabs/dashboard-roles-tab.tsx.ejs +41 -3
- package/hedhog/frontend/app/dashboard/management/tabs/dashboards-tab.tsx.ejs +39 -4
- package/hedhog/frontend/app/dashboard/management/tabs/items-tab.tsx.ejs +42 -3
- package/hedhog/frontend/app/incidents/page.tsx.ejs +60 -31
- package/hedhog/frontend/app/integration/profiles/page.tsx.ejs +45 -5
- package/hedhog/frontend/app/integrations-webhooks/page.tsx.ejs +92 -15
- package/hedhog/frontend/app/mail/log/page.tsx.ejs +109 -61
- package/hedhog/frontend/app/mail/template/page.tsx.ejs +125 -23
- package/hedhog/frontend/app/mcp_chat/chat-components.tsx.ejs +13 -15
- package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +116 -110
- package/hedhog/frontend/app/message-templates/_components/message-template-sheet.tsx.ejs +245 -0
- package/hedhog/frontend/app/message-templates/_lib/types.ts.ejs +24 -0
- package/hedhog/frontend/app/message-templates/page.tsx.ejs +182 -0
- package/hedhog/frontend/app/pages/_components/page-wizard-sheet.tsx.ejs +1 -0
- package/hedhog/frontend/app/pages/page.tsx.ejs +94 -9
- package/hedhog/frontend/app/roles/menus.tsx.ejs +4 -4
- package/hedhog/frontend/app/roles/routes.tsx.ejs +4 -4
- package/hedhog/frontend/app/roles/users.tsx.ejs +4 -4
- package/hedhog/frontend/app/setting-list/page.tsx.ejs +71 -9
- package/hedhog/frontend/app/users/page.tsx.ejs +77 -67
- package/hedhog/frontend/messages/en.json +237 -37
- package/hedhog/frontend/messages/pt.json +237 -37
- package/hedhog/table/cron_lock.yaml +17 -0
- package/hedhog/table/file.yaml +13 -1
- package/hedhog/table/file_upload_chunk.yaml +23 -0
- package/hedhog/table/file_upload_ticket.yaml +67 -0
- package/hedhog/table/mcp_tool_call_log.yaml +30 -22
- package/hedhog/table/message_template.yaml +33 -0
- package/hedhog/table/setting.yaml +8 -0
- package/hedhog/table/user_session.yaml +36 -1
- package/package.json +5 -3
- package/src/ai/ai-agent.sort.ts +21 -0
- package/src/ai/ai-attachment.fragments.spec.ts +56 -3
- package/src/ai/ai.service.responses.spec.ts +429 -0
- package/src/ai/ai.service.spec.ts +173 -1
- package/src/ai/ai.service.ts +473 -220
- package/src/ai-instruction/ai-instruction.service.ts +32 -28
- package/src/ai-instruction/ai-instruction.sort.ts +32 -0
- package/src/ai-instruction/ai-prompt-resolver.service.spec.ts +44 -0
- package/src/ai-instruction/ai-prompt-resolver.service.ts +29 -0
- package/src/auth/auth.module.ts +8 -1
- package/src/auth/auth.service.spec.ts +108 -1
- package/src/auth/auth.service.ts +59 -5
- package/src/auth/guards/auth.guard.ts +9 -1
- package/src/authorize/authorize.controller.ts +126 -11
- package/src/authorize/authorize.errors.ts +55 -0
- package/src/authorize/authorize.module.ts +6 -1
- package/src/authorize/authorize.service.spec.ts +379 -7
- package/src/authorize/authorize.service.ts +309 -23
- package/src/authorize/dto/authorize-info.dto.ts +21 -3
- package/src/authorize/dto/consent.dto.ts +21 -3
- package/src/authorize/dto/token.dto.ts +24 -2
- package/src/authorize/oauth-exception.filter.ts +58 -0
- package/src/authorize/oauth-metadata.service.ts +67 -0
- package/src/authorize/well-known.controller.spec.ts +84 -0
- package/src/authorize/well-known.controller.ts +96 -0
- package/src/captcha/captcha.service.spec.ts +211 -4
- package/src/captcha/captcha.service.ts +127 -10
- package/src/core.module.ts +9 -0
- package/src/dashboard/dashboard-component-role/dashboard-component-role.service.ts +2 -3
- package/src/dashboard/dashboard-component-role/dashboard-component-role.sort.ts +18 -0
- package/src/dashboard/dashboard-item/dashboard-item.service.ts +2 -3
- package/src/dashboard/dashboard-item/dashboard-item.sort.ts +19 -0
- package/src/dashboard/dashboard-role/dashboard-role.service.ts +2 -3
- package/src/dashboard/dashboard-role/dashboard-role.sort.ts +16 -0
- package/src/document-kit/document-kit.module.ts +12 -0
- package/src/document-kit/document-kit.registry.ts +125 -0
- package/src/document-kit/document-kit.service.spec.ts +156 -0
- package/src/document-kit/document-kit.service.ts +173 -0
- package/src/file/file-upload-ticket.service.spec.ts +422 -0
- package/src/file/file-upload-ticket.service.ts +513 -0
- package/src/file/file.controller.ts +65 -0
- package/src/file/file.module.ts +14 -2
- package/src/file/file.service.spec.ts +262 -1
- package/src/file/file.service.ts +505 -87
- package/src/file/filename-encoding.util.spec.ts +54 -0
- package/src/file/filename-encoding.util.ts +67 -0
- package/src/file/image-optimization.service.spec.ts +156 -19
- package/src/file/image-optimization.service.ts +106 -21
- package/src/file/mcp-file-source.schema.ts +86 -0
- package/src/file/mcp-file-source.service.spec.ts +473 -0
- package/src/file/mcp-file-source.service.ts +445 -0
- package/src/file/mimetype-sniff.util.spec.ts +126 -0
- package/src/file/mimetype-sniff.util.ts +265 -0
- package/src/file/remote-fetch.util.spec.ts +117 -0
- package/src/file/remote-fetch.util.ts +330 -0
- package/src/impersonation/dto/start-impersonation.dto.ts +5 -2
- package/src/impersonation/impersonation.service.spec.ts +24 -1
- package/src/impersonation/impersonation.service.ts +14 -4
- package/src/incident/incident.controller.ts +9 -1
- package/src/incident/incident.service.ts +7 -0
- package/src/index.ts +23 -1
- package/src/integration-profile/integration-profile.secrets.ts +28 -0
- package/src/integration-profile/integration-profile.service.ts +7 -64
- package/src/integration-profile/integration-profile.utils.spec.ts +9 -0
- package/src/integration-profile/integration-profile.utils.ts +5 -5
- package/src/integration-profile/testers/ai.testers.ts +70 -5
- package/src/integration-profile/testers/index.ts +2 -0
- package/src/integration-profile/testers/remaining.testers.spec.ts +144 -1
- package/src/integration-profile/testers/shipping.testers.ts +94 -0
- package/src/integration-profile/testers/tester-coverage.spec.ts +10 -0
- package/src/mail/dto/send.dto.ts +6 -1
- package/src/mail/mail-template.spec.ts +58 -1
- package/src/mail/mail.service.spec.ts +112 -0
- package/src/mail/mail.service.ts +42 -4
- package/src/mail-sent/mail-sent.service.ts +3 -0
- package/src/mail-sent/mail-sent.sort.ts +19 -0
- package/src/mcp/filters/mcp-challenge.filter.spec.ts +76 -0
- package/src/mcp/filters/mcp-challenge.filter.ts +70 -0
- package/src/mcp/guards/mcp-auth.guard.spec.ts +51 -2
- package/src/mcp/guards/mcp-auth.guard.ts +24 -1
- package/src/mcp/guards/mcp-permission.guard.spec.ts +109 -15
- package/src/mcp/guards/mcp-permission.guard.ts +76 -51
- package/src/mcp/mcp-audit.service.spec.ts +107 -0
- package/src/mcp/mcp-audit.service.ts +37 -1
- package/src/mcp/mcp-permission.service.spec.ts +197 -0
- package/src/mcp/mcp-permission.service.ts +184 -0
- package/src/mcp/mcp-server.service.spec.ts +84 -2
- package/src/mcp/mcp-server.service.ts +111 -87
- package/src/mcp/mcp.controller.ts +8 -1
- package/src/mcp/mcp.module.ts +7 -1
- package/src/mcp/tools/core-access-log.mcp-tools.ts +66 -0
- package/src/mcp/tools/core-ai.mcp-tools.ts +1 -1
- package/src/mcp/tools/core-dashboard-items.mcp-tools.ts +1 -1
- package/src/mcp/tools/core-dashboard.mcp-tools.ts +1 -1
- package/src/mcp/tools/core-event-webhooks.mcp-tools.ts +1 -2
- package/src/mcp/tools/core-files.mcp-tools.ts +202 -22
- package/src/mcp/tools/core-integration-events.mcp-tools.ts +1 -1
- package/src/mcp/tools/core-mail-sent.mcp-tools.ts +1 -1
- package/src/mcp/tools/core-mail.mcp-tools.ts +1 -1
- package/src/mcp/tools/core-menus.mcp-tools.ts +1 -2
- package/src/mcp/tools/core-notifications.mcp-tools.ts +0 -1
- package/src/mcp/tools/core-roles.mcp-tools.ts +1 -5
- package/src/mcp/tools/core-routes.mcp-tools.ts +1 -3
- package/src/mcp/tools/core-screens.mcp-tools.ts +1 -3
- package/src/mcp/tools/core-sessions.mcp-tools.ts +0 -2
- package/src/mcp/tools/core-settings.mcp-tools.ts +1 -2
- package/src/mcp/tools/core-users.mcp-tools.ts +1 -1
- package/src/mcp/tools/core-webhooks.mcp-tools.ts +1 -2
- package/src/mcp/types/mcp-context.type.ts +15 -6
- package/src/mcp-chat/mcp-chat.service.ts +8 -0
- package/src/meeting/meeting-provider.registry.ts +201 -0
- package/src/meeting/meeting.constants.ts +74 -0
- package/src/menu/menu.service.spec.ts +89 -0
- package/src/menu/menu.service.ts +29 -11
- package/src/message-template/dto/update-message-template.dto.ts +22 -0
- package/src/message-template/message-template-admin.service.spec.ts +163 -0
- package/src/message-template/message-template-admin.service.ts +239 -0
- package/src/message-template/message-template.controller.ts +52 -0
- package/src/message-template/message-template.module.ts +21 -0
- package/src/message-template/message-template.registry.spec.ts +62 -0
- package/src/message-template/message-template.registry.ts +125 -0
- package/src/message-template/message-template.service.spec.ts +149 -0
- package/src/message-template/message-template.service.ts +149 -0
- package/src/notification/notification.constants.ts +10 -0
- package/src/notification/notification.module.ts +3 -0
- package/src/notification/notification.service.spec.ts +75 -1
- package/src/notification/notification.service.ts +39 -1
- package/src/oauth/oauth-token-broker.service.spec.ts +108 -0
- package/src/oauth/oauth-token-broker.service.ts +129 -2
- package/src/oauth/oauth.controller.ts +0 -1
- package/src/oauth/oauth.errors.ts +7 -0
- package/src/oauth/oauth.module.ts +6 -1
- package/src/oauth/oauth.service.spec.ts +58 -7
- package/src/oauth/oauth.service.ts +71 -32
- package/src/oauth/providers/abstract.provider.spec.ts +192 -0
- package/src/oauth/providers/abstract.provider.ts +46 -14
- package/src/oauth/providers/github.provider.ts +57 -34
- package/src/oauth/providers/microsoft-entra-id.provider.spec.ts +133 -0
- package/src/oauth/providers/microsoft-entra-id.provider.ts +37 -3
- package/src/observability/monitored-cron.spec.ts +164 -31
- package/src/observability/monitored-cron.ts +154 -62
- package/src/pdf/document/charts/chart-bar.ts +217 -0
- package/src/pdf/document/charts/chart-donut.ts +163 -0
- package/src/pdf/document/charts/chart-gauge.ts +94 -0
- package/src/pdf/document/charts/chart-line.ts +159 -0
- package/src/pdf/document/charts/chart-primitives.ts +188 -0
- package/src/pdf/document/charts/chart-radar.ts +136 -0
- package/src/pdf/document/charts/chart-scale.spec.ts +93 -0
- package/src/pdf/document/charts/chart-scale.ts +141 -0
- package/src/pdf/document/charts/charts.spec.ts +157 -0
- package/src/pdf/document/charts/index.ts +7 -0
- package/src/pdf/document/index.ts +7 -0
- package/src/pdf/document/pdf-document.chrome.ts +38 -0
- package/src/pdf/document/pdf-document.css.ts +238 -0
- package/src/pdf/document/pdf-document.renderer.spec.ts +129 -0
- package/src/pdf/document/pdf-document.renderer.ts +215 -0
- package/src/pdf/document/pdf-document.service.ts +77 -0
- package/src/pdf/document/pdf-document.theme.ts +146 -0
- package/src/pdf/document/pdf-document.types.ts +97 -0
- package/src/pdf/pdf.module.ts +3 -2
- package/src/pdf/pdf.service.spec.ts +131 -0
- package/src/pdf/pdf.service.ts +245 -82
- package/src/pdf/templates/commercial-proposal.template.spec.ts +177 -0
- package/src/pdf/templates/commercial-proposal.template.ts +400 -0
- package/src/profile/dto/change-password.dto.ts +25 -7
- package/src/profile/profile.service.spec.ts +97 -0
- package/src/profile/profile.service.ts +9 -3
- package/src/realtime/realtime-tick.coalescer.spec.ts +92 -0
- package/src/realtime/realtime-tick.coalescer.ts +60 -0
- package/src/realtime/realtime.service.spec.ts +33 -0
- package/src/realtime/realtime.service.ts +28 -2
- package/src/redis/redis-kv.service.ts +261 -0
- package/src/redis/redis-master.spec.ts +111 -0
- package/src/redis/redis-master.ts +86 -0
- package/src/redis/redis-pubsub.ts +27 -3
- package/src/redis/redis.module.ts +17 -0
- package/src/session/session.service.spec.ts +121 -42
- package/src/session/session.service.ts +279 -82
- package/src/setting/favicon.controller.spec.ts +92 -0
- package/src/setting/favicon.controller.ts +135 -0
- package/src/setting/setting.module.ts +2 -1
- package/src/setting/setting.service.ts +44 -3
- package/src/task/task.service.spec.ts +41 -0
- package/src/task/task.service.ts +53 -13
- package/src/token/token.service.spec.ts +90 -0
- package/src/token/token.service.ts +48 -2
- package/src/user/user-credential.util.ts +14 -5
- package/src/user/user.service.ts +2 -12
- package/src/user/user.sort.ts +25 -0
- package/src/utils/abbreviate-name.spec.ts +50 -0
- package/src/utils/abbreviate-name.ts +44 -0
- package/src/utils/date-range-query.dto.ts +56 -0
- package/src/utils/date-range.spec.ts +175 -0
- package/src/utils/date-range.ts +246 -0
- package/src/webhook-integration/webhook-utils.spec.ts +67 -0
- package/src/webhook-integration/webhook-utils.ts +26 -0
- package/src/whatsapp-sender/whatsapp-recipients.spec.ts +89 -0
- package/src/whatsapp-sender/whatsapp-recipients.ts +83 -0
- package/src/whatsapp-sender/whatsapp-sender.service.spec.ts +185 -0
- package/src/whatsapp-sender/whatsapp-sender.service.ts +90 -7
- package/hedhog/query/device_pairing_request.sql +0 -46
- package/hedhog/query/impersonation_grant.sql +0 -71
- package/hedhog/query/oauth_authorize_pkce.sql +0 -58
- package/hedhog/query/oauth_mobile_state_token.sql +0 -30
- package/hedhog/query/oauth_web_ref_token.sql +0 -25
|
@@ -17,14 +17,16 @@ const api_prisma_1 = require("@hed-hog/api-prisma");
|
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
18
|
const core_1 = require("@nestjs/core");
|
|
19
19
|
const allow_mcp_token_decorator_1 = require("../../mcp/decorators/allow-mcp-token.decorator");
|
|
20
|
+
const oauth_metadata_service_1 = require("../../authorize/oauth-metadata.service");
|
|
20
21
|
const security_service_1 = require("../../security/security.service");
|
|
21
22
|
const token_service_1 = require("../../token/token.service");
|
|
22
23
|
let AuthGuard = AuthGuard_1 = class AuthGuard {
|
|
23
|
-
constructor(token, reflector, prisma, security) {
|
|
24
|
+
constructor(token, reflector, prisma, security, oauthMetadata) {
|
|
24
25
|
this.token = token;
|
|
25
26
|
this.reflector = reflector;
|
|
26
27
|
this.prisma = prisma;
|
|
27
28
|
this.security = security;
|
|
29
|
+
this.oauthMetadata = oauthMetadata;
|
|
28
30
|
this.logger = new common_1.Logger(AuthGuard_1.name);
|
|
29
31
|
}
|
|
30
32
|
async canActivate(context) {
|
|
@@ -82,7 +84,13 @@ let AuthGuard = AuthGuard_1 = class AuthGuard {
|
|
|
82
84
|
}
|
|
83
85
|
}
|
|
84
86
|
try {
|
|
85
|
-
|
|
87
|
+
// So o /mcp e um "recurso" com audiencia propria. Em todo o resto o terceiro
|
|
88
|
+
// argumento fica ausente de proposito: e a ausencia que faz um token de
|
|
89
|
+
// conector ser recusado no REST.
|
|
90
|
+
const allowedAudience = allowMcpToken
|
|
91
|
+
? await this.oauthMetadata.getMcpResource()
|
|
92
|
+
: undefined;
|
|
93
|
+
const payload = await this.token.verify(locale, token, allowedAudience);
|
|
86
94
|
request['auth'] = payload;
|
|
87
95
|
}
|
|
88
96
|
catch (error) {
|
|
@@ -135,6 +143,7 @@ exports.AuthGuard = AuthGuard = AuthGuard_1 = __decorate([
|
|
|
135
143
|
__metadata("design:paramtypes", [token_service_1.TokenService,
|
|
136
144
|
core_1.Reflector,
|
|
137
145
|
api_prisma_1.PrismaService,
|
|
138
|
-
security_service_1.SecurityService
|
|
146
|
+
security_service_1.SecurityService,
|
|
147
|
+
oauth_metadata_service_1.OAuthMetadataService])
|
|
139
148
|
], AuthGuard);
|
|
140
149
|
//# sourceMappingURL=auth.guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../../src/auth/guards/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sCAAsE;AACtE,oDAAoD;AACpD,oDAAoD;AACpD,2CAMwB;AACxB,uCAAyC;AAEzC,8FAAiF;AACjF,sEAAkE;AAClE,6DAAyD;AAGlD,IAAM,SAAS,iBAAf,MAAM,SAAS;IAGpB,YACU,KAAmB,EACnB,SAAoB,EACpB,MAAqB,EACrB,QAAyB;
|
|
1
|
+
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../../src/auth/guards/auth.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,37 @@
|
|
|
1
|
+
import type { Response } from 'express';
|
|
1
2
|
import { AuthorizeService } from './authorize.service';
|
|
3
|
+
import { OAuthMetadataService } from './oauth-metadata.service';
|
|
2
4
|
import { AuthorizeInfoDTO } from './dto/authorize-info.dto';
|
|
3
5
|
import { ConsentDTO } from './dto/consent.dto';
|
|
4
6
|
import { TokenDTO } from './dto/token.dto';
|
|
5
7
|
/**
|
|
6
8
|
* Endpoints do fluxo Authorization Code + PKCE.
|
|
7
9
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* POST /auth/authorize/consent
|
|
11
|
-
* `code`
|
|
10
|
+
* O `GET /auth/authorize` daqui NÃO emite o `code`: ele valida e redireciona para
|
|
11
|
+
* a tela de consent do admin, que é quem faz o redirect final depois do
|
|
12
|
+
* `POST /auth/authorize/consent`. A restrição original continua valendo — o
|
|
13
|
+
* `code` nunca passa pelo mecanismo de redirect do Nest, nem pelos seus logs.
|
|
14
|
+
*
|
|
15
|
+
* Ele existe porque um cliente OAuth padrão (o conector do Claude) espera um
|
|
16
|
+
* `authorization_endpoint` na mesma origem do `issuer`, e porque a validação de
|
|
17
|
+
* `response_type`, `scope` e `resource` tem que acontecer no servidor, antes de
|
|
18
|
+
* qualquer render — um erro precisa voltar como `error=` na query, e não como uma
|
|
19
|
+
* tela morta.
|
|
12
20
|
*/
|
|
13
21
|
export declare class AuthorizeController {
|
|
14
22
|
private readonly service;
|
|
15
|
-
|
|
23
|
+
private readonly metadata;
|
|
24
|
+
constructor(service: AuthorizeService, metadata: OAuthMetadataService);
|
|
25
|
+
/**
|
|
26
|
+
* O authorization endpoint anunciado nos metadados.
|
|
27
|
+
*
|
|
28
|
+
* A ordem de validação é normativa (RFC 6749 §4.1.2.1): `client_id` e
|
|
29
|
+
* `redirect_uri` primeiro, e falha neles NÃO redireciona — sem um redirect_uri
|
|
30
|
+
* validado, redirecionar seria mandar o usuário para onde o atacante pediu.
|
|
31
|
+
* Tudo o mais volta para o cliente como `error` na query.
|
|
32
|
+
*/
|
|
33
|
+
authorize(query: AuthorizeInfoDTO, res: Response): Promise<void>;
|
|
34
|
+
private buildErrorRedirect;
|
|
16
35
|
/**
|
|
17
36
|
* Metadados para a tela de consent. Público: a página precisa validar os
|
|
18
37
|
* parâmetros e mostrar de quem é o app ANTES de exigir login.
|
|
@@ -20,6 +39,7 @@ export declare class AuthorizeController {
|
|
|
20
39
|
authorizeInfo(query: AuthorizeInfoDTO): Promise<{
|
|
21
40
|
clientName: string;
|
|
22
41
|
scopes: string[];
|
|
42
|
+
issuer: string;
|
|
23
43
|
}>;
|
|
24
44
|
/** O usuário logado aprova. O code sai vinculado a ele. */
|
|
25
45
|
consent({ id }: {
|
|
@@ -35,9 +55,13 @@ export declare class AuthorizeController {
|
|
|
35
55
|
* seria ruído para um cliente não-browser e um vetor de CSRF a mais.
|
|
36
56
|
*/
|
|
37
57
|
token(body: TokenDTO, locale: string, ipAddress: string, userAgent: string, browserId: string): Promise<{
|
|
58
|
+
access_token: string;
|
|
38
59
|
accessToken: string;
|
|
60
|
+
refresh_token: string;
|
|
39
61
|
refreshToken: string;
|
|
62
|
+
token_type: string;
|
|
40
63
|
tokenType: string;
|
|
64
|
+
expires_in: number;
|
|
41
65
|
expiresIn: number;
|
|
42
66
|
scope: string;
|
|
43
67
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorize.controller.d.ts","sourceRoot":"","sources":["../../src/authorize/authorize.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authorize.controller.d.ts","sourceRoot":"","sources":["../../src/authorize/authorize.controller.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,qBACa,mBAAmB;IAG5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,OAAO,EAAE,gBAAgB,EAEzB,QAAQ,EAAE,oBAAoB;IAGjD;;;;;;;OAOG;IAMG,SAAS,CAAU,KAAK,EAAE,gBAAgB,EAAS,GAAG,EAAE,QAAQ;YAkCxD,kBAAkB;IAchC;;;OAGG;IAKG,aAAa,CAAU,KAAK,EAAE,gBAAgB;;;;;IA6BpD,2DAA2D;IAKrD,OAAO,CAAS,EAAE,EAAE,EAAE;;KAAA,EAAU,IAAI,EAAE,UAAU;;;IAetD;;;;;;OAMG;IAUG,KAAK,CACD,IAAI,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACA,SAAS,EAAE,MAAM,EACf,SAAS,EAAE,MAAM;;;;;;;;;;;CA0B7C"}
|
|
@@ -17,34 +17,107 @@ const api_1 = require("@hed-hog/api");
|
|
|
17
17
|
const api_locale_1 = require("@hed-hog/api-locale");
|
|
18
18
|
const common_1 = require("@nestjs/common");
|
|
19
19
|
const throttler_1 = require("@nestjs/throttler");
|
|
20
|
+
const authorize_errors_1 = require("./authorize.errors");
|
|
20
21
|
const authorize_service_1 = require("./authorize.service");
|
|
22
|
+
const oauth_metadata_service_1 = require("./oauth-metadata.service");
|
|
23
|
+
const oauth_exception_filter_1 = require("./oauth-exception.filter");
|
|
21
24
|
const authorize_info_dto_1 = require("./dto/authorize-info.dto");
|
|
22
25
|
const consent_dto_1 = require("./dto/consent.dto");
|
|
23
26
|
const token_dto_1 = require("./dto/token.dto");
|
|
24
27
|
/**
|
|
25
28
|
* Endpoints do fluxo Authorization Code + PKCE.
|
|
26
29
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* POST /auth/authorize/consent
|
|
30
|
-
* `code`
|
|
30
|
+
* O `GET /auth/authorize` daqui NÃO emite o `code`: ele valida e redireciona para
|
|
31
|
+
* a tela de consent do admin, que é quem faz o redirect final depois do
|
|
32
|
+
* `POST /auth/authorize/consent`. A restrição original continua valendo — o
|
|
33
|
+
* `code` nunca passa pelo mecanismo de redirect do Nest, nem pelos seus logs.
|
|
34
|
+
*
|
|
35
|
+
* Ele existe porque um cliente OAuth padrão (o conector do Claude) espera um
|
|
36
|
+
* `authorization_endpoint` na mesma origem do `issuer`, e porque a validação de
|
|
37
|
+
* `response_type`, `scope` e `resource` tem que acontecer no servidor, antes de
|
|
38
|
+
* qualquer render — um erro precisa voltar como `error=` na query, e não como uma
|
|
39
|
+
* tela morta.
|
|
31
40
|
*/
|
|
32
41
|
let AuthorizeController = class AuthorizeController {
|
|
33
|
-
constructor(service) {
|
|
42
|
+
constructor(service, metadata) {
|
|
34
43
|
this.service = service;
|
|
44
|
+
this.metadata = metadata;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* O authorization endpoint anunciado nos metadados.
|
|
48
|
+
*
|
|
49
|
+
* A ordem de validação é normativa (RFC 6749 §4.1.2.1): `client_id` e
|
|
50
|
+
* `redirect_uri` primeiro, e falha neles NÃO redireciona — sem um redirect_uri
|
|
51
|
+
* validado, redirecionar seria mandar o usuário para onde o atacante pediu.
|
|
52
|
+
* Tudo o mais volta para o cliente como `error` na query.
|
|
53
|
+
*/
|
|
54
|
+
async authorize(query, res) {
|
|
55
|
+
try {
|
|
56
|
+
await this.service.getAuthorizationInfo({
|
|
57
|
+
clientId: query.client_id,
|
|
58
|
+
redirectUri: query.redirect_uri,
|
|
59
|
+
scope: query.scope,
|
|
60
|
+
codeChallenge: query.code_challenge,
|
|
61
|
+
codeChallengeMethod: query.code_challenge_method,
|
|
62
|
+
responseType: query.response_type,
|
|
63
|
+
resource: query.resource,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
if (error instanceof authorize_errors_1.OAuthError && error.redirectable) {
|
|
68
|
+
return res.redirect(302, await this.buildErrorRedirect(query, error));
|
|
69
|
+
}
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
// Só parâmetros validados seguem para a tela. O `code` é emitido lá, pelo
|
|
73
|
+
// consent, e volta por um redirect do browser — não por este.
|
|
74
|
+
const consentBase = await this.metadata.getConsentUiBase();
|
|
75
|
+
const params = new URLSearchParams();
|
|
76
|
+
for (const [key, value] of Object.entries(query)) {
|
|
77
|
+
if (value !== undefined && value !== null && value !== '') {
|
|
78
|
+
params.set(key, String(value));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return res.redirect(302, `${consentBase}/auth/authorize?${params.toString()}`);
|
|
82
|
+
}
|
|
83
|
+
async buildErrorRedirect(query, error) {
|
|
84
|
+
const target = new URL(query.redirect_uri);
|
|
85
|
+
target.searchParams.set('error', error.code);
|
|
86
|
+
target.searchParams.set('error_description', error.description);
|
|
87
|
+
if (query.state)
|
|
88
|
+
target.searchParams.set('state', query.state);
|
|
89
|
+
// RFC 9207: vai também no erro, e o cliente valida antes de exibir qualquer
|
|
90
|
+
// coisa. Anunciamos `authorization_response_iss_parameter_supported`.
|
|
91
|
+
target.searchParams.set('iss', await this.metadata.getIssuer());
|
|
92
|
+
return target.toString();
|
|
35
93
|
}
|
|
36
94
|
/**
|
|
37
95
|
* Metadados para a tela de consent. Público: a página precisa validar os
|
|
38
96
|
* parâmetros e mostrar de quem é o app ANTES de exigir login.
|
|
39
97
|
*/
|
|
40
98
|
async authorizeInfo(query) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
99
|
+
try {
|
|
100
|
+
return await this.service.getAuthorizationInfo({
|
|
101
|
+
clientId: query.client_id,
|
|
102
|
+
redirectUri: query.redirect_uri,
|
|
103
|
+
scope: query.scope,
|
|
104
|
+
codeChallenge: query.code_challenge,
|
|
105
|
+
codeChallengeMethod: query.code_challenge_method,
|
|
106
|
+
responseType: query.response_type,
|
|
107
|
+
resource: query.resource,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
// Erro redirecionável volta para o cliente pelas mãos da tela, e o RFC 9207
|
|
112
|
+
// exige `iss` também nele. Mas a tela só aprende o issuer no caminho de
|
|
113
|
+
// SUCESSO desta chamada — num erro ela redirecionaria sem o parâmetro, e um
|
|
114
|
+
// cliente que o valide (nós anunciamos suportá-lo) rejeita a resposta
|
|
115
|
+
// inteira. Então o issuer viaja junto do erro.
|
|
116
|
+
if (error instanceof authorize_errors_1.OAuthError && error.redirectable) {
|
|
117
|
+
throw new authorize_errors_1.OAuthError(error.code, error.description, true, await this.metadata.getIssuer());
|
|
118
|
+
}
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
48
121
|
}
|
|
49
122
|
/** O usuário logado aprova. O code sai vinculado a ele. */
|
|
50
123
|
async consent({ id }, body) {
|
|
@@ -55,6 +128,8 @@ let AuthorizeController = class AuthorizeController {
|
|
|
55
128
|
scope: body.scope,
|
|
56
129
|
codeChallenge: body.code_challenge,
|
|
57
130
|
codeChallengeMethod: body.code_challenge_method,
|
|
131
|
+
responseType: body.response_type,
|
|
132
|
+
resource: body.resource,
|
|
58
133
|
});
|
|
59
134
|
return { code };
|
|
60
135
|
}
|
|
@@ -66,11 +141,23 @@ let AuthorizeController = class AuthorizeController {
|
|
|
66
141
|
* seria ruído para um cliente não-browser e um vetor de CSRF a mais.
|
|
67
142
|
*/
|
|
68
143
|
async token(body, locale, ipAddress, userAgent, browserId) {
|
|
144
|
+
if (body.grant_type === 'refresh_token') {
|
|
145
|
+
return this.service.exchangeRefreshToken({
|
|
146
|
+
refreshToken: body.refresh_token,
|
|
147
|
+
clientId: body.client_id,
|
|
148
|
+
resource: body.resource,
|
|
149
|
+
locale,
|
|
150
|
+
ipAddress,
|
|
151
|
+
userAgent,
|
|
152
|
+
browserId: browserId || null,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
69
155
|
return this.service.exchangeCode({
|
|
70
156
|
code: body.code,
|
|
71
157
|
codeVerifier: body.code_verifier,
|
|
72
158
|
clientId: body.client_id,
|
|
73
159
|
redirectUri: body.redirect_uri,
|
|
160
|
+
resource: body.resource,
|
|
74
161
|
locale,
|
|
75
162
|
ipAddress,
|
|
76
163
|
userAgent,
|
|
@@ -79,6 +166,18 @@ let AuthorizeController = class AuthorizeController {
|
|
|
79
166
|
}
|
|
80
167
|
};
|
|
81
168
|
exports.AuthorizeController = AuthorizeController;
|
|
169
|
+
__decorate([
|
|
170
|
+
(0, api_1.Public)(),
|
|
171
|
+
(0, common_1.UseGuards)(throttler_1.ThrottlerGuard),
|
|
172
|
+
(0, throttler_1.Throttle)({ default: { limit: 30, ttl: 60000 } }),
|
|
173
|
+
(0, common_1.UseFilters)(oauth_exception_filter_1.OAuthExceptionFilter),
|
|
174
|
+
(0, common_1.Get)('authorize'),
|
|
175
|
+
__param(0, (0, common_1.Query)()),
|
|
176
|
+
__param(1, (0, common_1.Res)()),
|
|
177
|
+
__metadata("design:type", Function),
|
|
178
|
+
__metadata("design:paramtypes", [authorize_info_dto_1.AuthorizeInfoDTO, Object]),
|
|
179
|
+
__metadata("design:returntype", Promise)
|
|
180
|
+
], AuthorizeController.prototype, "authorize", null);
|
|
82
181
|
__decorate([
|
|
83
182
|
(0, api_1.Public)(),
|
|
84
183
|
(0, common_1.UseGuards)(throttler_1.ThrottlerGuard),
|
|
@@ -104,6 +203,12 @@ __decorate([
|
|
|
104
203
|
(0, api_1.Public)(),
|
|
105
204
|
(0, common_1.UseGuards)(throttler_1.ThrottlerGuard),
|
|
106
205
|
(0, throttler_1.Throttle)({ default: { limit: 20, ttl: 60000 } }),
|
|
206
|
+
(0, common_1.UseFilters)(oauth_exception_filter_1.OAuthExceptionFilter)
|
|
207
|
+
// RFC 6749 5.1: a resposta carrega credenciais e nao pode ser cacheada. O
|
|
208
|
+
// filtro ja poe isto nos erros; aqui vale para o sucesso.
|
|
209
|
+
,
|
|
210
|
+
(0, common_1.Header)('Cache-Control', 'no-store'),
|
|
211
|
+
(0, common_1.Header)('Pragma', 'no-cache'),
|
|
107
212
|
(0, common_1.Post)('token'),
|
|
108
213
|
__param(0, (0, common_1.Body)()),
|
|
109
214
|
__param(1, (0, api_locale_1.Locale)()),
|
|
@@ -117,6 +222,8 @@ __decorate([
|
|
|
117
222
|
exports.AuthorizeController = AuthorizeController = __decorate([
|
|
118
223
|
(0, common_1.Controller)('auth'),
|
|
119
224
|
__param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => authorize_service_1.AuthorizeService))),
|
|
120
|
-
|
|
225
|
+
__param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => oauth_metadata_service_1.OAuthMetadataService))),
|
|
226
|
+
__metadata("design:paramtypes", [authorize_service_1.AuthorizeService,
|
|
227
|
+
oauth_metadata_service_1.OAuthMetadataService])
|
|
121
228
|
], AuthorizeController);
|
|
122
229
|
//# sourceMappingURL=authorize.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorize.controller.js","sourceRoot":"","sources":["../../src/authorize/authorize.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAoD;AACpD,oDAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"authorize.controller.js","sourceRoot":"","sources":["../../src/authorize/authorize.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BadRequestException } from '@nestjs/common';
|
|
2
|
+
/**
|
|
3
|
+
* Códigos de erro do RFC 6749 §4.1.2.1 e §5.2, mais o `invalid_target` do
|
|
4
|
+
* RFC 8707.
|
|
5
|
+
*/
|
|
6
|
+
export type OAuthErrorCode = 'invalid_request' | 'invalid_client' | 'invalid_grant' | 'unauthorized_client' | 'unsupported_grant_type' | 'unsupported_response_type' | 'invalid_scope' | 'invalid_target' | 'access_denied' | 'login_required' | 'server_error';
|
|
7
|
+
/**
|
|
8
|
+
* Erro do fluxo OAuth.
|
|
9
|
+
*
|
|
10
|
+
* `redirectable` decide o que acontece com ele, e a distinção é normativa
|
|
11
|
+
* (RFC 6749 §4.1.2.1): erro de `client_id` ou de `redirect_uri` **não** pode
|
|
12
|
+
* voltar para o `redirect_uri` — se ele não foi validado, redirecionar seria
|
|
13
|
+
* mandar o usuário para onde o atacante pediu. Todo o resto volta para o cliente
|
|
14
|
+
* como `error` na query, que é como ele descobre o que fez de errado.
|
|
15
|
+
*/
|
|
16
|
+
export declare class OAuthError extends BadRequestException {
|
|
17
|
+
readonly code: OAuthErrorCode;
|
|
18
|
+
readonly description: string;
|
|
19
|
+
readonly redirectable: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Só acompanha erro redirecionável: é o `iss` que a tela precisa devolver ao
|
|
22
|
+
* cliente junto do erro (RFC 9207). No caminho de sucesso ela já o recebe em
|
|
23
|
+
* `getAuthorizationInfo`.
|
|
24
|
+
*/
|
|
25
|
+
readonly issuer?: string;
|
|
26
|
+
constructor(code: OAuthErrorCode, description: string, redirectable?: boolean,
|
|
27
|
+
/**
|
|
28
|
+
* Só acompanha erro redirecionável: é o `iss` que a tela precisa devolver ao
|
|
29
|
+
* cliente junto do erro (RFC 9207). No caminho de sucesso ela já o recebe em
|
|
30
|
+
* `getAuthorizationInfo`.
|
|
31
|
+
*/
|
|
32
|
+
issuer?: string);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=authorize.errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorize.errors.d.ts","sourceRoot":"","sources":["../../src/authorize/authorize.errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,qBAAqB,GACrB,wBAAwB,GACxB,2BAA2B,GAC3B,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,cAAc,CAAC;AAEnB;;;;;;;;GAQG;AACH,qBAAa,UAAW,SAAQ,mBAAmB;IAM/C,QAAQ,CAAC,IAAI,EAAE,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,YAAY;IACrB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;gBARf,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,UAAQ;IAC7B;;;;OAIG;IACM,MAAM,CAAC,EAAE,MAAM;CAY3B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OAuthError = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
/**
|
|
6
|
+
* Erro do fluxo OAuth.
|
|
7
|
+
*
|
|
8
|
+
* `redirectable` decide o que acontece com ele, e a distinção é normativa
|
|
9
|
+
* (RFC 6749 §4.1.2.1): erro de `client_id` ou de `redirect_uri` **não** pode
|
|
10
|
+
* voltar para o `redirect_uri` — se ele não foi validado, redirecionar seria
|
|
11
|
+
* mandar o usuário para onde o atacante pediu. Todo o resto volta para o cliente
|
|
12
|
+
* como `error` na query, que é como ele descobre o que fez de errado.
|
|
13
|
+
*/
|
|
14
|
+
class OAuthError extends common_1.BadRequestException {
|
|
15
|
+
// Herda de BadRequestException, e nao de HttpException direto: todo erro OAuth
|
|
16
|
+
// de requisicao e um 400, e manter a hierarquia preserva qualquer `catch` que
|
|
17
|
+
// ja exista para BadRequestException — inclusive os testes que descrevem o
|
|
18
|
+
// comportamento anterior.
|
|
19
|
+
constructor(code, description, redirectable = false,
|
|
20
|
+
/**
|
|
21
|
+
* Só acompanha erro redirecionável: é o `iss` que a tela precisa devolver ao
|
|
22
|
+
* cliente junto do erro (RFC 9207). No caminho de sucesso ela já o recebe em
|
|
23
|
+
* `getAuthorizationInfo`.
|
|
24
|
+
*/
|
|
25
|
+
issuer) {
|
|
26
|
+
super(Object.assign(Object.assign({ error: code, error_description: description, redirectable }, (issuer ? { issuer } : {})), {
|
|
27
|
+
// `message` fica junto porque os clientes ja registrados leem esse campo
|
|
28
|
+
// nas respostas de erro de hoje. Tirar seria uma quebra silenciosa.
|
|
29
|
+
message: description }));
|
|
30
|
+
this.code = code;
|
|
31
|
+
this.description = description;
|
|
32
|
+
this.redirectable = redirectable;
|
|
33
|
+
this.issuer = issuer;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.OAuthError = OAuthError;
|
|
37
|
+
//# sourceMappingURL=authorize.errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorize.errors.js","sourceRoot":"","sources":["../../src/authorize/authorize.errors.ts"],"names":[],"mappings":";;;AAAA,2CAAqD;AAmBrD;;;;;;;;GAQG;AACH,MAAa,UAAW,SAAQ,4BAAmB;IACjD,+EAA+E;IAC/E,8EAA8E;IAC9E,2EAA2E;IAC3E,0BAA0B;IAC1B,YACW,IAAoB,EACpB,WAAmB,EACnB,eAAe,KAAK;IAC7B;;;;OAIG;IACM,MAAe;QAExB,KAAK,+BACH,KAAK,EAAE,IAAI,EACX,iBAAiB,EAAE,WAAW,EAC9B,YAAY,IACT,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,yEAAyE;YACzE,oEAAoE;YACpE,OAAO,EAAE,WAAW,IACpB,CAAC;QAlBM,SAAI,GAAJ,IAAI,CAAgB;QACpB,gBAAW,GAAX,WAAW,CAAQ;QACnB,iBAAY,GAAZ,YAAY,CAAQ;QAMpB,WAAM,GAAN,MAAM,CAAS;IAW1B,CAAC;CACF;AA1BD,gCA0BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorize.module.d.ts","sourceRoot":"","sources":["../../src/authorize/authorize.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authorize.module.d.ts","sourceRoot":"","sources":["../../src/authorize/authorize.module.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,qBAYa,eAAe;CAAG"}
|
|
@@ -11,8 +11,11 @@ const api_prisma_1 = require("@hed-hog/api-prisma");
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const auth_module_1 = require("../auth/auth.module");
|
|
13
13
|
const security_module_1 = require("../security/security.module");
|
|
14
|
+
const session_module_1 = require("../session/session.module");
|
|
15
|
+
const token_module_1 = require("../token/token.module");
|
|
14
16
|
const authorize_controller_1 = require("./authorize.controller");
|
|
15
17
|
const authorize_service_1 = require("./authorize.service");
|
|
18
|
+
const well_known_controller_1 = require("./well-known.controller");
|
|
16
19
|
/**
|
|
17
20
|
* Separado de OAuthModule de propósito: lá o HedHog é *client* de IdPs externos
|
|
18
21
|
* (Google, Apple...). Aqui ele é o *provider*. Misturar os dois confundiria dois
|
|
@@ -27,8 +30,10 @@ exports.AuthorizeModule = AuthorizeModule = __decorate([
|
|
|
27
30
|
(0, common_1.forwardRef)(() => api_prisma_1.PrismaModule),
|
|
28
31
|
(0, common_1.forwardRef)(() => security_module_1.SecurityModule),
|
|
29
32
|
(0, common_1.forwardRef)(() => auth_module_1.AuthModule),
|
|
33
|
+
(0, common_1.forwardRef)(() => session_module_1.SessionModule),
|
|
34
|
+
(0, common_1.forwardRef)(() => token_module_1.TokenModule),
|
|
30
35
|
],
|
|
31
|
-
controllers: [authorize_controller_1.AuthorizeController],
|
|
36
|
+
controllers: [authorize_controller_1.AuthorizeController, well_known_controller_1.WellKnownController],
|
|
32
37
|
providers: [authorize_service_1.AuthorizeService],
|
|
33
38
|
exports: [authorize_service_1.AuthorizeService],
|
|
34
39
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorize.module.js","sourceRoot":"","sources":["../../src/authorize/authorize.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAmD;AACnD,2CAAoD;AACpD,qDAAiD;AACjD,iEAA6D;AAC7D,iEAA6D;AAC7D,2DAAuD;
|
|
1
|
+
{"version":3,"file":"authorize.module.js","sourceRoot":"","sources":["../../src/authorize/authorize.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAmD;AACnD,2CAAoD;AACpD,qDAAiD;AACjD,iEAA6D;AAC7D,8DAA0D;AAC1D,wDAAoD;AACpD,iEAA6D;AAC7D,2DAAuD;AACvD,mEAA8D;AAE9D;;;;GAIG;AAaI,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAZ3B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,yBAAY,CAAC;YAC9B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,gCAAc,CAAC;YAChC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC;YAC/B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,0BAAW,CAAC;SAC9B;QACD,WAAW,EAAE,CAAC,0CAAmB,EAAE,2CAAmB,CAAC;QACvD,SAAS,EAAE,CAAC,oCAAgB,CAAC;QAC7B,OAAO,EAAE,CAAC,oCAAgB,CAAC;KAC5B,CAAC;GACW,eAAe,CAAG"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { PrismaService } from '@hed-hog/api-prisma';
|
|
2
2
|
import { AuthService } from '../auth/auth.service';
|
|
3
|
+
import { SessionService } from '../session/session.service';
|
|
4
|
+
import { TokenService } from '../token/token.service';
|
|
5
|
+
import { OAuthMetadataService } from './oauth-metadata.service';
|
|
3
6
|
import { SecurityService } from '../security/security.service';
|
|
4
7
|
/**
|
|
5
8
|
* Authorization Code + PKCE — o HedHog como OAuth *provider* para apps
|
|
@@ -16,10 +19,13 @@ export declare class AuthorizeService {
|
|
|
16
19
|
private readonly prisma;
|
|
17
20
|
private readonly security;
|
|
18
21
|
private readonly auth;
|
|
22
|
+
private readonly session;
|
|
23
|
+
private readonly token;
|
|
24
|
+
private readonly metadata;
|
|
19
25
|
private readonly logger;
|
|
20
26
|
/** Curto de propósito: o code viaja na URL e só precisa sobreviver ao redirect. */
|
|
21
27
|
private readonly codeTtlMs;
|
|
22
|
-
constructor(prisma: PrismaService, security: SecurityService, auth: AuthService);
|
|
28
|
+
constructor(prisma: PrismaService, security: SecurityService, auth: AuthService, session: SessionService, token: TokenService, metadata: OAuthMetadataService);
|
|
23
29
|
private getClient;
|
|
24
30
|
/**
|
|
25
31
|
* A allowlist é comparada por igualdade de string, não por parsing de URL:
|
|
@@ -27,17 +33,40 @@ export declare class AuthorizeService {
|
|
|
27
33
|
* userinfo, `origin` valendo "null" em esquemas não-http).
|
|
28
34
|
*/
|
|
29
35
|
private assertRedirectUri;
|
|
36
|
+
/**
|
|
37
|
+
* Devolve o escopo efetivo. `scope` ausente assume o que o client tem
|
|
38
|
+
* registrado — um cliente OAuth padrao pode simplesmente nao mandar o
|
|
39
|
+
* parametro, e recusa-lo seria recusar o fluxo inteiro por nada.
|
|
40
|
+
*/
|
|
30
41
|
private assertScope;
|
|
42
|
+
/**
|
|
43
|
+
* `resource` (RFC 8707) é uma allowlist de um item só: o /mcp deste servidor.
|
|
44
|
+
* Igualdade exata — o middleware de compatibilidade do main.ts faz `/api/mcp`
|
|
45
|
+
* responder no mesmo lugar, e comparar por prefixo deixaria nascer um token com
|
|
46
|
+
* audiência paralela que o TokenService nunca reconheceria.
|
|
47
|
+
*
|
|
48
|
+
* E ele é OBRIGATÓRIO quando a concessão inclui o escopo `mcp`. Sem essa regra
|
|
49
|
+
* o confinamento seria opt-in pela parte que ele restringe: bastava o cliente
|
|
50
|
+
* omitir o parâmetro para receber um token sem `aud` — válido na API REST
|
|
51
|
+
* inteira, com o TTL longo de login e renovável pelo /auth/refresh. Um cliente
|
|
52
|
+
* de MCP nunca deve conseguir uma sessão de propósito geral.
|
|
53
|
+
*/
|
|
54
|
+
private assertResource;
|
|
55
|
+
/** RFC 6749: só `code`. Ausente, assume `code` — nenhum client atual manda. */
|
|
56
|
+
private assertResponseType;
|
|
31
57
|
/** Metadados para a tela de consent. Também valida antes de qualquer redirect. */
|
|
32
58
|
getAuthorizationInfo(params: {
|
|
33
59
|
clientId: string;
|
|
34
60
|
redirectUri: string;
|
|
35
|
-
scope
|
|
61
|
+
scope?: string;
|
|
36
62
|
codeChallenge: string;
|
|
37
63
|
codeChallengeMethod: string;
|
|
64
|
+
responseType?: string;
|
|
65
|
+
resource?: string;
|
|
38
66
|
}): Promise<{
|
|
39
67
|
clientName: string;
|
|
40
68
|
scopes: string[];
|
|
69
|
+
issuer: string;
|
|
41
70
|
}>;
|
|
42
71
|
/**
|
|
43
72
|
* `plain` é rejeitado sem exceção: com ele o "verifier" viaja igual ao
|
|
@@ -49,9 +78,11 @@ export declare class AuthorizeService {
|
|
|
49
78
|
userId: number;
|
|
50
79
|
clientId: string;
|
|
51
80
|
redirectUri: string;
|
|
52
|
-
scope
|
|
81
|
+
scope?: string;
|
|
53
82
|
codeChallenge: string;
|
|
54
83
|
codeChallengeMethod: string;
|
|
84
|
+
responseType?: string;
|
|
85
|
+
resource?: string;
|
|
55
86
|
}): Promise<string>;
|
|
56
87
|
/**
|
|
57
88
|
* Troca o code por tokens. O consumo é atômico (UPDATE ... WHERE consumed_at
|
|
@@ -63,6 +94,7 @@ export declare class AuthorizeService {
|
|
|
63
94
|
codeVerifier: string;
|
|
64
95
|
clientId: string;
|
|
65
96
|
redirectUri: string;
|
|
97
|
+
resource?: string;
|
|
66
98
|
locale: string;
|
|
67
99
|
ipAddress: string;
|
|
68
100
|
userAgent: string;
|
|
@@ -74,12 +106,54 @@ export declare class AuthorizeService {
|
|
|
74
106
|
*/
|
|
75
107
|
browserId?: string | null;
|
|
76
108
|
}): Promise<{
|
|
109
|
+
access_token: string;
|
|
77
110
|
accessToken: string;
|
|
111
|
+
refresh_token: string;
|
|
78
112
|
refreshToken: string;
|
|
113
|
+
token_type: string;
|
|
79
114
|
tokenType: string;
|
|
115
|
+
expires_in: number;
|
|
80
116
|
expiresIn: number;
|
|
81
117
|
scope: string;
|
|
82
118
|
}>;
|
|
119
|
+
/**
|
|
120
|
+
* Renovacao do cliente OAuth externo.
|
|
121
|
+
*
|
|
122
|
+
* Existe separado do POST /auth/refresh porque aquele devolve um token SEM
|
|
123
|
+
* `aud` — e por isso mesmo recusa sessao de conector. Aqui o `aud` e reaplicado
|
|
124
|
+
* a partir da propria sessao, que e a unica coisa que sobrevive a rotacao do
|
|
125
|
+
* refresh token (que e opaco).
|
|
126
|
+
*/
|
|
127
|
+
exchangeRefreshToken(params: {
|
|
128
|
+
refreshToken: string;
|
|
129
|
+
clientId: string;
|
|
130
|
+
resource?: string;
|
|
131
|
+
locale: string;
|
|
132
|
+
ipAddress: string;
|
|
133
|
+
userAgent: string;
|
|
134
|
+
browserId?: string | null;
|
|
135
|
+
}): Promise<{
|
|
136
|
+
access_token: string;
|
|
137
|
+
accessToken: string;
|
|
138
|
+
refresh_token: string;
|
|
139
|
+
refreshToken: string;
|
|
140
|
+
token_type: string;
|
|
141
|
+
tokenType: string;
|
|
142
|
+
expires_in: number;
|
|
143
|
+
expiresIn: number;
|
|
144
|
+
scope: string;
|
|
145
|
+
}>;
|
|
146
|
+
/**
|
|
147
|
+
* `expires_in` sai do `exp` do proprio JWT recem-assinado, e nao da setting: o
|
|
148
|
+
* JwtModule le `access-token-expiration-minutes` uma UNICA vez, no boot, entao a
|
|
149
|
+
* setting e o token podem divergir ate o proximo deploy. O token e a verdade.
|
|
150
|
+
*
|
|
151
|
+
* A resposta traz snake_case e camelCase ao mesmo tempo. O RFC 6749 5.1 permite
|
|
152
|
+
* membros extras, e os cinco clientes ja registrados leem camelCase — passar so
|
|
153
|
+
* a snake_case quebraria todos de uma vez.
|
|
154
|
+
*/
|
|
155
|
+
private buildTokenResponse;
|
|
156
|
+
private expiresInFromJwt;
|
|
83
157
|
/** base64url(sha256(verifier)) === challenge, em tempo constante. */
|
|
84
158
|
private verifyPkce;
|
|
85
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorize.service.d.ts","sourceRoot":"","sources":["../../src/authorize/authorize.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAU,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"authorize.service.d.ts","sourceRoot":"","sources":["../../src/authorize/authorize.service.ts"],"names":[],"mappings":"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"}
|