@nauth-toolkit/core 0.1.14 → 0.1.18
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/adapters/database-columns.d.ts +70 -0
- package/dist/adapters/database-columns.d.ts.map +1 -1
- package/dist/adapters/database-columns.js +76 -2
- package/dist/adapters/database-columns.js.map +1 -1
- package/dist/adapters/express.adapter.d.ts +66 -0
- package/dist/adapters/express.adapter.d.ts.map +1 -1
- package/dist/adapters/express.adapter.js +80 -0
- package/dist/adapters/express.adapter.js.map +1 -1
- package/dist/adapters/fastify.adapter.d.ts +42 -0
- package/dist/adapters/fastify.adapter.d.ts.map +1 -1
- package/dist/adapters/fastify.adapter.js +86 -0
- package/dist/adapters/fastify.adapter.js.map +1 -1
- package/dist/adapters/index.d.ts +5 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +9 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/storage.factory.d.ts +107 -0
- package/dist/adapters/storage.factory.d.ts.map +1 -1
- package/dist/adapters/storage.factory.js +114 -0
- package/dist/adapters/storage.factory.js.map +1 -1
- package/dist/adapters.d.ts +8 -0
- package/dist/adapters.d.ts.map +1 -1
- package/dist/adapters.js +8 -0
- package/dist/adapters.js.map +1 -1
- package/dist/bootstrap.d.ts +82 -0
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +106 -0
- package/dist/bootstrap.js.map +1 -1
- package/dist/dto/admin-set-password.dto.d.ts +90 -0
- package/dist/dto/admin-set-password.dto.d.ts.map +1 -1
- package/dist/dto/admin-set-password.dto.js +91 -0
- package/dist/dto/admin-set-password.dto.js.map +1 -1
- package/dist/dto/auth-challenge.dto.d.ts +170 -0
- package/dist/dto/auth-challenge.dto.d.ts.map +1 -1
- package/dist/dto/auth-challenge.dto.js +170 -0
- package/dist/dto/auth-challenge.dto.js.map +1 -1
- package/dist/dto/auth-response.dto.d.ts +196 -0
- package/dist/dto/auth-response.dto.d.ts.map +1 -1
- package/dist/dto/auth-response.dto.js +149 -0
- package/dist/dto/auth-response.dto.js.map +1 -1
- package/dist/dto/challenge-response.dto.d.ts +155 -0
- package/dist/dto/challenge-response.dto.d.ts.map +1 -1
- package/dist/dto/challenge-response.dto.js +8 -0
- package/dist/dto/challenge-response.dto.js.map +1 -1
- package/dist/dto/change-password-request.dto.d.ts +35 -0
- package/dist/dto/change-password-request.dto.d.ts.map +1 -1
- package/dist/dto/change-password-request.dto.js +35 -0
- package/dist/dto/change-password-request.dto.js.map +1 -1
- package/dist/dto/change-password-response.dto.d.ts +25 -0
- package/dist/dto/change-password-response.dto.d.ts.map +1 -1
- package/dist/dto/change-password-response.dto.js +25 -0
- package/dist/dto/change-password-response.dto.js.map +1 -1
- package/dist/dto/change-password.dto.d.ts +45 -0
- package/dist/dto/change-password.dto.d.ts.map +1 -1
- package/dist/dto/change-password.dto.js +45 -0
- package/dist/dto/change-password.dto.js.map +1 -1
- package/dist/dto/confirm-forgot-password.dto.d.ts +59 -0
- package/dist/dto/confirm-forgot-password.dto.d.ts.map +1 -1
- package/dist/dto/confirm-forgot-password.dto.js +59 -0
- package/dist/dto/confirm-forgot-password.dto.js.map +1 -1
- package/dist/dto/error-response.dto.d.ts +103 -0
- package/dist/dto/error-response.dto.d.ts.map +1 -1
- package/dist/dto/error-response.dto.js +103 -0
- package/dist/dto/error-response.dto.js.map +1 -1
- package/dist/dto/forgot-password.dto.d.ts +58 -0
- package/dist/dto/forgot-password.dto.d.ts.map +1 -1
- package/dist/dto/forgot-password.dto.js +58 -0
- package/dist/dto/forgot-password.dto.js.map +1 -1
- package/dist/dto/get-available-methods.dto.d.ts +37 -0
- package/dist/dto/get-available-methods.dto.d.ts.map +1 -1
- package/dist/dto/get-available-methods.dto.js +37 -0
- package/dist/dto/get-available-methods.dto.js.map +1 -1
- package/dist/dto/get-challenge-data-response.dto.d.ts +24 -0
- package/dist/dto/get-challenge-data-response.dto.d.ts.map +1 -1
- package/dist/dto/get-challenge-data-response.dto.js +24 -0
- package/dist/dto/get-challenge-data-response.dto.js.map +1 -1
- package/dist/dto/get-challenge-data.dto.d.ts +46 -0
- package/dist/dto/get-challenge-data.dto.d.ts.map +1 -1
- package/dist/dto/get-challenge-data.dto.js +46 -0
- package/dist/dto/get-challenge-data.dto.js.map +1 -1
- package/dist/dto/get-client-info.dto.d.ts +74 -0
- package/dist/dto/get-client-info.dto.d.ts.map +1 -1
- package/dist/dto/get-client-info.dto.js +74 -0
- package/dist/dto/get-client-info.dto.js.map +1 -1
- package/dist/dto/get-device-token-response.dto.d.ts +21 -0
- package/dist/dto/get-device-token-response.dto.d.ts.map +1 -1
- package/dist/dto/get-device-token-response.dto.js +21 -0
- package/dist/dto/get-device-token-response.dto.js.map +1 -1
- package/dist/dto/get-events-by-type.dto.d.ts +50 -0
- package/dist/dto/get-events-by-type.dto.d.ts.map +1 -1
- package/dist/dto/get-events-by-type.dto.js +50 -0
- package/dist/dto/get-events-by-type.dto.js.map +1 -1
- package/dist/dto/get-ip-address-response.dto.d.ts +20 -0
- package/dist/dto/get-ip-address-response.dto.d.ts.map +1 -1
- package/dist/dto/get-ip-address-response.dto.js +20 -0
- package/dist/dto/get-ip-address-response.dto.js.map +1 -1
- package/dist/dto/get-mfa-status.dto.d.ts +59 -0
- package/dist/dto/get-mfa-status.dto.d.ts.map +1 -1
- package/dist/dto/get-mfa-status.dto.js +59 -0
- package/dist/dto/get-mfa-status.dto.js.map +1 -1
- package/dist/dto/get-risk-assessment-history.dto.d.ts +28 -0
- package/dist/dto/get-risk-assessment-history.dto.d.ts.map +1 -1
- package/dist/dto/get-risk-assessment-history.dto.js +28 -0
- package/dist/dto/get-risk-assessment-history.dto.js.map +1 -1
- package/dist/dto/get-session-id-response.dto.d.ts +21 -0
- package/dist/dto/get-session-id-response.dto.d.ts.map +1 -1
- package/dist/dto/get-session-id-response.dto.js +21 -0
- package/dist/dto/get-session-id-response.dto.js.map +1 -1
- package/dist/dto/get-setup-data-response.dto.d.ts +27 -0
- package/dist/dto/get-setup-data-response.dto.d.ts.map +1 -1
- package/dist/dto/get-setup-data-response.dto.js +27 -0
- package/dist/dto/get-setup-data-response.dto.js.map +1 -1
- package/dist/dto/get-setup-data.dto.d.ts +51 -0
- package/dist/dto/get-setup-data.dto.d.ts.map +1 -1
- package/dist/dto/get-setup-data.dto.js +51 -0
- package/dist/dto/get-setup-data.dto.js.map +1 -1
- package/dist/dto/get-suspicious-activity.dto.d.ts +31 -0
- package/dist/dto/get-suspicious-activity.dto.d.ts.map +1 -1
- package/dist/dto/get-suspicious-activity.dto.js +31 -0
- package/dist/dto/get-suspicious-activity.dto.js.map +1 -1
- package/dist/dto/get-user-agent-response.dto.d.ts +19 -0
- package/dist/dto/get-user-agent-response.dto.d.ts.map +1 -1
- package/dist/dto/get-user-agent-response.dto.js +19 -0
- package/dist/dto/get-user-agent-response.dto.js.map +1 -1
- package/dist/dto/get-user-auth-history.dto.d.ts +64 -0
- package/dist/dto/get-user-auth-history.dto.d.ts.map +1 -1
- package/dist/dto/get-user-auth-history.dto.js +64 -0
- package/dist/dto/get-user-auth-history.dto.js.map +1 -1
- package/dist/dto/get-user-by-email.dto.d.ts +42 -0
- package/dist/dto/get-user-by-email.dto.d.ts.map +1 -1
- package/dist/dto/get-user-by-email.dto.js +42 -0
- package/dist/dto/get-user-by-email.dto.js.map +1 -1
- package/dist/dto/get-user-by-id.dto.d.ts +32 -0
- package/dist/dto/get-user-by-id.dto.d.ts.map +1 -1
- package/dist/dto/get-user-by-id.dto.js +32 -0
- package/dist/dto/get-user-by-id.dto.js.map +1 -1
- package/dist/dto/get-user-devices.dto.d.ts +34 -0
- package/dist/dto/get-user-devices.dto.d.ts.map +1 -1
- package/dist/dto/get-user-devices.dto.js +34 -0
- package/dist/dto/get-user-devices.dto.js.map +1 -1
- package/dist/dto/get-user-response.dto.d.ts +14 -0
- package/dist/dto/get-user-response.dto.d.ts.map +1 -1
- package/dist/dto/get-user-response.dto.js +15 -0
- package/dist/dto/get-user-response.dto.js.map +1 -1
- package/dist/dto/has-provider.dto.d.ts +33 -0
- package/dist/dto/has-provider.dto.d.ts.map +1 -1
- package/dist/dto/has-provider.dto.js +33 -0
- package/dist/dto/has-provider.dto.js.map +1 -1
- package/dist/dto/index.js +5 -0
- package/dist/dto/index.js.map +1 -1
- package/dist/dto/is-trusted-device-response.dto.d.ts +28 -0
- package/dist/dto/is-trusted-device-response.dto.d.ts.map +1 -1
- package/dist/dto/is-trusted-device-response.dto.js +28 -0
- package/dist/dto/is-trusted-device-response.dto.js.map +1 -1
- package/dist/dto/list-providers-response.dto.d.ts +19 -0
- package/dist/dto/list-providers-response.dto.d.ts.map +1 -1
- package/dist/dto/list-providers-response.dto.js +19 -0
- package/dist/dto/list-providers-response.dto.js.map +1 -1
- package/dist/dto/login.dto.d.ts +48 -0
- package/dist/dto/login.dto.d.ts.map +1 -1
- package/dist/dto/login.dto.js +50 -1
- package/dist/dto/login.dto.js.map +1 -1
- package/dist/dto/logout-all-response.dto.d.ts +20 -0
- package/dist/dto/logout-all-response.dto.d.ts.map +1 -1
- package/dist/dto/logout-all-response.dto.js +20 -0
- package/dist/dto/logout-all-response.dto.js.map +1 -1
- package/dist/dto/logout-all.dto.d.ts +42 -0
- package/dist/dto/logout-all.dto.d.ts.map +1 -1
- package/dist/dto/logout-all.dto.js +42 -0
- package/dist/dto/logout-all.dto.js.map +1 -1
- package/dist/dto/logout-response.dto.d.ts +21 -0
- package/dist/dto/logout-response.dto.d.ts.map +1 -1
- package/dist/dto/logout-response.dto.js +21 -0
- package/dist/dto/logout-response.dto.js.map +1 -1
- package/dist/dto/logout.dto.d.ts +45 -0
- package/dist/dto/logout.dto.d.ts.map +1 -1
- package/dist/dto/logout.dto.js +45 -0
- package/dist/dto/logout.dto.js.map +1 -1
- package/dist/dto/refresh-token.dto.d.ts +28 -0
- package/dist/dto/refresh-token.dto.d.ts.map +1 -1
- package/dist/dto/refresh-token.dto.js +28 -0
- package/dist/dto/refresh-token.dto.js.map +1 -1
- package/dist/dto/remove-devices.dto.d.ts +51 -0
- package/dist/dto/remove-devices.dto.d.ts.map +1 -1
- package/dist/dto/remove-devices.dto.js +51 -0
- package/dist/dto/remove-devices.dto.js.map +1 -1
- package/dist/dto/resend-code-response.dto.d.ts +28 -0
- package/dist/dto/resend-code-response.dto.d.ts.map +1 -1
- package/dist/dto/resend-code-response.dto.js +28 -0
- package/dist/dto/resend-code-response.dto.js.map +1 -1
- package/dist/dto/resend-code.dto.d.ts +37 -0
- package/dist/dto/resend-code.dto.d.ts.map +1 -1
- package/dist/dto/resend-code.dto.js +37 -0
- package/dist/dto/resend-code.dto.js.map +1 -1
- package/dist/dto/reset-password.dto.d.ts +74 -0
- package/dist/dto/reset-password.dto.d.ts.map +1 -1
- package/dist/dto/reset-password.dto.js +76 -1
- package/dist/dto/reset-password.dto.js.map +1 -1
- package/dist/dto/respond-challenge.dto.d.ts +147 -0
- package/dist/dto/respond-challenge.dto.d.ts.map +1 -1
- package/dist/dto/respond-challenge.dto.js +162 -0
- package/dist/dto/respond-challenge.dto.js.map +1 -1
- package/dist/dto/set-mfa-exemption.dto.d.ts +65 -0
- package/dist/dto/set-mfa-exemption.dto.d.ts.map +1 -1
- package/dist/dto/set-mfa-exemption.dto.js +65 -0
- package/dist/dto/set-mfa-exemption.dto.js.map +1 -1
- package/dist/dto/set-must-change-password-response.dto.d.ts +23 -0
- package/dist/dto/set-must-change-password-response.dto.d.ts.map +1 -1
- package/dist/dto/set-must-change-password-response.dto.js +23 -0
- package/dist/dto/set-must-change-password-response.dto.js.map +1 -1
- package/dist/dto/set-must-change-password.dto.d.ts +32 -0
- package/dist/dto/set-must-change-password.dto.d.ts.map +1 -1
- package/dist/dto/set-must-change-password.dto.js +32 -0
- package/dist/dto/set-must-change-password.dto.js.map +1 -1
- package/dist/dto/set-preferred-method.dto.d.ts +48 -0
- package/dist/dto/set-preferred-method.dto.d.ts.map +1 -1
- package/dist/dto/set-preferred-method.dto.js +48 -0
- package/dist/dto/set-preferred-method.dto.js.map +1 -1
- package/dist/dto/setup-mfa.dto.d.ts +62 -0
- package/dist/dto/setup-mfa.dto.d.ts.map +1 -1
- package/dist/dto/setup-mfa.dto.js +62 -0
- package/dist/dto/setup-mfa.dto.js.map +1 -1
- package/dist/dto/signup.dto.d.ts +92 -0
- package/dist/dto/signup.dto.d.ts.map +1 -1
- package/dist/dto/signup.dto.js +93 -0
- package/dist/dto/signup.dto.js.map +1 -1
- package/dist/dto/social-auth.dto.d.ts +234 -0
- package/dist/dto/social-auth.dto.d.ts.map +1 -1
- package/dist/dto/social-auth.dto.js +234 -0
- package/dist/dto/social-auth.dto.js.map +1 -1
- package/dist/dto/trust-device-response.dto.d.ts +26 -0
- package/dist/dto/trust-device-response.dto.d.ts.map +1 -1
- package/dist/dto/trust-device-response.dto.js +26 -0
- package/dist/dto/trust-device-response.dto.js.map +1 -1
- package/dist/dto/trust-device.dto.d.ts +9 -0
- package/dist/dto/trust-device.dto.d.ts.map +1 -1
- package/dist/dto/trust-device.dto.js +9 -0
- package/dist/dto/trust-device.dto.js.map +1 -1
- package/dist/dto/update-user-attributes-request.dto.d.ts +36 -0
- package/dist/dto/update-user-attributes-request.dto.d.ts.map +1 -1
- package/dist/dto/update-user-attributes-request.dto.js +36 -0
- package/dist/dto/update-user-attributes-request.dto.js.map +1 -1
- package/dist/dto/user-response.dto.d.ts +81 -0
- package/dist/dto/user-response.dto.d.ts.map +1 -1
- package/dist/dto/user-response.dto.js +84 -2
- package/dist/dto/user-response.dto.js.map +1 -1
- package/dist/dto/user-update.dto.d.ts +132 -0
- package/dist/dto/user-update.dto.d.ts.map +1 -1
- package/dist/dto/user-update.dto.js +133 -0
- package/dist/dto/user-update.dto.js.map +1 -1
- package/dist/dto/verify-email.dto.d.ts +171 -0
- package/dist/dto/verify-email.dto.d.ts.map +1 -1
- package/dist/dto/verify-email.dto.js +173 -1
- package/dist/dto/verify-email.dto.js.map +1 -1
- package/dist/dto/verify-mfa-code.dto.d.ts +65 -0
- package/dist/dto/verify-mfa-code.dto.d.ts.map +1 -1
- package/dist/dto/verify-mfa-code.dto.js +65 -0
- package/dist/dto/verify-mfa-code.dto.js.map +1 -1
- package/dist/dto/verify-phone-by-sub.dto.d.ts +49 -0
- package/dist/dto/verify-phone-by-sub.dto.d.ts.map +1 -1
- package/dist/dto/verify-phone-by-sub.dto.js +49 -0
- package/dist/dto/verify-phone-by-sub.dto.js.map +1 -1
- package/dist/dto/verify-phone.dto.d.ts +139 -0
- package/dist/dto/verify-phone.dto.d.ts.map +1 -1
- package/dist/dto/verify-phone.dto.js +142 -1
- package/dist/dto/verify-phone.dto.js.map +1 -1
- package/dist/dto.d.ts +10 -0
- package/dist/dto.d.ts.map +1 -1
- package/dist/dto.js +10 -0
- package/dist/dto.js.map +1 -1
- package/dist/entities/auth-audit.entity.d.ts +159 -0
- package/dist/entities/auth-audit.entity.d.ts.map +1 -1
- package/dist/entities/auth-audit.entity.js +166 -0
- package/dist/entities/auth-audit.entity.js.map +1 -1
- package/dist/entities/challenge-session.entity.d.ts +87 -0
- package/dist/entities/challenge-session.entity.d.ts.map +1 -1
- package/dist/entities/challenge-session.entity.js +87 -0
- package/dist/entities/challenge-session.entity.js.map +1 -1
- package/dist/entities/index.d.ts +18 -0
- package/dist/entities/index.d.ts.map +1 -1
- package/dist/entities/index.js +18 -0
- package/dist/entities/index.js.map +1 -1
- package/dist/entities/login-attempt.entity.d.ts +43 -0
- package/dist/entities/login-attempt.entity.d.ts.map +1 -1
- package/dist/entities/login-attempt.entity.js +43 -0
- package/dist/entities/login-attempt.entity.js.map +1 -1
- package/dist/entities/mfa-device.entity.d.ts +112 -0
- package/dist/entities/mfa-device.entity.d.ts.map +1 -1
- package/dist/entities/mfa-device.entity.js +112 -0
- package/dist/entities/mfa-device.entity.js.map +1 -1
- package/dist/entities/rate-limit.entity.d.ts +31 -0
- package/dist/entities/rate-limit.entity.d.ts.map +1 -1
- package/dist/entities/rate-limit.entity.js +31 -0
- package/dist/entities/rate-limit.entity.js.map +1 -1
- package/dist/entities/session.entity.d.ts +121 -0
- package/dist/entities/session.entity.d.ts.map +1 -1
- package/dist/entities/session.entity.js +121 -0
- package/dist/entities/session.entity.js.map +1 -1
- package/dist/entities/social-account.entity.d.ts +75 -0
- package/dist/entities/social-account.entity.d.ts.map +1 -1
- package/dist/entities/social-account.entity.js +75 -0
- package/dist/entities/social-account.entity.js.map +1 -1
- package/dist/entities/storage-lock.entity.d.ts +28 -0
- package/dist/entities/storage-lock.entity.d.ts.map +1 -1
- package/dist/entities/storage-lock.entity.js +28 -0
- package/dist/entities/storage-lock.entity.js.map +1 -1
- package/dist/entities/trusted-device.entity.d.ts +83 -0
- package/dist/entities/trusted-device.entity.d.ts.map +1 -1
- package/dist/entities/trusted-device.entity.js +83 -0
- package/dist/entities/trusted-device.entity.js.map +1 -1
- package/dist/entities/user.entity.d.ts +166 -0
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +166 -0
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/entities/verification-token.entity.d.ts +102 -0
- package/dist/entities/verification-token.entity.d.ts.map +1 -1
- package/dist/entities/verification-token.entity.js +102 -0
- package/dist/entities/verification-token.entity.js.map +1 -1
- package/dist/entities.d.ts +8 -0
- package/dist/entities.d.ts.map +1 -1
- package/dist/entities.js +8 -0
- package/dist/entities.js.map +1 -1
- package/dist/enums/auth-audit-event-type.enum.d.ts +211 -0
- package/dist/enums/auth-audit-event-type.enum.d.ts.map +1 -1
- package/dist/enums/auth-audit-event-type.enum.js +244 -0
- package/dist/enums/auth-audit-event-type.enum.js.map +1 -1
- package/dist/enums/error-codes.enum.d.ts +296 -0
- package/dist/enums/error-codes.enum.d.ts.map +1 -1
- package/dist/enums/error-codes.enum.js +332 -0
- package/dist/enums/error-codes.enum.js.map +1 -1
- package/dist/enums/mfa-method.enum.d.ts +74 -0
- package/dist/enums/mfa-method.enum.d.ts.map +1 -1
- package/dist/enums/mfa-method.enum.js +64 -0
- package/dist/enums/mfa-method.enum.js.map +1 -1
- package/dist/enums/risk-factor.enum.d.ts +91 -0
- package/dist/enums/risk-factor.enum.d.ts.map +1 -1
- package/dist/enums/risk-factor.enum.js +97 -0
- package/dist/enums/risk-factor.enum.js.map +1 -1
- package/dist/exceptions/nauth.exception.d.ts +149 -0
- package/dist/exceptions/nauth.exception.d.ts.map +1 -1
- package/dist/exceptions/nauth.exception.js +159 -0
- package/dist/exceptions/nauth.exception.js.map +1 -1
- package/dist/handlers/auth.handler.d.ts +32 -0
- package/dist/handlers/auth.handler.d.ts.map +1 -1
- package/dist/handlers/auth.handler.js +47 -1
- package/dist/handlers/auth.handler.js.map +1 -1
- package/dist/handlers/client-info.handler.d.ts +25 -0
- package/dist/handlers/client-info.handler.d.ts.map +1 -1
- package/dist/handlers/client-info.handler.js +36 -2
- package/dist/handlers/client-info.handler.js.map +1 -1
- package/dist/handlers/csrf.handler.d.ts +32 -0
- package/dist/handlers/csrf.handler.d.ts.map +1 -1
- package/dist/handlers/csrf.handler.js +49 -1
- package/dist/handlers/csrf.handler.js.map +1 -1
- package/dist/handlers/token-delivery.handler.d.ts +16 -0
- package/dist/handlers/token-delivery.handler.d.ts.map +1 -1
- package/dist/handlers/token-delivery.handler.js +22 -1
- package/dist/handlers/token-delivery.handler.js.map +1 -1
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/client-info.interface.d.ts +58 -0
- package/dist/interfaces/client-info.interface.d.ts.map +1 -1
- package/dist/interfaces/config.interface.d.ts +1780 -0
- package/dist/interfaces/config.interface.d.ts.map +1 -1
- package/dist/interfaces/config.interface.js +16 -0
- package/dist/interfaces/config.interface.js.map +1 -1
- package/dist/interfaces/entities.interface.d.ts +48 -0
- package/dist/interfaces/entities.interface.d.ts.map +1 -1
- package/dist/interfaces/entities.interface.js +8 -0
- package/dist/interfaces/entities.interface.js.map +1 -1
- package/dist/interfaces/index.js +5 -0
- package/dist/interfaces/index.js.map +1 -1
- package/dist/interfaces/logger.interface.d.ts +213 -0
- package/dist/interfaces/logger.interface.d.ts.map +1 -1
- package/dist/interfaces/logger.interface.js +35 -0
- package/dist/interfaces/logger.interface.js.map +1 -1
- package/dist/interfaces/mfa-provider.interface.d.ts +134 -0
- package/dist/interfaces/mfa-provider.interface.d.ts.map +1 -1
- package/dist/interfaces/oauth.interface.d.ts +110 -0
- package/dist/interfaces/oauth.interface.d.ts.map +1 -1
- package/dist/interfaces/provider.interface.d.ts +83 -0
- package/dist/interfaces/provider.interface.d.ts.map +1 -1
- package/dist/interfaces/sms-template.interface.d.ts +246 -0
- package/dist/interfaces/sms-template.interface.d.ts.map +1 -1
- package/dist/interfaces/sms-template.interface.js +26 -0
- package/dist/interfaces/sms-template.interface.js.map +1 -1
- package/dist/interfaces/social-auth-provider.interface.d.ts +115 -0
- package/dist/interfaces/social-auth-provider.interface.d.ts.map +1 -1
- package/dist/interfaces/storage-adapter.interface.d.ts +37 -0
- package/dist/interfaces/storage-adapter.interface.d.ts.map +1 -1
- package/dist/interfaces/template.interface.d.ts +351 -0
- package/dist/interfaces/template.interface.d.ts.map +1 -1
- package/dist/interfaces/template.interface.js +13 -0
- package/dist/interfaces/template.interface.js.map +1 -1
- package/dist/interfaces/token-verifier.interface.d.ts +101 -0
- package/dist/interfaces/token-verifier.interface.d.ts.map +1 -1
- package/dist/interfaces.d.ts +8 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js +8 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/internal.d.ts +120 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +138 -0
- package/dist/internal.js.map +1 -1
- package/dist/platform/interfaces.d.ts +187 -0
- package/dist/platform/interfaces.d.ts.map +1 -1
- package/dist/platform/interfaces.js +11 -0
- package/dist/platform/interfaces.js.map +1 -1
- package/dist/schemas/auth-config.schema.d.ts +62 -0
- package/dist/schemas/auth-config.schema.d.ts.map +1 -1
- package/dist/schemas/auth-config.schema.js +189 -9
- package/dist/schemas/auth-config.schema.js.map +1 -1
- package/dist/services/adaptive-mfa-decision.service.d.ts +144 -0
- package/dist/services/adaptive-mfa-decision.service.d.ts.map +1 -1
- package/dist/services/adaptive-mfa-decision.service.js +151 -5
- package/dist/services/adaptive-mfa-decision.service.js.map +1 -1
- package/dist/services/auth-audit.service.d.ts +195 -0
- package/dist/services/auth-audit.service.d.ts.map +1 -1
- package/dist/services/auth-audit.service.js +228 -1
- package/dist/services/auth-audit.service.js.map +1 -1
- package/dist/services/auth-challenge-helper.service.d.ts +144 -1
- package/dist/services/auth-challenge-helper.service.d.ts.map +1 -1
- package/dist/services/auth-challenge-helper.service.js +295 -16
- package/dist/services/auth-challenge-helper.service.js.map +1 -1
- package/dist/services/auth-flow-context-builder.service.d.ts +120 -1
- package/dist/services/auth-flow-context-builder.service.d.ts.map +1 -1
- package/dist/services/auth-flow-context-builder.service.js +184 -5
- package/dist/services/auth-flow-context-builder.service.js.map +1 -1
- package/dist/services/auth-flow-rules.d.ts +136 -0
- package/dist/services/auth-flow-rules.d.ts.map +1 -1
- package/dist/services/auth-flow-rules.js +137 -0
- package/dist/services/auth-flow-rules.js.map +1 -1
- package/dist/services/auth-flow-state-definitions.d.ts +40 -0
- package/dist/services/auth-flow-state-definitions.d.ts.map +1 -1
- package/dist/services/auth-flow-state-definitions.js +98 -0
- package/dist/services/auth-flow-state-definitions.js.map +1 -1
- package/dist/services/auth-flow-state-machine.service.d.ts +91 -0
- package/dist/services/auth-flow-state-machine.service.d.ts.map +1 -1
- package/dist/services/auth-flow-state-machine.service.js +102 -0
- package/dist/services/auth-flow-state-machine.service.js.map +1 -1
- package/dist/services/auth-flow-state-machine.types.d.ts +221 -0
- package/dist/services/auth-flow-state-machine.types.d.ts.map +1 -1
- package/dist/services/auth-flow-state-machine.types.js +47 -0
- package/dist/services/auth-flow-state-machine.types.js.map +1 -1
- package/dist/services/auth.service.d.ts +397 -1
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +943 -27
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/challenge.service.d.ts +255 -1
- package/dist/services/challenge.service.d.ts.map +1 -1
- package/dist/services/challenge.service.js +327 -3
- package/dist/services/challenge.service.js.map +1 -1
- package/dist/services/client-info.service.d.ts +143 -0
- package/dist/services/client-info.service.d.ts.map +1 -1
- package/dist/services/client-info.service.js +161 -0
- package/dist/services/client-info.service.js.map +1 -1
- package/dist/services/csrf.service.d.ts +15 -0
- package/dist/services/csrf.service.d.ts.map +1 -1
- package/dist/services/csrf.service.js +16 -0
- package/dist/services/csrf.service.js.map +1 -1
- package/dist/services/email-verification.service.d.ts +52 -0
- package/dist/services/email-verification.service.d.ts.map +1 -1
- package/dist/services/email-verification.service.js +152 -12
- package/dist/services/email-verification.service.js.map +1 -1
- package/dist/services/geo-location.service.d.ts +105 -0
- package/dist/services/geo-location.service.d.ts.map +1 -1
- package/dist/services/geo-location.service.js +188 -2
- package/dist/services/geo-location.service.js.map +1 -1
- package/dist/services/jwt.service.d.ts +257 -0
- package/dist/services/jwt.service.d.ts.map +1 -1
- package/dist/services/jwt.service.js +284 -1
- package/dist/services/jwt.service.js.map +1 -1
- package/dist/services/mfa-base.service.d.ts +179 -1
- package/dist/services/mfa-base.service.d.ts.map +1 -1
- package/dist/services/mfa-base.service.js +256 -2
- package/dist/services/mfa-base.service.js.map +1 -1
- package/dist/services/mfa.service.d.ts +304 -0
- package/dist/services/mfa.service.d.ts.map +1 -1
- package/dist/services/mfa.service.js +380 -0
- package/dist/services/mfa.service.js.map +1 -1
- package/dist/services/password-reset.service.d.ts +46 -0
- package/dist/services/password-reset.service.d.ts.map +1 -1
- package/dist/services/password-reset.service.js +79 -0
- package/dist/services/password-reset.service.js.map +1 -1
- package/dist/services/password.service.d.ts +139 -0
- package/dist/services/password.service.d.ts.map +1 -1
- package/dist/services/password.service.js +167 -9
- package/dist/services/password.service.js.map +1 -1
- package/dist/services/phone-verification.service.d.ts +75 -0
- package/dist/services/phone-verification.service.d.ts.map +1 -1
- package/dist/services/phone-verification.service.js +188 -6
- package/dist/services/phone-verification.service.js.map +1 -1
- package/dist/services/risk-detection.service.d.ts +198 -0
- package/dist/services/risk-detection.service.d.ts.map +1 -1
- package/dist/services/risk-detection.service.js +358 -11
- package/dist/services/risk-detection.service.js.map +1 -1
- package/dist/services/risk-scoring.service.d.ts +84 -0
- package/dist/services/risk-scoring.service.d.ts.map +1 -1
- package/dist/services/risk-scoring.service.js +87 -0
- package/dist/services/risk-scoring.service.js.map +1 -1
- package/dist/services/session.service.d.ts +204 -0
- package/dist/services/session.service.d.ts.map +1 -1
- package/dist/services/session.service.js +289 -4
- package/dist/services/session.service.js.map +1 -1
- package/dist/services/social-auth-base.service.d.ts +123 -1
- package/dist/services/social-auth-base.service.d.ts.map +1 -1
- package/dist/services/social-auth-base.service.js +155 -2
- package/dist/services/social-auth-base.service.js.map +1 -1
- package/dist/services/social-auth.service.d.ts +191 -0
- package/dist/services/social-auth.service.d.ts.map +1 -1
- package/dist/services/social-auth.service.js +215 -2
- package/dist/services/social-auth.service.js.map +1 -1
- package/dist/services/social-provider-registry.service.d.ts +86 -0
- package/dist/services/social-provider-registry.service.d.ts.map +1 -1
- package/dist/services/social-provider-registry.service.js +86 -0
- package/dist/services/social-provider-registry.service.js.map +1 -1
- package/dist/services/trusted-device.service.d.ts +105 -0
- package/dist/services/trusted-device.service.d.ts.map +1 -1
- package/dist/services/trusted-device.service.js +133 -4
- package/dist/services/trusted-device.service.js.map +1 -1
- package/dist/storage/account-lockout-storage.service.d.ts +35 -0
- package/dist/storage/account-lockout-storage.service.d.ts.map +1 -1
- package/dist/storage/account-lockout-storage.service.js +35 -0
- package/dist/storage/account-lockout-storage.service.js.map +1 -1
- package/dist/storage/memory-storage.adapter.d.ts +148 -0
- package/dist/storage/memory-storage.adapter.d.ts.map +1 -1
- package/dist/storage/memory-storage.adapter.js +201 -6
- package/dist/storage/memory-storage.adapter.js.map +1 -1
- package/dist/storage/rate-limit-storage.service.d.ts +3 -0
- package/dist/storage/rate-limit-storage.service.d.ts.map +1 -1
- package/dist/storage/rate-limit-storage.service.js +4 -0
- package/dist/storage/rate-limit-storage.service.js.map +1 -1
- package/dist/storage.d.ts +8 -0
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +8 -0
- package/dist/storage.js.map +1 -1
- package/dist/templates/html-template.engine.d.ts +110 -0
- package/dist/templates/html-template.engine.d.ts.map +1 -1
- package/dist/templates/html-template.engine.js +147 -0
- package/dist/templates/html-template.engine.js.map +1 -1
- package/dist/templates/index.d.ts +5 -0
- package/dist/templates/index.d.ts.map +1 -1
- package/dist/templates/index.js +5 -0
- package/dist/templates/index.js.map +1 -1
- package/dist/templates/sms-template.engine.d.ts +151 -0
- package/dist/templates/sms-template.engine.d.ts.map +1 -1
- package/dist/templates/sms-template.engine.js +171 -0
- package/dist/templates/sms-template.engine.js.map +1 -1
- package/dist/templates.d.ts +8 -0
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +8 -0
- package/dist/templates.js.map +1 -1
- package/dist/utils/common-passwords.d.ts +42 -0
- package/dist/utils/common-passwords.d.ts.map +1 -1
- package/dist/utils/common-passwords.js +88 -0
- package/dist/utils/common-passwords.js.map +1 -1
- package/dist/utils/context-storage.d.ts +129 -0
- package/dist/utils/context-storage.d.ts.map +1 -1
- package/dist/utils/context-storage.js +129 -0
- package/dist/utils/context-storage.js.map +1 -1
- package/dist/utils/cookie-names.util.d.ts +35 -0
- package/dist/utils/cookie-names.util.d.ts.map +1 -1
- package/dist/utils/cookie-names.util.js +37 -0
- package/dist/utils/cookie-names.util.js.map +1 -1
- package/dist/utils/cookies.util.d.ts +19 -0
- package/dist/utils/cookies.util.d.ts.map +1 -1
- package/dist/utils/cookies.util.js +30 -3
- package/dist/utils/cookies.util.js.map +1 -1
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/ip-extractor.d.ts +88 -0
- package/dist/utils/ip-extractor.d.ts.map +1 -1
- package/dist/utils/ip-extractor.js +109 -16
- package/dist/utils/ip-extractor.js.map +1 -1
- package/dist/utils/nauth-logger.d.ts +70 -0
- package/dist/utils/nauth-logger.d.ts.map +1 -1
- package/dist/utils/nauth-logger.js +82 -4
- package/dist/utils/nauth-logger.js.map +1 -1
- package/dist/utils/pii-redactor.d.ts +70 -0
- package/dist/utils/pii-redactor.d.ts.map +1 -1
- package/dist/utils/pii-redactor.js +102 -0
- package/dist/utils/pii-redactor.js.map +1 -1
- package/dist/utils/setup/get-repositories.d.ts +16 -0
- package/dist/utils/setup/get-repositories.d.ts.map +1 -1
- package/dist/utils/setup/get-repositories.js +21 -0
- package/dist/utils/setup/get-repositories.js.map +1 -1
- package/dist/utils/setup/init-services.d.ts +40 -1
- package/dist/utils/setup/init-services.d.ts.map +1 -1
- package/dist/utils/setup/init-services.js +98 -0
- package/dist/utils/setup/init-services.js.map +1 -1
- package/dist/utils/setup/init-social.d.ts +27 -0
- package/dist/utils/setup/init-social.d.ts.map +1 -1
- package/dist/utils/setup/init-social.js +49 -0
- package/dist/utils/setup/init-social.js.map +1 -1
- package/dist/utils/setup/init-storage.d.ts +22 -0
- package/dist/utils/setup/init-storage.d.ts.map +1 -1
- package/dist/utils/setup/init-storage.js +36 -0
- package/dist/utils/setup/init-storage.js.map +1 -1
- package/dist/utils/setup/register-mfa.d.ts +22 -0
- package/dist/utils/setup/register-mfa.d.ts.map +1 -1
- package/dist/utils/setup/register-mfa.js +41 -0
- package/dist/utils/setup/register-mfa.js.map +1 -1
- package/dist/utils/setup/run-nauth-migrations.d.ts +7 -0
- package/dist/utils/setup/run-nauth-migrations.d.ts.map +1 -1
- package/dist/utils/setup/run-nauth-migrations.js +8 -0
- package/dist/utils/setup/run-nauth-migrations.js.map +1 -1
- package/dist/utils/token-delivery-policy.d.ts +17 -0
- package/dist/utils/token-delivery-policy.d.ts.map +1 -1
- package/dist/utils/token-delivery-policy.js +17 -0
- package/dist/utils/token-delivery-policy.js.map +1 -1
- package/dist/utils.d.ts +8 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +8 -0
- package/dist/utils.js.map +1 -1
- package/dist/validators/template.validator.d.ts +80 -0
- package/dist/validators/template.validator.d.ts.map +1 -1
- package/dist/validators/template.validator.js +94 -0
- package/dist/validators/template.validator.js.map +1 -1
- package/package.json +7 -2
|
@@ -1,24 +1,100 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UserResponseDto = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* User Response DTO
|
|
6
|
+
*
|
|
7
|
+
* Sanitized user object for API responses.
|
|
8
|
+
* Excludes all sensitive and internal fields.
|
|
9
|
+
*
|
|
10
|
+
* Security:
|
|
11
|
+
* - Never exposes password hash
|
|
12
|
+
* - Never exposes MFA secrets
|
|
13
|
+
* - Never exposes internal tracking fields
|
|
14
|
+
* - Exposes 'sub' (external UUID) instead of internal 'id'
|
|
15
|
+
*
|
|
16
|
+
* No validators needed - this is generated internally by the library via fromEntity().
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const user = await userRepository.findOne({ where: { sub } });
|
|
21
|
+
* return UserResponseDto.fromEntity(user);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
4
24
|
class UserResponseDto {
|
|
25
|
+
/**
|
|
26
|
+
* External user identifier (UUID v4)
|
|
27
|
+
* This is the 'sub' (subject) field from JWT tokens
|
|
28
|
+
*/
|
|
5
29
|
sub;
|
|
30
|
+
/**
|
|
31
|
+
* User's email address
|
|
32
|
+
*/
|
|
6
33
|
email;
|
|
34
|
+
/**
|
|
35
|
+
* User's username (optional)
|
|
36
|
+
*/
|
|
7
37
|
username;
|
|
38
|
+
/**
|
|
39
|
+
* User's first name (optional)
|
|
40
|
+
*/
|
|
8
41
|
firstName;
|
|
42
|
+
/**
|
|
43
|
+
* User's last name (optional)
|
|
44
|
+
*/
|
|
9
45
|
lastName;
|
|
46
|
+
/**
|
|
47
|
+
* User's phone number (optional)
|
|
48
|
+
* E.164 format validated in service layer if present
|
|
49
|
+
*/
|
|
10
50
|
phone;
|
|
51
|
+
/**
|
|
52
|
+
* Email verification status
|
|
53
|
+
*/
|
|
11
54
|
isEmailVerified;
|
|
55
|
+
/**
|
|
56
|
+
* Phone verification status
|
|
57
|
+
*/
|
|
12
58
|
isPhoneVerified;
|
|
59
|
+
/**
|
|
60
|
+
* Account active status
|
|
61
|
+
*/
|
|
13
62
|
isActive;
|
|
63
|
+
/**
|
|
64
|
+
* MFA enabled status
|
|
65
|
+
*/
|
|
14
66
|
mfaEnabled;
|
|
67
|
+
/**
|
|
68
|
+
* Array of social providers linked to this account
|
|
69
|
+
*
|
|
70
|
+
* Examples: ['google', 'apple', 'facebook']
|
|
71
|
+
* null/undefined means no social auth, only password-based
|
|
72
|
+
*/
|
|
15
73
|
socialProviders;
|
|
74
|
+
/**
|
|
75
|
+
* Whether this user has a password set
|
|
76
|
+
* Used to determine if user can use password-based authentication
|
|
77
|
+
* or is a pure social signup (no password, only social auth)
|
|
78
|
+
*/
|
|
16
79
|
hasPasswordHash;
|
|
80
|
+
/**
|
|
81
|
+
* Account creation timestamp
|
|
82
|
+
*/
|
|
17
83
|
createdAt;
|
|
84
|
+
/**
|
|
85
|
+
* Last account update timestamp
|
|
86
|
+
*/
|
|
18
87
|
updatedAt;
|
|
88
|
+
/**
|
|
89
|
+
* Convert User entity to safe response DTO
|
|
90
|
+
*
|
|
91
|
+
* @param user - User entity from database
|
|
92
|
+
* @returns Sanitized user object with external identifier (sub)
|
|
93
|
+
*/
|
|
19
94
|
static fromEntity(user) {
|
|
20
95
|
const dto = new UserResponseDto();
|
|
21
|
-
|
|
96
|
+
// Essential fields only
|
|
97
|
+
dto.sub = user.sub; // External UUID identifier
|
|
22
98
|
dto.email = user.email;
|
|
23
99
|
dto.username = user.username;
|
|
24
100
|
dto.firstName = user.firstName;
|
|
@@ -29,11 +105,17 @@ class UserResponseDto {
|
|
|
29
105
|
dto.isActive = user.isActive;
|
|
30
106
|
dto.mfaEnabled = user.mfaEnabled;
|
|
31
107
|
dto.socialProviders = user.socialProviders;
|
|
32
|
-
dto.hasPasswordHash = !!user.passwordHash;
|
|
108
|
+
dto.hasPasswordHash = !!user.passwordHash; // Check if password exists
|
|
33
109
|
dto.createdAt = user.createdAt;
|
|
34
110
|
dto.updatedAt = user.updatedAt;
|
|
35
111
|
return dto;
|
|
36
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Convert array of User entities to safe response DTOs
|
|
115
|
+
*
|
|
116
|
+
* @param users - Array of User entities
|
|
117
|
+
* @returns Array of sanitized user objects
|
|
118
|
+
*/
|
|
37
119
|
static fromEntities(users) {
|
|
38
120
|
return users.map((user) => UserResponseDto.fromEntity(user));
|
|
39
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-response.dto.js","sourceRoot":"","sources":["../../src/dto/user-response.dto.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"user-response.dto.js","sourceRoot":"","sources":["../../src/dto/user-response.dto.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,eAAe;IAC1B;;;OAGG;IACH,GAAG,CAAU;IAEb;;OAEG;IACH,KAAK,CAAU;IAEf;;OAEG;IACH,QAAQ,CAAiB;IAEzB;;OAEG;IACH,SAAS,CAAiB;IAE1B;;OAEG;IACH,QAAQ,CAAiB;IAEzB;;;OAGG;IACH,KAAK,CAAiB;IAEtB;;OAEG;IACH,eAAe,CAAW;IAE1B;;OAEG;IACH,eAAe,CAAW;IAE1B;;OAEG;IACH,QAAQ,CAAW;IAEnB;;OAEG;IACH,UAAU,CAAW;IAErB;;;;;OAKG;IACH,eAAe,CAAmB;IAElC;;;;OAIG;IACH,eAAe,CAAW;IAE1B;;OAEG;IACH,SAAS,CAAQ;IAEjB;;OAEG;IACH,SAAS,CAAQ;IAEjB;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,IAAW;QAC3B,MAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;QAElC,wBAAwB;QACxB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,2BAA2B;QAC/C,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3C,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3C,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,2BAA2B;QACtE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAE/B,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,KAAc;QAChC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AAnHD,0CAmHC"}
|
|
@@ -1,12 +1,144 @@
|
|
|
1
1
|
import { MFADeviceMethod } from '../enums/mfa-method.enum';
|
|
2
|
+
/**
|
|
3
|
+
* DTO for updating user attributes
|
|
4
|
+
*
|
|
5
|
+
* Security:
|
|
6
|
+
* - All fields validated against DB constraints
|
|
7
|
+
* - Input sanitization applied automatically
|
|
8
|
+
* - Email uniqueness checked in service layer
|
|
9
|
+
* - Phone uniqueness checked in service layer
|
|
10
|
+
* - Username uniqueness checked in service layer
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const updateData: UserUpdateDTO = {
|
|
15
|
+
* firstName: 'John',
|
|
16
|
+
* lastName: 'Doe',
|
|
17
|
+
* email: 'john.doe@example.com',
|
|
18
|
+
* phone: '+61444567890'
|
|
19
|
+
* };
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
2
22
|
export declare class UserUpdateDTO {
|
|
23
|
+
/**
|
|
24
|
+
* Optional username update
|
|
25
|
+
*
|
|
26
|
+
* Validation:
|
|
27
|
+
* - 3-50 characters
|
|
28
|
+
* - Alphanumeric, underscores, and hyphens only
|
|
29
|
+
* - Max 255 characters (DB limit)
|
|
30
|
+
* - Uniqueness checked in service layer
|
|
31
|
+
*
|
|
32
|
+
* Sanitization:
|
|
33
|
+
* - Trimmed
|
|
34
|
+
* - Case preserved (username can be case-sensitive per config)
|
|
35
|
+
*/
|
|
3
36
|
username?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Optional first name update
|
|
39
|
+
*
|
|
40
|
+
* Validation:
|
|
41
|
+
* - 1-100 characters
|
|
42
|
+
* - Letters, spaces, hyphens, and apostrophes only
|
|
43
|
+
* - Max 100 characters (DB limit)
|
|
44
|
+
*
|
|
45
|
+
* Sanitization:
|
|
46
|
+
* - Trimmed
|
|
47
|
+
* - Title case preserved
|
|
48
|
+
*/
|
|
4
49
|
firstName?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Optional last name update
|
|
52
|
+
*
|
|
53
|
+
* Validation:
|
|
54
|
+
* - 1-100 characters
|
|
55
|
+
* - Letters, spaces, hyphens, and apostrophes only
|
|
56
|
+
* - Max 100 characters (DB limit)
|
|
57
|
+
*
|
|
58
|
+
* Sanitization:
|
|
59
|
+
* - Trimmed
|
|
60
|
+
* - Title case preserved
|
|
61
|
+
*/
|
|
5
62
|
lastName?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Optional email address update
|
|
65
|
+
*
|
|
66
|
+
* Validation:
|
|
67
|
+
* - Valid email format (RFC 5322)
|
|
68
|
+
* - Max 255 characters (matches DB limit)
|
|
69
|
+
* - Uniqueness checked in service layer
|
|
70
|
+
*
|
|
71
|
+
* Sanitization:
|
|
72
|
+
* - Trimmed and lowercased
|
|
73
|
+
*/
|
|
6
74
|
email?: string;
|
|
75
|
+
/**
|
|
76
|
+
* Optional phone number update
|
|
77
|
+
*
|
|
78
|
+
* Validation:
|
|
79
|
+
* - E.164 format (international standard)
|
|
80
|
+
* - MUST start with + (required for security)
|
|
81
|
+
* - Max 20 characters (DB limit)
|
|
82
|
+
* - Uniqueness checked in service layer
|
|
83
|
+
*
|
|
84
|
+
* Sanitization:
|
|
85
|
+
* - Whitespace removed
|
|
86
|
+
* - Only digits and leading + preserved
|
|
87
|
+
*
|
|
88
|
+
* Security:
|
|
89
|
+
* - Strict E.164 validation prevents SQL injection
|
|
90
|
+
* - Max length prevents oversized inputs
|
|
91
|
+
*/
|
|
7
92
|
phone?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Optional metadata update (custom fields)
|
|
95
|
+
*
|
|
96
|
+
* Security:
|
|
97
|
+
* - Validated in service layer if used
|
|
98
|
+
* - Max depth/size limits should be enforced
|
|
99
|
+
* - Existing metadata merged with new values
|
|
100
|
+
*/
|
|
8
101
|
metadata?: Record<string, unknown>;
|
|
102
|
+
/**
|
|
103
|
+
* Optional preferred MFA method
|
|
104
|
+
*
|
|
105
|
+
* Sets the user's preferred MFA method for authentication.
|
|
106
|
+
* Must be one of the MFA device methods the user has configured.
|
|
107
|
+
*
|
|
108
|
+
* Validation:
|
|
109
|
+
* - Must be one of: totp, sms, email, passkey
|
|
110
|
+
* - Max 50 characters (matches typical method name length)
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* await authService.updateUserAttributes(userId, {
|
|
115
|
+
* preferredMfaMethod: 'totp'
|
|
116
|
+
* });
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
9
119
|
preferredMfaMethod?: MFADeviceMethod;
|
|
120
|
+
/**
|
|
121
|
+
* Optional flag to retain verification status when updating email/phone
|
|
122
|
+
*
|
|
123
|
+
* When true:
|
|
124
|
+
* - Email verification status is preserved when email is updated
|
|
125
|
+
* - Phone verification status is preserved when phone is updated
|
|
126
|
+
* - Useful when verification was done externally or outside nauth-toolkit
|
|
127
|
+
*
|
|
128
|
+
* When false or undefined (default):
|
|
129
|
+
* - Email verification is reset to false when email is updated
|
|
130
|
+
* - Phone verification is reset to false when phone is updated
|
|
131
|
+
* - User must re-verify the new email/phone
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* // Update email but keep verification status (external verification)
|
|
136
|
+
* await authService.updateUserAttributes(userId, {
|
|
137
|
+
* email: 'new@example.com',
|
|
138
|
+
* retainVerification: true
|
|
139
|
+
* });
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
10
142
|
retainVerification?: boolean;
|
|
11
143
|
}
|
|
12
144
|
//# sourceMappingURL=user-update.dto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-update.dto.d.ts","sourceRoot":"","sources":["../../src/dto/user-update.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAa,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"user-update.dto.d.ts","sourceRoot":"","sources":["../../src/dto/user-update.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAa,MAAM,0BAA0B,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,aAAa;IACxB;;;;;;;;;;;;OAYG;IAcH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;OAWG;IAcH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;OAWG;IAcH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;OAUG;IAUH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;;;;;;;OAgBG;IAcH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;OAOG;IAEH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;;;;;;;;;;;;;;OAgBG;IAMH,kBAAkB,CAAC,EAAE,eAAe,CAAC;IAErC;;;;;;;;;;;;;;;;;;;;;OAqBG;IAGH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B"}
|
|
@@ -13,14 +13,146 @@ exports.UserUpdateDTO = void 0;
|
|
|
13
13
|
const class_validator_1 = require("class-validator");
|
|
14
14
|
const class_transformer_1 = require("class-transformer");
|
|
15
15
|
const mfa_method_enum_1 = require("../enums/mfa-method.enum");
|
|
16
|
+
/**
|
|
17
|
+
* DTO for updating user attributes
|
|
18
|
+
*
|
|
19
|
+
* Security:
|
|
20
|
+
* - All fields validated against DB constraints
|
|
21
|
+
* - Input sanitization applied automatically
|
|
22
|
+
* - Email uniqueness checked in service layer
|
|
23
|
+
* - Phone uniqueness checked in service layer
|
|
24
|
+
* - Username uniqueness checked in service layer
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const updateData: UserUpdateDTO = {
|
|
29
|
+
* firstName: 'John',
|
|
30
|
+
* lastName: 'Doe',
|
|
31
|
+
* email: 'john.doe@example.com',
|
|
32
|
+
* phone: '+61444567890'
|
|
33
|
+
* };
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
16
36
|
class UserUpdateDTO {
|
|
37
|
+
/**
|
|
38
|
+
* Optional username update
|
|
39
|
+
*
|
|
40
|
+
* Validation:
|
|
41
|
+
* - 3-50 characters
|
|
42
|
+
* - Alphanumeric, underscores, and hyphens only
|
|
43
|
+
* - Max 255 characters (DB limit)
|
|
44
|
+
* - Uniqueness checked in service layer
|
|
45
|
+
*
|
|
46
|
+
* Sanitization:
|
|
47
|
+
* - Trimmed
|
|
48
|
+
* - Case preserved (username can be case-sensitive per config)
|
|
49
|
+
*/
|
|
17
50
|
username;
|
|
51
|
+
/**
|
|
52
|
+
* Optional first name update
|
|
53
|
+
*
|
|
54
|
+
* Validation:
|
|
55
|
+
* - 1-100 characters
|
|
56
|
+
* - Letters, spaces, hyphens, and apostrophes only
|
|
57
|
+
* - Max 100 characters (DB limit)
|
|
58
|
+
*
|
|
59
|
+
* Sanitization:
|
|
60
|
+
* - Trimmed
|
|
61
|
+
* - Title case preserved
|
|
62
|
+
*/
|
|
18
63
|
firstName;
|
|
64
|
+
/**
|
|
65
|
+
* Optional last name update
|
|
66
|
+
*
|
|
67
|
+
* Validation:
|
|
68
|
+
* - 1-100 characters
|
|
69
|
+
* - Letters, spaces, hyphens, and apostrophes only
|
|
70
|
+
* - Max 100 characters (DB limit)
|
|
71
|
+
*
|
|
72
|
+
* Sanitization:
|
|
73
|
+
* - Trimmed
|
|
74
|
+
* - Title case preserved
|
|
75
|
+
*/
|
|
19
76
|
lastName;
|
|
77
|
+
/**
|
|
78
|
+
* Optional email address update
|
|
79
|
+
*
|
|
80
|
+
* Validation:
|
|
81
|
+
* - Valid email format (RFC 5322)
|
|
82
|
+
* - Max 255 characters (matches DB limit)
|
|
83
|
+
* - Uniqueness checked in service layer
|
|
84
|
+
*
|
|
85
|
+
* Sanitization:
|
|
86
|
+
* - Trimmed and lowercased
|
|
87
|
+
*/
|
|
20
88
|
email;
|
|
89
|
+
/**
|
|
90
|
+
* Optional phone number update
|
|
91
|
+
*
|
|
92
|
+
* Validation:
|
|
93
|
+
* - E.164 format (international standard)
|
|
94
|
+
* - MUST start with + (required for security)
|
|
95
|
+
* - Max 20 characters (DB limit)
|
|
96
|
+
* - Uniqueness checked in service layer
|
|
97
|
+
*
|
|
98
|
+
* Sanitization:
|
|
99
|
+
* - Whitespace removed
|
|
100
|
+
* - Only digits and leading + preserved
|
|
101
|
+
*
|
|
102
|
+
* Security:
|
|
103
|
+
* - Strict E.164 validation prevents SQL injection
|
|
104
|
+
* - Max length prevents oversized inputs
|
|
105
|
+
*/
|
|
21
106
|
phone;
|
|
107
|
+
/**
|
|
108
|
+
* Optional metadata update (custom fields)
|
|
109
|
+
*
|
|
110
|
+
* Security:
|
|
111
|
+
* - Validated in service layer if used
|
|
112
|
+
* - Max depth/size limits should be enforced
|
|
113
|
+
* - Existing metadata merged with new values
|
|
114
|
+
*/
|
|
22
115
|
metadata;
|
|
116
|
+
/**
|
|
117
|
+
* Optional preferred MFA method
|
|
118
|
+
*
|
|
119
|
+
* Sets the user's preferred MFA method for authentication.
|
|
120
|
+
* Must be one of the MFA device methods the user has configured.
|
|
121
|
+
*
|
|
122
|
+
* Validation:
|
|
123
|
+
* - Must be one of: totp, sms, email, passkey
|
|
124
|
+
* - Max 50 characters (matches typical method name length)
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* await authService.updateUserAttributes(userId, {
|
|
129
|
+
* preferredMfaMethod: 'totp'
|
|
130
|
+
* });
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
23
133
|
preferredMfaMethod;
|
|
134
|
+
/**
|
|
135
|
+
* Optional flag to retain verification status when updating email/phone
|
|
136
|
+
*
|
|
137
|
+
* When true:
|
|
138
|
+
* - Email verification status is preserved when email is updated
|
|
139
|
+
* - Phone verification status is preserved when phone is updated
|
|
140
|
+
* - Useful when verification was done externally or outside nauth-toolkit
|
|
141
|
+
*
|
|
142
|
+
* When false or undefined (default):
|
|
143
|
+
* - Email verification is reset to false when email is updated
|
|
144
|
+
* - Phone verification is reset to false when phone is updated
|
|
145
|
+
* - User must re-verify the new email/phone
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* // Update email but keep verification status (external verification)
|
|
150
|
+
* await authService.updateUserAttributes(userId, {
|
|
151
|
+
* email: 'new@example.com',
|
|
152
|
+
* retainVerification: true
|
|
153
|
+
* });
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
24
156
|
retainVerification;
|
|
25
157
|
}
|
|
26
158
|
exports.UserUpdateDTO = UserUpdateDTO;
|
|
@@ -93,6 +225,7 @@ __decorate([
|
|
|
93
225
|
}),
|
|
94
226
|
(0, class_transformer_1.Transform)(({ value }) => {
|
|
95
227
|
if (typeof value === 'string') {
|
|
228
|
+
// Remove all whitespace and keep only digits and +
|
|
96
229
|
return value.replace(/\s/g, '');
|
|
97
230
|
}
|
|
98
231
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-update.dto.js","sourceRoot":"","sources":["../../src/dto/user-update.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAkH;AAClH,yDAA8C;AAC9C,8DAAsE;
|
|
1
|
+
{"version":3,"file":"user-update.dto.js","sourceRoot":"","sources":["../../src/dto/user-update.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DTO for verifying email with code (6-digit OTP)
|
|
3
|
+
*
|
|
4
|
+
* Security:
|
|
5
|
+
* - Email must be valid format and match DB limits
|
|
6
|
+
* - Code must be exactly 6 digits (no more, no less)
|
|
7
|
+
* - All fields are required (no optional fields to prevent attacks)
|
|
8
|
+
* - Input sanitization applied automatically
|
|
9
|
+
*/
|
|
1
10
|
export declare class VerifyEmailWithCodeDTO {
|
|
11
|
+
/**
|
|
12
|
+
* User's email address
|
|
13
|
+
* Must match the email used during signup
|
|
14
|
+
*
|
|
15
|
+
* Validation:
|
|
16
|
+
* - Valid email format (RFC 5322)
|
|
17
|
+
* - Max 255 characters (matches DB column limit)
|
|
18
|
+
* - Automatically trimmed and lowercased
|
|
19
|
+
*
|
|
20
|
+
* Sanitization:
|
|
21
|
+
* - Removes leading/trailing whitespace
|
|
22
|
+
* - Converts to lowercase for case-insensitive matching
|
|
23
|
+
*/
|
|
2
24
|
email: string;
|
|
25
|
+
/**
|
|
26
|
+
* 6-digit verification code from email
|
|
27
|
+
*
|
|
28
|
+
* Validation:
|
|
29
|
+
* - Must be numeric string (digits only)
|
|
30
|
+
* - Exactly 6 characters long
|
|
31
|
+
* - Fixed length prevents timing attacks
|
|
32
|
+
*
|
|
33
|
+
* Sanitization:
|
|
34
|
+
* - Removes all whitespace (users might copy "123 456")
|
|
35
|
+
* - Removes non-digit characters
|
|
36
|
+
*/
|
|
3
37
|
code: string;
|
|
38
|
+
/**
|
|
39
|
+
* Challenge session ID (internal use)
|
|
40
|
+
* Optional - used internally to link verification to specific challenge session.
|
|
41
|
+
* Provides security by ensuring codes are only valid for the session they were created for.
|
|
42
|
+
*
|
|
43
|
+
* Validation:
|
|
44
|
+
* - Must be a positive integer if provided
|
|
45
|
+
* - Optional (for backward compatibility and direct verification flows)
|
|
46
|
+
*/
|
|
4
47
|
challengeSessionId?: number;
|
|
5
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* DTO for verifying email with URL token
|
|
51
|
+
*
|
|
52
|
+
* Security:
|
|
53
|
+
* - Token must be valid hex format
|
|
54
|
+
* - Exact length enforced (64 chars = 32 bytes SHA-256 hash)
|
|
55
|
+
* - No SQL injection or XSS possible
|
|
56
|
+
* - Input sanitization prevents malformed tokens
|
|
57
|
+
*/
|
|
6
58
|
export declare class VerifyEmailWithTokenDTO {
|
|
59
|
+
/**
|
|
60
|
+
* Verification token from email link
|
|
61
|
+
*
|
|
62
|
+
* Validation:
|
|
63
|
+
* - Exactly 64 hexadecimal characters (SHA-256 hash output)
|
|
64
|
+
* - Only 0-9 and a-f characters allowed
|
|
65
|
+
* - Case-insensitive
|
|
66
|
+
*
|
|
67
|
+
* Sanitization:
|
|
68
|
+
* - Removes whitespace
|
|
69
|
+
* - Converts to lowercase for consistent hashing
|
|
70
|
+
*/
|
|
7
71
|
token: string;
|
|
8
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* DTO for sending a verification email
|
|
75
|
+
*
|
|
76
|
+
* Security:
|
|
77
|
+
* - User sub validated as UUID v4
|
|
78
|
+
* - BaseURL validated as max length
|
|
79
|
+
* - Skip flag is boolean (prevents injection)
|
|
80
|
+
*/
|
|
9
81
|
export declare class SendVerificationEmailDTO {
|
|
82
|
+
/**
|
|
83
|
+
* User identifier (UUID v4)
|
|
84
|
+
*
|
|
85
|
+
* Validation:
|
|
86
|
+
* - Must be valid UUID v4 format
|
|
87
|
+
*
|
|
88
|
+
* Sanitization:
|
|
89
|
+
* - Trimmed and lowercased
|
|
90
|
+
*/
|
|
10
91
|
sub: string;
|
|
92
|
+
/**
|
|
93
|
+
* Base URL for verification link (optional)
|
|
94
|
+
*
|
|
95
|
+
* Validation:
|
|
96
|
+
* - Must be valid URL format (http:// or https://)
|
|
97
|
+
* - Max 2048 characters (typical URL length limit)
|
|
98
|
+
* - Optional field
|
|
99
|
+
*
|
|
100
|
+
* Sanitization:
|
|
101
|
+
* - Trimmed
|
|
102
|
+
*/
|
|
11
103
|
baseUrl?: string;
|
|
104
|
+
/**
|
|
105
|
+
* Skip the "already verified" check
|
|
106
|
+
* Used for MFA contexts where codes are needed even if email is verified
|
|
107
|
+
*
|
|
108
|
+
* Validation:
|
|
109
|
+
* - Must be boolean
|
|
110
|
+
* - Optional (defaults to false)
|
|
111
|
+
*/
|
|
12
112
|
skipAlreadyVerifiedCheck?: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Challenge session ID to link this verification token to
|
|
115
|
+
* Optional - for linking verification tokens to specific challenge sessions.
|
|
116
|
+
* Provides security by preventing old tokens from being used with new sessions.
|
|
117
|
+
*
|
|
118
|
+
* Validation:
|
|
119
|
+
* - Must be a positive integer
|
|
120
|
+
* - Optional (for backward compatibility and non-challenge flows like password reset)
|
|
121
|
+
*/
|
|
13
122
|
challengeSessionId?: number;
|
|
14
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Response DTO for sendVerificationEmail
|
|
126
|
+
*/
|
|
15
127
|
export declare class SendVerificationEmailResponseDTO {
|
|
128
|
+
/**
|
|
129
|
+
* Verification token ID (internal integer)
|
|
130
|
+
*/
|
|
16
131
|
tokenId: number;
|
|
17
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* DTO for requesting a verification email resend
|
|
135
|
+
*
|
|
136
|
+
* Supports both overload patterns:
|
|
137
|
+
* 1. Resend by user sub (string)
|
|
138
|
+
* 2. Resend by email address (object with email property)
|
|
139
|
+
*
|
|
140
|
+
* Security:
|
|
141
|
+
* - Either sub or email must be provided (conditional validation)
|
|
142
|
+
* - Rate limiting applied in service layer
|
|
143
|
+
* - Input sanitization prevents abuse
|
|
144
|
+
*/
|
|
18
145
|
export declare class ResendVerificationEmailDTO {
|
|
146
|
+
/**
|
|
147
|
+
* User identifier (UUID v4) - optional if email provided
|
|
148
|
+
*
|
|
149
|
+
* Validation:
|
|
150
|
+
* - Must be valid UUID v4 format if provided
|
|
151
|
+
* - Required if email is not provided
|
|
152
|
+
*
|
|
153
|
+
* Sanitization:
|
|
154
|
+
* - Trimmed and lowercased
|
|
155
|
+
*/
|
|
19
156
|
sub?: string;
|
|
157
|
+
/**
|
|
158
|
+
* User's email address - optional if sub provided
|
|
159
|
+
*
|
|
160
|
+
* Validation:
|
|
161
|
+
* - Valid email format if provided
|
|
162
|
+
* - Max 255 characters (DB limit)
|
|
163
|
+
* - Required if sub is not provided
|
|
164
|
+
*
|
|
165
|
+
* Sanitization:
|
|
166
|
+
* - Trimmed and lowercased
|
|
167
|
+
*/
|
|
20
168
|
email?: string;
|
|
169
|
+
/**
|
|
170
|
+
* Base URL for verification link (optional)
|
|
171
|
+
*
|
|
172
|
+
* Validation:
|
|
173
|
+
* - Must be valid URL format (http:// or https://)
|
|
174
|
+
* - Max 2048 characters
|
|
175
|
+
* - Optional field
|
|
176
|
+
*
|
|
177
|
+
* Sanitization:
|
|
178
|
+
* - Trimmed
|
|
179
|
+
*/
|
|
21
180
|
baseUrl?: string;
|
|
22
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Response DTO for resendVerificationEmail
|
|
184
|
+
*/
|
|
23
185
|
export declare class ResendVerificationEmailResponseDTO {
|
|
186
|
+
/**
|
|
187
|
+
* Verification token ID (internal integer)
|
|
188
|
+
*/
|
|
24
189
|
tokenId: number;
|
|
25
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Response DTO for verifyEmailWithCode and verifyEmailWithToken
|
|
193
|
+
*/
|
|
26
194
|
export declare class VerifyEmailResponseDTO {
|
|
195
|
+
/**
|
|
196
|
+
* Success message
|
|
197
|
+
*/
|
|
27
198
|
message: string;
|
|
28
199
|
}
|
|
29
200
|
//# sourceMappingURL=verify-email.dto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-email.dto.d.ts","sourceRoot":"","sources":["../../src/dto/verify-email.dto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify-email.dto.d.ts","sourceRoot":"","sources":["../../src/dto/verify-email.dto.ts"],"names":[],"mappings":"AAgBA;;;;;;;;GAQG;AACH,qBAAa,sBAAsB;IACjC;;;;;;;;;;;;OAYG;IASH,KAAK,EAAG,MAAM,CAAC;IAEf;;;;;;;;;;;OAWG;IAWH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;;;;;OAQG;IAIH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAuB;IAClC;;;;;;;;;;;OAWG;IAYH,KAAK,EAAG,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IACnC;;;;;;;;OAQG;IAQH,GAAG,EAAG,MAAM,CAAC;IAEb;;;;;;;;;;OAUG;IAaH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;OAOG;IAGH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;;;;OAQG;IAIH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,gCAAgC;IAC3C;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA0B;IACrC;;;;;;;;;OASG;IASH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;;;;;OAUG;IAUH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;OAUG;IAaH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,kCAAkC;IAC7C;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB"}
|