@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,11 +1,145 @@
|
|
|
1
1
|
import { IUser } from './entities.interface';
|
|
2
|
+
/**
|
|
3
|
+
* MFA Provider Service Interface
|
|
4
|
+
*
|
|
5
|
+
* Defines the contract that all MFA provider services must implement.
|
|
6
|
+
* Each MFA method (TOTP, SMS, Passkey) is a separate provider that extends
|
|
7
|
+
* the base class and implements this interface.
|
|
8
|
+
*
|
|
9
|
+
* Provider-specific types (e.g., SetupTOTPResponseDTO) are defined in each
|
|
10
|
+
* provider package, not in core, to maintain proper separation of concerns.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* @Injectable()
|
|
15
|
+
* export class TOTPMFAProviderService extends BaseMFAProviderService implements IMFAProviderService {
|
|
16
|
+
* readonly methodName = 'totp';
|
|
17
|
+
*
|
|
18
|
+
* async setup(user: IUser): Promise<unknown> {
|
|
19
|
+
* // TOTP-specific setup logic
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* async verify(user: IUser, code: string, deviceId?: number): Promise<boolean> {
|
|
23
|
+
* // TOTP verification logic
|
|
24
|
+
* }
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
2
28
|
export interface IMFAProviderService {
|
|
29
|
+
/**
|
|
30
|
+
* Unique method name for this MFA provider
|
|
31
|
+
* Examples: 'totp', 'sms', 'passkey'
|
|
32
|
+
*/
|
|
3
33
|
readonly methodName: string;
|
|
34
|
+
/**
|
|
35
|
+
* Check if this MFA method is allowed by configuration
|
|
36
|
+
*
|
|
37
|
+
* @returns True if method is allowed
|
|
38
|
+
*/
|
|
4
39
|
isMethodAllowed(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Setup MFA device for user
|
|
42
|
+
*
|
|
43
|
+
* Initiates the setup process for this MFA method.
|
|
44
|
+
* Provider-specific setup data is returned.
|
|
45
|
+
*
|
|
46
|
+
* @param user - User setting up MFA
|
|
47
|
+
* @returns Provider-specific setup data (e.g., QR code for TOTP, options for Passkey)
|
|
48
|
+
* @throws {NAuthException} If method is not allowed or setup fails
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* // TOTP provider returns { secret, qrCode, manualEntryKey }
|
|
53
|
+
* const setupData = await totpProvider.setup(user);
|
|
54
|
+
*
|
|
55
|
+
* // Passkey provider returns WebAuthn registration options
|
|
56
|
+
* const options = await passkeyProvider.setup(user);
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
5
59
|
setup(user: IUser, setupData?: unknown): Promise<unknown>;
|
|
60
|
+
/**
|
|
61
|
+
* Verify and complete MFA setup
|
|
62
|
+
*
|
|
63
|
+
* Validates the verification code/credential and creates the MFA device.
|
|
64
|
+
*
|
|
65
|
+
* @param user - User completing setup
|
|
66
|
+
* @param verificationData - Provider-specific verification data (code, credential, etc.)
|
|
67
|
+
* @param deviceName - Optional device name
|
|
68
|
+
* @returns Created MFA device ID
|
|
69
|
+
* @throws {NAuthException} If verification fails
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // TOTP: verificationData = { secret, code }
|
|
74
|
+
* const deviceId = await totpProvider.verifySetup(user, { secret: '...', code: '123456' });
|
|
75
|
+
*
|
|
76
|
+
* // SMS: verificationData = { phoneNumber, code }
|
|
77
|
+
* const deviceId = await smsProvider.verifySetup(user, { phoneNumber: '+1234567890', code: '123456' });
|
|
78
|
+
*
|
|
79
|
+
* // Passkey: verificationData = { credential, challenge }
|
|
80
|
+
* const deviceId = await passkeyProvider.verifySetup(user, { credential: {...}, challenge: '...' });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
6
83
|
verifySetup(user: IUser, verificationData: unknown, deviceName?: string): Promise<number>;
|
|
84
|
+
/**
|
|
85
|
+
* Verify MFA code/credential during authentication
|
|
86
|
+
*
|
|
87
|
+
* Validates the MFA code or credential for an existing device.
|
|
88
|
+
*
|
|
89
|
+
* @param user - User being authenticated
|
|
90
|
+
* @param code - MFA code or credential (provider-specific)
|
|
91
|
+
* @param deviceId - Optional device ID to verify against (if not provided, finds active device)
|
|
92
|
+
* @returns True if verification succeeds
|
|
93
|
+
* @throws {NAuthException} If device not found or verification fails
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* // TOTP: code = '123456'
|
|
98
|
+
* const isValid = await totpProvider.verify(user, '123456');
|
|
99
|
+
*
|
|
100
|
+
* // SMS: code = '123456'
|
|
101
|
+
* const isValid = await smsProvider.verify(user, '123456');
|
|
102
|
+
*
|
|
103
|
+
* // Passkey: code = { credential: {...}, challenge: '...' }
|
|
104
|
+
* const isValid = await passkeyProvider.verify(user, { credential: {...}, challenge: '...' });
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
7
107
|
verify(user: IUser, code: unknown, deviceId?: number): Promise<boolean>;
|
|
108
|
+
/**
|
|
109
|
+
* Send verification code/challenge for authentication
|
|
110
|
+
*
|
|
111
|
+
* Used during login to send SMS code or generate passkey challenge.
|
|
112
|
+
* Not applicable for TOTP (user generates code locally).
|
|
113
|
+
*
|
|
114
|
+
* @param user - User requesting verification
|
|
115
|
+
* @returns Provider-specific challenge data (e.g., masked phone for SMS, WebAuthn options for Passkey)
|
|
116
|
+
* @throws {NAuthException} If no device registered or send fails
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```typescript
|
|
120
|
+
* // SMS: returns masked phone number
|
|
121
|
+
* const maskedPhone = await smsProvider.sendChallenge(user); // '***-***-1234'
|
|
122
|
+
*
|
|
123
|
+
* // Passkey: returns WebAuthn authentication options
|
|
124
|
+
* const options = await passkeyProvider.sendChallenge(user); // { challenge: '...', ... }
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
8
127
|
sendChallenge?(user: IUser): Promise<unknown>;
|
|
128
|
+
/**
|
|
129
|
+
* Generate backup codes for user
|
|
130
|
+
*
|
|
131
|
+
* Creates single-use recovery codes that can be used when MFA devices are unavailable.
|
|
132
|
+
* Provided by BaseMFAProviderService for all providers.
|
|
133
|
+
*
|
|
134
|
+
* @param user - User to generate codes for
|
|
135
|
+
* @returns Generated backup codes (plain text - shown only once)
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* const codes = await provider.generateBackupCodes?.(user);
|
|
140
|
+
* // Returns: ['ABC12345', 'DEF67890', ...]
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
9
143
|
generateBackupCodes?(user: IUser): Promise<string[]>;
|
|
10
144
|
}
|
|
11
145
|
export type MFAProviderWithChallenge = IMFAProviderService & Required<Pick<IMFAProviderService, 'sendChallenge'>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mfa-provider.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/mfa-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"mfa-provider.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/mfa-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,eAAe,IAAI,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1F;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExE;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACtD;AAGD,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC"}
|
|
@@ -1,24 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OAuth User Profile Interface
|
|
3
|
+
* Standardized user profile data from OAuth providers
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* const profile: OAuthUserProfile = {
|
|
8
|
+
* id: 'google_123',
|
|
9
|
+
* email: 'user@gmail.com',
|
|
10
|
+
* firstName: 'John',
|
|
11
|
+
* lastName: 'Doe',
|
|
12
|
+
* picture: 'https://...',
|
|
13
|
+
* verified: true
|
|
14
|
+
* };
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
1
17
|
export interface OAuthUserProfile {
|
|
18
|
+
/**
|
|
19
|
+
* Provider's unique identifier for the user
|
|
20
|
+
* Examples: Google sub, Apple user ID, Facebook ID
|
|
21
|
+
*/
|
|
2
22
|
id: string;
|
|
23
|
+
/**
|
|
24
|
+
* User's email address
|
|
25
|
+
* May be null if not provided by provider
|
|
26
|
+
*/
|
|
3
27
|
email?: string | null;
|
|
28
|
+
/**
|
|
29
|
+
* User's first name
|
|
30
|
+
* May be null if not provided by provider
|
|
31
|
+
*/
|
|
4
32
|
firstName?: string | null;
|
|
33
|
+
/**
|
|
34
|
+
* User's last name
|
|
35
|
+
* May be null if not provided by provider
|
|
36
|
+
*/
|
|
5
37
|
lastName?: string | null;
|
|
38
|
+
/**
|
|
39
|
+
* User's profile picture URL
|
|
40
|
+
* May be null if not provided by provider
|
|
41
|
+
*/
|
|
6
42
|
picture?: string | null;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the email is verified by the provider
|
|
45
|
+
* @default false
|
|
46
|
+
*/
|
|
7
47
|
verified?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Additional provider-specific data
|
|
50
|
+
* Contains raw response from OAuth provider
|
|
51
|
+
*/
|
|
8
52
|
raw?: Record<string, unknown>;
|
|
9
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* OAuth Client Interface
|
|
56
|
+
* Defines the contract for OAuth provider clients
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* class GoogleOAuthClient implements OAuthClient {
|
|
61
|
+
* async getUserProfile(accessToken: string): Promise<OAuthUserProfile> {
|
|
62
|
+
* // Implementation for Google
|
|
63
|
+
* }
|
|
64
|
+
* }
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
10
67
|
export interface OAuthClient {
|
|
68
|
+
/**
|
|
69
|
+
* Get user profile from OAuth provider using access token
|
|
70
|
+
*
|
|
71
|
+
* @param accessToken - OAuth access token
|
|
72
|
+
* @returns User profile data
|
|
73
|
+
* @throws {Error} When API call fails or token is invalid
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const profile = await oauthClient.getUserProfile(accessToken);
|
|
78
|
+
* console.log(profile.email); // user@example.com
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
11
81
|
getUserProfile(accessToken: string): Promise<OAuthUserProfile>;
|
|
82
|
+
/**
|
|
83
|
+
* Exchange authorization code for access token
|
|
84
|
+
*
|
|
85
|
+
* @param code - Authorization code from OAuth callback
|
|
86
|
+
* @param redirectUri - Redirect URI used in OAuth flow
|
|
87
|
+
* @returns Access token and optional refresh token
|
|
88
|
+
* @throws {Error} When token exchange fails
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const tokens = await oauthClient.exchangeCodeForToken(code, redirectUri);
|
|
93
|
+
* console.log(tokens.accessToken); // access_token_here
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
12
96
|
exchangeCodeForToken(code: string, redirectUri: string): Promise<{
|
|
13
97
|
accessToken: string;
|
|
14
98
|
refreshToken?: string;
|
|
15
99
|
expiresIn?: number;
|
|
16
100
|
}>;
|
|
17
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* OAuth Configuration Interface
|
|
104
|
+
* Configuration for OAuth clients
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* const config: OAuthConfig = {
|
|
109
|
+
* clientId: 'google_client_id',
|
|
110
|
+
* clientSecret: 'google_client_secret',
|
|
111
|
+
* redirectUri: 'https://myapp.com/auth/google/callback'
|
|
112
|
+
* };
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
18
115
|
export interface OAuthConfig {
|
|
116
|
+
/**
|
|
117
|
+
* OAuth client ID
|
|
118
|
+
*/
|
|
19
119
|
clientId: string;
|
|
120
|
+
/**
|
|
121
|
+
* OAuth client secret
|
|
122
|
+
*/
|
|
20
123
|
clientSecret: string;
|
|
124
|
+
/**
|
|
125
|
+
* OAuth redirect URI
|
|
126
|
+
*/
|
|
21
127
|
redirectUri: string;
|
|
128
|
+
/**
|
|
129
|
+
* OAuth scopes
|
|
130
|
+
* @default ['openid', 'email', 'profile']
|
|
131
|
+
*/
|
|
22
132
|
scopes?: string[];
|
|
23
133
|
}
|
|
24
134
|
//# sourceMappingURL=oauth.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/oauth.interface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oauth.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/oauth.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;;OAGG;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;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE/D;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB"}
|
|
@@ -1,14 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email provider interface for sending emails
|
|
3
|
+
*/
|
|
1
4
|
export interface EmailProvider {
|
|
5
|
+
/**
|
|
6
|
+
* Send email verification code/link
|
|
7
|
+
* @param to - Recipient email address
|
|
8
|
+
* @param code - Verification code (e.g., "123456")
|
|
9
|
+
* @param link - Optional verification link (only sent if provided by consumer app)
|
|
10
|
+
*/
|
|
2
11
|
sendVerificationEmail(to: string, code: string, link?: string): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Send password reset email
|
|
14
|
+
*/
|
|
3
15
|
sendPasswordResetEmail(to: string, token: string, link: string): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Send welcome email
|
|
18
|
+
*/
|
|
4
19
|
sendWelcomeEmail(to: string, name: string): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Send account lockout notification
|
|
22
|
+
*/
|
|
5
23
|
sendLockoutEmail?(to: string, reason: string, duration: number): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Send new device login notification
|
|
26
|
+
*/
|
|
6
27
|
sendNewDeviceEmail?(to: string, deviceInfo: any, location?: any): Promise<void>;
|
|
7
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* SMS provider interface for sending text messages
|
|
31
|
+
*/
|
|
8
32
|
export interface SMSProvider {
|
|
33
|
+
/**
|
|
34
|
+
* Send OTP code via SMS
|
|
35
|
+
*
|
|
36
|
+
* @param phone - Recipient phone number in E.164 format
|
|
37
|
+
* @param code - OTP code to send
|
|
38
|
+
* @param templateType - Optional template type (verification, mfa, passwordReset)
|
|
39
|
+
* @param variables - Optional template variables (expiryMinutes, appName, etc.)
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* await provider.sendOTP('+1234567890', '123456');
|
|
44
|
+
* // With template support:
|
|
45
|
+
* await provider.sendOTP('+1234567890', '123456', 'verification', { expiryMinutes: 5 });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
9
48
|
sendOTP(phone: string, code: string, templateType?: string, variables?: Record<string, unknown>): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Send verification code
|
|
51
|
+
*
|
|
52
|
+
* Alias for sendOTP(). Sends the same SMS message.
|
|
53
|
+
*
|
|
54
|
+
* @param phone - Recipient phone number in E.164 format
|
|
55
|
+
* @param code - Verification code to send
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* await provider.sendVerificationCode('+1234567890', '123456');
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
10
62
|
sendVerificationCode?(phone: string, code: string): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Set template engine for SMS message customization
|
|
65
|
+
*
|
|
66
|
+
* Optional method to enable template-based SMS messages.
|
|
67
|
+
* If not set, provider will use hard-coded default messages.
|
|
68
|
+
*
|
|
69
|
+
* @param engine - SMS template engine instance
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* const engine = new SMSTemplateEngine();
|
|
74
|
+
* provider.setTemplateEngine(engine);
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
11
77
|
setTemplateEngine?(engine: import('./sms-template.interface').SMSTemplateEngine): void;
|
|
78
|
+
/**
|
|
79
|
+
* Set global variables for SMS templates
|
|
80
|
+
*
|
|
81
|
+
* Optional method to set global variables (appName, companyName, etc.)
|
|
82
|
+
* that will be available to all SMS templates.
|
|
83
|
+
*
|
|
84
|
+
* @param variables - Global template variables
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* provider.setGlobalVariables({
|
|
89
|
+
* appName: 'My App',
|
|
90
|
+
* companyName: 'My Company Inc.',
|
|
91
|
+
* supportPhone: '+1-800-123-4567',
|
|
92
|
+
* });
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
12
95
|
setGlobalVariables?(variables: import('./sms-template.interface').SMSTemplateVariables): void;
|
|
13
96
|
}
|
|
14
97
|
//# sourceMappingURL=provider.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/provider.interface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/provider.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9E;;OAEG;IACH,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;OAEG;IACH,kBAAkB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjF;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhH;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,CAAC,MAAM,EAAE,OAAO,0BAA0B,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEvF;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,CAAC,CAAC,SAAS,EAAE,OAAO,0BAA0B,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC/F"}
|
|
@@ -1,8 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMS Template System Interfaces
|
|
3
|
+
*
|
|
4
|
+
* Provides flexible template system for SMS notifications with support for:
|
|
5
|
+
* - Text templates with placeholder tokens ({{variable}})
|
|
6
|
+
* - Built-in and custom variables
|
|
7
|
+
* - Multiple template types (verification, MFA, password reset)
|
|
8
|
+
* - Handlebars syntax for template rendering
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* SMS Template Type
|
|
12
|
+
*
|
|
13
|
+
* Enum of available SMS template types
|
|
14
|
+
*/
|
|
1
15
|
export declare enum SMSTemplateType {
|
|
16
|
+
/**
|
|
17
|
+
* Phone verification code template
|
|
18
|
+
* Required variables: {{code}}, {{expiryMinutes}}
|
|
19
|
+
*/
|
|
2
20
|
VERIFICATION = "verification",
|
|
21
|
+
/**
|
|
22
|
+
* MFA code template
|
|
23
|
+
* Required variables: {{code}}, {{expiryMinutes}}
|
|
24
|
+
*/
|
|
3
25
|
MFA = "mfa",
|
|
26
|
+
/**
|
|
27
|
+
* Password reset code template
|
|
28
|
+
* Required variables: {{code}}, {{expiryMinutes}}
|
|
29
|
+
*/
|
|
4
30
|
PASSWORD_RESET = "passwordReset"
|
|
5
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* SMS Template Variables
|
|
34
|
+
*
|
|
35
|
+
* Variables that can be used in SMS templates.
|
|
36
|
+
* All variables are optional as not all templates use all variables.
|
|
37
|
+
*/
|
|
6
38
|
export interface SMSTemplateVariables {
|
|
7
39
|
appName?: string;
|
|
8
40
|
userName?: string;
|
|
@@ -16,27 +48,241 @@ export interface SMSTemplateVariables {
|
|
|
16
48
|
supportPhone?: string;
|
|
17
49
|
[key: string]: string | number | boolean | undefined;
|
|
18
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* SMS Template
|
|
53
|
+
*
|
|
54
|
+
* Defines the structure of an SMS template (text only, no HTML/subject).
|
|
55
|
+
* Content supports placeholder variables using Handlebars syntax.
|
|
56
|
+
*/
|
|
19
57
|
export interface SMSTemplate {
|
|
58
|
+
/**
|
|
59
|
+
* SMS message content (supports {{variables}})
|
|
60
|
+
* Plain text only - SMS does not support HTML formatting
|
|
61
|
+
*/
|
|
20
62
|
content: string;
|
|
21
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Template Source
|
|
66
|
+
*
|
|
67
|
+
* Defines how SMS template content can be provided - as a string or file path
|
|
68
|
+
*/
|
|
22
69
|
export interface SMSTemplateSource {
|
|
70
|
+
/**
|
|
71
|
+
* Template content as string
|
|
72
|
+
* Mutually exclusive with filePath
|
|
73
|
+
*/
|
|
23
74
|
content?: string;
|
|
75
|
+
/**
|
|
76
|
+
* Path to template file
|
|
77
|
+
* Mutually exclusive with content
|
|
78
|
+
*/
|
|
24
79
|
filePath?: string;
|
|
25
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Custom SMS Template Definition
|
|
83
|
+
*
|
|
84
|
+
* Allows specifying SMS templates as file paths or inline content.
|
|
85
|
+
* All templates support Handlebars syntax for dynamic content.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* const customTemplate: CustomSMSTemplateDefinition = {
|
|
90
|
+
* contentPath: './sms-templates/verification.txt.hbs',
|
|
91
|
+
* // OR
|
|
92
|
+
* content: '{{appName}}: Your code is {{code}}. Expires in {{expiryMinutes}} min.',
|
|
93
|
+
* };
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
26
96
|
export interface CustomSMSTemplateDefinition {
|
|
97
|
+
/**
|
|
98
|
+
* Path to SMS template file
|
|
99
|
+
* Mutually exclusive with `content`
|
|
100
|
+
*/
|
|
27
101
|
contentPath?: string;
|
|
102
|
+
/**
|
|
103
|
+
* SMS template content as string
|
|
104
|
+
* Mutually exclusive with `contentPath`
|
|
105
|
+
*/
|
|
28
106
|
content?: string;
|
|
29
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* SMS Template Engine Interface
|
|
110
|
+
*
|
|
111
|
+
* Contract for template engines that can render SMS templates with variables.
|
|
112
|
+
* Implementations can support Handlebars or other template formats.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* const engine = new SMSTemplateEngine();
|
|
117
|
+
* const result = await engine.render(
|
|
118
|
+
* SMSTemplateType.VERIFICATION,
|
|
119
|
+
* { appName: 'My App', code: '123456', expiryMinutes: 5 }
|
|
120
|
+
* );
|
|
121
|
+
* // result.content: "My App: Your verification code is 123456. Valid for 5 minutes."
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
30
124
|
export interface SMSTemplateEngine {
|
|
125
|
+
/**
|
|
126
|
+
* Render a template with the provided variables
|
|
127
|
+
*
|
|
128
|
+
* @param type - Type of template to render
|
|
129
|
+
* @param variables - Variables to inject into the template
|
|
130
|
+
* @returns Rendered SMS template with content
|
|
131
|
+
*
|
|
132
|
+
* @throws {Error} If template type is not found
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* const result = await engine.render(
|
|
137
|
+
* SMSTemplateType.VERIFICATION,
|
|
138
|
+
* {
|
|
139
|
+
* appName: 'My App',
|
|
140
|
+
* code: '123456',
|
|
141
|
+
* expiryMinutes: 5
|
|
142
|
+
* }
|
|
143
|
+
* );
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
31
146
|
render(type: SMSTemplateType | string, variables: SMSTemplateVariables): Promise<SMSTemplate>;
|
|
147
|
+
/**
|
|
148
|
+
* Register a custom template from inline string
|
|
149
|
+
*
|
|
150
|
+
* Allows overriding default templates or adding new ones.
|
|
151
|
+
*
|
|
152
|
+
* @param type - Template type identifier
|
|
153
|
+
* @param template - Template definition with inline content
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* engine.registerTemplate(SMSTemplateType.VERIFICATION, {
|
|
158
|
+
* content: '{{appName}}: Your code is {{code}}. Expires in {{expiryMinutes}} min.',
|
|
159
|
+
* });
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
32
162
|
registerTemplate(type: SMSTemplateType | string, template: SMSTemplate): void;
|
|
163
|
+
/**
|
|
164
|
+
* Register a custom template from mixed sources (strings or files)
|
|
165
|
+
*
|
|
166
|
+
* Flexible registration that supports both inline content and file paths.
|
|
167
|
+
*
|
|
168
|
+
* @param type - Template type identifier
|
|
169
|
+
* @param templateSource - Template source (content or file path)
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* engine.registerTemplateFromSources(SMSTemplateType.VERIFICATION, {
|
|
174
|
+
* content: { content: '{{appName}}: Your code is {{code}}.' },
|
|
175
|
+
* });
|
|
176
|
+
* // OR
|
|
177
|
+
* engine.registerTemplateFromSources(SMSTemplateType.MFA, {
|
|
178
|
+
* content: { filePath: './sms-templates/mfa.txt.hbs' },
|
|
179
|
+
* });
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
33
182
|
registerTemplateFromSources(type: SMSTemplateType | string, templateSource: {
|
|
34
183
|
content: SMSTemplateSource;
|
|
35
184
|
}): Promise<void>;
|
|
36
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* SMS Template Configuration
|
|
188
|
+
*
|
|
189
|
+
* Configuration options for the SMS template system.
|
|
190
|
+
* Used in AuthModule.forRoot() configuration.
|
|
191
|
+
*
|
|
192
|
+
* Custom templates are validated at startup to ensure they include
|
|
193
|
+
* all required parameters for their template type.
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* AuthModule.forRoot({
|
|
198
|
+
* sms: {
|
|
199
|
+
* templates: {
|
|
200
|
+
* // Global variables (optional, available to all templates)
|
|
201
|
+
* globalVariables: {
|
|
202
|
+
* appName: 'My Application',
|
|
203
|
+
* companyName: 'My Company Inc.',
|
|
204
|
+
* supportPhone: '+1-800-123-4567',
|
|
205
|
+
* },
|
|
206
|
+
* // Custom templates (override defaults)
|
|
207
|
+
* customTemplates: {
|
|
208
|
+
* verification: {
|
|
209
|
+
* content: '{{appName}}: Your verification code is {{code}}. Valid for {{expiryMinutes}} minutes.',
|
|
210
|
+
* // Must include: {{code}}, {{expiryMinutes}}
|
|
211
|
+
* },
|
|
212
|
+
* mfa: {
|
|
213
|
+
* contentPath: './sms-templates/mfa.txt.hbs',
|
|
214
|
+
* // Must include: {{code}}, {{expiryMinutes}}
|
|
215
|
+
* },
|
|
216
|
+
* },
|
|
217
|
+
* },
|
|
218
|
+
* },
|
|
219
|
+
* });
|
|
220
|
+
* ```
|
|
221
|
+
*/
|
|
37
222
|
export interface SMSTemplateConfig {
|
|
223
|
+
/**
|
|
224
|
+
* Template engine instance
|
|
225
|
+
*
|
|
226
|
+
* @default SMSTemplateEngine with default templates
|
|
227
|
+
*/
|
|
38
228
|
engine?: SMSTemplateEngine;
|
|
229
|
+
/**
|
|
230
|
+
* Global variables available to all templates
|
|
231
|
+
*
|
|
232
|
+
* These are merged with template-specific variables at render time.
|
|
233
|
+
* Template-specific variables take precedence over globals.
|
|
234
|
+
*
|
|
235
|
+
* Common global variables:
|
|
236
|
+
* - appName: Your application name
|
|
237
|
+
* - companyName: Your company name
|
|
238
|
+
* - supportPhone: Support contact phone number
|
|
239
|
+
*
|
|
240
|
+
* Optional user-specific variables (injected at runtime):
|
|
241
|
+
* - firstName, lastName, userName: User information
|
|
242
|
+
*
|
|
243
|
+
* @example
|
|
244
|
+
* ```typescript
|
|
245
|
+
* globalVariables: {
|
|
246
|
+
* appName: process.env.APP_NAME || 'My App',
|
|
247
|
+
* companyName: 'My Company Inc.',
|
|
248
|
+
* supportPhone: '+1-800-123-4567',
|
|
249
|
+
* }
|
|
250
|
+
* ```
|
|
251
|
+
*/
|
|
39
252
|
globalVariables?: SMSTemplateVariables;
|
|
253
|
+
/**
|
|
254
|
+
* Custom template definitions
|
|
255
|
+
*
|
|
256
|
+
* Override default templates or add new ones.
|
|
257
|
+
* Templates are validated at startup to ensure required parameters are present.
|
|
258
|
+
*
|
|
259
|
+
* Key is the template type, value is the template definition.
|
|
260
|
+
* Templates can be provided as file paths or inline content.
|
|
261
|
+
*
|
|
262
|
+
* All templates support Handlebars syntax:
|
|
263
|
+
* - {{variable}}: Insert variable
|
|
264
|
+
* - {{#if variable}}...{{/if}}: Conditional
|
|
265
|
+
* - {{#each items}}...{{/each}}: Loop
|
|
266
|
+
*
|
|
267
|
+
* Required parameters by template type:
|
|
268
|
+
* - verification: {{code}}, {{expiryMinutes}}
|
|
269
|
+
* - mfa: {{code}}, {{expiryMinutes}}
|
|
270
|
+
* - passwordReset: {{code}}, {{expiryMinutes}}
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```typescript
|
|
274
|
+
* customTemplates: {
|
|
275
|
+
* // File-based template
|
|
276
|
+
* verification: {
|
|
277
|
+
* contentPath: './sms-templates/verification.txt.hbs',
|
|
278
|
+
* },
|
|
279
|
+
* // Inline template
|
|
280
|
+
* mfa: {
|
|
281
|
+
* content: '{{appName}}: Your MFA code is {{code}}. Valid for {{expiryMinutes}} minutes.',
|
|
282
|
+
* },
|
|
283
|
+
* }
|
|
284
|
+
* ```
|
|
285
|
+
*/
|
|
40
286
|
customTemplates?: Record<string, CustomSMSTemplateDefinition>;
|
|
41
287
|
}
|
|
42
288
|
//# sourceMappingURL=sms-template.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sms-template.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/sms-template.interface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sms-template.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/sms-template.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,oBAAY,eAAe;IACzB;;;OAGG;IACH,YAAY,iBAAiB;IAE7B;;;OAGG;IACH,GAAG,QAAQ;IAEX;;;OAGG;IACH,cAAc,kBAAkB;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IAEnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE9F;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAE9E;;;;;;;;;;;;;;;;;;OAkBG;IACH,2BAA2B,CACzB,IAAI,EAAE,eAAe,GAAG,MAAM,EAC9B,cAAc,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,GAC7C,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;IAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;CAC/D"}
|