@ackplus/nest-auth 1.1.29 → 1.1.31-beta.10
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/README.md +64 -450
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/admin-console/admin-console.module.js +1 -1
- package/dist/lib/admin-console/admin-console.module.js.map +1 -1
- package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts +3 -3
- package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts.map +1 -1
- package/dist/lib/admin-console/controllers/admin-auth.controller.js +2 -2
- package/dist/lib/admin-console/controllers/admin-auth.controller.js.map +1 -1
- package/dist/lib/admin-console/controllers/admin-console.controller.js +1 -1
- package/dist/lib/admin-console/controllers/admin-console.controller.js.map +1 -1
- package/dist/lib/admin-console/controllers/admin-users.controller.d.ts +2 -2
- package/dist/lib/admin-console/decorators/current-admin.decorator.js.map +1 -1
- package/dist/lib/admin-console/entities/admin-user.entity.d.ts +1 -3
- package/dist/lib/admin-console/entities/admin-user.entity.d.ts.map +1 -1
- package/dist/lib/admin-console/entities/admin-user.entity.js +19 -66
- package/dist/lib/admin-console/entities/admin-user.entity.js.map +1 -1
- package/dist/lib/admin-console/guards/admin-session.guard.d.ts +2 -2
- package/dist/lib/admin-console/guards/admin-session.guard.d.ts.map +1 -1
- package/dist/lib/admin-console/services/admin-auth.service.d.ts +4 -4
- package/dist/lib/admin-console/services/admin-auth.service.d.ts.map +1 -1
- package/dist/lib/admin-console/services/admin-auth.service.js.map +1 -1
- package/dist/lib/admin-console/services/admin-console-config.service.d.ts +4 -4
- package/dist/lib/admin-console/services/admin-console-config.service.d.ts.map +1 -1
- package/dist/lib/admin-console/services/admin-console-config.service.js +22 -14
- package/dist/lib/admin-console/services/admin-console-config.service.js.map +1 -1
- package/dist/lib/admin-console/services/admin-session.service.d.ts +2 -2
- package/dist/lib/admin-console/services/admin-session.service.d.ts.map +1 -1
- package/dist/lib/admin-console/services/admin-session.service.js.map +1 -1
- package/dist/lib/admin-console/services/admin-user.service.d.ts +7 -7
- package/dist/lib/admin-console/services/admin-user.service.d.ts.map +1 -1
- package/dist/lib/admin-console/services/admin-user.service.js +1 -1
- package/dist/lib/admin-console/services/admin-user.service.js.map +1 -1
- package/dist/lib/admin-console/static/index.html +7433 -0
- package/dist/lib/admin-console/static/nest-auth.json +1784 -0
- package/dist/lib/audit/services/audit.service.d.ts +6 -1
- package/dist/lib/audit/services/audit.service.d.ts.map +1 -1
- package/dist/lib/audit/services/audit.service.js +12 -7
- package/dist/lib/audit/services/audit.service.js.map +1 -1
- package/dist/lib/auth/auth.module.d.ts.map +1 -1
- package/dist/lib/auth/auth.module.js +9 -6
- package/dist/lib/auth/auth.module.js.map +1 -1
- package/dist/lib/auth/controllers/auth.controller.d.ts +37 -45
- package/dist/lib/auth/controllers/auth.controller.d.ts.map +1 -1
- package/dist/lib/auth/controllers/auth.controller.js +125 -132
- package/dist/lib/auth/controllers/auth.controller.js.map +1 -1
- package/dist/lib/auth/controllers/mfa.controller.d.ts +9 -15
- package/dist/lib/auth/controllers/mfa.controller.d.ts.map +1 -1
- package/dist/lib/auth/controllers/mfa.controller.js +23 -20
- package/dist/lib/auth/controllers/mfa.controller.js.map +1 -1
- package/dist/lib/auth/dto/credentials/social-credentials.dto.d.ts +2 -1
- package/dist/lib/auth/dto/credentials/social-credentials.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/credentials/social-credentials.dto.js +9 -2
- package/dist/lib/auth/dto/credentials/social-credentials.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/change-password.request.dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/change-password.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/change-password.request.dto.js +5 -5
- package/dist/lib/auth/dto/requests/change-password.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/forgot-password.request.dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/forgot-password.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/forgot-password.request.dto.js +6 -6
- package/dist/lib/auth/dto/requests/forgot-password.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/initialize-admin.request.dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/initialize-admin.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/initialize-admin.request.dto.js +8 -8
- package/dist/lib/auth/dto/requests/initialize-admin.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/login.request.dto.d.ts +3 -2
- package/dist/lib/auth/dto/requests/login.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/login.request.dto.js +11 -12
- package/dist/lib/auth/dto/requests/login.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/refresh-token.request.dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/refresh-token.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/refresh-token.request.dto.js +4 -4
- package/dist/lib/auth/dto/requests/refresh-token.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/reset-password-with-token.request.dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/reset-password-with-token.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/reset-password-with-token.request.dto.js +5 -5
- package/dist/lib/auth/dto/requests/reset-password-with-token.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/reset-password.request.dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/reset-password.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/reset-password.request.dto.js +8 -8
- package/dist/lib/auth/dto/requests/reset-password.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/send-email-verification.request.dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/send-email-verification.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/send-email-verification.request.dto.js +4 -4
- package/dist/lib/auth/dto/requests/send-email-verification.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/send-mfa-code.request.dto.d.ts +4 -3
- package/dist/lib/auth/dto/requests/send-mfa-code.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/send-mfa-code.request.dto.js +12 -12
- package/dist/lib/auth/dto/requests/send-mfa-code.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/signup.request.dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/signup.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/signup.request.dto.js +7 -7
- package/dist/lib/auth/dto/requests/signup.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/toggle-mfa.request.dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/toggle-mfa.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/toggle-mfa.request.dto.js +4 -4
- package/dist/lib/auth/dto/requests/toggle-mfa.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/verify-2fa.request.dto.d.ts +4 -3
- package/dist/lib/auth/dto/requests/verify-2fa.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/verify-2fa.request.dto.js +11 -11
- package/dist/lib/auth/dto/requests/verify-2fa.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/verify-email.request.dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/verify-email.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/verify-email.request.dto.js +5 -5
- package/dist/lib/auth/dto/requests/verify-email.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/verify-forgot-password-otp-request-dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/verify-forgot-password-otp-request-dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/verify-forgot-password-otp-request-dto.js +7 -7
- package/dist/lib/auth/dto/requests/verify-forgot-password-otp-request-dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/verify-totp-setup.request.dto.d.ts +2 -1
- package/dist/lib/auth/dto/requests/verify-totp-setup.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/verify-totp-setup.request.dto.js +5 -5
- package/dist/lib/auth/dto/requests/verify-totp-setup.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/responses/auth-cookie.response.dto.d.ts +2 -1
- package/dist/lib/auth/dto/responses/auth-cookie.response.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/responses/auth-cookie.response.dto.js.map +1 -1
- package/dist/lib/auth/dto/responses/auth-messages.response.dto.d.ts +38 -0
- package/dist/lib/auth/dto/responses/auth-messages.response.dto.d.ts.map +1 -0
- package/dist/lib/auth/dto/responses/auth-messages.response.dto.js +110 -0
- package/dist/lib/auth/dto/responses/auth-messages.response.dto.js.map +1 -0
- package/dist/lib/auth/dto/responses/auth-success.response.dto.d.ts +2 -1
- package/dist/lib/auth/dto/responses/auth-success.response.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/responses/auth-success.response.dto.js.map +1 -1
- package/dist/lib/auth/dto/responses/auth.response.dto.d.ts +7 -4
- package/dist/lib/auth/dto/responses/auth.response.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/responses/auth.response.dto.js +20 -0
- package/dist/lib/auth/dto/responses/auth.response.dto.js.map +1 -1
- package/dist/lib/auth/dto/responses/client-config.response.dto.d.ts +14 -13
- package/dist/lib/auth/dto/responses/client-config.response.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/responses/client-config.response.dto.js.map +1 -1
- package/dist/lib/auth/dto/responses/initialize-admin.response.dto.d.ts +2 -1
- package/dist/lib/auth/dto/responses/initialize-admin.response.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/responses/initialize-admin.response.dto.js.map +1 -1
- package/dist/lib/auth/dto/responses/mfa-code-response.dto.d.ts +2 -1
- package/dist/lib/auth/dto/responses/mfa-code-response.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/responses/mfa-code-response.dto.js.map +1 -1
- package/dist/lib/auth/dto/responses/mfa-status.response.dto.d.ts +7 -6
- package/dist/lib/auth/dto/responses/mfa-status.response.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/responses/mfa-status.response.dto.js +7 -7
- package/dist/lib/auth/dto/responses/mfa-status.response.dto.js.map +1 -1
- package/dist/lib/auth/dto/responses/verify-otp.response.dto.d.ts +2 -1
- package/dist/lib/auth/dto/responses/verify-otp.response.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/responses/verify-otp.response.dto.js.map +1 -1
- package/dist/lib/auth/entities/otp.entity.d.ts +2 -2
- package/dist/lib/auth/entities/otp.entity.d.ts.map +1 -1
- package/dist/lib/auth/entities/otp.entity.js +1 -1
- package/dist/lib/auth/entities/otp.entity.js.map +1 -1
- package/dist/lib/auth/events/password-reset-requested.event.d.ts +2 -2
- package/dist/lib/auth/events/password-reset-requested.event.d.ts.map +1 -1
- package/dist/lib/auth/events/password-reset.event.d.ts +2 -2
- package/dist/lib/auth/events/password-reset.event.d.ts.map +1 -1
- package/dist/lib/auth/events/password-reset.event.js.map +1 -1
- package/dist/lib/auth/events/two-factor-code-sent.event.d.ts +2 -2
- package/dist/lib/auth/events/two-factor-code-sent.event.d.ts.map +1 -1
- package/dist/lib/auth/events/user-2fa-enabled.event.d.ts +3 -3
- package/dist/lib/auth/events/user-2fa-enabled.event.d.ts.map +1 -1
- package/dist/lib/auth/events/user-2fa-verified.event.d.ts +2 -2
- package/dist/lib/auth/events/user-2fa-verified.event.d.ts.map +1 -1
- package/dist/lib/auth/events/user-logged-in.event.d.ts +2 -2
- package/dist/lib/auth/events/user-logged-in.event.d.ts.map +1 -1
- package/dist/lib/auth/events/user-registered.event.d.ts +2 -2
- package/dist/lib/auth/events/user-registered.event.d.ts.map +1 -1
- package/dist/lib/auth/events/user-registered.event.js.map +1 -1
- package/dist/lib/auth/filters/auth-exception.filter.d.ts +6 -0
- package/dist/lib/auth/filters/auth-exception.filter.d.ts.map +1 -0
- package/dist/lib/auth/filters/auth-exception.filter.js +29 -0
- package/dist/lib/auth/filters/auth-exception.filter.js.map +1 -0
- package/dist/lib/auth/filters/index.d.ts +2 -0
- package/dist/lib/auth/filters/index.d.ts.map +1 -0
- package/dist/lib/auth/filters/index.js +18 -0
- package/dist/lib/auth/filters/index.js.map +1 -0
- package/dist/lib/auth/index.d.ts +1 -2
- package/dist/lib/auth/index.d.ts.map +1 -1
- package/dist/lib/auth/index.js +1 -2
- package/dist/lib/auth/index.js.map +1 -1
- package/dist/lib/auth/interceptors/token-response.interceptor.d.ts +16 -0
- package/dist/lib/auth/interceptors/token-response.interceptor.d.ts.map +1 -0
- package/dist/lib/auth/interceptors/token-response.interceptor.js +83 -0
- package/dist/lib/auth/interceptors/token-response.interceptor.js.map +1 -0
- package/dist/lib/auth/services/auth.service.d.ts +11 -33
- package/dist/lib/auth/services/auth.service.d.ts.map +1 -1
- package/dist/lib/auth/services/auth.service.js +65 -505
- package/dist/lib/auth/services/auth.service.js.map +1 -1
- package/dist/lib/auth/services/client-config.service.d.ts.map +1 -1
- package/dist/lib/auth/services/client-config.service.js +2 -4
- package/dist/lib/auth/services/client-config.service.js.map +1 -1
- package/dist/lib/auth/services/mfa.service.d.ts +8 -7
- package/dist/lib/auth/services/mfa.service.d.ts.map +1 -1
- package/dist/lib/auth/services/mfa.service.js +21 -21
- package/dist/lib/auth/services/mfa.service.js.map +1 -1
- package/dist/lib/auth/services/password.service.d.ts +44 -0
- package/dist/lib/auth/services/password.service.d.ts.map +1 -0
- package/dist/lib/auth/services/password.service.js +447 -0
- package/dist/lib/auth/services/password.service.js.map +1 -0
- package/dist/lib/auth/services/verification.service.d.ts +24 -0
- package/dist/lib/auth/services/verification.service.d.ts.map +1 -0
- package/dist/lib/auth/services/verification.service.js +191 -0
- package/dist/lib/auth/services/verification.service.js.map +1 -0
- package/dist/lib/auth.constants.d.ts +0 -8
- package/dist/lib/auth.constants.d.ts.map +1 -1
- package/dist/lib/auth.constants.js +1 -9
- package/dist/lib/auth.constants.js.map +1 -1
- package/dist/lib/core/core.module.d.ts.map +1 -1
- package/dist/lib/core/core.module.js +3 -0
- package/dist/lib/core/core.module.js.map +1 -1
- package/dist/lib/core/entities.d.ts +2 -3
- package/dist/lib/core/entities.d.ts.map +1 -1
- package/dist/lib/core/entities.js +2 -4
- package/dist/lib/core/entities.js.map +1 -1
- package/dist/lib/core/index.d.ts +0 -5
- package/dist/lib/core/index.d.ts.map +1 -1
- package/dist/lib/core/index.js +0 -5
- package/dist/lib/core/index.js.map +1 -1
- package/dist/lib/core/interfaces/auth-module-options.interface.d.ts +31 -32
- package/dist/lib/core/interfaces/auth-module-options.interface.d.ts.map +1 -1
- package/dist/lib/core/interfaces/mfa-options.interface.d.ts +3 -6
- package/dist/lib/core/interfaces/mfa-options.interface.d.ts.map +1 -1
- package/dist/lib/core/interfaces/mfa-options.interface.js +0 -7
- package/dist/lib/core/interfaces/mfa-options.interface.js.map +1 -1
- package/dist/lib/core/interfaces/session-options.interface.d.ts.map +1 -1
- package/dist/lib/core/providers/apple-auth.provider.d.ts +6 -3
- package/dist/lib/core/providers/apple-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/apple-auth.provider.js +14 -7
- package/dist/lib/core/providers/apple-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/base-auth.provider.d.ts +4 -3
- package/dist/lib/core/providers/base-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/base-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/email-auth.provider.d.ts +7 -7
- package/dist/lib/core/providers/email-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/email-auth.provider.js +19 -8
- package/dist/lib/core/providers/email-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/facebook-auth.provider.d.ts +8 -6
- package/dist/lib/core/providers/facebook-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/facebook-auth.provider.js +31 -18
- package/dist/lib/core/providers/facebook-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/github-auth.provider.d.ts +8 -6
- package/dist/lib/core/providers/github-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/github-auth.provider.js +18 -11
- package/dist/lib/core/providers/github-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/google-auth.provider.d.ts +14 -13
- package/dist/lib/core/providers/google-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/google-auth.provider.js +36 -18
- package/dist/lib/core/providers/google-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/jwt-auth.provider.d.ts +8 -6
- package/dist/lib/core/providers/jwt-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/jwt-auth.provider.js +17 -11
- package/dist/lib/core/providers/jwt-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/phone-auth.provider.d.ts +7 -7
- package/dist/lib/core/providers/phone-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/phone-auth.provider.js +14 -7
- package/dist/lib/core/providers/phone-auth.provider.js.map +1 -1
- package/dist/lib/core/services/auth-config.service.d.ts +9 -9
- package/dist/lib/core/services/auth-config.service.d.ts.map +1 -1
- package/dist/lib/core/services/auth-config.service.js +22 -20
- package/dist/lib/core/services/auth-config.service.js.map +1 -1
- package/dist/lib/core/services/auth-provider-registry.service.d.ts.map +1 -1
- package/dist/lib/core/services/auth-provider-registry.service.js +5 -0
- package/dist/lib/core/services/auth-provider-registry.service.js.map +1 -1
- package/dist/lib/core/services/jwt.service.d.ts +3 -3
- package/dist/lib/core/services/jwt.service.d.ts.map +1 -1
- package/dist/lib/core/services/jwt.service.js +41 -8
- package/dist/lib/core/services/jwt.service.js.map +1 -1
- package/dist/lib/nest-auth.module.d.ts +3 -3
- package/dist/lib/nest-auth.module.d.ts.map +1 -1
- package/dist/lib/nest-auth.module.js +5 -16
- package/dist/lib/nest-auth.module.js.map +1 -1
- package/dist/lib/session/services/session-manager.service.js.map +1 -1
- package/dist/lib/tenant/services/tenant.service.d.ts +0 -1
- package/dist/lib/tenant/services/tenant.service.d.ts.map +1 -1
- package/dist/lib/tenant/services/tenant.service.js +8 -25
- package/dist/lib/tenant/services/tenant.service.js.map +1 -1
- package/dist/lib/user/entities/user.entity.d.ts +0 -2
- package/dist/lib/user/entities/user.entity.d.ts.map +1 -1
- package/dist/lib/user/entities/user.entity.js +5 -52
- package/dist/lib/user/entities/user.entity.js.map +1 -1
- package/dist/lib/user/services/user.service.d.ts.map +1 -1
- package/dist/lib/user/services/user.service.js.map +1 -1
- package/package.json +53 -45
- package/dist/lib/auth/dto/index.d.ts +0 -1
- package/dist/lib/auth/dto/index.d.ts.map +0 -1
- package/dist/lib/auth/dto/index.js +0 -1
- package/dist/lib/auth/dto/index.js.map +0 -1
- package/dist/lib/auth/events/index.d.ts +0 -13
- package/dist/lib/auth/events/index.d.ts.map +0 -1
- package/dist/lib/auth/events/index.js +0 -29
- package/dist/lib/auth/events/index.js.map +0 -1
- package/dist/lib/auth/interceptors/refresh-token.interceptor.d.ts +0 -16
- package/dist/lib/auth/interceptors/refresh-token.interceptor.d.ts.map +0 -1
- package/dist/lib/auth/interceptors/refresh-token.interceptor.js +0 -87
- package/dist/lib/auth/interceptors/refresh-token.interceptor.js.map +0 -1
- package/dist/lib/auth/services/cookie.service.d.ts +0 -10
- package/dist/lib/auth/services/cookie.service.d.ts.map +0 -1
- package/dist/lib/auth/services/cookie.service.js +0 -55
- package/dist/lib/auth/services/cookie.service.js.map +0 -1
- package/dist/lib/core/interfaces/otp.interface.d.ts +0 -6
- package/dist/lib/core/interfaces/otp.interface.d.ts.map +0 -1
- package/dist/lib/core/interfaces/otp.interface.js +0 -10
- package/dist/lib/core/interfaces/otp.interface.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
# @ackplus/nest-auth
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A powerful, modular authentication and user management system for NestJS.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
- 🔧 **Customizable** - Override default behavior with hooks and custom logic
|
|
15
|
-
- 🐛 **Debug mode** - Step-by-step query builder logs
|
|
7
|
+
- � **Complete Auth System** - Login, generic registration, password recovery, verification.
|
|
8
|
+
- � **Multi-Factor Authentication** - Built-in TOTP (Authenticator App) support.
|
|
9
|
+
- � **Social Authentication** - Google, Facebook, Apple, GitHub integration.
|
|
10
|
+
- 🏢 **Multi-Tenancy** - Built-in tenant isolation and management.
|
|
11
|
+
- � **RBAC** - Role-Based Access Control with dynamic permissions.
|
|
12
|
+
- 🍪 **Flexible Session Management** - Support for JWTs via Cookies or Headers.
|
|
13
|
+
- � **Device Management** - Trusted device tracking.
|
|
16
14
|
|
|
17
15
|
## Installation
|
|
18
16
|
|
|
@@ -20,489 +18,105 @@ Powerful CRUD operations for NestJS with TypeORM - automatic REST endpoints, adv
|
|
|
20
18
|
npm install @ackplus/nest-auth
|
|
21
19
|
# or
|
|
22
20
|
pnpm add @ackplus/nest-auth
|
|
23
|
-
# or
|
|
24
|
-
yarn add @ackplus/nest-auth
|
|
25
21
|
```
|
|
26
22
|
|
|
27
23
|
## Peer Dependencies
|
|
28
24
|
|
|
29
25
|
```bash
|
|
30
|
-
npm install @nestjs/common @nestjs/core @nestjs/typeorm typeorm class-validator class-transformer reflect-metadata
|
|
26
|
+
npm install @nestjs/common @nestjs/core @nestjs/typeorm typeorm class-validator class-transformer reflect-metadata @nestjs/event-emitter @nestjs/swagger
|
|
31
27
|
```
|
|
32
28
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
### 1. Create your entity
|
|
36
|
-
|
|
37
|
-
```typescript
|
|
38
|
-
import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from 'typeorm';
|
|
39
|
-
import { Post } from './post.entity';
|
|
40
|
-
|
|
41
|
-
@Entity('users')
|
|
42
|
-
export class User {
|
|
43
|
-
@PrimaryGeneratedColumn()
|
|
44
|
-
id: number;
|
|
45
|
-
|
|
46
|
-
@Column({ unique: true })
|
|
47
|
-
email: string;
|
|
48
|
-
|
|
49
|
-
@Column()
|
|
50
|
-
firstName: string;
|
|
51
|
-
|
|
52
|
-
@Column()
|
|
53
|
-
lastName: string;
|
|
29
|
+
### Optional Dependencies (Social Auth)
|
|
54
30
|
|
|
55
|
-
|
|
56
|
-
isActive: boolean;
|
|
31
|
+
If you plan to use social authentication providers:
|
|
57
32
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### 2. Create a CRUD controller
|
|
33
|
+
```bash
|
|
34
|
+
# Google
|
|
35
|
+
npm install google-auth-library
|
|
64
36
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
import { Crud } from '@ackplus/nest-auth';
|
|
68
|
-
import { User } from './user.entity';
|
|
69
|
-
import { UserService } from './user.service';
|
|
37
|
+
# Facebook
|
|
38
|
+
npm install fb
|
|
70
39
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
routes: {
|
|
74
|
-
findAll: true,
|
|
75
|
-
findOne: true,
|
|
76
|
-
create: true,
|
|
77
|
-
update: true,
|
|
78
|
-
delete: true,
|
|
79
|
-
},
|
|
80
|
-
})
|
|
81
|
-
@Controller('users')
|
|
82
|
-
export class UserController {
|
|
83
|
-
constructor(public service: UserService) {}
|
|
84
|
-
}
|
|
40
|
+
# Apple
|
|
41
|
+
npm install apple-auth
|
|
85
42
|
```
|
|
86
43
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
```typescript
|
|
90
|
-
import { Injectable } from '@nestjs/common';
|
|
91
|
-
import { InjectRepository } from '@nestjs/typeorm';
|
|
92
|
-
import { Repository } from 'typeorm';
|
|
93
|
-
import { CrudService } from '@ackplus/nest-auth';
|
|
94
|
-
import { User } from './user.entity';
|
|
95
|
-
|
|
96
|
-
@Injectable()
|
|
97
|
-
export class UserService extends CrudService<User> {
|
|
98
|
-
constructor(
|
|
99
|
-
@InjectRepository(User)
|
|
100
|
-
protected repository: Repository<User>,
|
|
101
|
-
) {
|
|
102
|
-
super(repository);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
```
|
|
44
|
+
## Quick Start
|
|
106
45
|
|
|
107
|
-
###
|
|
46
|
+
### 1. Import Module
|
|
108
47
|
|
|
109
48
|
```typescript
|
|
110
49
|
import { Module } from '@nestjs/common';
|
|
111
|
-
import {
|
|
112
|
-
import { UserController } from './user.controller';
|
|
113
|
-
import { UserService } from './user.service';
|
|
114
|
-
import { User } from './user.entity';
|
|
50
|
+
import { NestAuthModule } from '@ackplus/nest-auth';
|
|
115
51
|
|
|
116
52
|
@Module({
|
|
117
|
-
imports: [
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
- `GET /users/:id` - Get a single user
|
|
128
|
-
- `POST /users` - Create a new user
|
|
129
|
-
- `PATCH /users/:id` - Update a user
|
|
130
|
-
- `DELETE /users/:id` - Delete a user
|
|
131
|
-
|
|
132
|
-
## API Usage Examples
|
|
133
|
-
|
|
134
|
-
### Basic Queries
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
# Get all users
|
|
138
|
-
GET /users
|
|
139
|
-
|
|
140
|
-
# Get a specific user
|
|
141
|
-
GET /users/1
|
|
142
|
-
|
|
143
|
-
# Create a user
|
|
144
|
-
POST /users
|
|
145
|
-
{
|
|
146
|
-
"email": "john@example.com",
|
|
147
|
-
"firstName": "John",
|
|
148
|
-
"lastName": "Doe"
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
# Update a user
|
|
152
|
-
PATCH /users/1
|
|
153
|
-
{
|
|
154
|
-
"firstName": "Jane"
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
# Delete a user
|
|
158
|
-
DELETE /users/1
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
### Advanced Filtering
|
|
162
|
-
|
|
163
|
-
The query parameters are parsed from the URL and support complex filtering:
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
# Filter by equality
|
|
167
|
-
GET /users?where={"email":{"$eq":"john@example.com"}}
|
|
168
|
-
|
|
169
|
-
# Filter by multiple conditions
|
|
170
|
-
GET /users?where={"isActive":{"$eq":true},"role":{"$eq":"admin"}}
|
|
171
|
-
|
|
172
|
-
# Greater than / Less than
|
|
173
|
-
GET /users?where={"age":{"$gt":18}}
|
|
174
|
-
GET /users?where={"age":{"$gte":18}}
|
|
175
|
-
GET /users?where={"age":{"$lt":65}}
|
|
176
|
-
GET /users?where={"age":{"$lte":65}}
|
|
177
|
-
|
|
178
|
-
# IN operator
|
|
179
|
-
GET /users?where={"role":{"$in":["admin","moderator"]}}
|
|
180
|
-
|
|
181
|
-
# NOT IN operator
|
|
182
|
-
GET /users?where={"role":{"$notIn":["banned","suspended"]}}
|
|
183
|
-
|
|
184
|
-
# LIKE operator (case-sensitive)
|
|
185
|
-
GET /users?where={"email":{"$like":"%@example.com"}}
|
|
186
|
-
|
|
187
|
-
# ILIKE operator (case-insensitive)
|
|
188
|
-
GET /users?where={"firstName":{"$iLike":"%john%"}}
|
|
189
|
-
|
|
190
|
-
# IS NULL / IS NOT NULL
|
|
191
|
-
GET /users?where={"deletedAt":{"$isNull":true}}
|
|
192
|
-
GET /users?where={"deletedAt":{"$isNotNull":true}}
|
|
193
|
-
|
|
194
|
-
# BETWEEN
|
|
195
|
-
GET /users?where={"age":{"$between":[18,65]}}
|
|
196
|
-
|
|
197
|
-
# Logical operators - AND
|
|
198
|
-
GET /users?where={"$and":[{"isActive":{"$eq":true}},{"role":{"$eq":"admin"}}]}
|
|
199
|
-
|
|
200
|
-
# Logical operators - OR
|
|
201
|
-
GET /users?where={"$or":[{"role":{"$eq":"admin"}},{"role":{"$eq":"moderator"}}]}
|
|
202
|
-
|
|
203
|
-
# Complex nested conditions
|
|
204
|
-
GET /users?where={"$and":[{"isActive":{"$eq":true}},{"$or":[{"role":{"$eq":"admin"}},{"role":{"$eq":"moderator"}}]}]}
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
### Relations
|
|
208
|
-
|
|
209
|
-
```bash
|
|
210
|
-
# Load relations
|
|
211
|
-
GET /users?relations=["posts"]
|
|
212
|
-
|
|
213
|
-
# Load nested relations
|
|
214
|
-
GET /users?relations=["posts","posts.comments"]
|
|
215
|
-
|
|
216
|
-
# Load relations with specific fields
|
|
217
|
-
GET /users?relations={"posts":{"select":["id","title"]}}
|
|
218
|
-
|
|
219
|
-
# Load relations with filtering
|
|
220
|
-
GET /users?relations={"posts":{"where":{"published":{"$eq":true}}}}
|
|
221
|
-
|
|
222
|
-
# Load relations with join type
|
|
223
|
-
GET /users?relations={"posts":{"joinType":"left"}}
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
### Field Selection
|
|
227
|
-
|
|
228
|
-
```bash
|
|
229
|
-
# Select specific fields
|
|
230
|
-
GET /users?select=["id","email","firstName"]
|
|
231
|
-
|
|
232
|
-
# Combine with relations
|
|
233
|
-
GET /users?select=["id","email"]&relations={"posts":{"select":["id","title"]}}
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### Pagination
|
|
237
|
-
|
|
238
|
-
```bash
|
|
239
|
-
# Skip and take
|
|
240
|
-
GET /users?skip=0&take=10
|
|
241
|
-
|
|
242
|
-
# Page 2 (skip 10, take 10)
|
|
243
|
-
GET /users?skip=10&take=10
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
### Sorting
|
|
247
|
-
|
|
248
|
-
```bash
|
|
249
|
-
# Sort by single field
|
|
250
|
-
GET /users?order={"createdAt":"DESC"}
|
|
251
|
-
|
|
252
|
-
# Sort by multiple fields
|
|
253
|
-
GET /users?order={"createdAt":"DESC","email":"ASC"}
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
### Soft Deletes
|
|
257
|
-
|
|
258
|
-
```bash
|
|
259
|
-
# Include soft-deleted records
|
|
260
|
-
GET /users?withDeleted=true
|
|
261
|
-
|
|
262
|
-
# Only show soft-deleted records
|
|
263
|
-
GET /users?onlyDeleted=true
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
## Advanced Configuration
|
|
267
|
-
|
|
268
|
-
### Custom Routes
|
|
269
|
-
|
|
270
|
-
```typescript
|
|
271
|
-
@Crud({
|
|
272
|
-
entity: User,
|
|
273
|
-
routes: {
|
|
274
|
-
findAll: {
|
|
275
|
-
decorators: [UseGuards(AuthGuard)], // Add guards
|
|
276
|
-
},
|
|
277
|
-
findOne: true,
|
|
278
|
-
create: {
|
|
279
|
-
decorators: [UseInterceptors(LoggingInterceptor)], // Add interceptors
|
|
280
|
-
},
|
|
281
|
-
update: true,
|
|
282
|
-
delete: false, // Disable delete endpoint
|
|
283
|
-
},
|
|
53
|
+
imports: [
|
|
54
|
+
NestAuthModule.forRoot({
|
|
55
|
+
isGlobal: true,
|
|
56
|
+
session: {
|
|
57
|
+
accessTokenExpiry: '15m',
|
|
58
|
+
refreshTokenExpiry: '7d',
|
|
59
|
+
},
|
|
60
|
+
// ... other config
|
|
61
|
+
}),
|
|
62
|
+
],
|
|
284
63
|
})
|
|
285
|
-
|
|
286
|
-
export class UserController {
|
|
287
|
-
constructor(public service: UserService) {}
|
|
288
|
-
}
|
|
64
|
+
export class AppModule {}
|
|
289
65
|
```
|
|
290
66
|
|
|
291
|
-
###
|
|
67
|
+
### 2. Guard Routes
|
|
292
68
|
|
|
293
69
|
```typescript
|
|
294
|
-
@
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
@Controller('users')
|
|
305
|
-
export class UserController {
|
|
306
|
-
constructor(public service: UserService) {}
|
|
307
|
-
|
|
308
|
-
// Add custom endpoints
|
|
309
|
-
@Get('active')
|
|
310
|
-
async getActiveUsers() {
|
|
311
|
-
return this.service.find({
|
|
312
|
-
where: { isActive: true },
|
|
313
|
-
});
|
|
70
|
+
import { Controller, Get, UseGuards } from '@nestjs/common';
|
|
71
|
+
import { NestAuthAuthGuard } from '@ackplus/nest-auth';
|
|
72
|
+
|
|
73
|
+
@Controller('profile')
|
|
74
|
+
export class ProfileController {
|
|
75
|
+
|
|
76
|
+
@Get()
|
|
77
|
+
@UseGuards(NestAuthAuthGuard)
|
|
78
|
+
getProfile(@Req() req) {
|
|
79
|
+
return req.user;
|
|
314
80
|
}
|
|
315
81
|
}
|
|
316
82
|
```
|
|
317
83
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
```typescript
|
|
321
|
-
@Injectable()
|
|
322
|
-
export class UserService extends CrudService<User> {
|
|
323
|
-
constructor(
|
|
324
|
-
@InjectRepository(User)
|
|
325
|
-
protected repository: Repository<User>,
|
|
326
|
-
) {
|
|
327
|
-
super(repository);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// Override create method
|
|
331
|
-
async create(data: Partial<User>): Promise<User> {
|
|
332
|
-
// Add custom logic before create
|
|
333
|
-
const hashedPassword = await this.hashPassword(data.password);
|
|
334
|
-
data.password = hashedPassword;
|
|
335
|
-
|
|
336
|
-
return super.create(data);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
// Override update method
|
|
340
|
-
async update(id: number, data: Partial<User>): Promise<User> {
|
|
341
|
-
// Add custom logic before update
|
|
342
|
-
if (data.password) {
|
|
343
|
-
data.password = await this.hashPassword(data.password);
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
return super.update(id, data);
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
// Add custom methods
|
|
350
|
-
async findByEmail(email: string): Promise<User> {
|
|
351
|
-
return this.repository.findOne({ where: { email } });
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
private async hashPassword(password: string): Promise<string> {
|
|
355
|
-
// Your hashing logic
|
|
356
|
-
return password;
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
```
|
|
84
|
+
## Configuration
|
|
360
85
|
|
|
361
|
-
###
|
|
362
|
-
|
|
363
|
-
Use class-validator decorators on your DTOs:
|
|
364
|
-
|
|
365
|
-
```typescript
|
|
366
|
-
import { IsEmail, IsString, MinLength } from 'class-validator';
|
|
367
|
-
|
|
368
|
-
export class CreateUserDto {
|
|
369
|
-
@IsEmail()
|
|
370
|
-
email: string;
|
|
371
|
-
|
|
372
|
-
@IsString()
|
|
373
|
-
@MinLength(2)
|
|
374
|
-
firstName: string;
|
|
375
|
-
|
|
376
|
-
@IsString()
|
|
377
|
-
@MinLength(2)
|
|
378
|
-
lastName: string;
|
|
379
|
-
|
|
380
|
-
@IsString()
|
|
381
|
-
@MinLength(8)
|
|
382
|
-
password: string;
|
|
383
|
-
}
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
Then use it in your controller:
|
|
86
|
+
### Social Providers
|
|
387
87
|
|
|
388
88
|
```typescript
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
update: UpdateUserDto,
|
|
89
|
+
NestAuthModule.forRoot({
|
|
90
|
+
google: {
|
|
91
|
+
clientId: '...',
|
|
92
|
+
clientSecret: '...',
|
|
394
93
|
},
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
create: true,
|
|
399
|
-
update: true,
|
|
400
|
-
delete: true,
|
|
94
|
+
facebook: {
|
|
95
|
+
appId: '...',
|
|
96
|
+
appSecret: '...',
|
|
401
97
|
},
|
|
98
|
+
// ...
|
|
402
99
|
})
|
|
403
|
-
@Controller('users')
|
|
404
|
-
export class UserController {
|
|
405
|
-
constructor(public service: UserService) {}
|
|
406
|
-
}
|
|
407
100
|
```
|
|
408
101
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
Enable debug mode to see step-by-step query builder logs:
|
|
102
|
+
### Email / SMPT
|
|
412
103
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
```bash
|
|
416
|
-
GET /users?debug=true
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
### Option 2: Environment Variable
|
|
420
|
-
|
|
421
|
-
```bash
|
|
422
|
-
NEST_CRUD_DEBUG=1
|
|
423
|
-
```
|
|
424
|
-
|
|
425
|
-
Debug logs will appear in the console prefixed with `[NestCrud:<builder>]` showing:
|
|
426
|
-
- Pagination logic
|
|
427
|
-
- Join construction
|
|
428
|
-
- Relations processing
|
|
429
|
-
- Where clause building
|
|
430
|
-
|
|
431
|
-
Example output:
|
|
432
|
-
|
|
433
|
-
```
|
|
434
|
-
[NestCrud:FindQueryBuilder] Building query with options: {...}
|
|
435
|
-
[NestCrud:JoinQueryBuilder] Processing relations: ["posts"]
|
|
436
|
-
[NestCrud:WhereQueryBuilder] Building where clause: {"isActive":{"$eq":true}}
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
## TypeORM Query Builder Integration
|
|
440
|
-
|
|
441
|
-
You can also use the underlying query builder helpers directly:
|
|
104
|
+
To enable email verification and password resets:
|
|
442
105
|
|
|
443
106
|
```typescript
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
skip: 0,
|
|
452
|
-
take: 10,
|
|
453
|
-
order: { createdAt: 'DESC' },
|
|
454
|
-
});
|
|
107
|
+
NestAuthModule.forRoot({
|
|
108
|
+
mail: {
|
|
109
|
+
driver: 'smtp',
|
|
110
|
+
host: 'smtp.example.com',
|
|
111
|
+
// ...
|
|
112
|
+
}
|
|
113
|
+
})
|
|
455
114
|
```
|
|
456
115
|
|
|
457
|
-
##
|
|
458
|
-
|
|
459
|
-
| Operator | Description | Example |
|
|
460
|
-
|----------|-------------|---------|
|
|
461
|
-
| `$eq` | Equal | `{"age":{"$eq":25}}` |
|
|
462
|
-
| `$ne` | Not equal | `{"status":{"$ne":"banned"}}` |
|
|
463
|
-
| `$gt` | Greater than | `{"age":{"$gt":18}}` |
|
|
464
|
-
| `$gte` | Greater than or equal | `{"age":{"$gte":18}}` |
|
|
465
|
-
| `$lt` | Less than | `{"age":{"$lt":65}}` |
|
|
466
|
-
| `$lte` | Less than or equal | `{"age":{"$lte":65}}` |
|
|
467
|
-
| `$in` | In array | `{"role":{"$in":["admin","mod"]}}` |
|
|
468
|
-
| `$notIn` | Not in array | `{"role":{"$notIn":["banned"]}}` |
|
|
469
|
-
| `$like` | Like (case-sensitive) | `{"email":{"$like":"%@example.com"}}` |
|
|
470
|
-
| `$notLike` | Not like | `{"email":{"$notLike":"%spam%"}}` |
|
|
471
|
-
| `$iLike` | Like (case-insensitive) | `{"name":{"$iLike":"%john%"}}` |
|
|
472
|
-
| `$notIlike` | Not like (case-insensitive) | `{"name":{"$notIlike":"%test%"}}` |
|
|
473
|
-
| `$isNull` | Is null | `{"deletedAt":{"$isNull":true}}` |
|
|
474
|
-
| `$isNotNull` | Is not null | `{"deletedAt":{"$isNotNull":true}}` |
|
|
475
|
-
| `$between` | Between | `{"age":{"$between":[18,65]}}` |
|
|
476
|
-
| `$notBetween` | Not between | `{"age":{"$notBetween":[0,17]}}` |
|
|
477
|
-
| `$isTrue` | Is true | `{"isActive":{"$isTrue":true}}` |
|
|
478
|
-
| `$isFalse` | Is false | `{"isActive":{"$isFalse":true}}` |
|
|
479
|
-
| `$and` | Logical AND | `{"$and":[{...},{...}]}` |
|
|
480
|
-
| `$or` | Logical OR | `{"$or":[{...},{...}]}` |
|
|
481
|
-
|
|
482
|
-
## Best Practices
|
|
116
|
+
## Documentation
|
|
483
117
|
|
|
484
|
-
|
|
485
|
-
2. **Limit field selection** - Use `select` parameter to reduce payload size
|
|
486
|
-
3. **Paginate large datasets** - Always use `skip` and `take` for large collections
|
|
487
|
-
4. **Index your filters** - Add database indexes for frequently filtered fields
|
|
488
|
-
5. **Limit relations depth** - Avoid loading too many nested relations
|
|
489
|
-
6. **Use guards** - Protect your endpoints with authentication and authorization guards
|
|
490
|
-
7. **Handle errors** - Implement proper error handling in your services
|
|
491
|
-
8. **Enable debug mode** - Use debug mode during development to understand query construction
|
|
492
|
-
|
|
493
|
-
## Examples
|
|
494
|
-
|
|
495
|
-
See the [example-app](../../apps/example-app) directory for a complete working example with:
|
|
496
|
-
- User and Post entities with relations
|
|
497
|
-
- CRUD controllers and services
|
|
498
|
-
- Custom endpoints
|
|
499
|
-
- Validation
|
|
500
|
-
- Seeders for test data
|
|
118
|
+
For full documentation covering RBAC, Tenants, and advanced configuration, please refer to the official docs (link to be added).
|
|
501
119
|
|
|
502
120
|
## License
|
|
503
121
|
|
|
504
122
|
MIT
|
|
505
|
-
|
|
506
|
-
## Contributing
|
|
507
|
-
|
|
508
|
-
Contributions are welcome! Please feel free to submit a Pull Request.
|
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,9 @@ export * from './lib/role';
|
|
|
7
7
|
export * from './lib/tenant';
|
|
8
8
|
export * from './lib/core';
|
|
9
9
|
export * from './lib/request-context';
|
|
10
|
-
export {
|
|
10
|
+
export type { IAuthModuleOptions, IAuthModuleAsyncOptions, IAuthModuleOptionsFactory, IDefaultTenantOptions, IAdminConsoleOptions, } from './lib/core/interfaces/auth-module-options.interface';
|
|
11
11
|
export { AuthConfigService } from './lib/core/services/auth-config.service';
|
|
12
|
-
export { DebugLoggerService, DebugLogLevel
|
|
13
|
-
export {
|
|
12
|
+
export { DebugLoggerService, DebugLogLevel } from './lib/core/services/debug-logger.service';
|
|
13
|
+
export type { DebugLogOptions } from './lib/core/services/debug-logger.service';
|
|
14
|
+
export { NestAuthAdminUser } from './lib/admin-console/entities/admin-user.entity';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AAEvC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AAGtC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AAEvC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AAGtC,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,qDAAqD,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAG5E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC7F,YAAY,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAGhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -30,5 +30,5 @@ var debug_logger_service_1 = require("./lib/core/services/debug-logger.service")
|
|
|
30
30
|
Object.defineProperty(exports, "DebugLoggerService", { enumerable: true, get: function () { return debug_logger_service_1.DebugLoggerService; } });
|
|
31
31
|
Object.defineProperty(exports, "DebugLogLevel", { enumerable: true, get: function () { return debug_logger_service_1.DebugLogLevel; } });
|
|
32
32
|
var admin_user_entity_1 = require("./lib/admin-console/entities/admin-user.entity");
|
|
33
|
-
Object.defineProperty(exports, "NestAuthAdminUser", { enumerable: true, get: function () { return admin_user_entity_1.
|
|
33
|
+
Object.defineProperty(exports, "NestAuthAdminUser", { enumerable: true, get: function () { return admin_user_entity_1.NestAuthAdminUser; } });
|
|
34
34
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAAuC;AAEvC,uDAAqC;AAGrC,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,6CAA2B;AAC3B,+CAA6B;AAC7B,6CAA2B;AAC3B,wDAAsC;AAYtC,+EAA4E;AAAnE,wHAAA,iBAAiB,OAAA;AAG1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAAuC;AAEvC,uDAAqC;AAGrC,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,6CAA2B;AAC3B,+CAA6B;AAC7B,6CAA2B;AAC3B,wDAAsC;AAYtC,+EAA4E;AAAnE,wHAAA,iBAAiB,OAAA;AAG1B,iFAA6F;AAApF,0HAAA,kBAAkB,OAAA;AAAE,qHAAA,aAAa,OAAA;AAI1C,oFAAmF;AAA1E,sHAAA,iBAAiB,OAAA"}
|
|
@@ -36,7 +36,7 @@ exports.AdminConsoleModule = AdminConsoleModule;
|
|
|
36
36
|
exports.AdminConsoleModule = AdminConsoleModule = __decorate([
|
|
37
37
|
(0, common_1.Module)({
|
|
38
38
|
imports: [
|
|
39
|
-
typeorm_1.TypeOrmModule.forFeature([admin_user_entity_1.
|
|
39
|
+
typeorm_1.TypeOrmModule.forFeature([admin_user_entity_1.NestAuthAdminUser, mfa_secret_entity_1.NestAuthMFASecret, user_entity_1.NestAuthUser, role_entity_1.NestAuthRole]),
|
|
40
40
|
(0, common_1.forwardRef)(() => auth_module_1.AuthModule),
|
|
41
41
|
(0, common_1.forwardRef)(() => user_module_1.UserModule),
|
|
42
42
|
(0, common_1.forwardRef)(() => role_module_1.RoleModule),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-console.module.js","sourceRoot":"","sources":["../../../src/lib/admin-console/admin-console.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,6CAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"admin-console.module.js","sourceRoot":"","sources":["../../../src/lib/admin-console/admin-console.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,6CAAgD;AAChD,oEAAiE;AACjE,sEAAiE;AACjE,sEAAiE;AACjE,4EAAuE;AACvE,qFAAgF;AAChF,+EAA0E;AAC1E,sEAAiE;AACjE,qDAAiD;AACjD,qDAAiD;AACjD,2DAAuD;AACvD,iFAA4E;AAC5E,iFAA4E;AAC5E,qFAAgF;AAChF,6FAAwF;AACxF,0FAAoF;AACpF,qDAAiD;AACjD,0EAAuE;AACvE,8DAA4D;AAC5D,uEAAmE;AACnE,8DAA0D;AAC1D,8DAA4D;AAuCrD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAAI,CAAA;AAAtB,gDAAkB;6BAAlB,kBAAkB;IArC9B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,qCAAiB,EAAE,qCAAiB,EAAE,0BAAY,EAAE,0BAAY,CAAC,CAAC;YAC5F,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,4BAAY,CAAC;YAC9B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC;YAC/B,oCAAgB;SACjB;QACD,SAAS,EAAE;YACT,qCAAgB;YAChB,qCAAgB;YAChB,2CAAmB;YACnB,wDAAyB;YACzB,uCAAiB;SAClB;QACD,WAAW,EAAE;YAGX,2CAAmB;YACnB,6CAAoB;YACpB,6CAAoB;YACpB,iDAAsB;YACtB,yDAA0B;YAE1B,iDAAsB;SACvB;QACD,OAAO,EAAE;YACP,qCAAgB;YAChB,qCAAgB;YAChB,2CAAmB;YACnB,wDAAyB;YACzB,uCAAiB;YACjB,uBAAa;SACd;KACF,CAAC;GACW,kBAAkB,CAAI"}
|
|
@@ -5,7 +5,7 @@ import { AdminConsoleConfigService } from '../services/admin-console-config.serv
|
|
|
5
5
|
import { AdminLoginDto } from '../dto/login.dto';
|
|
6
6
|
import { AdminResetPasswordDto } from '../dto/reset-password.dto';
|
|
7
7
|
import { AdminSignupDto } from '../dto/signup.dto';
|
|
8
|
-
import {
|
|
8
|
+
import { NestAuthAdminUser } from '../entities/admin-user.entity';
|
|
9
9
|
import { CreateDashboardAdminDto, UpdateDashboardAdminDto } from '../dto/create-dashboard-admin.dto';
|
|
10
10
|
import { AdminUserService } from '../services/admin-user.service';
|
|
11
11
|
import { UserService } from '../../user/services/user.service';
|
|
@@ -48,10 +48,10 @@ export declare class AdminAuthController {
|
|
|
48
48
|
updatedAt: Date;
|
|
49
49
|
};
|
|
50
50
|
}>;
|
|
51
|
-
logout(admin:
|
|
51
|
+
logout(admin: NestAuthAdminUser, res: Response): Promise<{
|
|
52
52
|
message: string;
|
|
53
53
|
}>;
|
|
54
|
-
me(admin:
|
|
54
|
+
me(admin: NestAuthAdminUser): Promise<{
|
|
55
55
|
id: string;
|
|
56
56
|
email: string;
|
|
57
57
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-auth.controller.d.ts","sourceRoot":"","sources":["../../../../src/lib/admin-console/controllers/admin-auth.controller.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"admin-auth.controller.d.ts","sourceRoot":"","sources":["../../../../src/lib/admin-console/controllers/admin-auth.controller.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,qBACa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBARd,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,yBAAyB,EACjC,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAE5B,cAAc,EAAE,UAAU,CAAC,YAAY,CAAC;IAG3D,OAAO,CAAC,gBAAgB;IAUlB,MAAM,CAAS,GAAG,EAAE,cAAc;;;;;;;;;;;;IAoClC,KAAK,CAAS,GAAG,EAAE,aAAa,EAA8B,GAAG,EAAE,QAAQ;;;;;;;;;;;;IAa3E,MAAM,CAAiB,KAAK,EAAE,iBAAiB,EAA8B,GAAG,EAAE,QAAQ;;;IAkB1F,EAAE,CAAiB,KAAK,EAAE,iBAAiB;;;;;;;;;IAK3C,YAAY;;;IASZ,iBAAiB;;;;;;;;;;kBAuBa,MAAM;mBAAS,MAAM;;;IAmDnD,cAAc;;;;;;;;;;;;;IAkCd,UAAU;;;;;;;;;;;IAYV,WAAW,CAAS,GAAG,EAAE,uBAAuB;;;;;;;;;;;IAUhD,WAAW,CAAc,EAAE,EAAE,MAAM,EAAU,GAAG,EAAE,uBAAuB;;;;;;;;;;;IAUzE,WAAW,CAAc,EAAE,EAAE,MAAM;;;IASnC,aAAa,CAAS,GAAG,EAAE,qBAAqB;;;IAqCtD,OAAO,CAAC,WAAW;CAWpB"}
|
|
@@ -292,7 +292,7 @@ __decorate([
|
|
|
292
292
|
__param(0, (0, current_admin_decorator_1.CurrentAdmin)()),
|
|
293
293
|
__param(1, (0, common_1.Res)({ passthrough: true })),
|
|
294
294
|
__metadata("design:type", Function),
|
|
295
|
-
__metadata("design:paramtypes", [admin_user_entity_1.
|
|
295
|
+
__metadata("design:paramtypes", [admin_user_entity_1.NestAuthAdminUser, Object]),
|
|
296
296
|
__metadata("design:returntype", Promise)
|
|
297
297
|
], AdminAuthController.prototype, "logout", null);
|
|
298
298
|
__decorate([
|
|
@@ -300,7 +300,7 @@ __decorate([
|
|
|
300
300
|
(0, common_1.UseGuards)(admin_session_guard_1.AdminSessionGuard),
|
|
301
301
|
__param(0, (0, current_admin_decorator_1.CurrentAdmin)()),
|
|
302
302
|
__metadata("design:type", Function),
|
|
303
|
-
__metadata("design:paramtypes", [admin_user_entity_1.
|
|
303
|
+
__metadata("design:paramtypes", [admin_user_entity_1.NestAuthAdminUser]),
|
|
304
304
|
__metadata("design:returntype", Promise)
|
|
305
305
|
], AdminAuthController.prototype, "me", null);
|
|
306
306
|
__decorate([
|