@nauth-toolkit/core 0.1.14 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/database-columns.d.ts +70 -0
- package/dist/adapters/database-columns.d.ts.map +1 -1
- package/dist/adapters/database-columns.js +76 -2
- package/dist/adapters/database-columns.js.map +1 -1
- package/dist/adapters/express.adapter.d.ts +66 -0
- package/dist/adapters/express.adapter.d.ts.map +1 -1
- package/dist/adapters/express.adapter.js +80 -0
- package/dist/adapters/express.adapter.js.map +1 -1
- package/dist/adapters/fastify.adapter.d.ts +42 -0
- package/dist/adapters/fastify.adapter.d.ts.map +1 -1
- package/dist/adapters/fastify.adapter.js +86 -0
- package/dist/adapters/fastify.adapter.js.map +1 -1
- package/dist/adapters/index.d.ts +5 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +9 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/storage.factory.d.ts +107 -0
- package/dist/adapters/storage.factory.d.ts.map +1 -1
- package/dist/adapters/storage.factory.js +114 -0
- package/dist/adapters/storage.factory.js.map +1 -1
- package/dist/adapters.d.ts +8 -0
- package/dist/adapters.d.ts.map +1 -1
- package/dist/adapters.js +8 -0
- package/dist/adapters.js.map +1 -1
- package/dist/bootstrap.d.ts +82 -0
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +106 -0
- package/dist/bootstrap.js.map +1 -1
- package/dist/dto/admin-set-password.dto.d.ts +90 -0
- package/dist/dto/admin-set-password.dto.d.ts.map +1 -1
- package/dist/dto/admin-set-password.dto.js +91 -0
- package/dist/dto/admin-set-password.dto.js.map +1 -1
- package/dist/dto/auth-challenge.dto.d.ts +170 -0
- package/dist/dto/auth-challenge.dto.d.ts.map +1 -1
- package/dist/dto/auth-challenge.dto.js +170 -0
- package/dist/dto/auth-challenge.dto.js.map +1 -1
- package/dist/dto/auth-response.dto.d.ts +196 -0
- package/dist/dto/auth-response.dto.d.ts.map +1 -1
- package/dist/dto/auth-response.dto.js +149 -0
- package/dist/dto/auth-response.dto.js.map +1 -1
- package/dist/dto/challenge-response.dto.d.ts +155 -0
- package/dist/dto/challenge-response.dto.d.ts.map +1 -1
- package/dist/dto/challenge-response.dto.js +8 -0
- package/dist/dto/challenge-response.dto.js.map +1 -1
- package/dist/dto/change-password-request.dto.d.ts +35 -0
- package/dist/dto/change-password-request.dto.d.ts.map +1 -1
- package/dist/dto/change-password-request.dto.js +35 -0
- package/dist/dto/change-password-request.dto.js.map +1 -1
- package/dist/dto/change-password-response.dto.d.ts +25 -0
- package/dist/dto/change-password-response.dto.d.ts.map +1 -1
- package/dist/dto/change-password-response.dto.js +25 -0
- package/dist/dto/change-password-response.dto.js.map +1 -1
- package/dist/dto/change-password.dto.d.ts +45 -0
- package/dist/dto/change-password.dto.d.ts.map +1 -1
- package/dist/dto/change-password.dto.js +45 -0
- package/dist/dto/change-password.dto.js.map +1 -1
- package/dist/dto/confirm-forgot-password.dto.d.ts +59 -0
- package/dist/dto/confirm-forgot-password.dto.d.ts.map +1 -1
- package/dist/dto/confirm-forgot-password.dto.js +59 -0
- package/dist/dto/confirm-forgot-password.dto.js.map +1 -1
- package/dist/dto/error-response.dto.d.ts +103 -0
- package/dist/dto/error-response.dto.d.ts.map +1 -1
- package/dist/dto/error-response.dto.js +103 -0
- package/dist/dto/error-response.dto.js.map +1 -1
- package/dist/dto/forgot-password.dto.d.ts +58 -0
- package/dist/dto/forgot-password.dto.d.ts.map +1 -1
- package/dist/dto/forgot-password.dto.js +58 -0
- package/dist/dto/forgot-password.dto.js.map +1 -1
- package/dist/dto/get-available-methods.dto.d.ts +37 -0
- package/dist/dto/get-available-methods.dto.d.ts.map +1 -1
- package/dist/dto/get-available-methods.dto.js +37 -0
- package/dist/dto/get-available-methods.dto.js.map +1 -1
- package/dist/dto/get-challenge-data-response.dto.d.ts +24 -0
- package/dist/dto/get-challenge-data-response.dto.d.ts.map +1 -1
- package/dist/dto/get-challenge-data-response.dto.js +24 -0
- package/dist/dto/get-challenge-data-response.dto.js.map +1 -1
- package/dist/dto/get-challenge-data.dto.d.ts +46 -0
- package/dist/dto/get-challenge-data.dto.d.ts.map +1 -1
- package/dist/dto/get-challenge-data.dto.js +46 -0
- package/dist/dto/get-challenge-data.dto.js.map +1 -1
- package/dist/dto/get-client-info.dto.d.ts +74 -0
- package/dist/dto/get-client-info.dto.d.ts.map +1 -1
- package/dist/dto/get-client-info.dto.js +74 -0
- package/dist/dto/get-client-info.dto.js.map +1 -1
- package/dist/dto/get-device-token-response.dto.d.ts +21 -0
- package/dist/dto/get-device-token-response.dto.d.ts.map +1 -1
- package/dist/dto/get-device-token-response.dto.js +21 -0
- package/dist/dto/get-device-token-response.dto.js.map +1 -1
- package/dist/dto/get-events-by-type.dto.d.ts +50 -0
- package/dist/dto/get-events-by-type.dto.d.ts.map +1 -1
- package/dist/dto/get-events-by-type.dto.js +50 -0
- package/dist/dto/get-events-by-type.dto.js.map +1 -1
- package/dist/dto/get-ip-address-response.dto.d.ts +20 -0
- package/dist/dto/get-ip-address-response.dto.d.ts.map +1 -1
- package/dist/dto/get-ip-address-response.dto.js +20 -0
- package/dist/dto/get-ip-address-response.dto.js.map +1 -1
- package/dist/dto/get-mfa-status.dto.d.ts +59 -0
- package/dist/dto/get-mfa-status.dto.d.ts.map +1 -1
- package/dist/dto/get-mfa-status.dto.js +59 -0
- package/dist/dto/get-mfa-status.dto.js.map +1 -1
- package/dist/dto/get-risk-assessment-history.dto.d.ts +28 -0
- package/dist/dto/get-risk-assessment-history.dto.d.ts.map +1 -1
- package/dist/dto/get-risk-assessment-history.dto.js +28 -0
- package/dist/dto/get-risk-assessment-history.dto.js.map +1 -1
- package/dist/dto/get-session-id-response.dto.d.ts +21 -0
- package/dist/dto/get-session-id-response.dto.d.ts.map +1 -1
- package/dist/dto/get-session-id-response.dto.js +21 -0
- package/dist/dto/get-session-id-response.dto.js.map +1 -1
- package/dist/dto/get-setup-data-response.dto.d.ts +27 -0
- package/dist/dto/get-setup-data-response.dto.d.ts.map +1 -1
- package/dist/dto/get-setup-data-response.dto.js +27 -0
- package/dist/dto/get-setup-data-response.dto.js.map +1 -1
- package/dist/dto/get-setup-data.dto.d.ts +51 -0
- package/dist/dto/get-setup-data.dto.d.ts.map +1 -1
- package/dist/dto/get-setup-data.dto.js +51 -0
- package/dist/dto/get-setup-data.dto.js.map +1 -1
- package/dist/dto/get-suspicious-activity.dto.d.ts +31 -0
- package/dist/dto/get-suspicious-activity.dto.d.ts.map +1 -1
- package/dist/dto/get-suspicious-activity.dto.js +31 -0
- package/dist/dto/get-suspicious-activity.dto.js.map +1 -1
- package/dist/dto/get-user-agent-response.dto.d.ts +19 -0
- package/dist/dto/get-user-agent-response.dto.d.ts.map +1 -1
- package/dist/dto/get-user-agent-response.dto.js +19 -0
- package/dist/dto/get-user-agent-response.dto.js.map +1 -1
- package/dist/dto/get-user-auth-history.dto.d.ts +64 -0
- package/dist/dto/get-user-auth-history.dto.d.ts.map +1 -1
- package/dist/dto/get-user-auth-history.dto.js +64 -0
- package/dist/dto/get-user-auth-history.dto.js.map +1 -1
- package/dist/dto/get-user-by-email.dto.d.ts +42 -0
- package/dist/dto/get-user-by-email.dto.d.ts.map +1 -1
- package/dist/dto/get-user-by-email.dto.js +42 -0
- package/dist/dto/get-user-by-email.dto.js.map +1 -1
- package/dist/dto/get-user-by-id.dto.d.ts +32 -0
- package/dist/dto/get-user-by-id.dto.d.ts.map +1 -1
- package/dist/dto/get-user-by-id.dto.js +32 -0
- package/dist/dto/get-user-by-id.dto.js.map +1 -1
- package/dist/dto/get-user-devices.dto.d.ts +34 -0
- package/dist/dto/get-user-devices.dto.d.ts.map +1 -1
- package/dist/dto/get-user-devices.dto.js +34 -0
- package/dist/dto/get-user-devices.dto.js.map +1 -1
- package/dist/dto/get-user-response.dto.d.ts +14 -0
- package/dist/dto/get-user-response.dto.d.ts.map +1 -1
- package/dist/dto/get-user-response.dto.js +15 -0
- package/dist/dto/get-user-response.dto.js.map +1 -1
- package/dist/dto/has-provider.dto.d.ts +33 -0
- package/dist/dto/has-provider.dto.d.ts.map +1 -1
- package/dist/dto/has-provider.dto.js +33 -0
- package/dist/dto/has-provider.dto.js.map +1 -1
- package/dist/dto/index.js +5 -0
- package/dist/dto/index.js.map +1 -1
- package/dist/dto/is-trusted-device-response.dto.d.ts +28 -0
- package/dist/dto/is-trusted-device-response.dto.d.ts.map +1 -1
- package/dist/dto/is-trusted-device-response.dto.js +28 -0
- package/dist/dto/is-trusted-device-response.dto.js.map +1 -1
- package/dist/dto/list-providers-response.dto.d.ts +19 -0
- package/dist/dto/list-providers-response.dto.d.ts.map +1 -1
- package/dist/dto/list-providers-response.dto.js +19 -0
- package/dist/dto/list-providers-response.dto.js.map +1 -1
- package/dist/dto/login.dto.d.ts +48 -0
- package/dist/dto/login.dto.d.ts.map +1 -1
- package/dist/dto/login.dto.js +50 -1
- package/dist/dto/login.dto.js.map +1 -1
- package/dist/dto/logout-all-response.dto.d.ts +20 -0
- package/dist/dto/logout-all-response.dto.d.ts.map +1 -1
- package/dist/dto/logout-all-response.dto.js +20 -0
- package/dist/dto/logout-all-response.dto.js.map +1 -1
- package/dist/dto/logout-all.dto.d.ts +42 -0
- package/dist/dto/logout-all.dto.d.ts.map +1 -1
- package/dist/dto/logout-all.dto.js +42 -0
- package/dist/dto/logout-all.dto.js.map +1 -1
- package/dist/dto/logout-response.dto.d.ts +21 -0
- package/dist/dto/logout-response.dto.d.ts.map +1 -1
- package/dist/dto/logout-response.dto.js +21 -0
- package/dist/dto/logout-response.dto.js.map +1 -1
- package/dist/dto/logout.dto.d.ts +45 -0
- package/dist/dto/logout.dto.d.ts.map +1 -1
- package/dist/dto/logout.dto.js +45 -0
- package/dist/dto/logout.dto.js.map +1 -1
- package/dist/dto/refresh-token.dto.d.ts +28 -0
- package/dist/dto/refresh-token.dto.d.ts.map +1 -1
- package/dist/dto/refresh-token.dto.js +28 -0
- package/dist/dto/refresh-token.dto.js.map +1 -1
- package/dist/dto/remove-devices.dto.d.ts +51 -0
- package/dist/dto/remove-devices.dto.d.ts.map +1 -1
- package/dist/dto/remove-devices.dto.js +51 -0
- package/dist/dto/remove-devices.dto.js.map +1 -1
- package/dist/dto/resend-code-response.dto.d.ts +28 -0
- package/dist/dto/resend-code-response.dto.d.ts.map +1 -1
- package/dist/dto/resend-code-response.dto.js +28 -0
- package/dist/dto/resend-code-response.dto.js.map +1 -1
- package/dist/dto/resend-code.dto.d.ts +37 -0
- package/dist/dto/resend-code.dto.d.ts.map +1 -1
- package/dist/dto/resend-code.dto.js +37 -0
- package/dist/dto/resend-code.dto.js.map +1 -1
- package/dist/dto/reset-password.dto.d.ts +74 -0
- package/dist/dto/reset-password.dto.d.ts.map +1 -1
- package/dist/dto/reset-password.dto.js +76 -1
- package/dist/dto/reset-password.dto.js.map +1 -1
- package/dist/dto/respond-challenge.dto.d.ts +147 -0
- package/dist/dto/respond-challenge.dto.d.ts.map +1 -1
- package/dist/dto/respond-challenge.dto.js +162 -0
- package/dist/dto/respond-challenge.dto.js.map +1 -1
- package/dist/dto/set-mfa-exemption.dto.d.ts +65 -0
- package/dist/dto/set-mfa-exemption.dto.d.ts.map +1 -1
- package/dist/dto/set-mfa-exemption.dto.js +65 -0
- package/dist/dto/set-mfa-exemption.dto.js.map +1 -1
- package/dist/dto/set-must-change-password-response.dto.d.ts +23 -0
- package/dist/dto/set-must-change-password-response.dto.d.ts.map +1 -1
- package/dist/dto/set-must-change-password-response.dto.js +23 -0
- package/dist/dto/set-must-change-password-response.dto.js.map +1 -1
- package/dist/dto/set-must-change-password.dto.d.ts +32 -0
- package/dist/dto/set-must-change-password.dto.d.ts.map +1 -1
- package/dist/dto/set-must-change-password.dto.js +32 -0
- package/dist/dto/set-must-change-password.dto.js.map +1 -1
- package/dist/dto/set-preferred-method.dto.d.ts +48 -0
- package/dist/dto/set-preferred-method.dto.d.ts.map +1 -1
- package/dist/dto/set-preferred-method.dto.js +48 -0
- package/dist/dto/set-preferred-method.dto.js.map +1 -1
- package/dist/dto/setup-mfa.dto.d.ts +62 -0
- package/dist/dto/setup-mfa.dto.d.ts.map +1 -1
- package/dist/dto/setup-mfa.dto.js +62 -0
- package/dist/dto/setup-mfa.dto.js.map +1 -1
- package/dist/dto/signup.dto.d.ts +92 -0
- package/dist/dto/signup.dto.d.ts.map +1 -1
- package/dist/dto/signup.dto.js +93 -0
- package/dist/dto/signup.dto.js.map +1 -1
- package/dist/dto/social-auth.dto.d.ts +234 -0
- package/dist/dto/social-auth.dto.d.ts.map +1 -1
- package/dist/dto/social-auth.dto.js +234 -0
- package/dist/dto/social-auth.dto.js.map +1 -1
- package/dist/dto/trust-device-response.dto.d.ts +26 -0
- package/dist/dto/trust-device-response.dto.d.ts.map +1 -1
- package/dist/dto/trust-device-response.dto.js +26 -0
- package/dist/dto/trust-device-response.dto.js.map +1 -1
- package/dist/dto/trust-device.dto.d.ts +9 -0
- package/dist/dto/trust-device.dto.d.ts.map +1 -1
- package/dist/dto/trust-device.dto.js +9 -0
- package/dist/dto/trust-device.dto.js.map +1 -1
- package/dist/dto/update-user-attributes-request.dto.d.ts +36 -0
- package/dist/dto/update-user-attributes-request.dto.d.ts.map +1 -1
- package/dist/dto/update-user-attributes-request.dto.js +36 -0
- package/dist/dto/update-user-attributes-request.dto.js.map +1 -1
- package/dist/dto/user-response.dto.d.ts +81 -0
- package/dist/dto/user-response.dto.d.ts.map +1 -1
- package/dist/dto/user-response.dto.js +84 -2
- package/dist/dto/user-response.dto.js.map +1 -1
- package/dist/dto/user-update.dto.d.ts +132 -0
- package/dist/dto/user-update.dto.d.ts.map +1 -1
- package/dist/dto/user-update.dto.js +133 -0
- package/dist/dto/user-update.dto.js.map +1 -1
- package/dist/dto/verify-email.dto.d.ts +171 -0
- package/dist/dto/verify-email.dto.d.ts.map +1 -1
- package/dist/dto/verify-email.dto.js +173 -1
- package/dist/dto/verify-email.dto.js.map +1 -1
- package/dist/dto/verify-mfa-code.dto.d.ts +65 -0
- package/dist/dto/verify-mfa-code.dto.d.ts.map +1 -1
- package/dist/dto/verify-mfa-code.dto.js +65 -0
- package/dist/dto/verify-mfa-code.dto.js.map +1 -1
- package/dist/dto/verify-phone-by-sub.dto.d.ts +49 -0
- package/dist/dto/verify-phone-by-sub.dto.d.ts.map +1 -1
- package/dist/dto/verify-phone-by-sub.dto.js +49 -0
- package/dist/dto/verify-phone-by-sub.dto.js.map +1 -1
- package/dist/dto/verify-phone.dto.d.ts +139 -0
- package/dist/dto/verify-phone.dto.d.ts.map +1 -1
- package/dist/dto/verify-phone.dto.js +142 -1
- package/dist/dto/verify-phone.dto.js.map +1 -1
- package/dist/dto.d.ts +10 -0
- package/dist/dto.d.ts.map +1 -1
- package/dist/dto.js +10 -0
- package/dist/dto.js.map +1 -1
- package/dist/entities/auth-audit.entity.d.ts +159 -0
- package/dist/entities/auth-audit.entity.d.ts.map +1 -1
- package/dist/entities/auth-audit.entity.js +166 -0
- package/dist/entities/auth-audit.entity.js.map +1 -1
- package/dist/entities/challenge-session.entity.d.ts +87 -0
- package/dist/entities/challenge-session.entity.d.ts.map +1 -1
- package/dist/entities/challenge-session.entity.js +87 -0
- package/dist/entities/challenge-session.entity.js.map +1 -1
- package/dist/entities/index.d.ts +18 -0
- package/dist/entities/index.d.ts.map +1 -1
- package/dist/entities/index.js +18 -0
- package/dist/entities/index.js.map +1 -1
- package/dist/entities/login-attempt.entity.d.ts +43 -0
- package/dist/entities/login-attempt.entity.d.ts.map +1 -1
- package/dist/entities/login-attempt.entity.js +43 -0
- package/dist/entities/login-attempt.entity.js.map +1 -1
- package/dist/entities/mfa-device.entity.d.ts +112 -0
- package/dist/entities/mfa-device.entity.d.ts.map +1 -1
- package/dist/entities/mfa-device.entity.js +112 -0
- package/dist/entities/mfa-device.entity.js.map +1 -1
- package/dist/entities/rate-limit.entity.d.ts +31 -0
- package/dist/entities/rate-limit.entity.d.ts.map +1 -1
- package/dist/entities/rate-limit.entity.js +31 -0
- package/dist/entities/rate-limit.entity.js.map +1 -1
- package/dist/entities/session.entity.d.ts +121 -0
- package/dist/entities/session.entity.d.ts.map +1 -1
- package/dist/entities/session.entity.js +121 -0
- package/dist/entities/session.entity.js.map +1 -1
- package/dist/entities/social-account.entity.d.ts +75 -0
- package/dist/entities/social-account.entity.d.ts.map +1 -1
- package/dist/entities/social-account.entity.js +75 -0
- package/dist/entities/social-account.entity.js.map +1 -1
- package/dist/entities/storage-lock.entity.d.ts +28 -0
- package/dist/entities/storage-lock.entity.d.ts.map +1 -1
- package/dist/entities/storage-lock.entity.js +28 -0
- package/dist/entities/storage-lock.entity.js.map +1 -1
- package/dist/entities/trusted-device.entity.d.ts +83 -0
- package/dist/entities/trusted-device.entity.d.ts.map +1 -1
- package/dist/entities/trusted-device.entity.js +83 -0
- package/dist/entities/trusted-device.entity.js.map +1 -1
- package/dist/entities/user.entity.d.ts +166 -0
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +166 -0
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/entities/verification-token.entity.d.ts +102 -0
- package/dist/entities/verification-token.entity.d.ts.map +1 -1
- package/dist/entities/verification-token.entity.js +102 -0
- package/dist/entities/verification-token.entity.js.map +1 -1
- package/dist/entities.d.ts +8 -0
- package/dist/entities.d.ts.map +1 -1
- package/dist/entities.js +8 -0
- package/dist/entities.js.map +1 -1
- package/dist/enums/auth-audit-event-type.enum.d.ts +211 -0
- package/dist/enums/auth-audit-event-type.enum.d.ts.map +1 -1
- package/dist/enums/auth-audit-event-type.enum.js +244 -0
- package/dist/enums/auth-audit-event-type.enum.js.map +1 -1
- package/dist/enums/error-codes.enum.d.ts +296 -0
- package/dist/enums/error-codes.enum.d.ts.map +1 -1
- package/dist/enums/error-codes.enum.js +332 -0
- package/dist/enums/error-codes.enum.js.map +1 -1
- package/dist/enums/mfa-method.enum.d.ts +74 -0
- package/dist/enums/mfa-method.enum.d.ts.map +1 -1
- package/dist/enums/mfa-method.enum.js +64 -0
- package/dist/enums/mfa-method.enum.js.map +1 -1
- package/dist/enums/risk-factor.enum.d.ts +91 -0
- package/dist/enums/risk-factor.enum.d.ts.map +1 -1
- package/dist/enums/risk-factor.enum.js +97 -0
- package/dist/enums/risk-factor.enum.js.map +1 -1
- package/dist/exceptions/nauth.exception.d.ts +149 -0
- package/dist/exceptions/nauth.exception.d.ts.map +1 -1
- package/dist/exceptions/nauth.exception.js +159 -0
- package/dist/exceptions/nauth.exception.js.map +1 -1
- package/dist/handlers/auth.handler.d.ts +32 -0
- package/dist/handlers/auth.handler.d.ts.map +1 -1
- package/dist/handlers/auth.handler.js +47 -1
- package/dist/handlers/auth.handler.js.map +1 -1
- package/dist/handlers/client-info.handler.d.ts +25 -0
- package/dist/handlers/client-info.handler.d.ts.map +1 -1
- package/dist/handlers/client-info.handler.js +36 -2
- package/dist/handlers/client-info.handler.js.map +1 -1
- package/dist/handlers/csrf.handler.d.ts +32 -0
- package/dist/handlers/csrf.handler.d.ts.map +1 -1
- package/dist/handlers/csrf.handler.js +49 -1
- package/dist/handlers/csrf.handler.js.map +1 -1
- package/dist/handlers/token-delivery.handler.d.ts +16 -0
- package/dist/handlers/token-delivery.handler.d.ts.map +1 -1
- package/dist/handlers/token-delivery.handler.js +22 -1
- package/dist/handlers/token-delivery.handler.js.map +1 -1
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/client-info.interface.d.ts +58 -0
- package/dist/interfaces/client-info.interface.d.ts.map +1 -1
- package/dist/interfaces/config.interface.d.ts +1774 -0
- package/dist/interfaces/config.interface.d.ts.map +1 -1
- package/dist/interfaces/config.interface.js +16 -0
- package/dist/interfaces/config.interface.js.map +1 -1
- package/dist/interfaces/entities.interface.d.ts +48 -0
- package/dist/interfaces/entities.interface.d.ts.map +1 -1
- package/dist/interfaces/entities.interface.js +8 -0
- package/dist/interfaces/entities.interface.js.map +1 -1
- package/dist/interfaces/index.js +5 -0
- package/dist/interfaces/index.js.map +1 -1
- package/dist/interfaces/logger.interface.d.ts +213 -0
- package/dist/interfaces/logger.interface.d.ts.map +1 -1
- package/dist/interfaces/logger.interface.js +35 -0
- package/dist/interfaces/logger.interface.js.map +1 -1
- package/dist/interfaces/mfa-provider.interface.d.ts +134 -0
- package/dist/interfaces/mfa-provider.interface.d.ts.map +1 -1
- package/dist/interfaces/oauth.interface.d.ts +110 -0
- package/dist/interfaces/oauth.interface.d.ts.map +1 -1
- package/dist/interfaces/provider.interface.d.ts +83 -0
- package/dist/interfaces/provider.interface.d.ts.map +1 -1
- package/dist/interfaces/sms-template.interface.d.ts +246 -0
- package/dist/interfaces/sms-template.interface.d.ts.map +1 -1
- package/dist/interfaces/sms-template.interface.js +26 -0
- package/dist/interfaces/sms-template.interface.js.map +1 -1
- package/dist/interfaces/social-auth-provider.interface.d.ts +115 -0
- package/dist/interfaces/social-auth-provider.interface.d.ts.map +1 -1
- package/dist/interfaces/storage-adapter.interface.d.ts +37 -0
- package/dist/interfaces/storage-adapter.interface.d.ts.map +1 -1
- package/dist/interfaces/template.interface.d.ts +351 -0
- package/dist/interfaces/template.interface.d.ts.map +1 -1
- package/dist/interfaces/template.interface.js +13 -0
- package/dist/interfaces/template.interface.js.map +1 -1
- package/dist/interfaces/token-verifier.interface.d.ts +101 -0
- package/dist/interfaces/token-verifier.interface.d.ts.map +1 -1
- package/dist/interfaces.d.ts +8 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js +8 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/internal.d.ts +120 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +138 -0
- package/dist/internal.js.map +1 -1
- package/dist/platform/interfaces.d.ts +187 -0
- package/dist/platform/interfaces.d.ts.map +1 -1
- package/dist/platform/interfaces.js +11 -0
- package/dist/platform/interfaces.js.map +1 -1
- package/dist/schemas/auth-config.schema.d.ts +48 -0
- package/dist/schemas/auth-config.schema.d.ts.map +1 -1
- package/dist/schemas/auth-config.schema.js +188 -9
- package/dist/schemas/auth-config.schema.js.map +1 -1
- package/dist/services/adaptive-mfa-decision.service.d.ts +144 -0
- package/dist/services/adaptive-mfa-decision.service.d.ts.map +1 -1
- package/dist/services/adaptive-mfa-decision.service.js +151 -5
- package/dist/services/adaptive-mfa-decision.service.js.map +1 -1
- package/dist/services/auth-audit.service.d.ts +195 -0
- package/dist/services/auth-audit.service.d.ts.map +1 -1
- package/dist/services/auth-audit.service.js +228 -1
- package/dist/services/auth-audit.service.js.map +1 -1
- package/dist/services/auth-challenge-helper.service.d.ts +144 -1
- package/dist/services/auth-challenge-helper.service.d.ts.map +1 -1
- package/dist/services/auth-challenge-helper.service.js +295 -16
- package/dist/services/auth-challenge-helper.service.js.map +1 -1
- package/dist/services/auth-flow-context-builder.service.d.ts +120 -1
- package/dist/services/auth-flow-context-builder.service.d.ts.map +1 -1
- package/dist/services/auth-flow-context-builder.service.js +184 -5
- package/dist/services/auth-flow-context-builder.service.js.map +1 -1
- package/dist/services/auth-flow-rules.d.ts +136 -0
- package/dist/services/auth-flow-rules.d.ts.map +1 -1
- package/dist/services/auth-flow-rules.js +137 -0
- package/dist/services/auth-flow-rules.js.map +1 -1
- package/dist/services/auth-flow-state-definitions.d.ts +40 -0
- package/dist/services/auth-flow-state-definitions.d.ts.map +1 -1
- package/dist/services/auth-flow-state-definitions.js +98 -0
- package/dist/services/auth-flow-state-definitions.js.map +1 -1
- package/dist/services/auth-flow-state-machine.service.d.ts +91 -0
- package/dist/services/auth-flow-state-machine.service.d.ts.map +1 -1
- package/dist/services/auth-flow-state-machine.service.js +102 -0
- package/dist/services/auth-flow-state-machine.service.js.map +1 -1
- package/dist/services/auth-flow-state-machine.types.d.ts +221 -0
- package/dist/services/auth-flow-state-machine.types.d.ts.map +1 -1
- package/dist/services/auth-flow-state-machine.types.js +47 -0
- package/dist/services/auth-flow-state-machine.types.js.map +1 -1
- package/dist/services/auth.service.d.ts +397 -1
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +943 -27
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/challenge.service.d.ts +255 -1
- package/dist/services/challenge.service.d.ts.map +1 -1
- package/dist/services/challenge.service.js +327 -3
- package/dist/services/challenge.service.js.map +1 -1
- package/dist/services/client-info.service.d.ts +143 -0
- package/dist/services/client-info.service.d.ts.map +1 -1
- package/dist/services/client-info.service.js +161 -0
- package/dist/services/client-info.service.js.map +1 -1
- package/dist/services/csrf.service.d.ts +15 -0
- package/dist/services/csrf.service.d.ts.map +1 -1
- package/dist/services/csrf.service.js +16 -0
- package/dist/services/csrf.service.js.map +1 -1
- package/dist/services/email-verification.service.d.ts +52 -0
- package/dist/services/email-verification.service.d.ts.map +1 -1
- package/dist/services/email-verification.service.js +149 -10
- package/dist/services/email-verification.service.js.map +1 -1
- package/dist/services/geo-location.service.d.ts +105 -0
- package/dist/services/geo-location.service.d.ts.map +1 -1
- package/dist/services/geo-location.service.js +188 -2
- package/dist/services/geo-location.service.js.map +1 -1
- package/dist/services/jwt.service.d.ts +257 -0
- package/dist/services/jwt.service.d.ts.map +1 -1
- package/dist/services/jwt.service.js +284 -1
- package/dist/services/jwt.service.js.map +1 -1
- package/dist/services/mfa-base.service.d.ts +179 -1
- package/dist/services/mfa-base.service.d.ts.map +1 -1
- package/dist/services/mfa-base.service.js +256 -2
- package/dist/services/mfa-base.service.js.map +1 -1
- package/dist/services/mfa.service.d.ts +304 -0
- package/dist/services/mfa.service.d.ts.map +1 -1
- package/dist/services/mfa.service.js +380 -0
- package/dist/services/mfa.service.js.map +1 -1
- package/dist/services/password-reset.service.d.ts +46 -0
- package/dist/services/password-reset.service.d.ts.map +1 -1
- package/dist/services/password-reset.service.js +79 -0
- package/dist/services/password-reset.service.js.map +1 -1
- package/dist/services/password.service.d.ts +139 -0
- package/dist/services/password.service.d.ts.map +1 -1
- package/dist/services/password.service.js +167 -9
- package/dist/services/password.service.js.map +1 -1
- package/dist/services/phone-verification.service.d.ts +75 -0
- package/dist/services/phone-verification.service.d.ts.map +1 -1
- package/dist/services/phone-verification.service.js +188 -6
- package/dist/services/phone-verification.service.js.map +1 -1
- package/dist/services/risk-detection.service.d.ts +198 -0
- package/dist/services/risk-detection.service.d.ts.map +1 -1
- package/dist/services/risk-detection.service.js +358 -11
- package/dist/services/risk-detection.service.js.map +1 -1
- package/dist/services/risk-scoring.service.d.ts +84 -0
- package/dist/services/risk-scoring.service.d.ts.map +1 -1
- package/dist/services/risk-scoring.service.js +87 -0
- package/dist/services/risk-scoring.service.js.map +1 -1
- package/dist/services/session.service.d.ts +204 -0
- package/dist/services/session.service.d.ts.map +1 -1
- package/dist/services/session.service.js +289 -4
- package/dist/services/session.service.js.map +1 -1
- package/dist/services/social-auth-base.service.d.ts +123 -1
- package/dist/services/social-auth-base.service.d.ts.map +1 -1
- package/dist/services/social-auth-base.service.js +155 -2
- package/dist/services/social-auth-base.service.js.map +1 -1
- package/dist/services/social-auth.service.d.ts +191 -0
- package/dist/services/social-auth.service.d.ts.map +1 -1
- package/dist/services/social-auth.service.js +215 -2
- package/dist/services/social-auth.service.js.map +1 -1
- package/dist/services/social-provider-registry.service.d.ts +86 -0
- package/dist/services/social-provider-registry.service.d.ts.map +1 -1
- package/dist/services/social-provider-registry.service.js +86 -0
- package/dist/services/social-provider-registry.service.js.map +1 -1
- package/dist/services/trusted-device.service.d.ts +105 -0
- package/dist/services/trusted-device.service.d.ts.map +1 -1
- package/dist/services/trusted-device.service.js +133 -4
- package/dist/services/trusted-device.service.js.map +1 -1
- package/dist/storage/account-lockout-storage.service.d.ts +35 -0
- package/dist/storage/account-lockout-storage.service.d.ts.map +1 -1
- package/dist/storage/account-lockout-storage.service.js +35 -0
- package/dist/storage/account-lockout-storage.service.js.map +1 -1
- package/dist/storage/memory-storage.adapter.d.ts +148 -0
- package/dist/storage/memory-storage.adapter.d.ts.map +1 -1
- package/dist/storage/memory-storage.adapter.js +201 -6
- package/dist/storage/memory-storage.adapter.js.map +1 -1
- package/dist/storage/rate-limit-storage.service.d.ts +3 -0
- package/dist/storage/rate-limit-storage.service.d.ts.map +1 -1
- package/dist/storage/rate-limit-storage.service.js +4 -0
- package/dist/storage/rate-limit-storage.service.js.map +1 -1
- package/dist/storage.d.ts +8 -0
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +8 -0
- package/dist/storage.js.map +1 -1
- package/dist/templates/html-template.engine.d.ts +110 -0
- package/dist/templates/html-template.engine.d.ts.map +1 -1
- package/dist/templates/html-template.engine.js +147 -0
- package/dist/templates/html-template.engine.js.map +1 -1
- package/dist/templates/index.d.ts +5 -0
- package/dist/templates/index.d.ts.map +1 -1
- package/dist/templates/index.js +5 -0
- package/dist/templates/index.js.map +1 -1
- package/dist/templates/sms-template.engine.d.ts +151 -0
- package/dist/templates/sms-template.engine.d.ts.map +1 -1
- package/dist/templates/sms-template.engine.js +171 -0
- package/dist/templates/sms-template.engine.js.map +1 -1
- package/dist/templates.d.ts +8 -0
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +8 -0
- package/dist/templates.js.map +1 -1
- package/dist/utils/common-passwords.d.ts +42 -0
- package/dist/utils/common-passwords.d.ts.map +1 -1
- package/dist/utils/common-passwords.js +88 -0
- package/dist/utils/common-passwords.js.map +1 -1
- package/dist/utils/context-storage.d.ts +129 -0
- package/dist/utils/context-storage.d.ts.map +1 -1
- package/dist/utils/context-storage.js +129 -0
- package/dist/utils/context-storage.js.map +1 -1
- package/dist/utils/cookie-names.util.d.ts +35 -0
- package/dist/utils/cookie-names.util.d.ts.map +1 -1
- package/dist/utils/cookie-names.util.js +37 -0
- package/dist/utils/cookie-names.util.js.map +1 -1
- package/dist/utils/cookies.util.d.ts +19 -0
- package/dist/utils/cookies.util.d.ts.map +1 -1
- package/dist/utils/cookies.util.js +30 -3
- package/dist/utils/cookies.util.js.map +1 -1
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/ip-extractor.d.ts +88 -0
- package/dist/utils/ip-extractor.d.ts.map +1 -1
- package/dist/utils/ip-extractor.js +109 -16
- package/dist/utils/ip-extractor.js.map +1 -1
- package/dist/utils/nauth-logger.d.ts +70 -0
- package/dist/utils/nauth-logger.d.ts.map +1 -1
- package/dist/utils/nauth-logger.js +82 -4
- package/dist/utils/nauth-logger.js.map +1 -1
- package/dist/utils/pii-redactor.d.ts +70 -0
- package/dist/utils/pii-redactor.d.ts.map +1 -1
- package/dist/utils/pii-redactor.js +102 -0
- package/dist/utils/pii-redactor.js.map +1 -1
- package/dist/utils/setup/get-repositories.d.ts +16 -0
- package/dist/utils/setup/get-repositories.d.ts.map +1 -1
- package/dist/utils/setup/get-repositories.js +21 -0
- package/dist/utils/setup/get-repositories.js.map +1 -1
- package/dist/utils/setup/init-services.d.ts +40 -1
- package/dist/utils/setup/init-services.d.ts.map +1 -1
- package/dist/utils/setup/init-services.js +98 -0
- package/dist/utils/setup/init-services.js.map +1 -1
- package/dist/utils/setup/init-social.d.ts +27 -0
- package/dist/utils/setup/init-social.d.ts.map +1 -1
- package/dist/utils/setup/init-social.js +49 -0
- package/dist/utils/setup/init-social.js.map +1 -1
- package/dist/utils/setup/init-storage.d.ts +22 -0
- package/dist/utils/setup/init-storage.d.ts.map +1 -1
- package/dist/utils/setup/init-storage.js +36 -0
- package/dist/utils/setup/init-storage.js.map +1 -1
- package/dist/utils/setup/register-mfa.d.ts +22 -0
- package/dist/utils/setup/register-mfa.d.ts.map +1 -1
- package/dist/utils/setup/register-mfa.js +41 -0
- package/dist/utils/setup/register-mfa.js.map +1 -1
- package/dist/utils/setup/run-nauth-migrations.d.ts +7 -0
- package/dist/utils/setup/run-nauth-migrations.d.ts.map +1 -1
- package/dist/utils/setup/run-nauth-migrations.js +8 -0
- package/dist/utils/setup/run-nauth-migrations.js.map +1 -1
- package/dist/utils/token-delivery-policy.d.ts +17 -0
- package/dist/utils/token-delivery-policy.d.ts.map +1 -1
- package/dist/utils/token-delivery-policy.js +17 -0
- package/dist/utils/token-delivery-policy.js.map +1 -1
- package/dist/utils.d.ts +8 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +8 -0
- package/dist/utils.js.map +1 -1
- package/dist/validators/template.validator.d.ts +80 -0
- package/dist/validators/template.validator.d.ts.map +1 -1
- package/dist/validators/template.validator.js +94 -0
- package/dist/validators/template.validator.js.map +1 -1
- package/package.json +7 -2
|
@@ -1,22 +1,134 @@
|
|
|
1
1
|
import { MFADeviceMethod } from '../enums/mfa-method.enum';
|
|
2
|
+
/**
|
|
3
|
+
* Base MFA Device Entity
|
|
4
|
+
*
|
|
5
|
+
* Stores multi-factor authentication device registrations.
|
|
6
|
+
* Supports multiple MFA methods: TOTP (authenticator apps), SMS, Email, and Passkeys (WebAuthn).
|
|
7
|
+
* Database adapters extend this class and add ORM-specific decorators.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* Each user can register multiple MFA devices of different types for redundancy.
|
|
11
|
+
* Devices can be enabled/disabled without deletion for security audit purposes.
|
|
12
|
+
* This class is database-agnostic. TypeORM, Prisma, or other ORMs
|
|
13
|
+
* extend this class in their respective packages.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* // Create TOTP device
|
|
18
|
+
* const totpDevice = new MFADevice();
|
|
19
|
+
* totpDevice.userId = user.id;
|
|
20
|
+
* totpDevice.type = 'totp';
|
|
21
|
+
* totpDevice.name = 'Google Authenticator';
|
|
22
|
+
* totpDevice.secret = encryptedSecret;
|
|
23
|
+
* totpDevice.isActive = true;
|
|
24
|
+
*
|
|
25
|
+
* // Create Passkey device
|
|
26
|
+
* const passkeyDevice = new MFADevice();
|
|
27
|
+
* passkeyDevice.userId = user.id;
|
|
28
|
+
* passkeyDevice.type = 'passkey';
|
|
29
|
+
* passkeyDevice.name = 'iPhone 15 Pro';
|
|
30
|
+
* passkeyDevice.credentialId = 'credential-id-here';
|
|
31
|
+
* passkeyDevice.publicKey = 'public-key-here';
|
|
32
|
+
* passkeyDevice.counter = 0;
|
|
33
|
+
* passkeyDevice.isActive = true;
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
2
36
|
export declare class BaseMFADevice {
|
|
37
|
+
/**
|
|
38
|
+
* Internal device ID (auto-increment integer)
|
|
39
|
+
*/
|
|
3
40
|
id: number;
|
|
41
|
+
/**
|
|
42
|
+
* Internal user ID (foreign key to users table)
|
|
43
|
+
* References the user who owns this MFA device
|
|
44
|
+
*/
|
|
4
45
|
userId: number;
|
|
46
|
+
/**
|
|
47
|
+
* MFA method type
|
|
48
|
+
*
|
|
49
|
+
* - 'totp': Time-based One-Time Password (Google Authenticator, Authy, etc.)
|
|
50
|
+
* - 'sms': SMS-based verification codes
|
|
51
|
+
* - 'email': Email-based verification codes
|
|
52
|
+
* - 'passkey': WebAuthn/FIDO2 passkeys (biometric, security keys)
|
|
53
|
+
*/
|
|
5
54
|
type: MFADeviceMethod;
|
|
55
|
+
/**
|
|
56
|
+
* User-friendly device name
|
|
57
|
+
* Helps users identify their devices (e.g., "iPhone 15 Pro", "Google Authenticator")
|
|
58
|
+
*/
|
|
6
59
|
name: string;
|
|
60
|
+
/**
|
|
61
|
+
* TOTP secret (encrypted)
|
|
62
|
+
* Used only for TOTP devices
|
|
63
|
+
* SECURITY: Must be encrypted at rest
|
|
64
|
+
*/
|
|
7
65
|
secret?: string | null;
|
|
66
|
+
/**
|
|
67
|
+
* Phone number for SMS MFA
|
|
68
|
+
* Used only for SMS devices
|
|
69
|
+
* Must be in E.164 format (e.g., +1234567890)
|
|
70
|
+
*/
|
|
8
71
|
phoneNumber?: string | null;
|
|
72
|
+
/**
|
|
73
|
+
* Email address for Email MFA
|
|
74
|
+
* Used only for Email devices
|
|
75
|
+
* Must be a valid email address format
|
|
76
|
+
*/
|
|
9
77
|
email?: string | null;
|
|
78
|
+
/**
|
|
79
|
+
* WebAuthn credential ID (base64url encoded)
|
|
80
|
+
* Unique identifier for this passkey
|
|
81
|
+
* Used only for passkey devices
|
|
82
|
+
*/
|
|
10
83
|
credentialId?: string | null;
|
|
84
|
+
/**
|
|
85
|
+
* WebAuthn public key (base64url encoded)
|
|
86
|
+
* Used to verify passkey signatures
|
|
87
|
+
* Used only for passkey devices
|
|
88
|
+
*/
|
|
11
89
|
publicKey?: string | null;
|
|
90
|
+
/**
|
|
91
|
+
* WebAuthn signature counter
|
|
92
|
+
* Incremented with each authentication to prevent replay attacks
|
|
93
|
+
* Used only for passkey devices
|
|
94
|
+
*/
|
|
12
95
|
counter?: number | null;
|
|
96
|
+
/**
|
|
97
|
+
* WebAuthn transports (USB, NFC, BLE, internal)
|
|
98
|
+
* Helps browser suggest the right authentication method
|
|
99
|
+
* Used only for passkey devices
|
|
100
|
+
*/
|
|
13
101
|
transports?: string[] | null;
|
|
102
|
+
/**
|
|
103
|
+
* Whether this device is currently active
|
|
104
|
+
* Inactive devices cannot be used for authentication but remain in database for audit
|
|
105
|
+
*/
|
|
14
106
|
isActive: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Whether this is the user's preferred/primary MFA method
|
|
109
|
+
* Used to pre-select MFA method during authentication
|
|
110
|
+
*/
|
|
15
111
|
isPrimary: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Last time this device was used for authentication
|
|
114
|
+
*/
|
|
16
115
|
lastUsedAt?: Date | null;
|
|
116
|
+
/**
|
|
117
|
+
* Number of times this device has been used
|
|
118
|
+
* Useful for analytics and detecting suspicious patterns
|
|
119
|
+
*/
|
|
17
120
|
usageCount: number;
|
|
121
|
+
/**
|
|
122
|
+
* Additional device metadata (browser, OS, IP on registration, etc.)
|
|
123
|
+
*/
|
|
18
124
|
metadata?: Record<string, unknown> | null;
|
|
125
|
+
/**
|
|
126
|
+
* Device registration timestamp
|
|
127
|
+
*/
|
|
19
128
|
createdAt: Date;
|
|
129
|
+
/**
|
|
130
|
+
* Last update timestamp
|
|
131
|
+
*/
|
|
20
132
|
updatedAt: Date;
|
|
21
133
|
}
|
|
22
134
|
//# sourceMappingURL=mfa-device.entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mfa-device.entity.d.ts","sourceRoot":"","sources":["../../src/entities/mfa-device.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"mfa-device.entity.d.ts","sourceRoot":"","sources":["../../src/entities/mfa-device.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,EAAE,EAAG,MAAM,CAAC;IAEZ;;;OAGG;IACH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;;;OAOG;IACH,IAAI,EAAG,eAAe,CAAC;IAEvB;;;OAGG;IACH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7B;;;OAGG;IACH,QAAQ,EAAG,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,EAAG,OAAO,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAEzB;;;OAGG;IACH,UAAU,EAAG,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE1C;;OAEG;IACH,SAAS,EAAG,IAAI,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAG,IAAI,CAAC;CAClB"}
|
|
@@ -1,24 +1,136 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseMFADevice = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Base MFA Device Entity
|
|
6
|
+
*
|
|
7
|
+
* Stores multi-factor authentication device registrations.
|
|
8
|
+
* Supports multiple MFA methods: TOTP (authenticator apps), SMS, Email, and Passkeys (WebAuthn).
|
|
9
|
+
* Database adapters extend this class and add ORM-specific decorators.
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* Each user can register multiple MFA devices of different types for redundancy.
|
|
13
|
+
* Devices can be enabled/disabled without deletion for security audit purposes.
|
|
14
|
+
* This class is database-agnostic. TypeORM, Prisma, or other ORMs
|
|
15
|
+
* extend this class in their respective packages.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* // Create TOTP device
|
|
20
|
+
* const totpDevice = new MFADevice();
|
|
21
|
+
* totpDevice.userId = user.id;
|
|
22
|
+
* totpDevice.type = 'totp';
|
|
23
|
+
* totpDevice.name = 'Google Authenticator';
|
|
24
|
+
* totpDevice.secret = encryptedSecret;
|
|
25
|
+
* totpDevice.isActive = true;
|
|
26
|
+
*
|
|
27
|
+
* // Create Passkey device
|
|
28
|
+
* const passkeyDevice = new MFADevice();
|
|
29
|
+
* passkeyDevice.userId = user.id;
|
|
30
|
+
* passkeyDevice.type = 'passkey';
|
|
31
|
+
* passkeyDevice.name = 'iPhone 15 Pro';
|
|
32
|
+
* passkeyDevice.credentialId = 'credential-id-here';
|
|
33
|
+
* passkeyDevice.publicKey = 'public-key-here';
|
|
34
|
+
* passkeyDevice.counter = 0;
|
|
35
|
+
* passkeyDevice.isActive = true;
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
4
38
|
class BaseMFADevice {
|
|
39
|
+
/**
|
|
40
|
+
* Internal device ID (auto-increment integer)
|
|
41
|
+
*/
|
|
5
42
|
id;
|
|
43
|
+
/**
|
|
44
|
+
* Internal user ID (foreign key to users table)
|
|
45
|
+
* References the user who owns this MFA device
|
|
46
|
+
*/
|
|
6
47
|
userId;
|
|
48
|
+
/**
|
|
49
|
+
* MFA method type
|
|
50
|
+
*
|
|
51
|
+
* - 'totp': Time-based One-Time Password (Google Authenticator, Authy, etc.)
|
|
52
|
+
* - 'sms': SMS-based verification codes
|
|
53
|
+
* - 'email': Email-based verification codes
|
|
54
|
+
* - 'passkey': WebAuthn/FIDO2 passkeys (biometric, security keys)
|
|
55
|
+
*/
|
|
7
56
|
type;
|
|
57
|
+
/**
|
|
58
|
+
* User-friendly device name
|
|
59
|
+
* Helps users identify their devices (e.g., "iPhone 15 Pro", "Google Authenticator")
|
|
60
|
+
*/
|
|
8
61
|
name;
|
|
62
|
+
/**
|
|
63
|
+
* TOTP secret (encrypted)
|
|
64
|
+
* Used only for TOTP devices
|
|
65
|
+
* SECURITY: Must be encrypted at rest
|
|
66
|
+
*/
|
|
9
67
|
secret;
|
|
68
|
+
/**
|
|
69
|
+
* Phone number for SMS MFA
|
|
70
|
+
* Used only for SMS devices
|
|
71
|
+
* Must be in E.164 format (e.g., +1234567890)
|
|
72
|
+
*/
|
|
10
73
|
phoneNumber;
|
|
74
|
+
/**
|
|
75
|
+
* Email address for Email MFA
|
|
76
|
+
* Used only for Email devices
|
|
77
|
+
* Must be a valid email address format
|
|
78
|
+
*/
|
|
11
79
|
email;
|
|
80
|
+
/**
|
|
81
|
+
* WebAuthn credential ID (base64url encoded)
|
|
82
|
+
* Unique identifier for this passkey
|
|
83
|
+
* Used only for passkey devices
|
|
84
|
+
*/
|
|
12
85
|
credentialId;
|
|
86
|
+
/**
|
|
87
|
+
* WebAuthn public key (base64url encoded)
|
|
88
|
+
* Used to verify passkey signatures
|
|
89
|
+
* Used only for passkey devices
|
|
90
|
+
*/
|
|
13
91
|
publicKey;
|
|
92
|
+
/**
|
|
93
|
+
* WebAuthn signature counter
|
|
94
|
+
* Incremented with each authentication to prevent replay attacks
|
|
95
|
+
* Used only for passkey devices
|
|
96
|
+
*/
|
|
14
97
|
counter;
|
|
98
|
+
/**
|
|
99
|
+
* WebAuthn transports (USB, NFC, BLE, internal)
|
|
100
|
+
* Helps browser suggest the right authentication method
|
|
101
|
+
* Used only for passkey devices
|
|
102
|
+
*/
|
|
15
103
|
transports;
|
|
104
|
+
/**
|
|
105
|
+
* Whether this device is currently active
|
|
106
|
+
* Inactive devices cannot be used for authentication but remain in database for audit
|
|
107
|
+
*/
|
|
16
108
|
isActive;
|
|
109
|
+
/**
|
|
110
|
+
* Whether this is the user's preferred/primary MFA method
|
|
111
|
+
* Used to pre-select MFA method during authentication
|
|
112
|
+
*/
|
|
17
113
|
isPrimary;
|
|
114
|
+
/**
|
|
115
|
+
* Last time this device was used for authentication
|
|
116
|
+
*/
|
|
18
117
|
lastUsedAt;
|
|
118
|
+
/**
|
|
119
|
+
* Number of times this device has been used
|
|
120
|
+
* Useful for analytics and detecting suspicious patterns
|
|
121
|
+
*/
|
|
19
122
|
usageCount;
|
|
123
|
+
/**
|
|
124
|
+
* Additional device metadata (browser, OS, IP on registration, etc.)
|
|
125
|
+
*/
|
|
20
126
|
metadata;
|
|
127
|
+
/**
|
|
128
|
+
* Device registration timestamp
|
|
129
|
+
*/
|
|
21
130
|
createdAt;
|
|
131
|
+
/**
|
|
132
|
+
* Last update timestamp
|
|
133
|
+
*/
|
|
22
134
|
updatedAt;
|
|
23
135
|
}
|
|
24
136
|
exports.BaseMFADevice = BaseMFADevice;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mfa-device.entity.js","sourceRoot":"","sources":["../../src/entities/mfa-device.entity.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"mfa-device.entity.js","sourceRoot":"","sources":["../../src/entities/mfa-device.entity.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAa,aAAa;IACxB;;OAEG;IACH,EAAE,CAAU;IAEZ;;;OAGG;IACH,MAAM,CAAU;IAEhB;;;;;;;OAOG;IACH,IAAI,CAAmB;IAEvB;;;OAGG;IACH,IAAI,CAAU;IAEd;;;;OAIG;IACH,MAAM,CAAiB;IAEvB;;;;OAIG;IACH,WAAW,CAAiB;IAE5B;;;;OAIG;IACH,KAAK,CAAiB;IAEtB;;;;OAIG;IACH,YAAY,CAAiB;IAE7B;;;;OAIG;IACH,SAAS,CAAiB;IAE1B;;;;OAIG;IACH,OAAO,CAAiB;IAExB;;;;OAIG;IACH,UAAU,CAAmB;IAE7B;;;OAGG;IACH,QAAQ,CAAW;IAEnB;;;OAGG;IACH,SAAS,CAAW;IAEpB;;OAEG;IACH,UAAU,CAAe;IAEzB;;;OAGG;IACH,UAAU,CAAU;IAEpB;;OAEG;IACH,QAAQ,CAAkC;IAE1C;;OAEG;IACH,SAAS,CAAQ;IAEjB;;OAEG;IACH,SAAS,CAAQ;CAClB;AAlHD,sCAkHC"}
|
|
@@ -1,9 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Rate Limit Entity
|
|
3
|
+
*
|
|
4
|
+
* Stores rate limiting counters for transient state management.
|
|
5
|
+
* Used by DatabaseStorageAdapter to track rate limits across multiple servers.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* This class is database-agnostic. TypeORM, Prisma, or other ORMs
|
|
9
|
+
* extend this class in their respective packages.
|
|
10
|
+
*/
|
|
1
11
|
export declare class BaseRateLimit {
|
|
12
|
+
/**
|
|
13
|
+
* Internal rate limit record ID (auto-increment integer)
|
|
14
|
+
*/
|
|
2
15
|
id: number;
|
|
16
|
+
/**
|
|
17
|
+
* Unique key identifier for the rate limit counter
|
|
18
|
+
* Format: <endpoint>:<identifier> (e.g., "email-verification:user:123")
|
|
19
|
+
*/
|
|
3
20
|
key: string;
|
|
21
|
+
/**
|
|
22
|
+
* Counter value (stored as string, parsed as integer)
|
|
23
|
+
*/
|
|
4
24
|
value: string;
|
|
25
|
+
/**
|
|
26
|
+
* Expiration timestamp
|
|
27
|
+
* Used for TTL-based cleanup via scheduled jobs
|
|
28
|
+
* Can be null for records that don't expire immediately
|
|
29
|
+
*/
|
|
5
30
|
expiresAt: Date | null;
|
|
31
|
+
/**
|
|
32
|
+
* Record creation timestamp
|
|
33
|
+
*/
|
|
6
34
|
createdAt: Date;
|
|
35
|
+
/**
|
|
36
|
+
* Record last update timestamp
|
|
37
|
+
*/
|
|
7
38
|
updatedAt: Date;
|
|
8
39
|
}
|
|
9
40
|
//# sourceMappingURL=rate-limit.entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.entity.d.ts","sourceRoot":"","sources":["../../src/entities/rate-limit.entity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rate-limit.entity.d.ts","sourceRoot":"","sources":["../../src/entities/rate-limit.entity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,EAAE,EAAG,MAAM,CAAC;IAEZ;;;OAGG;IACH,GAAG,EAAG,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAG,MAAM,CAAC;IAEf;;;;OAIG;IACH,SAAS,EAAG,IAAI,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,SAAS,EAAG,IAAI,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAG,IAAI,CAAC;CAClB"}
|
|
@@ -1,12 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseRateLimit = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Base Rate Limit Entity
|
|
6
|
+
*
|
|
7
|
+
* Stores rate limiting counters for transient state management.
|
|
8
|
+
* Used by DatabaseStorageAdapter to track rate limits across multiple servers.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* This class is database-agnostic. TypeORM, Prisma, or other ORMs
|
|
12
|
+
* extend this class in their respective packages.
|
|
13
|
+
*/
|
|
4
14
|
class BaseRateLimit {
|
|
15
|
+
/**
|
|
16
|
+
* Internal rate limit record ID (auto-increment integer)
|
|
17
|
+
*/
|
|
5
18
|
id;
|
|
19
|
+
/**
|
|
20
|
+
* Unique key identifier for the rate limit counter
|
|
21
|
+
* Format: <endpoint>:<identifier> (e.g., "email-verification:user:123")
|
|
22
|
+
*/
|
|
6
23
|
key;
|
|
24
|
+
/**
|
|
25
|
+
* Counter value (stored as string, parsed as integer)
|
|
26
|
+
*/
|
|
7
27
|
value;
|
|
28
|
+
/**
|
|
29
|
+
* Expiration timestamp
|
|
30
|
+
* Used for TTL-based cleanup via scheduled jobs
|
|
31
|
+
* Can be null for records that don't expire immediately
|
|
32
|
+
*/
|
|
8
33
|
expiresAt;
|
|
34
|
+
/**
|
|
35
|
+
* Record creation timestamp
|
|
36
|
+
*/
|
|
9
37
|
createdAt;
|
|
38
|
+
/**
|
|
39
|
+
* Record last update timestamp
|
|
40
|
+
*/
|
|
10
41
|
updatedAt;
|
|
11
42
|
}
|
|
12
43
|
exports.BaseRateLimit = BaseRateLimit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.entity.js","sourceRoot":"","sources":["../../src/entities/rate-limit.entity.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"rate-limit.entity.js","sourceRoot":"","sources":["../../src/entities/rate-limit.entity.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,MAAa,aAAa;IACxB;;OAEG;IACH,EAAE,CAAU;IAEZ;;;OAGG;IACH,GAAG,CAAU;IAEb;;OAEG;IACH,KAAK,CAAU;IAEf;;;;OAIG;IACH,SAAS,CAAe;IAExB;;OAEG;IACH,SAAS,CAAQ;IAEjB;;OAEG;IACH,SAAS,CAAQ;CAClB;AAjCD,sCAiCC"}
|
|
@@ -1,32 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Session Entity
|
|
3
|
+
*
|
|
4
|
+
* JWT session tracking with device information and security features.
|
|
5
|
+
* Database adapters extend this class and add ORM-specific decorators.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* This class is database-agnostic. TypeORM, Prisma, or other ORMs
|
|
9
|
+
* extend this class in their respective packages.
|
|
10
|
+
*/
|
|
1
11
|
export declare class BaseSession {
|
|
12
|
+
/**
|
|
13
|
+
* Internal session ID (auto-increment integer)
|
|
14
|
+
*/
|
|
2
15
|
id: number;
|
|
16
|
+
/**
|
|
17
|
+
* Version for optimistic locking
|
|
18
|
+
* Automatically incremented on each update by the ORM
|
|
19
|
+
* Used to detect race conditions and concurrent modifications
|
|
20
|
+
*
|
|
21
|
+
* SECURITY CRITICAL: Prevents TOCTOU vulnerabilities
|
|
22
|
+
*/
|
|
3
23
|
version: number;
|
|
24
|
+
/**
|
|
25
|
+
* Internal user ID (foreign key to users table)
|
|
26
|
+
* Uses integer for optimal performance in joins and lookups
|
|
27
|
+
*/
|
|
4
28
|
userId: number;
|
|
29
|
+
/**
|
|
30
|
+
* Access token hash (SHA-256)
|
|
31
|
+
* Used for token revocation and session tracking
|
|
32
|
+
*/
|
|
5
33
|
accessTokenHash: string;
|
|
34
|
+
/**
|
|
35
|
+
* Refresh token hash (SHA-256)
|
|
36
|
+
* Used for token rotation and reuse detection
|
|
37
|
+
*/
|
|
6
38
|
refreshTokenHash: string;
|
|
39
|
+
/**
|
|
40
|
+
* Token family identifier
|
|
41
|
+
* Used for refresh token rotation and reuse detection
|
|
42
|
+
*/
|
|
7
43
|
tokenFamily?: string | null;
|
|
44
|
+
/**
|
|
45
|
+
* Device identifier (UUID)
|
|
46
|
+
* Unique identifier for the device/browser
|
|
47
|
+
*/
|
|
8
48
|
deviceId?: string | null;
|
|
49
|
+
/**
|
|
50
|
+
* User-friendly device name
|
|
51
|
+
* Examples: "iPhone 15 Pro", "Chrome on MacBook"
|
|
52
|
+
*/
|
|
9
53
|
deviceName?: string | null;
|
|
54
|
+
/**
|
|
55
|
+
* Device type
|
|
56
|
+
* Examples: "mobile", "desktop", "tablet"
|
|
57
|
+
*/
|
|
10
58
|
deviceType?: string | null;
|
|
59
|
+
/**
|
|
60
|
+
* Device fingerprint hash
|
|
61
|
+
* Combination of device characteristics for additional security
|
|
62
|
+
*/
|
|
11
63
|
deviceFingerprint?: string | null;
|
|
64
|
+
/**
|
|
65
|
+
* IP address when session was created
|
|
66
|
+
*/
|
|
12
67
|
ipAddress?: string | null;
|
|
68
|
+
/**
|
|
69
|
+
* Country from IP geolocation (optional)
|
|
70
|
+
*/
|
|
13
71
|
ipCountry?: string | null;
|
|
72
|
+
/**
|
|
73
|
+
* City from IP geolocation (optional)
|
|
74
|
+
*/
|
|
14
75
|
ipCity?: string | null;
|
|
76
|
+
/**
|
|
77
|
+
* Latitude from IP geolocation (optional)
|
|
78
|
+
* Used for impossible travel detection
|
|
79
|
+
*/
|
|
15
80
|
ipLatitude?: number | null;
|
|
81
|
+
/**
|
|
82
|
+
* Longitude from IP geolocation (optional)
|
|
83
|
+
* Used for impossible travel detection
|
|
84
|
+
*/
|
|
16
85
|
ipLongitude?: number | null;
|
|
86
|
+
/**
|
|
87
|
+
* ISP from IP geolocation (optional)
|
|
88
|
+
*/
|
|
17
89
|
ipIsp?: string | null;
|
|
90
|
+
/**
|
|
91
|
+
* User agent string
|
|
92
|
+
*/
|
|
18
93
|
userAgent?: string | null;
|
|
94
|
+
/**
|
|
95
|
+
* Platform extracted from user agent
|
|
96
|
+
* Examples: "iOS", "Android", "Windows", "macOS"
|
|
97
|
+
*/
|
|
19
98
|
platform?: string | null;
|
|
99
|
+
/**
|
|
100
|
+
* Browser extracted from user agent
|
|
101
|
+
* Examples: "Chrome", "Safari", "Firefox"
|
|
102
|
+
*/
|
|
20
103
|
browser?: string | null;
|
|
104
|
+
/**
|
|
105
|
+
* Authentication method used to create this session
|
|
106
|
+
* Examples: "password", "google", "facebook", "github", "apple"
|
|
107
|
+
* null for legacy sessions
|
|
108
|
+
*/
|
|
21
109
|
authMethod?: string | null;
|
|
110
|
+
/**
|
|
111
|
+
* "Remember me" flag
|
|
112
|
+
* Longer expiration for remembered sessions
|
|
113
|
+
*/
|
|
22
114
|
isRemembered: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Trusted device flag
|
|
117
|
+
* Trusted devices may skip MFA
|
|
118
|
+
*/
|
|
23
119
|
isTrustedDevice: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Session expiration timestamp
|
|
122
|
+
* After this time, session is invalid
|
|
123
|
+
*/
|
|
24
124
|
expiresAt: Date;
|
|
125
|
+
/**
|
|
126
|
+
* Last activity timestamp
|
|
127
|
+
* Updated on each API request
|
|
128
|
+
*/
|
|
25
129
|
lastActivityAt?: Date | null;
|
|
130
|
+
/**
|
|
131
|
+
* Session revocation status
|
|
132
|
+
* Revoked sessions cannot be used
|
|
133
|
+
*/
|
|
26
134
|
isRevoked: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* When session was revoked
|
|
137
|
+
*/
|
|
27
138
|
revokedAt?: Date | null;
|
|
139
|
+
/**
|
|
140
|
+
* Reason for session revocation
|
|
141
|
+
* Examples: "user_logout", "token_reuse_detected", "admin_revoked"
|
|
142
|
+
*/
|
|
28
143
|
revokeReason?: string | null;
|
|
144
|
+
/**
|
|
145
|
+
* Additional session metadata (JSON)
|
|
146
|
+
*/
|
|
29
147
|
metadata?: Record<string, unknown> | null;
|
|
148
|
+
/**
|
|
149
|
+
* Session creation timestamp
|
|
150
|
+
*/
|
|
30
151
|
createdAt: Date;
|
|
31
152
|
}
|
|
32
153
|
//# sourceMappingURL=session.entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.entity.d.ts","sourceRoot":"","sources":["../../src/entities/session.entity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.entity.d.ts","sourceRoot":"","sources":["../../src/entities/session.entity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,EAAE,EAAG,MAAM,CAAC;IAEZ;;;;;;OAMG;IACH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;OAGG;IACH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;OAGG;IACH,eAAe,EAAG,MAAM,CAAC;IAEzB;;;OAGG;IACH,gBAAgB,EAAG,MAAM,CAAC;IAE1B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,YAAY,EAAG,OAAO,CAAC;IAEvB;;;OAGG;IACH,eAAe,EAAG,OAAO,CAAC;IAE1B;;;OAGG;IACH,SAAS,EAAG,IAAI,CAAC;IAEjB;;;OAGG;IACH,cAAc,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B;;;OAGG;IACH,SAAS,EAAG,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE1C;;OAEG;IACH,SAAS,EAAG,IAAI,CAAC;CAClB"}
|