@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,9 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PiiRedactor = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* PII Redactor Utility
|
|
6
|
+
*
|
|
7
|
+
* Automatically redacts Personally Identifiable Information (PII) from log messages
|
|
8
|
+
* and metadata to ensure privacy compliance (GDPR, CCPA, etc.).
|
|
9
|
+
*
|
|
10
|
+
* Redaction patterns:
|
|
11
|
+
* - Emails: `user@example.com` → `u***@***.com`
|
|
12
|
+
* - IP Addresses: `192.168.1.100` → `192.168.1.***`
|
|
13
|
+
* - Tokens: `eyJhbGciOiJIUz...` → `[REDACTED_TOKEN]`
|
|
14
|
+
* - Passwords: Always `[REDACTED]`
|
|
15
|
+
* - Phone Numbers: `+1234567890` → `+123***7890`
|
|
16
|
+
* - Names: `John Doe` → `J*** D***`
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const redactor = new PiiRedactor();
|
|
21
|
+
* const safe = redactor.redactMessage('User user@example.com logged in');
|
|
22
|
+
* // Output: 'User u***@***.com logged in'
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
4
25
|
class PiiRedactor {
|
|
5
26
|
options;
|
|
27
|
+
/**
|
|
28
|
+
* Constructor
|
|
29
|
+
*
|
|
30
|
+
* @param options - PII redaction configuration
|
|
31
|
+
*/
|
|
6
32
|
constructor(options) {
|
|
33
|
+
// Default options with all redactions enabled
|
|
7
34
|
this.options = {
|
|
8
35
|
redactEmails: true,
|
|
9
36
|
redactIpAddresses: true,
|
|
@@ -15,87 +42,148 @@ class PiiRedactor {
|
|
|
15
42
|
...options,
|
|
16
43
|
};
|
|
17
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Redact PII from a log message
|
|
47
|
+
*
|
|
48
|
+
* @param message - Log message that may contain PII
|
|
49
|
+
* @returns Redacted message
|
|
50
|
+
*/
|
|
18
51
|
redactMessage(message) {
|
|
19
52
|
let redacted = message;
|
|
53
|
+
// Redact emails
|
|
20
54
|
if (this.options.redactEmails) {
|
|
21
55
|
redacted = this.redactEmails(redacted);
|
|
22
56
|
}
|
|
57
|
+
// Redact IP addresses
|
|
23
58
|
if (this.options.redactIpAddresses) {
|
|
24
59
|
redacted = this.redactIpAddresses(redacted);
|
|
25
60
|
}
|
|
61
|
+
// Redact tokens (JWT, Bearer tokens)
|
|
26
62
|
if (this.options.redactTokens) {
|
|
27
63
|
redacted = this.redactTokens(redacted);
|
|
28
64
|
}
|
|
65
|
+
// Redact phone numbers
|
|
29
66
|
if (this.options.redactPhoneNumbers) {
|
|
30
67
|
redacted = this.redactPhoneNumbers(redacted);
|
|
31
68
|
}
|
|
69
|
+
// Redact names (firstName, lastName)
|
|
32
70
|
if (this.options.redactNames) {
|
|
33
71
|
redacted = this.redactNames(redacted);
|
|
34
72
|
}
|
|
73
|
+
// Redact passwords (always)
|
|
35
74
|
if (this.options.redactPasswords) {
|
|
36
75
|
redacted = this.redactPasswords(redacted);
|
|
37
76
|
}
|
|
38
77
|
return redacted;
|
|
39
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Redact PII from log metadata
|
|
81
|
+
*
|
|
82
|
+
* @param metadata - Log metadata that may contain PII
|
|
83
|
+
* @returns Redacted metadata
|
|
84
|
+
*/
|
|
40
85
|
redactMetadata(metadata) {
|
|
41
86
|
if (!metadata) {
|
|
42
87
|
return undefined;
|
|
43
88
|
}
|
|
44
89
|
const redacted = { ...metadata };
|
|
90
|
+
// Redact IP address (keep first 3 octets for geolocation)
|
|
45
91
|
if (redacted.ipAddress && this.options.redactIpAddresses) {
|
|
46
92
|
redacted.ipAddress = this.redactIpAddress(redacted.ipAddress);
|
|
47
93
|
}
|
|
94
|
+
// Redact custom fields
|
|
48
95
|
for (const field of this.options.customRedactionFields) {
|
|
49
96
|
if (field in redacted) {
|
|
50
97
|
redacted[field] = '[REDACTED]';
|
|
51
98
|
}
|
|
52
99
|
}
|
|
100
|
+
// Recursively redact object values
|
|
53
101
|
for (const [key, value] of Object.entries(redacted)) {
|
|
54
102
|
if (typeof value === 'string') {
|
|
55
103
|
redacted[key] = this.redactMessage(value);
|
|
56
104
|
}
|
|
57
105
|
else if (typeof value === 'object' && value !== null && !(value instanceof Error)) {
|
|
106
|
+
// Redact nested objects (but skip Error objects)
|
|
58
107
|
redacted[key] = this.redactObject(value);
|
|
59
108
|
}
|
|
60
109
|
}
|
|
61
110
|
return redacted;
|
|
62
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Redact email addresses
|
|
114
|
+
* @private
|
|
115
|
+
*/
|
|
63
116
|
redactEmails(text) {
|
|
117
|
+
// Match email pattern: user@example.com
|
|
64
118
|
return text.replace(/\b([a-zA-Z0-9])([a-zA-Z0-9._-]+)@([a-zA-Z0-9.-]+)\.([a-zA-Z]{2,})\b/g, (_match, first, _local, _domain, tld) => {
|
|
119
|
+
// Keep first char + *** + @ + *** + . + tld
|
|
65
120
|
return `${first}***@***.${tld}`;
|
|
66
121
|
});
|
|
67
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Redact IP addresses (keep first 3 octets)
|
|
125
|
+
* @private
|
|
126
|
+
*/
|
|
68
127
|
redactIpAddresses(text) {
|
|
128
|
+
// IPv4: 192.168.1.100 → 192.168.1.***
|
|
69
129
|
let redacted = text.replace(/\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.)\d{1,3}\b/g, '$1***');
|
|
130
|
+
// IPv6: Redact last 4 groups
|
|
70
131
|
redacted = redacted.replace(/\b([0-9a-fA-F:]+):([0-9a-fA-F]+):([0-9a-fA-F]+):([0-9a-fA-F]+)\b/g, '$1:***:***:***');
|
|
71
132
|
return redacted;
|
|
72
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Redact a single IP address
|
|
136
|
+
* @private
|
|
137
|
+
*/
|
|
73
138
|
redactIpAddress(ip) {
|
|
139
|
+
// IPv4
|
|
74
140
|
if (/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(ip)) {
|
|
75
141
|
const parts = ip.split('.');
|
|
76
142
|
return `${parts[0]}.${parts[1]}.${parts[2]}.***`;
|
|
77
143
|
}
|
|
144
|
+
// IPv6
|
|
78
145
|
if (ip.includes(':')) {
|
|
79
146
|
const parts = ip.split(':');
|
|
80
147
|
return `${parts.slice(0, 4).join(':')}:***:***:***`;
|
|
81
148
|
}
|
|
82
149
|
return ip;
|
|
83
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Redact JWT tokens and bearer tokens
|
|
153
|
+
* @private
|
|
154
|
+
*/
|
|
84
155
|
redactTokens(text) {
|
|
156
|
+
// JWT tokens (eyJ...)
|
|
85
157
|
let redacted = text.replace(/eyJ[A-Za-z0-9_-]{10,}/g, '[REDACTED_TOKEN]');
|
|
158
|
+
// Bearer tokens
|
|
86
159
|
redacted = redacted.replace(/Bearer\s+[A-Za-z0-9_-]{20,}/gi, 'Bearer [REDACTED_TOKEN]');
|
|
160
|
+
// Generic long alphanumeric tokens (40+ chars)
|
|
87
161
|
redacted = redacted.replace(/\b[A-Za-z0-9]{40,}\b/g, '[REDACTED_TOKEN]');
|
|
88
162
|
return redacted;
|
|
89
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Redact phone numbers
|
|
166
|
+
* @private
|
|
167
|
+
*/
|
|
90
168
|
redactPhoneNumbers(text) {
|
|
169
|
+
// E.164 format: +1234567890 → +123***7890
|
|
91
170
|
return text.replace(/\+?(\d{1,3})(\d{3,})(\d{4})\b/g, (_match, country, _middle, last) => {
|
|
92
171
|
return `+${country}***${last}`;
|
|
93
172
|
});
|
|
94
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Redact names (firstName, lastName)
|
|
176
|
+
* @private
|
|
177
|
+
*/
|
|
95
178
|
redactNames(text) {
|
|
179
|
+
// Redact specific field patterns in JSON/logs
|
|
96
180
|
let redacted = text.replace(/(firstName|lastName|first_name|last_name)["\s:=]+([^"'\s,}&]+)/gi, '$1=[REDACTED_NAME]');
|
|
181
|
+
// Redact full names (pattern: "FirstName LastName" where both words are capitalized)
|
|
182
|
+
// Only match when there are two consecutive capitalized words (likely a full name)
|
|
183
|
+
// Exclude common technical words that shouldn't be redacted
|
|
97
184
|
const commonWords = /^(User|Login|Token|Phone|Email|Admin|System|Service|Client|Server|Request|Response|Success|Error|Warning|Info|Debug|Welcome|Hello|Account|Profile|Session|Device)$/i;
|
|
98
185
|
redacted = redacted.replace(/\b([A-Z][a-z]{2,})\s+([A-Z][a-z]{2,})\b/g, (match, first, last) => {
|
|
186
|
+
// Don't redact if first word is a common technical term
|
|
99
187
|
if (commonWords.test(first)) {
|
|
100
188
|
return match;
|
|
101
189
|
}
|
|
@@ -103,16 +191,28 @@ class PiiRedactor {
|
|
|
103
191
|
});
|
|
104
192
|
return redacted;
|
|
105
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* Redact passwords and password-related fields
|
|
196
|
+
* @private
|
|
197
|
+
*/
|
|
106
198
|
redactPasswords(text) {
|
|
199
|
+
// Redact common password patterns in JSON or query params
|
|
107
200
|
let redacted = text.replace(/(password|pwd|passwd|secret)["\s:=]+([^"'\s,}&]+)/gi, '$1=[REDACTED]');
|
|
201
|
+
// Redact Argon2 hashes
|
|
108
202
|
redacted = redacted.replace(/\$argon2[^\s"',}]+/g, '[REDACTED_HASH]');
|
|
203
|
+
// Redact bcrypt hashes
|
|
109
204
|
redacted = redacted.replace(/\$2[aby]\$\d+\$[./A-Za-z0-9]{53}/g, '[REDACTED_HASH]');
|
|
110
205
|
return redacted;
|
|
111
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Recursively redact an object
|
|
209
|
+
* @private
|
|
210
|
+
*/
|
|
112
211
|
redactObject(obj, visited = new WeakSet()) {
|
|
113
212
|
if (typeof obj !== 'object' || obj === null) {
|
|
114
213
|
return obj;
|
|
115
214
|
}
|
|
215
|
+
// Circular reference detection
|
|
116
216
|
if (visited.has(obj)) {
|
|
117
217
|
return '[Circular Reference]';
|
|
118
218
|
}
|
|
@@ -123,6 +223,7 @@ class PiiRedactor {
|
|
|
123
223
|
}
|
|
124
224
|
const redacted = {};
|
|
125
225
|
for (const [key, value] of Object.entries(obj)) {
|
|
226
|
+
// Check if key matches custom redaction fields
|
|
126
227
|
if (this.options.customRedactionFields.includes(key.toLowerCase())) {
|
|
127
228
|
redacted[key] = '[REDACTED]';
|
|
128
229
|
}
|
|
@@ -139,6 +240,7 @@ class PiiRedactor {
|
|
|
139
240
|
return redacted;
|
|
140
241
|
}
|
|
141
242
|
catch {
|
|
243
|
+
// If there's an error (e.g., can't stringify), return safe fallback
|
|
142
244
|
return '[Object with circular references]';
|
|
143
245
|
}
|
|
144
246
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pii-redactor.js","sourceRoot":"","sources":["../../src/utils/pii-redactor.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"pii-redactor.js","sourceRoot":"","sources":["../../src/utils/pii-redactor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Repository Discovery Helper
|
|
3
|
+
*
|
|
4
|
+
* Discovers TypeORM repositories from DataSource metadata.
|
|
5
|
+
* Supports both explicit entity names and table name matching.
|
|
6
|
+
*/
|
|
1
7
|
import { DataSource, Repository } from 'typeorm';
|
|
2
8
|
import { BaseUser, BaseSession, BaseLoginAttempt, BaseVerificationToken, BaseSocialAccount, BaseChallengeSession, BaseMFADevice, BaseAuthAudit, BaseTrustedDevice, BaseRateLimit, BaseStorageLock } from '../../entities';
|
|
9
|
+
/**
|
|
10
|
+
* Get all required repositories from DataSource
|
|
11
|
+
*
|
|
12
|
+
* Auto-discovers entities by table name from DataSource metadata.
|
|
13
|
+
* Falls back to entity name if table not found.
|
|
14
|
+
*
|
|
15
|
+
* @param dataSource - TypeORM DataSource
|
|
16
|
+
* @returns Object containing all required repositories
|
|
17
|
+
* @throws {NAuthException} If required entity not found
|
|
18
|
+
*/
|
|
3
19
|
export declare function getRepositories(dataSource: DataSource): {
|
|
4
20
|
userRepository: Repository<BaseUser>;
|
|
5
21
|
sessionRepository: Repository<BaseSession>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-repositories.d.ts","sourceRoot":"","sources":["../../../src/utils/setup/get-repositories.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-repositories.d.ts","sourceRoot":"","sources":["../../../src/utils/setup/get-repositories.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAkB,UAAU,EAAiB,MAAM,SAAS,CAAC;AAEhF,OAAO,EACL,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG;IACvD,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,iBAAiB,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,sBAAsB,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACrD,2BAA2B,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC/D,uBAAuB,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACvD,0BAA0B,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAC7D,mBAAmB,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IAC/C,mBAAmB,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IAC/C,uBAAuB,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAC9D,mBAAmB,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IACtD,qBAAqB,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;CAC3D,CAmCA"}
|
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Repository Discovery Helper
|
|
4
|
+
*
|
|
5
|
+
* Discovers TypeORM repositories from DataSource metadata.
|
|
6
|
+
* Supports both explicit entity names and table name matching.
|
|
7
|
+
*/
|
|
2
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
9
|
exports.getRepositories = getRepositories;
|
|
4
10
|
const index_1 = require("../../index");
|
|
11
|
+
/**
|
|
12
|
+
* Get all required repositories from DataSource
|
|
13
|
+
*
|
|
14
|
+
* Auto-discovers entities by table name from DataSource metadata.
|
|
15
|
+
* Falls back to entity name if table not found.
|
|
16
|
+
*
|
|
17
|
+
* @param dataSource - TypeORM DataSource
|
|
18
|
+
* @returns Object containing all required repositories
|
|
19
|
+
* @throws {NAuthException} If required entity not found
|
|
20
|
+
*/
|
|
5
21
|
function getRepositories(dataSource) {
|
|
6
22
|
return {
|
|
7
23
|
userRepository: getRepository(dataSource, 'User', 'nauth_users', true),
|
|
@@ -12,20 +28,24 @@ function getRepositories(dataSource) {
|
|
|
12
28
|
challengeSessionRepository: getRepository(dataSource, 'ChallengeSession', 'nauth_challenge_sessions', true),
|
|
13
29
|
mfaDeviceRepository: getRepository(dataSource, 'MFADevice', 'nauth_mfa_devices', true),
|
|
14
30
|
authAuditRepository: getRepository(dataSource, 'AuthAudit', 'nauth_auth_audit', true),
|
|
31
|
+
// Optional repositories (may not exist if features disabled)
|
|
15
32
|
trustedDeviceRepository: getRepository(dataSource, 'TrustedDevice', 'nauth_trusted_devices', false),
|
|
16
33
|
rateLimitRepository: getRepository(dataSource, 'RateLimit', 'nauth_rate_limits', false),
|
|
17
34
|
storageLockRepository: getRepository(dataSource, 'StorageLock', 'nauth_storage_locks', false),
|
|
18
35
|
};
|
|
19
36
|
}
|
|
20
37
|
function getRepository(dataSource, entityName, tableName, required) {
|
|
38
|
+
// Try to find by table name first (more reliable)
|
|
21
39
|
const metadataByTable = dataSource.entityMetadatas.find((m) => m.tableName === tableName);
|
|
22
40
|
if (metadataByTable) {
|
|
23
41
|
return dataSource.getRepository(metadataByTable.target);
|
|
24
42
|
}
|
|
43
|
+
// Fallback: Try to find by entity class name
|
|
25
44
|
const metadataByName = dataSource.entityMetadatas.find((m) => typeof m.target === 'function' && m.target.name === entityName);
|
|
26
45
|
if (metadataByName && typeof metadataByName.target === 'function') {
|
|
27
46
|
return dataSource.getRepository(metadataByName.target);
|
|
28
47
|
}
|
|
48
|
+
// Not found
|
|
29
49
|
if (required) {
|
|
30
50
|
throw new index_1.NAuthException(index_1.AuthErrorCode.VALIDATION_FAILED, `${entityName} entity not found in DataSource. ` +
|
|
31
51
|
`Make sure entities are registered in DataSource configuration. ` +
|
|
@@ -33,4 +53,5 @@ function getRepository(dataSource, entityName, tableName, required) {
|
|
|
33
53
|
}
|
|
34
54
|
return null;
|
|
35
55
|
}
|
|
56
|
+
/* eslint-enable no-redeclare */
|
|
36
57
|
//# sourceMappingURL=get-repositories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-repositories.js","sourceRoot":"","sources":["../../../src/utils/setup/get-repositories.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"get-repositories.js","sourceRoot":"","sources":["../../../src/utils/setup/get-repositories.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA4BH,0CA+CC;AAxED,uCAA4D;AAe5D;;;;;;;;;GASG;AACH,SAAgB,eAAe,CAAC,UAAsB;IAapD,OAAO;QACL,cAAc,EAAE,aAAa,CAAW,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC;QAChF,iBAAiB,EAAE,aAAa,CAAc,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,CAAC;QAC5F,sBAAsB,EAAE,aAAa,CAAmB,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,IAAI,CAAC;QACjH,2BAA2B,EAAE,aAAa,CACxC,UAAU,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,IAAI,CACL;QACD,uBAAuB,EAAE,aAAa,CACpC,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,IAAI,CACL;QACD,0BAA0B,EAAE,aAAa,CACvC,UAAU,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,IAAI,CACL;QACD,mBAAmB,EAAE,aAAa,CAAgB,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,CAAC;QACrG,mBAAmB,EAAE,aAAa,CAAgB,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,CAAC;QACpG,6DAA6D;QAC7D,uBAAuB,EAAE,aAAa,CACpC,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,KAAK,CACN;QACD,mBAAmB,EAAE,aAAa,CAAgB,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,KAAK,CAAC;QACtG,qBAAqB,EAAE,aAAa,CAAkB,UAAU,EAAE,aAAa,EAAE,qBAAqB,EAAE,KAAK,CAAC;KAC/G,CAAC;AACJ,CAAC;AAyBD,SAAS,aAAa,CACpB,UAAsB,EACtB,UAAkB,EAClB,SAAiB,EACjB,QAAiB;IAEjB,kDAAkD;IAClD,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAE1G,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC,aAAa,CAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,6CAA6C;IAC7C,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CACpD,CAAC,CAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CACtF,CAAC;IAEF,IAAI,cAAc,IAAI,OAAO,cAAc,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAClE,OAAO,UAAU,CAAC,aAAa,CAAI,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,YAAY;IACZ,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,sBAAc,CACtB,qBAAa,CAAC,iBAAiB,EAC/B,GAAG,UAAU,mCAAmC;YAC9C,iEAAiE;YACjE,wBAAwB,SAAS,EAAE,CACtC,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AACD,gCAAgC"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Initialization Helper
|
|
3
|
+
*
|
|
4
|
+
* Initializes all NAuth services in correct dependency order.
|
|
5
|
+
* Matches NestJS AuthModule service initialization.
|
|
6
|
+
*/
|
|
1
7
|
import { Repository } from 'typeorm';
|
|
2
8
|
import { NAuthConfig, NAuthLogger, StorageAdapter, ClientInfoService, RateLimitStorageService, AccountLockoutStorageService, EmailVerificationService, PhoneVerificationService, MFAService, AuthService, SocialAuthService } from '../../index';
|
|
3
|
-
import { PasswordService, JwtService, SessionService, AuthAuditService,
|
|
9
|
+
import { PasswordService, JwtService, SessionService, AuthAuditService, // Internal version with recordEvent()
|
|
10
|
+
ChallengeService, TrustedDeviceService, AuthFlowContextBuilder, AuthFlowStateMachineService, AuthChallengeHelperService, SocialProviderRegistry, GeoLocationService, RiskDetectionService, RiskScoringService, AdaptiveMFADecisionService } from '../../internal';
|
|
4
11
|
import { BaseUser, BaseSession, BaseLoginAttempt, BaseVerificationToken, BaseSocialAccount, BaseChallengeSession, BaseMFADevice, BaseAuthAudit, BaseTrustedDevice } from '../../entities';
|
|
12
|
+
/**
|
|
13
|
+
* Service container returned by initServices()
|
|
14
|
+
*/
|
|
5
15
|
export interface NAuthServices {
|
|
6
16
|
passwordService: PasswordService;
|
|
7
17
|
jwtService: JwtService;
|
|
@@ -27,6 +37,35 @@ export interface NAuthServices {
|
|
|
27
37
|
adaptiveMFADecisionService?: AdaptiveMFADecisionService;
|
|
28
38
|
csrfService?: unknown;
|
|
29
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Initialize all services in correct dependency order
|
|
42
|
+
*
|
|
43
|
+
* Service initialization order matches NestJS AuthModule:
|
|
44
|
+
* 1. PasswordService, JwtService (no dependencies)
|
|
45
|
+
* 2. ClientInfoService (no dependencies)
|
|
46
|
+
* 3. AuthAuditService (if enabled)
|
|
47
|
+
* 4. RateLimitStorageService, AccountLockoutStorageService
|
|
48
|
+
* 5. SessionService
|
|
49
|
+
* 6. ChallengeService
|
|
50
|
+
* 7. EmailVerificationService
|
|
51
|
+
* 8. PhoneVerificationService (if SMS configured)
|
|
52
|
+
* 9. TrustedDeviceService (if rememberDevices enabled)
|
|
53
|
+
* 10. AuthFlowContextBuilder, AuthFlowStateMachine
|
|
54
|
+
* 11. AuthChallengeHelperService
|
|
55
|
+
* 12. MFAService (if enabled)
|
|
56
|
+
* 13. AuthService
|
|
57
|
+
* 14. SocialAuthService
|
|
58
|
+
* 15. GeoLocationService (if MaxMind configured)
|
|
59
|
+
* 16. Risk services (if adaptive MFA configured)
|
|
60
|
+
*
|
|
61
|
+
* @param config - NAuth configuration
|
|
62
|
+
* @param repositories - Repository container
|
|
63
|
+
* @param storageAdapter - Initialized storage adapter
|
|
64
|
+
* @param logger - Logger instance
|
|
65
|
+
* @param emailProvider - Email provider instance
|
|
66
|
+
* @param smsProvider - SMS provider instance (optional)
|
|
67
|
+
* @returns Service container with all initialized services
|
|
68
|
+
*/
|
|
30
69
|
export declare function initServices(config: NAuthConfig, repositories: {
|
|
31
70
|
userRepository: Repository<BaseUser>;
|
|
32
71
|
sessionRepository: Repository<BaseSession>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-services.d.ts","sourceRoot":"","sources":["../../../src/utils/setup/init-services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init-services.d.ts","sourceRoot":"","sources":["../../../src/utils/setup/init-services.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,UAAU,EACV,WAAW,EACX,iBAAiB,EAGlB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,eAAe,EACf,UAAU,EACV,cAAc,EAEd,gBAAgB,EAAE,sCAAsC;AACxD,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,aAAa;IAE5B,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,4BAA4B,EAAE,4BAA4B,CAAC;IAC3D,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,oBAAoB,EAAE,2BAA2B,CAAC;IAClD,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,WAAW,EAAE,WAAW,CAAC;IACzB,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,iBAAiB,EAAE,iBAAiB,CAAC;IAGrC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE;IACZ,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,iBAAiB,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,sBAAsB,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACrD,2BAA2B,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC/D,uBAAuB,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACvD,0BAA0B,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAC7D,mBAAmB,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IAC/C,mBAAmB,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IAC/C,uBAAuB,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;CAC/D,EACD,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,OAAO,EACtB,WAAW,CAAC,EAAE,OAAO,GACpB,aAAa,CA+Tf"}
|
|
@@ -1,39 +1,101 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Service Initialization Helper
|
|
4
|
+
*
|
|
5
|
+
* Initializes all NAuth services in correct dependency order.
|
|
6
|
+
* Matches NestJS AuthModule service initialization.
|
|
7
|
+
*/
|
|
2
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
9
|
exports.initServices = initServices;
|
|
10
|
+
// Public API imports
|
|
4
11
|
const index_1 = require("../../index");
|
|
12
|
+
// Internal API imports (for framework adapter use only)
|
|
5
13
|
const internal_1 = require("../../internal");
|
|
14
|
+
/**
|
|
15
|
+
* Initialize all services in correct dependency order
|
|
16
|
+
*
|
|
17
|
+
* Service initialization order matches NestJS AuthModule:
|
|
18
|
+
* 1. PasswordService, JwtService (no dependencies)
|
|
19
|
+
* 2. ClientInfoService (no dependencies)
|
|
20
|
+
* 3. AuthAuditService (if enabled)
|
|
21
|
+
* 4. RateLimitStorageService, AccountLockoutStorageService
|
|
22
|
+
* 5. SessionService
|
|
23
|
+
* 6. ChallengeService
|
|
24
|
+
* 7. EmailVerificationService
|
|
25
|
+
* 8. PhoneVerificationService (if SMS configured)
|
|
26
|
+
* 9. TrustedDeviceService (if rememberDevices enabled)
|
|
27
|
+
* 10. AuthFlowContextBuilder, AuthFlowStateMachine
|
|
28
|
+
* 11. AuthChallengeHelperService
|
|
29
|
+
* 12. MFAService (if enabled)
|
|
30
|
+
* 13. AuthService
|
|
31
|
+
* 14. SocialAuthService
|
|
32
|
+
* 15. GeoLocationService (if MaxMind configured)
|
|
33
|
+
* 16. Risk services (if adaptive MFA configured)
|
|
34
|
+
*
|
|
35
|
+
* @param config - NAuth configuration
|
|
36
|
+
* @param repositories - Repository container
|
|
37
|
+
* @param storageAdapter - Initialized storage adapter
|
|
38
|
+
* @param logger - Logger instance
|
|
39
|
+
* @param emailProvider - Email provider instance
|
|
40
|
+
* @param smsProvider - SMS provider instance (optional)
|
|
41
|
+
* @returns Service container with all initialized services
|
|
42
|
+
*/
|
|
6
43
|
function initServices(config, repositories, storageAdapter, logger, emailProvider, smsProvider) {
|
|
44
|
+
// ============================================================================
|
|
45
|
+
// 1. Core Services (No Dependencies)
|
|
46
|
+
// ============================================================================
|
|
7
47
|
const passwordService = new internal_1.PasswordService(config.password);
|
|
8
48
|
const jwtService = new internal_1.JwtService(config.jwt);
|
|
9
49
|
const clientInfoService = new index_1.ClientInfoService();
|
|
50
|
+
// ============================================================================
|
|
51
|
+
// 2. Audit Service (Conditional)
|
|
52
|
+
// ============================================================================
|
|
10
53
|
const auditService = config.auditLogs?.enabled !== false
|
|
11
54
|
? new internal_1.AuthAuditService(repositories.authAuditRepository, repositories.userRepository, logger, clientInfoService)
|
|
12
55
|
: undefined;
|
|
56
|
+
// ============================================================================
|
|
57
|
+
// 3. Storage Services
|
|
58
|
+
// ============================================================================
|
|
13
59
|
const rateLimitStorageService = new index_1.RateLimitStorageService(storageAdapter);
|
|
14
60
|
const accountLockoutStorageService = new index_1.AccountLockoutStorageService(storageAdapter);
|
|
61
|
+
// ============================================================================
|
|
62
|
+
// 4. Session Service
|
|
63
|
+
// ============================================================================
|
|
15
64
|
const sessionService = new internal_1.SessionService(repositories.sessionRepository, storageAdapter, clientInfoService, config, logger, auditService);
|
|
65
|
+
// ============================================================================
|
|
66
|
+
// 5. Challenge Service
|
|
67
|
+
// ============================================================================
|
|
16
68
|
const challengeService = new internal_1.ChallengeService(repositories.challengeSessionRepository, clientInfoService, logger, auditService, config);
|
|
69
|
+
// ============================================================================
|
|
70
|
+
// 6. Email Provider and Verification Service
|
|
71
|
+
// ============================================================================
|
|
17
72
|
if (!emailProvider) {
|
|
18
73
|
throw new index_1.NAuthException(index_1.AuthErrorCode.VALIDATION_FAILED, 'emailProvider is required. Install and configure an email package:\n' +
|
|
19
74
|
' yarn add @nauth-toolkit/email-console (for dev)\n' +
|
|
20
75
|
' yarn add @nauth-toolkit/email-nodemailer (for production)');
|
|
21
76
|
}
|
|
77
|
+
// Validate email provider has required method
|
|
22
78
|
if (typeof emailProvider.sendVerificationEmail !== 'function') {
|
|
23
79
|
throw new index_1.NAuthException(index_1.AuthErrorCode.VALIDATION_FAILED, 'emailProvider must implement sendVerificationEmail method');
|
|
24
80
|
}
|
|
81
|
+
// At this point the provider has been validated for required methods.
|
|
82
|
+
// We still accept `unknown` inputs to keep peer-dependency providers optional,
|
|
83
|
+
// but we narrow once validated to maintain strict typing.
|
|
25
84
|
const typedEmailProvider = emailProvider;
|
|
85
|
+
// Inject logger into email provider if it supports it
|
|
26
86
|
{
|
|
27
87
|
const maybeLoggerAware = emailProvider;
|
|
28
88
|
if (typeof maybeLoggerAware.setLogger === 'function') {
|
|
29
89
|
maybeLoggerAware.setLogger(logger);
|
|
30
90
|
}
|
|
31
91
|
}
|
|
92
|
+
// Inject global variables from email config if provider supports it
|
|
32
93
|
if (emailProvider &&
|
|
33
94
|
typeof emailProvider.setGlobalVariables ===
|
|
34
95
|
'function' &&
|
|
35
96
|
config.email) {
|
|
36
97
|
const globalVars = {};
|
|
98
|
+
// Extract top-level branding fields
|
|
37
99
|
if (config.email.appName)
|
|
38
100
|
globalVars.appName = config.email.appName;
|
|
39
101
|
if (config.email.companyName)
|
|
@@ -48,6 +110,7 @@ function initServices(config, repositories, storageAdapter, logger, emailProvide
|
|
|
48
110
|
globalVars.brandColor = config.email.brandColor;
|
|
49
111
|
if (config.email.footerDisclaimer)
|
|
50
112
|
globalVars.footerDisclaimer = config.email.footerDisclaimer;
|
|
113
|
+
// Merge with templates.globalVariables (templates.globalVariables takes precedence)
|
|
51
114
|
const mergedVars = {
|
|
52
115
|
...globalVars,
|
|
53
116
|
...(config.email.templates?.globalVariables || {}),
|
|
@@ -55,9 +118,13 @@ function initServices(config, repositories, storageAdapter, logger, emailProvide
|
|
|
55
118
|
emailProvider.setGlobalVariables(mergedVars);
|
|
56
119
|
}
|
|
57
120
|
const emailVerificationService = new index_1.EmailVerificationService(repositories.verificationTokenRepository, repositories.userRepository, typedEmailProvider, storageAdapter, config, clientInfoService, logger, auditService);
|
|
121
|
+
// ============================================================================
|
|
122
|
+
// 7. SMS Provider and Phone Verification Service (Conditional)
|
|
123
|
+
// ============================================================================
|
|
58
124
|
let phoneVerificationService;
|
|
59
125
|
if (smsProvider) {
|
|
60
126
|
const typedSmsProvider = smsProvider;
|
|
127
|
+
// Inject logger into SMS provider if it supports it
|
|
61
128
|
{
|
|
62
129
|
const maybeLoggerAware = smsProvider;
|
|
63
130
|
if (typeof maybeLoggerAware.setLogger === 'function') {
|
|
@@ -66,30 +133,61 @@ function initServices(config, repositories, storageAdapter, logger, emailProvide
|
|
|
66
133
|
}
|
|
67
134
|
phoneVerificationService = new index_1.PhoneVerificationService(repositories.verificationTokenRepository, repositories.userRepository, typedSmsProvider, storageAdapter, config, clientInfoService, logger, auditService);
|
|
68
135
|
}
|
|
136
|
+
// ============================================================================
|
|
137
|
+
// 8. Trusted Device Service (Conditional)
|
|
138
|
+
// ============================================================================
|
|
69
139
|
const trustedDeviceService = repositories.trustedDeviceRepository
|
|
70
140
|
? new internal_1.TrustedDeviceService(config, logger, repositories.trustedDeviceRepository)
|
|
71
141
|
: undefined;
|
|
142
|
+
// ============================================================================
|
|
143
|
+
// 9. Risk Detection and Adaptive MFA Services (Always created)
|
|
144
|
+
// ============================================================================
|
|
145
|
+
// NOTE: These services are needed by the auth flow context builder to decide
|
|
146
|
+
// whether MFA is required / whether a sign-in should be blocked.
|
|
72
147
|
const riskDetectionService = new internal_1.RiskDetectionService(repositories.sessionRepository, repositories.authAuditRepository, config, logger, trustedDeviceService);
|
|
73
148
|
const riskScoringService = new internal_1.RiskScoringService(config, logger);
|
|
74
149
|
const adaptiveMFADecisionService = new internal_1.AdaptiveMFADecisionService(riskDetectionService, riskScoringService, storageAdapter, clientInfoService, config, logger, auditService);
|
|
150
|
+
// ============================================================================
|
|
151
|
+
// 10. Auth Flow Services
|
|
152
|
+
// ============================================================================
|
|
75
153
|
const authFlowContextBuilder = new internal_1.AuthFlowContextBuilder(trustedDeviceService, adaptiveMFADecisionService, clientInfoService, logger);
|
|
76
154
|
const authFlowStateMachine = new internal_1.AuthFlowStateMachineService(authFlowContextBuilder, logger);
|
|
77
155
|
const authChallengeHelperService = new internal_1.AuthChallengeHelperService(challengeService, jwtService, sessionService, repositories.mfaDeviceRepository, logger, authFlowStateMachine, authFlowContextBuilder, clientInfoService, emailVerificationService, phoneVerificationService);
|
|
156
|
+
// ============================================================================
|
|
157
|
+
// 10.5 Password Reset Service (Account Recovery)
|
|
158
|
+
// ============================================================================
|
|
78
159
|
const passwordResetService = new internal_1.PasswordResetService(repositories.verificationTokenRepository, typedEmailProvider, storageAdapter, config, clientInfoService, logger, auditService, smsProvider ? smsProvider : undefined);
|
|
160
|
+
// ============================================================================
|
|
161
|
+
// 10. MFA Service (Conditional)
|
|
162
|
+
// ============================================================================
|
|
79
163
|
const mfaService = new index_1.MFAService(repositories.mfaDeviceRepository, repositories.userRepository, challengeService, config, logger, auditService, clientInfoService);
|
|
164
|
+
// ============================================================================
|
|
165
|
+
// 11. Auth Service
|
|
166
|
+
// ============================================================================
|
|
80
167
|
const authService = new index_1.AuthService(repositories.userRepository, repositories.loginAttemptRepository, passwordService, jwtService, sessionService, challengeService, authChallengeHelperService, emailVerificationService, clientInfoService, accountLockoutStorageService, config, logger, auditService, phoneVerificationService, mfaService, repositories.mfaDeviceRepository, trustedDeviceService, passwordResetService);
|
|
168
|
+
// ============================================================================
|
|
169
|
+
// 12. Social Auth Services
|
|
170
|
+
// ============================================================================
|
|
81
171
|
const socialProviderRegistry = new internal_1.SocialProviderRegistry();
|
|
82
172
|
const socialAuthService = new index_1.SocialAuthService(socialProviderRegistry, repositories.userRepository, repositories.socialAccountRepository, authService, logger, auditService);
|
|
173
|
+
// ============================================================================
|
|
174
|
+
// 13. GeoLocation Service (Conditional)
|
|
175
|
+
// ============================================================================
|
|
83
176
|
let geoLocationService;
|
|
84
177
|
if (config.geoLocation?.maxMind) {
|
|
85
178
|
try {
|
|
179
|
+
// Try to load MaxMind module (optional peer dependency)
|
|
86
180
|
const maxMindModule = require('@maxmind/geoip2-node');
|
|
87
181
|
geoLocationService = new internal_1.GeoLocationService(config, storageAdapter, maxMindModule, logger);
|
|
88
182
|
}
|
|
89
183
|
catch {
|
|
184
|
+
// MaxMind module not installed - service remains undefined
|
|
90
185
|
logger?.warn?.('MaxMind GeoIP2 module not installed. Geolocation features will be disabled.');
|
|
91
186
|
}
|
|
92
187
|
}
|
|
188
|
+
// ============================================================================
|
|
189
|
+
// Return Service Container
|
|
190
|
+
// ============================================================================
|
|
93
191
|
return {
|
|
94
192
|
passwordService,
|
|
95
193
|
jwtService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-services.js","sourceRoot":"","sources":["../../../src/utils/setup/init-services.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"init-services.js","sourceRoot":"","sources":["../../../src/utils/setup/init-services.ts"],"names":[],"mappings":"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"}
|