@nauth-toolkit/core 0.1.14 → 0.1.17
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 +1774 -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 +48 -0
- package/dist/schemas/auth-config.schema.d.ts.map +1 -1
- package/dist/schemas/auth-config.schema.js +188 -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 +149 -10
- 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
|
@@ -2,12 +2,66 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ContextStorage = void 0;
|
|
4
4
|
const async_hooks_1 = require("async_hooks");
|
|
5
|
+
/**
|
|
6
|
+
* Context Storage - Platform-Agnostic Async Local Storage
|
|
7
|
+
*
|
|
8
|
+
* Provides request-scoped storage using Node.js AsyncLocalStorage.
|
|
9
|
+
* Replaces nestjs-cls for platform-agnostic context management.
|
|
10
|
+
*
|
|
11
|
+
* **Features:**
|
|
12
|
+
* - Request-scoped data storage
|
|
13
|
+
* - Works across async boundaries
|
|
14
|
+
* - No framework dependencies
|
|
15
|
+
* - Type-safe storage and retrieval
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* // Store data in context
|
|
20
|
+
* ContextStorage.run(() => {
|
|
21
|
+
* ContextStorage.set('userId', '123');
|
|
22
|
+
* ContextStorage.set('clientInfo', { ip: '1.2.3.4' });
|
|
23
|
+
*
|
|
24
|
+
* // Access from any nested function
|
|
25
|
+
* const userId = ContextStorage.get<string>('userId');
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
5
29
|
class ContextStorage {
|
|
6
30
|
static als = new async_hooks_1.AsyncLocalStorage();
|
|
31
|
+
/**
|
|
32
|
+
* Run a callback within a new context
|
|
33
|
+
*
|
|
34
|
+
* Creates a new async local storage context for the callback.
|
|
35
|
+
* All ContextStorage operations within the callback will use this context.
|
|
36
|
+
*
|
|
37
|
+
* @param callback - Function to execute with context
|
|
38
|
+
* @returns Result of the callback
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const result = ContextStorage.run(() => {
|
|
43
|
+
* ContextStorage.set('key', 'value');
|
|
44
|
+
* return processRequest();
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
7
48
|
static run(callback) {
|
|
8
49
|
const store = new Map();
|
|
9
50
|
return this.als.run(store, callback);
|
|
10
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Store a value in the current context
|
|
54
|
+
*
|
|
55
|
+
* @param key - Storage key
|
|
56
|
+
* @param value - Value to store
|
|
57
|
+
* @throws Error if called outside of a context (ContextStorage.run not called)
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* ContextStorage.set('userId', '123');
|
|
62
|
+
* ContextStorage.set('clientInfo', { ip: '1.2.3.4', userAgent: 'Mozilla...' });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
11
65
|
static set(key, value) {
|
|
12
66
|
const store = this.als.getStore();
|
|
13
67
|
if (!store) {
|
|
@@ -15,14 +69,50 @@ class ContextStorage {
|
|
|
15
69
|
}
|
|
16
70
|
store.set(key, value);
|
|
17
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Retrieve a value from the current context
|
|
74
|
+
*
|
|
75
|
+
* @param key - Storage key
|
|
76
|
+
* @returns Stored value or undefined if not found
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const userId = ContextStorage.get<string>('userId');
|
|
81
|
+
* const clientInfo = ContextStorage.get<ClientInfo>('CLIENT_INFO');
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
18
84
|
static get(key) {
|
|
19
85
|
const store = this.als.getStore();
|
|
20
86
|
return store?.get(key);
|
|
21
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Check if a key exists in the current context
|
|
90
|
+
*
|
|
91
|
+
* @param key - Storage key
|
|
92
|
+
* @returns True if key exists, false otherwise
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* if (ContextStorage.has('userId')) {
|
|
97
|
+
* const userId = ContextStorage.get<string>('userId');
|
|
98
|
+
* }
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
22
101
|
static has(key) {
|
|
23
102
|
const store = this.als.getStore();
|
|
24
103
|
return store?.has(key) || false;
|
|
25
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Delete a value from the current context
|
|
107
|
+
*
|
|
108
|
+
* @param key - Storage key
|
|
109
|
+
* @returns True if key was deleted, false if it didn't exist
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* ContextStorage.delete('temporaryData');
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
26
116
|
static delete(key) {
|
|
27
117
|
const store = this.als.getStore();
|
|
28
118
|
if (!store) {
|
|
@@ -30,12 +120,31 @@ class ContextStorage {
|
|
|
30
120
|
}
|
|
31
121
|
return store.delete(key);
|
|
32
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Clear all values from the current context
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* ContextStorage.clear();
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
33
131
|
static clear() {
|
|
34
132
|
const store = this.als.getStore();
|
|
35
133
|
if (store) {
|
|
36
134
|
store.clear();
|
|
37
135
|
}
|
|
38
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Get all keys in the current context
|
|
139
|
+
*
|
|
140
|
+
* @returns Array of storage keys
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```typescript
|
|
144
|
+
* const keys = ContextStorage.keys();
|
|
145
|
+
* console.log('Stored keys:', keys);
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
39
148
|
static keys() {
|
|
40
149
|
const store = this.als.getStore();
|
|
41
150
|
if (!store) {
|
|
@@ -43,9 +152,29 @@ class ContextStorage {
|
|
|
43
152
|
}
|
|
44
153
|
return Array.from(store.keys());
|
|
45
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Get the current store instance
|
|
157
|
+
*
|
|
158
|
+
* This is useful for frameworks like Fastify where hooks run independently
|
|
159
|
+
* and you need to preserve the store across hook boundaries.
|
|
160
|
+
*
|
|
161
|
+
* @returns The current Map store or undefined
|
|
162
|
+
* @internal
|
|
163
|
+
*/
|
|
46
164
|
static getStore() {
|
|
47
165
|
return this.als.getStore();
|
|
48
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Enter an existing context store
|
|
169
|
+
*
|
|
170
|
+
* This allows re-entering a context that was created elsewhere,
|
|
171
|
+
* useful for frameworks where handlers run in separate scopes.
|
|
172
|
+
*
|
|
173
|
+
* @param store - The store to enter
|
|
174
|
+
* @param callback - Function to execute with the store
|
|
175
|
+
* @returns Result of the callback
|
|
176
|
+
* @internal
|
|
177
|
+
*/
|
|
49
178
|
static enterStore(store, callback) {
|
|
50
179
|
return this.als.run(store, callback);
|
|
51
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-storage.js","sourceRoot":"","sources":["../../src/utils/context-storage.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;
|
|
1
|
+
{"version":3,"file":"context-storage.js","sourceRoot":"","sources":["../../src/utils/context-storage.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAEhD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAa,cAAc;IACjB,MAAM,CAAC,GAAG,GAAG,IAAI,+BAAiB,EAAwB,CAAC;IAEnE;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,GAAG,CAAI,QAAiB;QAC7B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,GAAG,CAAI,GAAW,EAAE,KAAQ;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,GAAG,CAAI,GAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO,KAAK,EAAE,GAAG,CAAC,GAAG,CAAkB,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,GAAG,CAAC,GAAW;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;IAClC,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,CAAC,GAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,UAAU,CAAI,KAA2B,EAAE,QAAiB;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;;AAhKH,wCAiKC"}
|
|
@@ -1,7 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cookie Name Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent cookie name generation using the configured prefix.
|
|
5
|
+
* All cookie names are prefixed to avoid conflicts with other cookies.
|
|
6
|
+
*/
|
|
1
7
|
import { NAuthConfig } from '../interfaces/config.interface';
|
|
8
|
+
/**
|
|
9
|
+
* Get the cookie name prefix from config
|
|
10
|
+
* @param config - NAuth configuration
|
|
11
|
+
* @returns Cookie name prefix (default: 'nauth_')
|
|
12
|
+
*/
|
|
2
13
|
export declare function getCookieNamePrefix(config?: NAuthConfig): string;
|
|
14
|
+
/**
|
|
15
|
+
* Get the access token cookie name
|
|
16
|
+
* @param config - NAuth configuration
|
|
17
|
+
* @returns Access token cookie name (default: 'nauth_access_token')
|
|
18
|
+
*/
|
|
3
19
|
export declare function getAccessTokenCookieName(config?: NAuthConfig): string;
|
|
20
|
+
/**
|
|
21
|
+
* Get the refresh token cookie name
|
|
22
|
+
* @param config - NAuth configuration
|
|
23
|
+
* @returns Refresh token cookie name (default: 'nauth_refresh_token')
|
|
24
|
+
*/
|
|
4
25
|
export declare function getRefreshTokenCookieName(config?: NAuthConfig): string;
|
|
26
|
+
/**
|
|
27
|
+
* Get the device token cookie name
|
|
28
|
+
* @param config - NAuth configuration
|
|
29
|
+
* @returns Device token cookie name (default: 'nauth_device_token')
|
|
30
|
+
*/
|
|
5
31
|
export declare function getDeviceTokenCookieName(config?: NAuthConfig): string;
|
|
32
|
+
/**
|
|
33
|
+
* Get the CSRF token cookie name
|
|
34
|
+
*
|
|
35
|
+
* If explicitly configured via security.csrf.cookieName, uses that value.
|
|
36
|
+
* Otherwise, uses the prefix: `${prefix}csrf_token`
|
|
37
|
+
*
|
|
38
|
+
* @param config - NAuth configuration
|
|
39
|
+
* @returns CSRF token cookie name (default: 'nauth_csrf_token')
|
|
40
|
+
*/
|
|
6
41
|
export declare function getCsrfTokenCookieName(config?: NAuthConfig): string;
|
|
7
42
|
//# sourceMappingURL=cookie-names.util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie-names.util.d.ts","sourceRoot":"","sources":["../../src/utils/cookie-names.util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cookie-names.util.d.ts","sourceRoot":"","sources":["../../src/utils/cookie-names.util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAGrE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAGtE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAGrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CASnE"}
|
|
@@ -1,29 +1,66 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cookie Name Utilities
|
|
4
|
+
*
|
|
5
|
+
* Provides consistent cookie name generation using the configured prefix.
|
|
6
|
+
* All cookie names are prefixed to avoid conflicts with other cookies.
|
|
7
|
+
*/
|
|
2
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
9
|
exports.getCookieNamePrefix = getCookieNamePrefix;
|
|
4
10
|
exports.getAccessTokenCookieName = getAccessTokenCookieName;
|
|
5
11
|
exports.getRefreshTokenCookieName = getRefreshTokenCookieName;
|
|
6
12
|
exports.getDeviceTokenCookieName = getDeviceTokenCookieName;
|
|
7
13
|
exports.getCsrfTokenCookieName = getCsrfTokenCookieName;
|
|
14
|
+
/**
|
|
15
|
+
* Get the cookie name prefix from config
|
|
16
|
+
* @param config - NAuth configuration
|
|
17
|
+
* @returns Cookie name prefix (default: 'nauth_')
|
|
18
|
+
*/
|
|
8
19
|
function getCookieNamePrefix(config) {
|
|
9
20
|
return config?.tokenDelivery?.cookieNamePrefix || 'nauth_';
|
|
10
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Get the access token cookie name
|
|
24
|
+
* @param config - NAuth configuration
|
|
25
|
+
* @returns Access token cookie name (default: 'nauth_access_token')
|
|
26
|
+
*/
|
|
11
27
|
function getAccessTokenCookieName(config) {
|
|
12
28
|
const prefix = getCookieNamePrefix(config);
|
|
13
29
|
return `${prefix}access_token`;
|
|
14
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the refresh token cookie name
|
|
33
|
+
* @param config - NAuth configuration
|
|
34
|
+
* @returns Refresh token cookie name (default: 'nauth_refresh_token')
|
|
35
|
+
*/
|
|
15
36
|
function getRefreshTokenCookieName(config) {
|
|
16
37
|
const prefix = getCookieNamePrefix(config);
|
|
17
38
|
return `${prefix}refresh_token`;
|
|
18
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Get the device token cookie name
|
|
42
|
+
* @param config - NAuth configuration
|
|
43
|
+
* @returns Device token cookie name (default: 'nauth_device_token')
|
|
44
|
+
*/
|
|
19
45
|
function getDeviceTokenCookieName(config) {
|
|
20
46
|
const prefix = getCookieNamePrefix(config);
|
|
21
47
|
return `${prefix}device_token`;
|
|
22
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Get the CSRF token cookie name
|
|
51
|
+
*
|
|
52
|
+
* If explicitly configured via security.csrf.cookieName, uses that value.
|
|
53
|
+
* Otherwise, uses the prefix: `${prefix}csrf_token`
|
|
54
|
+
*
|
|
55
|
+
* @param config - NAuth configuration
|
|
56
|
+
* @returns CSRF token cookie name (default: 'nauth_csrf_token')
|
|
57
|
+
*/
|
|
23
58
|
function getCsrfTokenCookieName(config) {
|
|
59
|
+
// If explicitly configured, use it
|
|
24
60
|
if (config?.security?.csrf?.cookieName) {
|
|
25
61
|
return config.security.csrf.cookieName;
|
|
26
62
|
}
|
|
63
|
+
// Otherwise, use prefix
|
|
27
64
|
const prefix = getCookieNamePrefix(config);
|
|
28
65
|
return `${prefix}csrf_token`;
|
|
29
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie-names.util.js","sourceRoot":"","sources":["../../src/utils/cookie-names.util.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"cookie-names.util.js","sourceRoot":"","sources":["../../src/utils/cookie-names.util.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AASH,kDAEC;AAOD,4DAGC;AAOD,8DAGC;AAOD,4DAGC;AAWD,wDASC;AAzDD;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,MAAoB;IACtD,OAAO,MAAM,EAAE,aAAa,EAAE,gBAAgB,IAAI,QAAQ,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,MAAoB;IAC3D,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,GAAG,MAAM,cAAc,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,MAAoB;IAC5D,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,GAAG,MAAM,eAAe,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,MAAoB;IAC3D,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,GAAG,MAAM,cAAc,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAC,MAAoB;IACzD,mCAAmC;IACnC,IAAI,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;IACzC,CAAC;IAED,wBAAwB;IACxB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,GAAG,MAAM,YAAY,CAAC;AAC/B,CAAC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cookie Utilities
|
|
3
|
+
*
|
|
4
|
+
* Helpers for clearing nauth auth cookies in HTTP responses.
|
|
5
|
+
*/
|
|
1
6
|
import { NAuthConfig } from '../interfaces/config.interface';
|
|
2
7
|
export interface CookieOptions {
|
|
3
8
|
domain?: string;
|
|
@@ -5,6 +10,20 @@ export interface CookieOptions {
|
|
|
5
10
|
secure?: boolean;
|
|
6
11
|
sameSite?: 'strict' | 'lax' | 'none';
|
|
7
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Clear nauth auth cookies on the response.
|
|
15
|
+
*
|
|
16
|
+
* - Clears access token, refresh token, CSRF token cookies
|
|
17
|
+
* - Optionally clears device token cookie (only when forgetDevice=true)
|
|
18
|
+
* - Device token cookies persist across logout by default (remember device feature)
|
|
19
|
+
* - Applies security attributes consistent with how cookies were set
|
|
20
|
+
* - Uses configured cookie name prefix (default: 'nauth_')
|
|
21
|
+
*
|
|
22
|
+
* @param res - HTTP response object (Express or Fastify compatible)
|
|
23
|
+
* @param config - NAuth configuration (optional, for cookie name resolution)
|
|
24
|
+
* @param opt - Optional cookie options to match configured attributes
|
|
25
|
+
* @param forgetDevice - If true, also clears device token cookie (for "forget me" logout). Default: false
|
|
26
|
+
*/
|
|
8
27
|
export declare function clearAuthCookies(res: {
|
|
9
28
|
cookie?: Function;
|
|
10
29
|
setCookie?: Function;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookies.util.d.ts","sourceRoot":"","sources":["../../src/utils/cookies.util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cookies.util.d.ts","sourceRoot":"","sources":["../../src/utils/cookies.util.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAQ7D,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,CAAA;CAAE,EAChD,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,EACpC,GAAG,CAAC,EAAE,aAAa,EACnB,YAAY,GAAE,OAAe,GAC5B,IAAI,CAqDN"}
|
|
@@ -1,15 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cookie Utilities
|
|
4
|
+
*
|
|
5
|
+
* Helpers for clearing nauth auth cookies in HTTP responses.
|
|
6
|
+
*/
|
|
2
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
8
|
exports.clearAuthCookies = clearAuthCookies;
|
|
4
9
|
const cookie_names_util_1 = require("./cookie-names.util");
|
|
10
|
+
/**
|
|
11
|
+
* Clear nauth auth cookies on the response.
|
|
12
|
+
*
|
|
13
|
+
* - Clears access token, refresh token, CSRF token cookies
|
|
14
|
+
* - Optionally clears device token cookie (only when forgetDevice=true)
|
|
15
|
+
* - Device token cookies persist across logout by default (remember device feature)
|
|
16
|
+
* - Applies security attributes consistent with how cookies were set
|
|
17
|
+
* - Uses configured cookie name prefix (default: 'nauth_')
|
|
18
|
+
*
|
|
19
|
+
* @param res - HTTP response object (Express or Fastify compatible)
|
|
20
|
+
* @param config - NAuth configuration (optional, for cookie name resolution)
|
|
21
|
+
* @param opt - Optional cookie options to match configured attributes
|
|
22
|
+
* @param forgetDevice - If true, also clears device token cookie (for "forget me" logout). Default: false
|
|
23
|
+
*/
|
|
5
24
|
function clearAuthCookies(res, config, opt, forgetDevice = false) {
|
|
25
|
+
// Handle old signature: clearAuthCookies(res, opt) where opt might be config or CookieOptions
|
|
6
26
|
let cookieOptions;
|
|
7
27
|
let nauthConfig;
|
|
8
28
|
if (config && 'tokenDelivery' in config) {
|
|
29
|
+
// Second param is NAuthConfig
|
|
9
30
|
nauthConfig = config;
|
|
10
31
|
cookieOptions = opt;
|
|
11
32
|
}
|
|
12
33
|
else {
|
|
34
|
+
// Second param is CookieOptions (backward compatibility)
|
|
13
35
|
cookieOptions = config;
|
|
14
36
|
}
|
|
15
37
|
const base = {
|
|
@@ -24,24 +46,29 @@ function clearAuthCookies(res, config, opt, forgetDevice = false) {
|
|
|
24
46
|
const refreshTokenName = (0, cookie_names_util_1.getRefreshTokenCookieName)(nauthConfig);
|
|
25
47
|
const csrfTokenName = (0, cookie_names_util_1.getCsrfTokenCookieName)(nauthConfig);
|
|
26
48
|
const deviceTokenName = (0, cookie_names_util_1.getDeviceTokenCookieName)(nauthConfig);
|
|
49
|
+
// CSRF cookie options (httpOnly: false, matches how it was set)
|
|
27
50
|
const csrfBase = {
|
|
28
51
|
...base,
|
|
29
|
-
httpOnly: false,
|
|
52
|
+
httpOnly: false, // CSRF token must be readable by JavaScript
|
|
30
53
|
};
|
|
31
54
|
if (typeof res.cookie === 'function') {
|
|
32
55
|
res.cookie(accessTokenName, '', base);
|
|
33
56
|
res.cookie(refreshTokenName, '', base);
|
|
34
57
|
res.cookie(csrfTokenName, '', csrfBase);
|
|
58
|
+
// Only clear device token cookie if forgetDevice=true (for "forget me" logout)
|
|
59
|
+
// Device tokens persist across normal logout (remember device feature)
|
|
35
60
|
if (forgetDevice) {
|
|
36
|
-
res.cookie(deviceTokenName, '', base);
|
|
61
|
+
res.cookie(deviceTokenName, '', base); // Device token cookie (httpOnly: true)
|
|
37
62
|
}
|
|
38
63
|
}
|
|
39
64
|
else if (typeof res.setCookie === 'function') {
|
|
40
65
|
res.setCookie(accessTokenName, '', base);
|
|
41
66
|
res.setCookie(refreshTokenName, '', base);
|
|
42
67
|
res.setCookie(csrfTokenName, '', csrfBase);
|
|
68
|
+
// Only clear device token cookie if forgetDevice=true (for "forget me" logout)
|
|
69
|
+
// Device tokens persist across normal logout (remember device feature)
|
|
43
70
|
if (forgetDevice) {
|
|
44
|
-
res.setCookie(deviceTokenName, '', base);
|
|
71
|
+
res.setCookie(deviceTokenName, '', base); // Device token cookie (httpOnly: true)
|
|
45
72
|
}
|
|
46
73
|
}
|
|
47
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookies.util.js","sourceRoot":"","sources":["../../src/utils/cookies.util.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"cookies.util.js","sourceRoot":"","sources":["../../src/utils/cookies.util.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA+BH,4CA0DC;AAtFD,2DAK6B;AAS7B;;;;;;;;;;;;;GAaG;AACH,SAAgB,gBAAgB,CAC9B,GAAgD,EAChD,MAAoC,EACpC,GAAmB,EACnB,eAAwB,KAAK;IAE7B,8FAA8F;IAC9F,IAAI,aAAwC,CAAC;IAC7C,IAAI,WAAoC,CAAC;IAEzC,IAAI,MAAM,IAAI,eAAe,IAAI,MAAM,EAAE,CAAC;QACxC,8BAA8B;QAC9B,WAAW,GAAG,MAAqB,CAAC;QACpC,aAAa,GAAG,GAAG,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,yDAAyD;QACzD,aAAa,GAAG,MAAmC,CAAC;IACtD,CAAC;IAED,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,IAAa;QACvB,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,KAAK;QACvC,QAAQ,EAAE,CAAC,aAAa,EAAE,QAAQ,IAAI,QAAQ,CAA8B;QAC5E,IAAI,EAAE,aAAa,EAAE,IAAI,IAAI,GAAG;QAChC,MAAM,EAAE,aAAa,EAAE,MAAM;QAC7B,MAAM,EAAE,CAAC;KACV,CAAC;IAEF,MAAM,eAAe,GAAG,IAAA,4CAAwB,EAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,IAAA,6CAAyB,EAAC,WAAW,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,IAAA,0CAAsB,EAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,IAAA,4CAAwB,EAAC,WAAW,CAAC,CAAC;IAE9D,gEAAgE;IAChE,MAAM,QAAQ,GAAG;QACf,GAAG,IAAI;QACP,QAAQ,EAAE,KAAc,EAAE,4CAA4C;KACvE,CAAC;IAEF,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACrC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACtC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACvC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACxC,+EAA+E;QAC/E,uEAAuE;QACvE,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,uCAAuC;QAChF,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QAC/C,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1C,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3C,+EAA+E;QAC/E,uEAAuE;QACvE,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,uCAAuC;QACnF,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Utility Functions and Classes
|
|
4
|
+
*/
|
|
2
5
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
6
|
if (k2 === undefined) k2 = k;
|
|
4
7
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -21,4 +24,5 @@ __exportStar(require("./cookies.util"), exports);
|
|
|
21
24
|
__exportStar(require("./cookie-names.util"), exports);
|
|
22
25
|
__exportStar(require("./context-storage"), exports);
|
|
23
26
|
__exportStar(require("./token-delivery-policy"), exports);
|
|
27
|
+
// user-agent-parser removed - functionality moved to ClientInfoService.parseUserAgent()
|
|
24
28
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B;AAC/B,sDAAoC;AACpC,oDAAkC;AAClC,0DAAwC;AACxC,wFAAwF"}
|
|
@@ -1,8 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IP Address Extractor
|
|
3
|
+
*
|
|
4
|
+
* Extracts the real client IP address from requests, handling:
|
|
5
|
+
* - Direct connections
|
|
6
|
+
* - Reverse proxies (Nginx, Apache)
|
|
7
|
+
* - Load balancers (AWS ALB/NLB, GCP, Azure)
|
|
8
|
+
* - CDNs (Cloudflare, Fastly, Akamai)
|
|
9
|
+
*
|
|
10
|
+
* **Priority Order:**
|
|
11
|
+
* 1. X-Forwarded-For (standard proxy header)
|
|
12
|
+
* 2. CF-Connecting-IP (Cloudflare)
|
|
13
|
+
* 3. X-Real-IP (Nginx proxy)
|
|
14
|
+
* 4. X-Client-IP (Apache, other proxies)
|
|
15
|
+
* 5. Fastly-Client-IP (Fastly CDN)
|
|
16
|
+
* 6. Akamai-Origin-Hop (Akamai CDN)
|
|
17
|
+
* 7. req.ip (NestJS/Express default)
|
|
18
|
+
* 8. req.socket.remoteAddress (fallback)
|
|
19
|
+
*
|
|
20
|
+
* **Security:**
|
|
21
|
+
* - Handles multiple proxies (takes leftmost IP)
|
|
22
|
+
* - Validates IP format
|
|
23
|
+
* - Filters private/internal IPs (optional)
|
|
24
|
+
* - Prevents IP spoofing
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* import { extractClientIp } from '@nauth-toolkit/core/utils';
|
|
29
|
+
*
|
|
30
|
+
* @Post('login')
|
|
31
|
+
* async login(@Req() req: Request) {
|
|
32
|
+
* const ipAddress = extractClientIp(req);
|
|
33
|
+
* logger.debug('Client IP:', ipAddress); // Real client IP
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
/**
|
|
38
|
+
* Options for IP extraction
|
|
39
|
+
*/
|
|
1
40
|
export interface IpExtractorOptions {
|
|
41
|
+
/**
|
|
42
|
+
* Whether to filter out private/internal IP addresses
|
|
43
|
+
* Defaults to false
|
|
44
|
+
*/
|
|
2
45
|
filterPrivateIps?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* List of trusted proxy IP addresses or CIDR ranges
|
|
48
|
+
* If specified, only accepts X-Forwarded-For from these proxies
|
|
49
|
+
*/
|
|
3
50
|
trustedProxies?: string[];
|
|
51
|
+
/**
|
|
52
|
+
* Whether to use the leftmost IP in X-Forwarded-For
|
|
53
|
+
* (true = original client, false = rightmost/last proxy)
|
|
54
|
+
* Defaults to true
|
|
55
|
+
*/
|
|
4
56
|
useLeftmostIp?: boolean;
|
|
5
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Minimal request shape required for IP extraction.
|
|
60
|
+
*
|
|
61
|
+
* We keep this intentionally framework-agnostic (no Express/Fastify types) to avoid
|
|
62
|
+
* adding hard dependencies from core.
|
|
63
|
+
*/
|
|
6
64
|
interface IpRequestLike extends Record<string, unknown> {
|
|
7
65
|
headers?: Record<string, unknown>;
|
|
8
66
|
ip?: string;
|
|
@@ -13,8 +71,38 @@ interface IpRequestLike extends Record<string, unknown> {
|
|
|
13
71
|
remoteAddress?: string;
|
|
14
72
|
};
|
|
15
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Extracts the real client IP address from an HTTP request
|
|
76
|
+
*
|
|
77
|
+
* @param req - Express Request object
|
|
78
|
+
* @param options - Optional configuration
|
|
79
|
+
* @returns The client's IP address, or '0.0.0.0' if unable to determine
|
|
80
|
+
*/
|
|
16
81
|
export declare function extractClientIp(req: IpRequestLike, options?: IpExtractorOptions): string;
|
|
82
|
+
/**
|
|
83
|
+
* Checks if an IP address is private/internal
|
|
84
|
+
*
|
|
85
|
+
* Detects:
|
|
86
|
+
* - Localhost (127.0.0.0/8, ::1)
|
|
87
|
+
* - Private IPv4 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
|
|
88
|
+
* - Link-local addresses (169.254.0.0/16)
|
|
89
|
+
*
|
|
90
|
+
* @param ip - IP address to check
|
|
91
|
+
* @returns True if private, false otherwise
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* isPrivateIp('192.168.1.1'); // true
|
|
96
|
+
* isPrivateIp('8.8.8.8'); // false
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
17
99
|
export declare function isPrivateIp(ip: string): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Gets geolocation information for an IP address (placeholder)
|
|
102
|
+
*
|
|
103
|
+
* @param ip - IP address
|
|
104
|
+
* @returns Geolocation info (to be implemented with MaxMind/IP-API)
|
|
105
|
+
*/
|
|
18
106
|
export declare function getIpGeolocation(_ip: string): {
|
|
19
107
|
country?: string;
|
|
20
108
|
city?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ip-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/ip-extractor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ip-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/ip-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAIH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,UAAU,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,UAAU,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,CA8D5F;AA6CD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAe/C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAGjF"}
|