@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,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Fastify Framework Adapter
|
|
4
|
+
*
|
|
5
|
+
* Adapts NAuth to work with Fastify with proper AsyncLocalStorage support.
|
|
6
|
+
*
|
|
7
|
+
* **Context Management:**
|
|
8
|
+
* - First hook (clientInfo) initializes AsyncLocalStorage context
|
|
9
|
+
* - Context is stored on request object for subsequent hooks
|
|
10
|
+
* - Each hook restores context using ContextStorage.enterStore()
|
|
11
|
+
* - Route handlers MUST use wrapRouteHandler() for context access
|
|
12
|
+
*
|
|
13
|
+
* **Why Context Restoration is Needed:**
|
|
14
|
+
* Unlike Express where middleware runs in a continuous call stack,
|
|
15
|
+
* Fastify hooks run independently. Each hook invocation loses the
|
|
16
|
+
* AsyncLocalStorage context, so we store it on the request and restore it.
|
|
17
|
+
*/
|
|
2
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
19
|
exports.FastifyAdapter = void 0;
|
|
4
20
|
const context_storage_1 = require("../utils/context-storage");
|
|
21
|
+
// Symbol for storing context on request (avoids property name collisions)
|
|
5
22
|
const NAUTH_CONTEXT_STORE = Symbol.for('nauth.contextStore');
|
|
6
23
|
const NAUTH_ATTRIBUTES = Symbol.for('nauth.attributes');
|
|
24
|
+
// ============================================================================
|
|
25
|
+
// Fastify Adapter
|
|
26
|
+
// ============================================================================
|
|
27
|
+
/**
|
|
28
|
+
* Fastify Adapter Implementation
|
|
29
|
+
*
|
|
30
|
+
* Provides NAuth integration for Fastify applications.
|
|
31
|
+
*/
|
|
7
32
|
class FastifyAdapter {
|
|
8
33
|
name = 'FastifyAdapter';
|
|
34
|
+
/**
|
|
35
|
+
* Register a middleware handler as Fastify hook
|
|
36
|
+
*
|
|
37
|
+
* Handles context initialization for first hook and restoration for subsequent hooks.
|
|
38
|
+
*/
|
|
9
39
|
registerMiddleware(name, handler, options) {
|
|
10
40
|
const initializesContext = options?.initializesContext || name === 'clientInfo';
|
|
11
41
|
return async (request, reply) => {
|
|
42
|
+
// Ensure we have attribute storage
|
|
12
43
|
this.ensureAttributes(request);
|
|
13
44
|
const nauthReq = new FastifyRequestWrapper(request);
|
|
14
45
|
const nauthRes = new FastifyResponseWrapper(reply);
|
|
15
46
|
if (initializesContext) {
|
|
47
|
+
// First hook - initialize context
|
|
16
48
|
await context_storage_1.ContextStorage.run(async () => {
|
|
49
|
+
// Store context on request for subsequent hooks
|
|
17
50
|
request[NAUTH_CONTEXT_STORE] = context_storage_1.ContextStorage.getStore();
|
|
18
51
|
await this.executeHandler(handler, nauthReq, nauthRes);
|
|
19
52
|
});
|
|
20
53
|
}
|
|
21
54
|
else {
|
|
55
|
+
// Subsequent hook - restore context
|
|
22
56
|
const store = request[NAUTH_CONTEXT_STORE];
|
|
23
57
|
if (store) {
|
|
24
58
|
await context_storage_1.ContextStorage.enterStore(store, async () => {
|
|
@@ -26,11 +60,16 @@ class FastifyAdapter {
|
|
|
26
60
|
});
|
|
27
61
|
}
|
|
28
62
|
else {
|
|
63
|
+
// No context available - execute without context
|
|
64
|
+
// This shouldn't happen if clientInfo runs first
|
|
29
65
|
await this.executeHandler(handler, nauthReq, nauthRes);
|
|
30
66
|
}
|
|
31
67
|
}
|
|
32
68
|
};
|
|
33
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Execute handler with proper async flow control
|
|
72
|
+
*/
|
|
34
73
|
async executeHandler(handler, req, res) {
|
|
35
74
|
await new Promise((resolve, reject) => {
|
|
36
75
|
const result = handler(req, res, () => {
|
|
@@ -41,18 +80,26 @@ class FastifyAdapter {
|
|
|
41
80
|
}
|
|
42
81
|
});
|
|
43
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Register a response interceptor using Fastify onSend hook
|
|
85
|
+
*
|
|
86
|
+
* The onSend hook receives the serialized payload before sending.
|
|
87
|
+
*/
|
|
44
88
|
registerResponseInterceptor(handler) {
|
|
45
89
|
return async (request, reply, payload) => {
|
|
46
90
|
this.ensureAttributes(request);
|
|
47
91
|
const nauthReq = new FastifyRequestWrapper(request);
|
|
48
92
|
const nauthRes = new FastifyResponseWrapper(reply);
|
|
93
|
+
// Restore context for interceptor
|
|
49
94
|
const store = request[NAUTH_CONTEXT_STORE];
|
|
50
95
|
if (!store) {
|
|
96
|
+
// No context - pass through unchanged
|
|
51
97
|
return payload;
|
|
52
98
|
}
|
|
53
99
|
return context_storage_1.ContextStorage.enterStore(store, async () => {
|
|
54
100
|
try {
|
|
55
101
|
let parsedPayload = payload;
|
|
102
|
+
// Parse JSON payload if needed (Fastify serializes before onSend)
|
|
56
103
|
const contentType = reply.getHeader('content-type');
|
|
57
104
|
const isJson = contentType?.includes('application/json');
|
|
58
105
|
if (isJson && typeof payload === 'string') {
|
|
@@ -60,34 +107,47 @@ class FastifyAdapter {
|
|
|
60
107
|
parsedPayload = JSON.parse(payload);
|
|
61
108
|
}
|
|
62
109
|
catch {
|
|
110
|
+
// Not valid JSON, use as-is
|
|
63
111
|
}
|
|
64
112
|
}
|
|
65
113
|
const modifiedBody = await handler(nauthReq, nauthRes, parsedPayload);
|
|
114
|
+
// Re-serialize if we parsed it
|
|
66
115
|
if (modifiedBody !== parsedPayload && isJson && typeof modifiedBody === 'object') {
|
|
67
116
|
return JSON.stringify(modifiedBody);
|
|
68
117
|
}
|
|
69
118
|
return modifiedBody !== parsedPayload ? modifiedBody : payload;
|
|
70
119
|
}
|
|
71
120
|
catch {
|
|
121
|
+
// On error, return original payload
|
|
72
122
|
return payload;
|
|
73
123
|
}
|
|
74
124
|
});
|
|
75
125
|
};
|
|
76
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Wrap a route handler to ensure context is available
|
|
129
|
+
*
|
|
130
|
+
* For Fastify, this is REQUIRED for route handlers to access ContextStorage.
|
|
131
|
+
*/
|
|
77
132
|
wrapRouteHandler(handler) {
|
|
78
133
|
return async (request, reply) => {
|
|
79
134
|
this.ensureAttributes(request);
|
|
80
135
|
const nauthReq = new FastifyRequestWrapper(request);
|
|
81
136
|
const nauthRes = new FastifyResponseWrapper(reply);
|
|
137
|
+
// Restore context
|
|
82
138
|
const store = request[NAUTH_CONTEXT_STORE];
|
|
83
139
|
if (store) {
|
|
84
140
|
return context_storage_1.ContextStorage.enterStore(store, async () => {
|
|
85
141
|
return handler(nauthReq, nauthRes);
|
|
86
142
|
});
|
|
87
143
|
}
|
|
144
|
+
// No context - execute without (shouldn't happen with proper setup)
|
|
88
145
|
return handler(nauthReq, nauthRes);
|
|
89
146
|
};
|
|
90
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Ensure attribute storage exists on request
|
|
150
|
+
*/
|
|
91
151
|
ensureAttributes(request) {
|
|
92
152
|
if (!request[NAUTH_ATTRIBUTES]) {
|
|
93
153
|
request[NAUTH_ATTRIBUTES] = {};
|
|
@@ -95,6 +155,12 @@ class FastifyAdapter {
|
|
|
95
155
|
}
|
|
96
156
|
}
|
|
97
157
|
exports.FastifyAdapter = FastifyAdapter;
|
|
158
|
+
// ============================================================================
|
|
159
|
+
// Fastify Request Wrapper
|
|
160
|
+
// ============================================================================
|
|
161
|
+
/**
|
|
162
|
+
* Wraps Fastify request into NAuthRequest interface
|
|
163
|
+
*/
|
|
98
164
|
class FastifyRequestWrapper {
|
|
99
165
|
request;
|
|
100
166
|
constructor(request) {
|
|
@@ -107,6 +173,7 @@ class FastifyRequestWrapper {
|
|
|
107
173
|
return this.request.method.toUpperCase();
|
|
108
174
|
}
|
|
109
175
|
get path() {
|
|
176
|
+
// Fastify provides routeOptions.url for path, or extract from url
|
|
110
177
|
return this.request.url.split('?')[0];
|
|
111
178
|
}
|
|
112
179
|
get url() {
|
|
@@ -125,12 +192,14 @@ class FastifyRequestWrapper {
|
|
|
125
192
|
return this.request.headers;
|
|
126
193
|
}
|
|
127
194
|
get cookies() {
|
|
195
|
+
// Fastify with @fastify/cookie
|
|
128
196
|
return this.request.cookies || {};
|
|
129
197
|
}
|
|
130
198
|
get ip() {
|
|
131
199
|
return this.request.ip || '0.0.0.0';
|
|
132
200
|
}
|
|
133
201
|
get attributes() {
|
|
202
|
+
// Return isolated storage
|
|
134
203
|
return this.request[NAUTH_ATTRIBUTES] || {};
|
|
135
204
|
}
|
|
136
205
|
getHeader(name) {
|
|
@@ -140,6 +209,12 @@ class FastifyRequestWrapper {
|
|
|
140
209
|
return val;
|
|
141
210
|
}
|
|
142
211
|
}
|
|
212
|
+
// ============================================================================
|
|
213
|
+
// Fastify Response Wrapper
|
|
214
|
+
// ============================================================================
|
|
215
|
+
/**
|
|
216
|
+
* Wraps Fastify reply into NAuthResponse interface
|
|
217
|
+
*/
|
|
143
218
|
class FastifyResponseWrapper {
|
|
144
219
|
reply;
|
|
145
220
|
constructor(reply) {
|
|
@@ -157,6 +232,7 @@ class FastifyResponseWrapper {
|
|
|
157
232
|
return this;
|
|
158
233
|
}
|
|
159
234
|
setCookie(name, value, options) {
|
|
235
|
+
// Fastify with @fastify/cookie
|
|
160
236
|
const replyWithCookies = this.reply;
|
|
161
237
|
if (typeof replyWithCookies.setCookie === 'function') {
|
|
162
238
|
replyWithCookies.setCookie(name, value, this.convertCookieOptions(options));
|
|
@@ -169,6 +245,7 @@ class FastifyResponseWrapper {
|
|
|
169
245
|
replyWithCookies.clearCookie(name, this.convertCookieOptions(options));
|
|
170
246
|
}
|
|
171
247
|
else if (typeof replyWithCookies.setCookie === 'function') {
|
|
248
|
+
// Fallback: set empty cookie with immediate expiry
|
|
172
249
|
replyWithCookies.setCookie(name, '', {
|
|
173
250
|
...this.convertCookieOptions(options),
|
|
174
251
|
maxAge: 0,
|
|
@@ -181,6 +258,7 @@ class FastifyResponseWrapper {
|
|
|
181
258
|
this.reply.send(body);
|
|
182
259
|
}
|
|
183
260
|
json(body) {
|
|
261
|
+
// Fastify auto-serializes objects
|
|
184
262
|
this.reply.send(body);
|
|
185
263
|
}
|
|
186
264
|
redirect(url, status) {
|
|
@@ -194,6 +272,9 @@ class FastifyResponseWrapper {
|
|
|
194
272
|
isSent() {
|
|
195
273
|
return this.reply.sent;
|
|
196
274
|
}
|
|
275
|
+
/**
|
|
276
|
+
* Convert NAuth cookie options to Fastify cookie options
|
|
277
|
+
*/
|
|
197
278
|
convertCookieOptions(options) {
|
|
198
279
|
if (!options)
|
|
199
280
|
return {};
|
|
@@ -208,4 +289,9 @@ class FastifyResponseWrapper {
|
|
|
208
289
|
};
|
|
209
290
|
}
|
|
210
291
|
}
|
|
292
|
+
// ============================================================================
|
|
293
|
+
// NOTE
|
|
294
|
+
// ============================================================================
|
|
295
|
+
// For route handlers, use `nauth.adapter.wrapRouteHandler(...)` to ensure AsyncLocalStorage
|
|
296
|
+
// context is available when calling `nauth.helpers.*` and context-dependent services.
|
|
211
297
|
//# sourceMappingURL=fastify.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastify.adapter.js","sourceRoot":"","sources":["../../src/adapters/fastify.adapter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"fastify.adapter.js","sourceRoot":"","sources":["../../src/adapters/fastify.adapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAaH,8DAA0D;AAE1D,0EAA0E;AAC1E,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC7D,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAExD,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;;GAIG;AACH,MAAa,cAAc;IACT,IAAI,GAAG,gBAAgB,CAAC;IAExC;;;;OAIG;IACI,kBAAkB,CAAC,IAAY,EAAE,OAA+B,EAAE,OAA2B;QAClG,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,IAAI,KAAK,YAAY,CAAC;QAEhF,OAAO,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAiB,EAAE;YAC3E,mCAAmC;YACnC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAE/B,MAAM,QAAQ,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAEnD,IAAI,kBAAkB,EAAE,CAAC;gBACvB,kCAAkC;gBAClC,MAAM,gCAAc,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;oBAClC,gDAAgD;oBAC/C,OAAqC,CAAC,mBAAmB,CAAC,GAAG,gCAAc,CAAC,QAAQ,EAAE,CAAC;oBACxF,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACzD,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,oCAAoC;gBACpC,MAAM,KAAK,GAAI,OAAqC,CAAC,mBAAmB,CAAC,CAAC;gBAE1E,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,gCAAc,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;wBAChD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,iDAAiD;oBACjD,iDAAiD;oBACjD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,OAA+B,EAAE,GAAiB,EAAE,GAAkB;QACjG,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;gBACpC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,2BAA2B,CAAC,OAAwC;QACzE,OAAO,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,OAAgB,EAAoB,EAAE;YAChG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAE/B,MAAM,QAAQ,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAEnD,kCAAkC;YAClC,MAAM,KAAK,GAAI,OAAqC,CAAC,mBAAmB,CAAC,CAAC;YAE1E,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,sCAAsC;gBACtC,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,OAAO,gCAAc,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;gBACjD,IAAI,CAAC;oBACH,IAAI,aAAa,GAAG,OAAO,CAAC;oBAE5B,kEAAkE;oBAClE,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,cAAc,CAAuB,CAAC;oBAC1E,MAAM,MAAM,GAAG,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;oBAEzD,IAAI,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAC1C,IAAI,CAAC;4BACH,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACtC,CAAC;wBAAC,MAAM,CAAC;4BACP,4BAA4B;wBAC9B,CAAC;oBACH,CAAC;oBAED,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAEtE,+BAA+B;oBAC/B,IAAI,YAAY,KAAK,aAAa,IAAI,MAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;wBACjF,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;oBACtC,CAAC;oBAED,OAAO,YAAY,KAAK,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;gBACjE,CAAC;gBAAC,MAAM,CAAC;oBACP,oCAAoC;oBACpC,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAI,OAA6B;QACtD,OAAO,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAqB,EAAE;YAC/E,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAE/B,MAAM,QAAQ,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAEnD,kBAAkB;YAClB,MAAM,KAAK,GAAI,OAAqC,CAAC,mBAAmB,CAAC,CAAC;YAE1E,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,gCAAc,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;oBACjD,OAAO,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,oEAAoE;YACpE,OAAO,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAuB;QAC9C,IAAI,CAAE,OAAqC,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7D,OAAqC,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;QAChE,CAAC;IACH,CAAC;CACF;AA/ID,wCA+IC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,qBAAqB;IACI;IAA7B,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAExD,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,IAAI;QACN,kEAAkE;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,IAAI,IAAI;QACN,OAAQ,IAAI,CAAC,OAAO,CAAC,IAAgC,IAAI,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,KAAK;QACP,OAAQ,IAAI,CAAC,OAAO,CAAC,KAAiC,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED,IAAI,MAAM;QACR,OAAQ,IAAI,CAAC,OAAO,CAAC,MAAiC,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAwD,CAAC;IAC/E,CAAC;IAED,IAAI,OAAO;QACT,+BAA+B;QAC/B,OAAS,IAAI,CAAC,OAAqC,CAAC,OAA8C,IAAI,EAAE,CAAC;IAC3G,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,CAAC;IACtC,CAAC;IAED,IAAI,UAAU;QACZ,0BAA0B;QAC1B,OAAQ,IAAI,CAAC,OAAqC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC7E,CAAC;IAEM,SAAS,CAAC,IAAY;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,sBAAsB;IACG;IAA7B,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAEpD,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,IAAY;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,IAAY,EAAE,KAAwB;QAClD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,OAA4B;QACxE,+BAA+B;QAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAgC,CAAC;QAC/D,IAAI,OAAO,gBAAgB,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACrD,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,WAAW,CAAC,IAAY,EAAE,OAA4B;QAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAgC,CAAC;QAC/D,IAAI,OAAO,gBAAgB,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YACvD,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,OAAO,gBAAgB,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAC5D,mDAAmD;YACnD,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE;gBACnC,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;gBACrC,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;aACrB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,IAAI,CAAC,IAAa;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAEM,IAAI,CAAC,IAAa;QACvB,kCAAkC;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAEM,QAAQ,CAAC,GAAW,EAAE,MAAe;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,OAA4B;QACvD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;CACF;AA4CD,+EAA+E;AAC/E,OAAO;AACP,+EAA+E;AAC/E,4FAA4F;AAC5F,sFAAsF"}
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform Adapters
|
|
3
|
+
*
|
|
4
|
+
* Framework-specific adapters that implement NAuthAdapter interface.
|
|
5
|
+
*/
|
|
1
6
|
export * from '../platform/interfaces';
|
|
2
7
|
export { ExpressAdapter, ExpressMiddlewareType } from './express.adapter';
|
|
3
8
|
export { FastifyAdapter } from './fastify.adapter';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,wBAAwB,CAAC;AAGvC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/adapters/index.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Platform Adapters
|
|
4
|
+
*
|
|
5
|
+
* Framework-specific adapters that implement NAuthAdapter interface.
|
|
6
|
+
*/
|
|
2
7
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
8
|
if (k2 === undefined) k2 = k;
|
|
4
9
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -15,9 +20,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
20
|
};
|
|
16
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
22
|
exports.FastifyAdapter = exports.ExpressAdapter = void 0;
|
|
23
|
+
// Platform interfaces (for custom adapter development)
|
|
18
24
|
__exportStar(require("../platform/interfaces"), exports);
|
|
25
|
+
// Built-in adapters
|
|
19
26
|
var express_adapter_1 = require("./express.adapter");
|
|
20
27
|
Object.defineProperty(exports, "ExpressAdapter", { enumerable: true, get: function () { return express_adapter_1.ExpressAdapter; } });
|
|
21
28
|
var fastify_adapter_1 = require("./fastify.adapter");
|
|
22
29
|
Object.defineProperty(exports, "FastifyAdapter", { enumerable: true, get: function () { return fastify_adapter_1.FastifyAdapter; } });
|
|
30
|
+
// Legacy export for backward compatibility (deprecated)
|
|
31
|
+
// TODO: Remove in next major version
|
|
23
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,uDAAuD;AACvD,yDAAuC;AAEvC,oBAAoB;AACpB,qDAA0E;AAAjE,iHAAA,cAAc,OAAA;AACvB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAEvB,wDAAwD;AACxD,qCAAqC"}
|
|
@@ -1,6 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Adapter Factory Functions
|
|
3
|
+
*
|
|
4
|
+
* Provides clean factory functions for creating storage adapters.
|
|
5
|
+
* These factories handle proper initialization and simplify configuration.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createDatabaseStorageAdapter, createRedisStorageAdapter } from '@nauth-toolkit/express';
|
|
10
|
+
*
|
|
11
|
+
* export const authConfig = {
|
|
12
|
+
* // Database adapter (uses existing TypeORM connection)
|
|
13
|
+
* storageAdapter: createDatabaseStorageAdapter(),
|
|
14
|
+
*
|
|
15
|
+
* // Or Redis adapter
|
|
16
|
+
* storageAdapter: createRedisStorageAdapter(process.env.REDIS_URL),
|
|
17
|
+
* };
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
1
20
|
import { StorageAdapter } from '../interfaces/storage-adapter.interface';
|
|
21
|
+
/**
|
|
22
|
+
* Create a database storage adapter
|
|
23
|
+
*
|
|
24
|
+
* Uses the existing TypeORM connection. Make sure storage entities are included
|
|
25
|
+
* in your DataSource configuration:
|
|
26
|
+
*
|
|
27
|
+
* ```typescript
|
|
28
|
+
* import { getNAuthTransientStorageEntities } from '@nauth-toolkit/database-typeorm-postgres';
|
|
29
|
+
* const dataSource = new DataSource({
|
|
30
|
+
* entities: [...getNAuthEntities(), ...getNAuthTransientStorageEntities()],
|
|
31
|
+
* });
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @returns DatabaseStorageAdapter instance
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* import { createDatabaseStorageAdapter } from '@nauth-toolkit/express';
|
|
39
|
+
*
|
|
40
|
+
* export const authConfig = {
|
|
41
|
+
* storageAdapter: createDatabaseStorageAdapter(),
|
|
42
|
+
* // ... other config
|
|
43
|
+
* };
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
2
46
|
export declare function createDatabaseStorageAdapter(): StorageAdapter;
|
|
47
|
+
/**
|
|
48
|
+
* Create a Redis storage adapter
|
|
49
|
+
*
|
|
50
|
+
* Creates and connects a Redis client automatically using the `redis` package (node-redis).
|
|
51
|
+
* The client connection is managed internally by the adapter.
|
|
52
|
+
*
|
|
53
|
+
* Supports both single-instance Redis and Redis Cluster configurations.
|
|
54
|
+
*
|
|
55
|
+
* @param url - Redis connection URL (default: 'redis://localhost:6379')
|
|
56
|
+
* Supports authentication in URL format:
|
|
57
|
+
* - redis://localhost:6379 (no auth)
|
|
58
|
+
* - redis://:password@localhost:6379 (password only)
|
|
59
|
+
* - redis://username:password@localhost:6379 (username + password)
|
|
60
|
+
* - rediss://localhost:6379 (TLS/SSL, with optional auth)
|
|
61
|
+
* @returns RedisStorageAdapter instance
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* import { createRedisStorageAdapter, createRedisClusterAdapter } from '@nauth-toolkit/express';
|
|
66
|
+
*
|
|
67
|
+
* export const authConfig = {
|
|
68
|
+
* // Single-instance Redis
|
|
69
|
+
* storageAdapter: createRedisStorageAdapter(process.env.REDIS_URL),
|
|
70
|
+
*
|
|
71
|
+
* // Or Redis Cluster (for production high-availability)
|
|
72
|
+
* storageAdapter: createRedisClusterAdapter([
|
|
73
|
+
* { url: 'redis://redis-node-1:6379' },
|
|
74
|
+
* { url: 'redis://redis-node-2:6379' },
|
|
75
|
+
* { url: 'redis://redis-node-3:6379' },
|
|
76
|
+
* ]),
|
|
77
|
+
* };
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
3
80
|
export declare function createRedisStorageAdapter(url?: string): StorageAdapter;
|
|
81
|
+
/**
|
|
82
|
+
* Create a Redis Cluster storage adapter
|
|
83
|
+
*
|
|
84
|
+
* Creates and connects a Redis Cluster client automatically using the `redis` package (node-redis).
|
|
85
|
+
* The cluster client handles automatic topology discovery, command routing, and failover.
|
|
86
|
+
*
|
|
87
|
+
* **Production Use:**
|
|
88
|
+
* Use Redis Cluster for high-availability production deployments. The cluster automatically:
|
|
89
|
+
* - Discovers cluster topology
|
|
90
|
+
* - Routes commands to correct nodes based on key hash slots
|
|
91
|
+
* - Handles node failures and redirects (MOVED/ASK errors)
|
|
92
|
+
* - Provides high availability and horizontal scaling
|
|
93
|
+
*
|
|
94
|
+
* @param nodes - Array of cluster node URLs
|
|
95
|
+
* @returns RedisStorageAdapter instance
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* import { createRedisClusterAdapter } from '@nauth-toolkit/express';
|
|
100
|
+
*
|
|
101
|
+
* export const authConfig = {
|
|
102
|
+
* // Redis Cluster with 3 nodes
|
|
103
|
+
* storageAdapter: createRedisClusterAdapter([
|
|
104
|
+
* { url: 'redis://redis-node-1:6379' },
|
|
105
|
+
* { url: 'redis://redis-node-2:6379' },
|
|
106
|
+
* { url: 'redis://redis-node-3:6379' },
|
|
107
|
+
* ]),
|
|
108
|
+
* };
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
4
111
|
export declare function createRedisClusterAdapter(nodes: Array<{
|
|
5
112
|
url: string;
|
|
6
113
|
}>): StorageAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.factory.d.ts","sourceRoot":"","sources":["../../src/adapters/storage.factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.factory.d.ts","sourceRoot":"","sources":["../../src/adapters/storage.factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,4BAA4B,IAAI,cAAc,CAI7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAiC,GAAG,cAAc,CAWhG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,cAAc,CAavF"}
|
|
@@ -1,24 +1,138 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Storage Adapter Factory Functions
|
|
4
|
+
*
|
|
5
|
+
* Provides clean factory functions for creating storage adapters.
|
|
6
|
+
* These factories handle proper initialization and simplify configuration.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { createDatabaseStorageAdapter, createRedisStorageAdapter } from '@nauth-toolkit/express';
|
|
11
|
+
*
|
|
12
|
+
* export const authConfig = {
|
|
13
|
+
* // Database adapter (uses existing TypeORM connection)
|
|
14
|
+
* storageAdapter: createDatabaseStorageAdapter(),
|
|
15
|
+
*
|
|
16
|
+
* // Or Redis adapter
|
|
17
|
+
* storageAdapter: createRedisStorageAdapter(process.env.REDIS_URL),
|
|
18
|
+
* };
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
2
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
22
|
exports.createDatabaseStorageAdapter = createDatabaseStorageAdapter;
|
|
4
23
|
exports.createRedisStorageAdapter = createRedisStorageAdapter;
|
|
5
24
|
exports.createRedisClusterAdapter = createRedisClusterAdapter;
|
|
25
|
+
/**
|
|
26
|
+
* Create a database storage adapter
|
|
27
|
+
*
|
|
28
|
+
* Uses the existing TypeORM connection. Make sure storage entities are included
|
|
29
|
+
* in your DataSource configuration:
|
|
30
|
+
*
|
|
31
|
+
* ```typescript
|
|
32
|
+
* import { getNAuthTransientStorageEntities } from '@nauth-toolkit/database-typeorm-postgres';
|
|
33
|
+
* const dataSource = new DataSource({
|
|
34
|
+
* entities: [...getNAuthEntities(), ...getNAuthTransientStorageEntities()],
|
|
35
|
+
* });
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @returns DatabaseStorageAdapter instance
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* import { createDatabaseStorageAdapter } from '@nauth-toolkit/express';
|
|
43
|
+
*
|
|
44
|
+
* export const authConfig = {
|
|
45
|
+
* storageAdapter: createDatabaseStorageAdapter(),
|
|
46
|
+
* // ... other config
|
|
47
|
+
* };
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
6
50
|
function createDatabaseStorageAdapter() {
|
|
51
|
+
// Lazy import to avoid bundling if not used
|
|
7
52
|
const { DatabaseStorageAdapter } = require('@nauth-toolkit/storage-database');
|
|
8
53
|
return new DatabaseStorageAdapter(null, null, null);
|
|
9
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Create a Redis storage adapter
|
|
57
|
+
*
|
|
58
|
+
* Creates and connects a Redis client automatically using the `redis` package (node-redis).
|
|
59
|
+
* The client connection is managed internally by the adapter.
|
|
60
|
+
*
|
|
61
|
+
* Supports both single-instance Redis and Redis Cluster configurations.
|
|
62
|
+
*
|
|
63
|
+
* @param url - Redis connection URL (default: 'redis://localhost:6379')
|
|
64
|
+
* Supports authentication in URL format:
|
|
65
|
+
* - redis://localhost:6379 (no auth)
|
|
66
|
+
* - redis://:password@localhost:6379 (password only)
|
|
67
|
+
* - redis://username:password@localhost:6379 (username + password)
|
|
68
|
+
* - rediss://localhost:6379 (TLS/SSL, with optional auth)
|
|
69
|
+
* @returns RedisStorageAdapter instance
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* import { createRedisStorageAdapter, createRedisClusterAdapter } from '@nauth-toolkit/express';
|
|
74
|
+
*
|
|
75
|
+
* export const authConfig = {
|
|
76
|
+
* // Single-instance Redis
|
|
77
|
+
* storageAdapter: createRedisStorageAdapter(process.env.REDIS_URL),
|
|
78
|
+
*
|
|
79
|
+
* // Or Redis Cluster (for production high-availability)
|
|
80
|
+
* storageAdapter: createRedisClusterAdapter([
|
|
81
|
+
* { url: 'redis://redis-node-1:6379' },
|
|
82
|
+
* { url: 'redis://redis-node-2:6379' },
|
|
83
|
+
* { url: 'redis://redis-node-3:6379' },
|
|
84
|
+
* ]),
|
|
85
|
+
* };
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
10
88
|
function createRedisStorageAdapter(url = 'redis://localhost:6379') {
|
|
89
|
+
// Lazy import to avoid bundling if not used
|
|
11
90
|
const { RedisStorageAdapter } = require('@nauth-toolkit/storage-redis');
|
|
12
91
|
const { createClient } = require('redis');
|
|
13
92
|
const redisClient = createClient({ url });
|
|
93
|
+
// Don't connect here - let adapter.initialize() handle connection
|
|
94
|
+
// This ensures proper error handling and allows initialize() to wait for connection
|
|
14
95
|
return new RedisStorageAdapter(redisClient);
|
|
15
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Create a Redis Cluster storage adapter
|
|
99
|
+
*
|
|
100
|
+
* Creates and connects a Redis Cluster client automatically using the `redis` package (node-redis).
|
|
101
|
+
* The cluster client handles automatic topology discovery, command routing, and failover.
|
|
102
|
+
*
|
|
103
|
+
* **Production Use:**
|
|
104
|
+
* Use Redis Cluster for high-availability production deployments. The cluster automatically:
|
|
105
|
+
* - Discovers cluster topology
|
|
106
|
+
* - Routes commands to correct nodes based on key hash slots
|
|
107
|
+
* - Handles node failures and redirects (MOVED/ASK errors)
|
|
108
|
+
* - Provides high availability and horizontal scaling
|
|
109
|
+
*
|
|
110
|
+
* @param nodes - Array of cluster node URLs
|
|
111
|
+
* @returns RedisStorageAdapter instance
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* import { createRedisClusterAdapter } from '@nauth-toolkit/express';
|
|
116
|
+
*
|
|
117
|
+
* export const authConfig = {
|
|
118
|
+
* // Redis Cluster with 3 nodes
|
|
119
|
+
* storageAdapter: createRedisClusterAdapter([
|
|
120
|
+
* { url: 'redis://redis-node-1:6379' },
|
|
121
|
+
* { url: 'redis://redis-node-2:6379' },
|
|
122
|
+
* { url: 'redis://redis-node-3:6379' },
|
|
123
|
+
* ]),
|
|
124
|
+
* };
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
16
127
|
function createRedisClusterAdapter(nodes) {
|
|
128
|
+
// Lazy import to avoid bundling if not used
|
|
17
129
|
const { RedisStorageAdapter } = require('@nauth-toolkit/storage-redis');
|
|
18
130
|
const { createCluster } = require('redis');
|
|
19
131
|
const clusterClient = createCluster({
|
|
20
132
|
rootNodes: nodes,
|
|
21
133
|
});
|
|
134
|
+
// Don't connect here - let adapter.initialize() handle connection
|
|
135
|
+
// This ensures proper error handling and allows initialize() to wait for connection
|
|
22
136
|
return new RedisStorageAdapter(clusterClient);
|
|
23
137
|
}
|
|
24
138
|
//# sourceMappingURL=storage.factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.factory.js","sourceRoot":"","sources":["../../src/adapters/storage.factory.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"storage.factory.js","sourceRoot":"","sources":["../../src/adapters/storage.factory.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;AA6BH,oEAIC;AAmCD,8DAWC;AAgCD,8DAaC;AAxHD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,4BAA4B;IAC1C,4CAA4C;IAC5C,MAAM,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAC9E,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,SAAgB,yBAAyB,CAAC,MAAc,wBAAwB;IAC9E,4CAA4C;IAC5C,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACxE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,WAAW,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAE1C,kEAAkE;IAClE,oFAAoF;IAEpF,OAAO,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,yBAAyB,CAAC,KAA6B;IACrE,4CAA4C;IAC5C,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACxE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3C,MAAM,aAAa,GAAG,aAAa,CAAC;QAClC,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,kEAAkE;IAClE,oFAAoF;IAEpF,OAAO,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAChD,CAAC"}
|
package/dist/adapters.d.ts
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapters barrel export (shim)
|
|
3
|
+
*
|
|
4
|
+
* This file exists to ensure TypeScript's emitted declaration paths (e.g. `./adapters.js`)
|
|
5
|
+
* resolve correctly for consumers.
|
|
6
|
+
*
|
|
7
|
+
* See `packages/core/src/dto.ts` for background.
|
|
8
|
+
*/
|
|
1
9
|
export * from './adapters/index';
|
|
2
10
|
//# sourceMappingURL=adapters.d.ts.map
|
package/dist/adapters.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,kBAAkB,CAAC"}
|
package/dist/adapters.js
CHANGED
|
@@ -14,5 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* Adapters barrel export (shim)
|
|
19
|
+
*
|
|
20
|
+
* This file exists to ensure TypeScript's emitted declaration paths (e.g. `./adapters.js`)
|
|
21
|
+
* resolve correctly for consumers.
|
|
22
|
+
*
|
|
23
|
+
* See `packages/core/src/dto.ts` for background.
|
|
24
|
+
*/
|
|
17
25
|
__exportStar(require("./adapters/index"), exports);
|
|
18
26
|
//# sourceMappingURL=adapters.js.map
|
package/dist/adapters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,mDAAiC"}
|