@payez/next-mvp 3.0.0
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 +782 -0
- package/dist/api/auth-handler.d.ts +67 -0
- package/dist/api/auth-handler.js +397 -0
- package/dist/api/index.d.ts +10 -0
- package/dist/api/index.js +19 -0
- package/dist/api-handlers/account/change-password.d.ts +9 -0
- package/dist/api-handlers/account/change-password.js +112 -0
- package/dist/api-handlers/account/masked-info.d.ts +2 -0
- package/dist/api-handlers/account/masked-info.js +41 -0
- package/dist/api-handlers/account/profile.d.ts +3 -0
- package/dist/api-handlers/account/profile.js +63 -0
- package/dist/api-handlers/account/recovery/initiate.d.ts +2 -0
- package/dist/api-handlers/account/recovery/initiate.js +26 -0
- package/dist/api-handlers/account/recovery/send-code.d.ts +2 -0
- package/dist/api-handlers/account/recovery/send-code.js +28 -0
- package/dist/api-handlers/account/recovery/verify-code.d.ts +2 -0
- package/dist/api-handlers/account/recovery/verify-code.js +28 -0
- package/dist/api-handlers/account/reset-password.d.ts +2 -0
- package/dist/api-handlers/account/reset-password.js +26 -0
- package/dist/api-handlers/account/send-code.d.ts +24 -0
- package/dist/api-handlers/account/send-code.js +60 -0
- package/dist/api-handlers/account/update-phone.d.ts +27 -0
- package/dist/api-handlers/account/update-phone.js +64 -0
- package/dist/api-handlers/account/validate-password.d.ts +17 -0
- package/dist/api-handlers/account/validate-password.js +81 -0
- package/dist/api-handlers/account/verify-email.d.ts +26 -0
- package/dist/api-handlers/account/verify-email.js +106 -0
- package/dist/api-handlers/account/verify-sms.d.ts +26 -0
- package/dist/api-handlers/account/verify-sms.js +106 -0
- package/dist/api-handlers/admin/analytics.d.ts +20 -0
- package/dist/api-handlers/admin/analytics.js +379 -0
- package/dist/api-handlers/admin/audit.d.ts +20 -0
- package/dist/api-handlers/admin/audit.js +214 -0
- package/dist/api-handlers/admin/index.d.ts +21 -0
- package/dist/api-handlers/admin/index.js +41 -0
- package/dist/api-handlers/admin/redis-sessions.d.ts +36 -0
- package/dist/api-handlers/admin/redis-sessions.js +204 -0
- package/dist/api-handlers/admin/sessions.d.ts +21 -0
- package/dist/api-handlers/admin/sessions.js +284 -0
- package/dist/api-handlers/admin/site-logs.d.ts +46 -0
- package/dist/api-handlers/admin/site-logs.js +318 -0
- package/dist/api-handlers/admin/users.d.ts +20 -0
- package/dist/api-handlers/admin/users.js +222 -0
- package/dist/api-handlers/admin/vibe-data.d.ts +80 -0
- package/dist/api-handlers/admin/vibe-data.js +268 -0
- package/dist/api-handlers/anon/preferences.d.ts +37 -0
- package/dist/api-handlers/anon/preferences.js +96 -0
- package/dist/api-handlers/auth/jwks.d.ts +2 -0
- package/dist/api-handlers/auth/jwks.js +24 -0
- package/dist/api-handlers/auth/login.d.ts +42 -0
- package/dist/api-handlers/auth/login.js +178 -0
- package/dist/api-handlers/auth/refresh.d.ts +74 -0
- package/dist/api-handlers/auth/refresh.js +635 -0
- package/dist/api-handlers/auth/signout.d.ts +37 -0
- package/dist/api-handlers/auth/signout.js +187 -0
- package/dist/api-handlers/auth/status.d.ts +8 -0
- package/dist/api-handlers/auth/status.js +26 -0
- package/dist/api-handlers/auth/update-session.d.ts +37 -0
- package/dist/api-handlers/auth/update-session.js +95 -0
- package/dist/api-handlers/auth/validate.d.ts +6 -0
- package/dist/api-handlers/auth/validate.js +43 -0
- package/dist/api-handlers/auth/verify-code.d.ts +43 -0
- package/dist/api-handlers/auth/verify-code.js +94 -0
- package/dist/api-handlers/session/refresh-viability.d.ts +14 -0
- package/dist/api-handlers/session/refresh-viability.js +39 -0
- package/dist/api-handlers/session/viability.d.ts +13 -0
- package/dist/api-handlers/session/viability.js +146 -0
- package/dist/api-handlers/test/force-expire.d.ts +23 -0
- package/dist/api-handlers/test/force-expire.js +65 -0
- package/dist/auth/auth-decision.d.ts +39 -0
- package/dist/auth/auth-decision.js +182 -0
- package/dist/auth/auth-options.d.ts +57 -0
- package/dist/auth/auth-options.js +213 -0
- package/dist/auth/callbacks/index.d.ts +6 -0
- package/dist/auth/callbacks/index.js +12 -0
- package/dist/auth/callbacks/jwt.d.ts +45 -0
- package/dist/auth/callbacks/jwt.js +305 -0
- package/dist/auth/callbacks/session.d.ts +60 -0
- package/dist/auth/callbacks/session.js +170 -0
- package/dist/auth/callbacks/signin.d.ts +23 -0
- package/dist/auth/callbacks/signin.js +44 -0
- package/dist/auth/events/index.d.ts +4 -0
- package/dist/auth/events/index.js +8 -0
- package/dist/auth/events/signout.d.ts +17 -0
- package/dist/auth/events/signout.js +32 -0
- package/dist/auth/providers/credentials.d.ts +32 -0
- package/dist/auth/providers/credentials.js +223 -0
- package/dist/auth/providers/index.d.ts +5 -0
- package/dist/auth/providers/index.js +21 -0
- package/dist/auth/providers/oauth.d.ts +26 -0
- package/dist/auth/providers/oauth.js +105 -0
- package/dist/auth/route-config.d.ts +66 -0
- package/dist/auth/route-config.js +190 -0
- package/dist/auth/types/auth-types.d.ts +417 -0
- package/dist/auth/types/auth-types.js +53 -0
- package/dist/auth/types/index.d.ts +6 -0
- package/dist/auth/types/index.js +22 -0
- package/dist/auth/unauthenticated-routes.d.ts +1 -0
- package/dist/auth/unauthenticated-routes.js +19 -0
- package/dist/auth/utils/idp-client.d.ts +94 -0
- package/dist/auth/utils/idp-client.js +383 -0
- package/dist/auth/utils/index.d.ts +5 -0
- package/dist/auth/utils/index.js +21 -0
- package/dist/auth/utils/token-utils.d.ts +84 -0
- package/dist/auth/utils/token-utils.js +219 -0
- package/dist/client/AuthContext.d.ts +19 -0
- package/dist/client/AuthContext.js +112 -0
- package/dist/client/fetch-with-auth.d.ts +11 -0
- package/dist/client/fetch-with-auth.js +44 -0
- package/dist/client/fetchWithSession.d.ts +3 -0
- package/dist/client/fetchWithSession.js +24 -0
- package/dist/client/index.d.ts +9 -0
- package/dist/client/index.js +20 -0
- package/dist/client/useAnonSession.d.ts +36 -0
- package/dist/client/useAnonSession.js +99 -0
- package/dist/components/SessionSync.d.ts +13 -0
- package/dist/components/SessionSync.js +119 -0
- package/dist/components/SignalRHealthCheck.d.ts +10 -0
- package/dist/components/SignalRHealthCheck.js +97 -0
- package/dist/components/account/UserAvatarMenu.d.ts +20 -0
- package/dist/components/account/UserAvatarMenu.js +80 -0
- package/dist/components/account/index.d.ts +7 -0
- package/dist/components/account/index.js +10 -0
- package/dist/components/admin/AlertSettingsTab.d.ts +48 -0
- package/dist/components/admin/AlertSettingsTab.js +351 -0
- package/dist/components/admin/AnalyticsTab.d.ts +22 -0
- package/dist/components/admin/AnalyticsTab.js +167 -0
- package/dist/components/admin/DataBrowserTab.d.ts +19 -0
- package/dist/components/admin/DataBrowserTab.js +252 -0
- package/dist/components/admin/LoggingSettingsTab.d.ts +73 -0
- package/dist/components/admin/LoggingSettingsTab.js +339 -0
- package/dist/components/admin/SessionsTab.d.ts +37 -0
- package/dist/components/admin/SessionsTab.js +165 -0
- package/dist/components/admin/StatsTab.d.ts +53 -0
- package/dist/components/admin/StatsTab.js +161 -0
- package/dist/components/admin/VibeAdminContext.d.ts +32 -0
- package/dist/components/admin/VibeAdminContext.js +38 -0
- package/dist/components/admin/VibeAdminLayout.d.ts +11 -0
- package/dist/components/admin/VibeAdminLayout.js +69 -0
- package/dist/components/admin/index.d.ts +29 -0
- package/dist/components/admin/index.js +44 -0
- package/dist/components/auth/FederatedAuthSection.d.ts +8 -0
- package/dist/components/auth/FederatedAuthSection.js +45 -0
- package/dist/components/auth/ModeAwareLoginPage.d.ts +10 -0
- package/dist/components/auth/ModeAwareLoginPage.js +42 -0
- package/dist/components/auth/ModeAwareSignupPage.d.ts +9 -0
- package/dist/components/auth/ModeAwareSignupPage.js +78 -0
- package/dist/components/auth/TraditionalAuthSection.d.ts +14 -0
- package/dist/components/auth/TraditionalAuthSection.js +20 -0
- package/dist/components/recovery/CompleteStep.d.ts +5 -0
- package/dist/components/recovery/CompleteStep.js +8 -0
- package/dist/components/recovery/InitiateRecoveryStep.d.ts +8 -0
- package/dist/components/recovery/InitiateRecoveryStep.js +20 -0
- package/dist/components/recovery/SelectMethodStep.d.ts +8 -0
- package/dist/components/recovery/SelectMethodStep.js +8 -0
- package/dist/components/recovery/SetPasswordStep.d.ts +6 -0
- package/dist/components/recovery/SetPasswordStep.js +20 -0
- package/dist/components/recovery/VerifyCodeStep.d.ts +10 -0
- package/dist/components/recovery/VerifyCodeStep.js +24 -0
- package/dist/components/reserved/ReservedRecoveryWarning.d.ts +38 -0
- package/dist/components/reserved/ReservedRecoveryWarning.js +92 -0
- package/dist/components/reserved/ReservedStatusBox.d.ts +30 -0
- package/dist/components/reserved/ReservedStatusBox.js +71 -0
- package/dist/components/ui/BetaBadge.d.ts +29 -0
- package/dist/components/ui/BetaBadge.js +38 -0
- package/dist/components/ui/Footer.d.ts +37 -0
- package/dist/components/ui/Footer.js +41 -0
- package/dist/config/env.d.ts +66 -0
- package/dist/config/env.js +57 -0
- package/dist/config/logger.d.ts +57 -0
- package/dist/config/logger.js +73 -0
- package/dist/config/logging-config.d.ts +30 -0
- package/dist/config/logging-config.js +122 -0
- package/dist/config/unauthenticated-routes.d.ts +17 -0
- package/dist/config/unauthenticated-routes.js +24 -0
- package/dist/config/vibe-log-transport.d.ts +79 -0
- package/dist/config/vibe-log-transport.js +203 -0
- package/dist/edge/internal-api-url.d.ts +53 -0
- package/dist/edge/internal-api-url.js +63 -0
- package/dist/edge/middleware.d.ts +14 -0
- package/dist/edge/middleware.js +32 -0
- package/dist/hooks/useAuth.d.ts +23 -0
- package/dist/hooks/useAuth.js +81 -0
- package/dist/hooks/useAuthSettings.d.ts +59 -0
- package/dist/hooks/useAuthSettings.js +93 -0
- package/dist/hooks/useAvailableProviders.d.ts +45 -0
- package/dist/hooks/useAvailableProviders.js +108 -0
- package/dist/hooks/usePasswordValidation.d.ts +27 -0
- package/dist/hooks/usePasswordValidation.js +102 -0
- package/dist/hooks/useProfile.d.ts +15 -0
- package/dist/hooks/useProfile.js +59 -0
- package/dist/hooks/usePublicAuthSettings.d.ts +56 -0
- package/dist/hooks/usePublicAuthSettings.js +131 -0
- package/dist/hooks/useSessionExpiration.d.ts +57 -0
- package/dist/hooks/useSessionExpiration.js +72 -0
- package/dist/hooks/useViabilitySession.d.ts +75 -0
- package/dist/hooks/useViabilitySession.js +268 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +54 -0
- package/dist/lib/anon-session.d.ts +74 -0
- package/dist/lib/anon-session.js +169 -0
- package/dist/lib/api-handler.d.ts +123 -0
- package/dist/lib/api-handler.js +478 -0
- package/dist/lib/app-slug.d.ts +95 -0
- package/dist/lib/app-slug.js +172 -0
- package/dist/lib/demo-mode.d.ts +6 -0
- package/dist/lib/demo-mode.js +16 -0
- package/dist/lib/geolocation.d.ts +64 -0
- package/dist/lib/geolocation.js +235 -0
- package/dist/lib/idp-client-config.d.ts +75 -0
- package/dist/lib/idp-client-config.js +351 -0
- package/dist/lib/idp-fetch.d.ts +14 -0
- package/dist/lib/idp-fetch.js +91 -0
- package/dist/lib/internal-api.d.ts +87 -0
- package/dist/lib/internal-api.js +122 -0
- package/dist/lib/jwt-decode-client.d.ts +10 -0
- package/dist/lib/jwt-decode-client.js +46 -0
- package/dist/lib/jwt-decode.d.ts +48 -0
- package/dist/lib/jwt-decode.js +57 -0
- package/dist/lib/nextauth-secret.d.ts +10 -0
- package/dist/lib/nextauth-secret.js +104 -0
- package/dist/lib/rate-limit-service.d.ts +23 -0
- package/dist/lib/rate-limit-service.js +6 -0
- package/dist/lib/redis.d.ts +5 -0
- package/dist/lib/redis.js +28 -0
- package/dist/lib/refresh-token-validator.d.ts +13 -0
- package/dist/lib/refresh-token-validator.js +117 -0
- package/dist/lib/roles.d.ts +145 -0
- package/dist/lib/roles.js +168 -0
- package/dist/lib/secret-validation.d.ts +4 -0
- package/dist/lib/secret-validation.js +14 -0
- package/dist/lib/session-store.d.ts +166 -0
- package/dist/lib/session-store.js +537 -0
- package/dist/lib/session.d.ts +21 -0
- package/dist/lib/session.js +26 -0
- package/dist/lib/site-logger.d.ts +214 -0
- package/dist/lib/site-logger.js +210 -0
- package/dist/lib/standardized-client-api.d.ts +161 -0
- package/dist/lib/standardized-client-api.js +786 -0
- package/dist/lib/startup-init.d.ts +40 -0
- package/dist/lib/startup-init.js +261 -0
- package/dist/lib/test-aware-get-token.d.ts +2 -0
- package/dist/lib/test-aware-get-token.js +81 -0
- package/dist/lib/token-expiry.d.ts +14 -0
- package/dist/lib/token-expiry.js +39 -0
- package/dist/lib/token-lifecycle.d.ts +52 -0
- package/dist/lib/token-lifecycle.js +398 -0
- package/dist/lib/types/api-responses.d.ts +128 -0
- package/dist/lib/types/api-responses.js +171 -0
- package/dist/lib/user-agent-parser.d.ts +50 -0
- package/dist/lib/user-agent-parser.js +220 -0
- package/dist/logging/api/admin-analytics.d.ts +3 -0
- package/dist/logging/api/admin-analytics.js +45 -0
- package/dist/logging/api/audit-log.d.ts +3 -0
- package/dist/logging/api/audit-log.js +52 -0
- package/dist/logging/components/AdminAnalyticsLayout.d.ts +10 -0
- package/dist/logging/components/AdminAnalyticsLayout.js +11 -0
- package/dist/logging/components/AuditLogViewer.d.ts +7 -0
- package/dist/logging/components/AuditLogViewer.js +51 -0
- package/dist/logging/components/ErrorMetricsCard.d.ts +7 -0
- package/dist/logging/components/ErrorMetricsCard.js +16 -0
- package/dist/logging/components/HealthMetricsCard.d.ts +7 -0
- package/dist/logging/components/HealthMetricsCard.js +19 -0
- package/dist/logging/hooks/useAdminAnalytics.d.ts +24 -0
- package/dist/logging/hooks/useAdminAnalytics.js +22 -0
- package/dist/logging/hooks/useAuditLog.d.ts +6 -0
- package/dist/logging/hooks/useAuditLog.js +25 -0
- package/dist/logging/hooks/useErrorMetrics.d.ts +6 -0
- package/dist/logging/hooks/useErrorMetrics.js +38 -0
- package/dist/logging/hooks/useHealthMetrics.d.ts +6 -0
- package/dist/logging/hooks/useHealthMetrics.js +41 -0
- package/dist/logging/index.d.ts +11 -0
- package/dist/logging/index.js +40 -0
- package/dist/logging/types/analytics.d.ts +68 -0
- package/dist/logging/types/analytics.js +3 -0
- package/dist/logging/types/audit.d.ts +29 -0
- package/dist/logging/types/audit.js +2 -0
- package/dist/logging/types/index.d.ts +2 -0
- package/dist/logging/types/index.js +19 -0
- package/dist/middleware/auth-decision.d.ts +33 -0
- package/dist/middleware/auth-decision.js +65 -0
- package/dist/middleware/create-middleware.d.ts +100 -0
- package/dist/middleware/create-middleware.js +445 -0
- package/dist/middleware/rbac-check.d.ts +44 -0
- package/dist/middleware/rbac-check.js +191 -0
- package/dist/middleware/twofa-presets.d.ts +134 -0
- package/dist/middleware/twofa-presets.js +175 -0
- package/dist/models/DecodedAccessToken.d.ts +17 -0
- package/dist/models/DecodedAccessToken.js +2 -0
- package/dist/models/SessionModel.d.ts +122 -0
- package/dist/models/SessionModel.js +136 -0
- package/dist/pages/admin-login/page.d.ts +31 -0
- package/dist/pages/admin-login/page.js +83 -0
- package/dist/pages/admin-roles/RolesAdminPage.d.ts +15 -0
- package/dist/pages/admin-roles/RolesAdminPage.js +78 -0
- package/dist/pages/admin-roles/index.d.ts +8 -0
- package/dist/pages/admin-roles/index.js +15 -0
- package/dist/pages/admin-roles/modals.d.ts +72 -0
- package/dist/pages/admin-roles/modals.js +154 -0
- package/dist/pages/client-admin/ClientSiteAdminPage.d.ts +79 -0
- package/dist/pages/client-admin/ClientSiteAdminPage.js +177 -0
- package/dist/pages/client-admin/index.d.ts +32 -0
- package/dist/pages/client-admin/index.js +37 -0
- package/dist/pages/login/page.d.ts +22 -0
- package/dist/pages/login/page.js +239 -0
- package/dist/pages/profile/EnhancedProfilePage.d.ts +13 -0
- package/dist/pages/profile/EnhancedProfilePage.js +150 -0
- package/dist/pages/profile/index.d.ts +8 -0
- package/dist/pages/profile/index.js +16 -0
- package/dist/pages/profile/page.d.ts +19 -0
- package/dist/pages/profile/page.js +47 -0
- package/dist/pages/profile/profile-patch.d.ts +1 -0
- package/dist/pages/profile/profile-patch.js +281 -0
- package/dist/pages/recovery/page.d.ts +1 -0
- package/dist/pages/recovery/page.js +142 -0
- package/dist/pages/roles/MyRolesPage.d.ts +24 -0
- package/dist/pages/roles/MyRolesPage.js +71 -0
- package/dist/pages/roles/components.d.ts +63 -0
- package/dist/pages/roles/components.js +108 -0
- package/dist/pages/roles/index.d.ts +8 -0
- package/dist/pages/roles/index.js +19 -0
- package/dist/pages/security/EnhancedSecurityPage.d.ts +14 -0
- package/dist/pages/security/EnhancedSecurityPage.js +248 -0
- package/dist/pages/security/index.d.ts +8 -0
- package/dist/pages/security/index.js +16 -0
- package/dist/pages/security/page.d.ts +21 -0
- package/dist/pages/security/page.js +212 -0
- package/dist/pages/security/security-patch.d.ts +1 -0
- package/dist/pages/security/security-patch.js +302 -0
- package/dist/pages/settings/EnhancedSettingsPage.d.ts +46 -0
- package/dist/pages/settings/EnhancedSettingsPage.js +231 -0
- package/dist/pages/settings/index.d.ts +8 -0
- package/dist/pages/settings/index.js +16 -0
- package/dist/pages/settings/page.d.ts +7 -0
- package/dist/pages/settings/page.js +26 -0
- package/dist/pages/showcase/ShowcasePage.d.ts +13 -0
- package/dist/pages/showcase/ShowcasePage.js +140 -0
- package/dist/pages/showcase/index.d.ts +12 -0
- package/dist/pages/showcase/index.js +17 -0
- package/dist/pages/test-env/EmergencyLogoutPage.d.ts +14 -0
- package/dist/pages/test-env/EmergencyLogoutPage.js +98 -0
- package/dist/pages/test-env/JwtInspectPage.d.ts +14 -0
- package/dist/pages/test-env/JwtInspectPage.js +114 -0
- package/dist/pages/test-env/RefreshTokenPage.d.ts +15 -0
- package/dist/pages/test-env/RefreshTokenPage.js +91 -0
- package/dist/pages/test-env/TestEnvPage.d.ts +13 -0
- package/dist/pages/test-env/TestEnvPage.js +49 -0
- package/dist/pages/test-env/index.d.ts +24 -0
- package/dist/pages/test-env/index.js +32 -0
- package/dist/pages/verify-code/page.d.ts +30 -0
- package/dist/pages/verify-code/page.js +408 -0
- package/dist/routes/account/index.d.ts +28 -0
- package/dist/routes/account/index.js +71 -0
- package/dist/routes/account/masked-info.d.ts +33 -0
- package/dist/routes/account/masked-info.js +39 -0
- package/dist/routes/account/send-code.d.ts +37 -0
- package/dist/routes/account/send-code.js +42 -0
- package/dist/routes/account/update-phone.d.ts +13 -0
- package/dist/routes/account/update-phone.js +17 -0
- package/dist/routes/account/verify-email.d.ts +38 -0
- package/dist/routes/account/verify-email.js +43 -0
- package/dist/routes/account/verify-sms.d.ts +38 -0
- package/dist/routes/account/verify-sms.js +43 -0
- package/dist/routes/auth/index.d.ts +19 -0
- package/dist/routes/auth/index.js +64 -0
- package/dist/routes/auth/logout.d.ts +31 -0
- package/dist/routes/auth/logout.js +113 -0
- package/dist/routes/auth/nextauth.d.ts +19 -0
- package/dist/routes/auth/nextauth.js +72 -0
- package/dist/routes/auth/refresh.d.ts +30 -0
- package/dist/routes/auth/refresh.js +51 -0
- package/dist/routes/auth/session.d.ts +72 -0
- package/dist/routes/auth/session.js +180 -0
- package/dist/routes/auth/settings.d.ts +25 -0
- package/dist/routes/auth/settings.js +55 -0
- package/dist/routes/auth/viability.d.ts +52 -0
- package/dist/routes/auth/viability.js +201 -0
- package/dist/routes/index.d.ts +12 -0
- package/dist/routes/index.js +54 -0
- package/dist/routes/session/index.d.ts +6 -0
- package/dist/routes/session/index.js +10 -0
- package/dist/routes/session/refresh-viability.d.ts +16 -0
- package/dist/routes/session/refresh-viability.js +20 -0
- package/dist/services/signalrActivityService.d.ts +44 -0
- package/dist/services/signalrActivityService.js +257 -0
- package/dist/stores/authStore.d.ts +154 -0
- package/dist/stores/authStore.js +1531 -0
- package/dist/theme/ThemeProvider.d.ts +14 -0
- package/dist/theme/ThemeProvider.js +28 -0
- package/dist/theme/default.d.ts +8 -0
- package/dist/theme/default.js +33 -0
- package/dist/theme/index.d.ts +15 -0
- package/dist/theme/index.js +25 -0
- package/dist/theme/types.d.ts +56 -0
- package/dist/theme/types.js +8 -0
- package/dist/theme/useTheme.d.ts +60 -0
- package/dist/theme/useTheme.js +63 -0
- package/dist/theme/utils.d.ts +13 -0
- package/dist/theme/utils.js +39 -0
- package/dist/types/api.d.ts +134 -0
- package/dist/types/api.js +44 -0
- package/dist/types/auth.d.ts +19 -0
- package/dist/types/auth.js +2 -0
- package/dist/types/logging.d.ts +42 -0
- package/dist/types/logging.js +2 -0
- package/dist/types/recovery.d.ts +48 -0
- package/dist/types/recovery.js +2 -0
- package/dist/types/security.d.ts +1 -0
- package/dist/types/security.js +2 -0
- package/dist/utils/api.d.ts +85 -0
- package/dist/utils/api.js +287 -0
- package/dist/utils/circuitBreaker.d.ts +43 -0
- package/dist/utils/circuitBreaker.js +91 -0
- package/dist/utils/error-message.d.ts +1 -0
- package/dist/utils/error-message.js +103 -0
- package/dist/utils/layout/reservedSpace.d.ts +59 -0
- package/dist/utils/layout/reservedSpace.js +102 -0
- package/dist/utils/logout.d.ts +14 -0
- package/dist/utils/logout.js +32 -0
- package/dist/vibe/client.d.ts +261 -0
- package/dist/vibe/client.js +445 -0
- package/dist/vibe/errors.d.ts +83 -0
- package/dist/vibe/errors.js +146 -0
- package/dist/vibe/generic.d.ts +234 -0
- package/dist/vibe/generic.js +369 -0
- package/dist/vibe/hooks/index.d.ts +169 -0
- package/dist/vibe/hooks/index.js +252 -0
- package/dist/vibe/index.d.ts +23 -0
- package/dist/vibe/index.js +67 -0
- package/dist/vibe/sessions.d.ts +161 -0
- package/dist/vibe/sessions.js +391 -0
- package/dist/vibe/types.d.ts +353 -0
- package/dist/vibe/types.js +315 -0
- package/package.json +855 -0
- package/scripts/check-internal-url-usage.sh +73 -0
- package/scripts/dev-broker.ps1 +35 -0
- package/scripts/dev-local.ps1 +45 -0
- package/src/api/auth-handler.ts +550 -0
- package/src/api/index.ts +18 -0
- package/src/api-handlers/account/change-password.ts +145 -0
- package/src/api-handlers/account/masked-info.ts +45 -0
- package/src/api-handlers/account/profile.ts +80 -0
- package/src/api-handlers/account/recovery/initiate.ts +23 -0
- package/src/api-handlers/account/recovery/send-code.ts +25 -0
- package/src/api-handlers/account/recovery/verify-code.ts +25 -0
- package/src/api-handlers/account/reset-password.ts +23 -0
- package/src/api-handlers/account/send-code.ts +76 -0
- package/src/api-handlers/account/update-phone.ts +79 -0
- package/src/api-handlers/account/validate-password.ts +118 -0
- package/src/api-handlers/account/verify-email.ts +125 -0
- package/src/api-handlers/account/verify-sms.ts +125 -0
- package/src/api-handlers/admin/analytics.ts +445 -0
- package/src/api-handlers/admin/audit.ts +225 -0
- package/src/api-handlers/admin/index.ts +59 -0
- package/src/api-handlers/admin/redis-sessions.ts +253 -0
- package/src/api-handlers/admin/sessions.ts +320 -0
- package/src/api-handlers/admin/site-logs.ts +367 -0
- package/src/api-handlers/admin/users.ts +244 -0
- package/src/api-handlers/admin/vibe-data.ts +326 -0
- package/src/api-handlers/anon/preferences.ts +123 -0
- package/src/api-handlers/auth/jwks.ts +20 -0
- package/src/api-handlers/auth/login.ts +240 -0
- package/src/api-handlers/auth/refresh.ts +687 -0
- package/src/api-handlers/auth/signout.ts +212 -0
- package/src/api-handlers/auth/status.ts +23 -0
- package/src/api-handlers/auth/update-session.ts +125 -0
- package/src/api-handlers/auth/validate.ts +44 -0
- package/src/api-handlers/auth/verify-code.ts +129 -0
- package/src/api-handlers/session/refresh-viability.ts +36 -0
- package/src/api-handlers/session/viability.ts +166 -0
- package/src/api-handlers/test/force-expire.ts +67 -0
- package/src/auth/auth-decision.ts +230 -0
- package/src/auth/auth-options.ts +237 -0
- package/src/auth/callbacks/index.ts +7 -0
- package/src/auth/callbacks/jwt.ts +382 -0
- package/src/auth/callbacks/session.ts +243 -0
- package/src/auth/callbacks/signin.ts +56 -0
- package/src/auth/events/index.ts +5 -0
- package/src/auth/events/signout.ts +33 -0
- package/src/auth/providers/credentials.ts +256 -0
- package/src/auth/providers/index.ts +6 -0
- package/src/auth/providers/oauth.ts +114 -0
- package/src/auth/route-config.ts +220 -0
- package/src/auth/types/auth-types.ts +555 -0
- package/src/auth/types/index.ts +7 -0
- package/src/auth/unauthenticated-routes.ts +3 -0
- package/src/auth/utils/idp-client.ts +444 -0
- package/src/auth/utils/index.ts +6 -0
- package/src/auth/utils/token-utils.ts +244 -0
- package/src/client/AuthContext.tsx +140 -0
- package/src/client/fetch-with-auth.ts +48 -0
- package/src/client/fetchWithSession.ts +21 -0
- package/src/client/index.ts +13 -0
- package/src/client/useAnonSession.ts +131 -0
- package/src/components/SessionSync.tsx +137 -0
- package/src/components/SignalRHealthCheck.tsx +131 -0
- package/src/components/account/UserAvatarMenu.tsx +217 -0
- package/src/components/account/index.ts +8 -0
- package/src/components/admin/AlertSettingsTab.tsx +728 -0
- package/src/components/admin/AnalyticsTab.tsx +703 -0
- package/src/components/admin/DataBrowserTab.tsx +505 -0
- package/src/components/admin/LoggingSettingsTab.tsx +665 -0
- package/src/components/admin/SessionsTab.tsx +414 -0
- package/src/components/admin/StatsTab.tsx +379 -0
- package/src/components/admin/VibeAdminContext.tsx +87 -0
- package/src/components/admin/VibeAdminLayout.tsx +185 -0
- package/src/components/admin/index.ts +59 -0
- package/src/components/auth/FederatedAuthSection.tsx +95 -0
- package/src/components/auth/ModeAwareLoginPage.tsx +135 -0
- package/src/components/auth/ModeAwareSignupPage.tsx +267 -0
- package/src/components/auth/TraditionalAuthSection.tsx +99 -0
- package/src/components/recovery/CompleteStep.tsx +36 -0
- package/src/components/recovery/InitiateRecoveryStep.tsx +68 -0
- package/src/components/recovery/SelectMethodStep.tsx +73 -0
- package/src/components/recovery/SetPasswordStep.tsx +97 -0
- package/src/components/recovery/VerifyCodeStep.tsx +90 -0
- package/src/components/reserved/ReservedRecoveryWarning.tsx +160 -0
- package/src/components/reserved/ReservedStatusBox.tsx +118 -0
- package/src/components/ui/BetaBadge.tsx +58 -0
- package/src/components/ui/Footer.tsx +93 -0
- package/src/config/env.ts +57 -0
- package/src/config/logger.ts +62 -0
- package/src/config/logging-config.ts +82 -0
- package/src/config/unauthenticated-routes.ts +19 -0
- package/src/config/vibe-log-transport.ts +250 -0
- package/src/edge/internal-api-url.ts +65 -0
- package/src/edge/middleware.ts +42 -0
- package/src/hooks/useAuth.ts +115 -0
- package/src/hooks/useAuthSettings.ts +97 -0
- package/src/hooks/useAvailableProviders.ts +118 -0
- package/src/hooks/usePasswordValidation.ts +127 -0
- package/src/hooks/useProfile.ts +75 -0
- package/src/hooks/usePublicAuthSettings.ts +149 -0
- package/src/hooks/useSessionExpiration.ts +102 -0
- package/src/hooks/useViabilitySession.ts +335 -0
- package/src/index.ts +63 -0
- package/src/lib/anon-session.ts +213 -0
- package/src/lib/api-handler.ts +625 -0
- package/src/lib/app-slug.ts +178 -0
- package/src/lib/demo-mode.ts +13 -0
- package/src/lib/geolocation.ts +265 -0
- package/src/lib/idp-client-config.ts +442 -0
- package/src/lib/idp-fetch.ts +101 -0
- package/src/lib/internal-api.ts +171 -0
- package/src/lib/jwt-decode-client.ts +45 -0
- package/src/lib/jwt-decode.ts +83 -0
- package/src/lib/nextauth-secret.ts +126 -0
- package/src/lib/rate-limit-service.ts +9 -0
- package/src/lib/redis.ts +27 -0
- package/src/lib/refresh-token-validator.ts +64 -0
- package/src/lib/roles.ts +177 -0
- package/src/lib/secret-validation.ts +8 -0
- package/src/lib/session-store.ts +637 -0
- package/src/lib/session.ts +34 -0
- package/src/lib/site-logger.ts +245 -0
- package/src/lib/standardized-client-api.ts +896 -0
- package/src/lib/startup-init.ts +247 -0
- package/src/lib/test-aware-get-token.ts +30 -0
- package/src/lib/token-expiry.ts +40 -0
- package/src/lib/token-lifecycle.ts +477 -0
- package/src/lib/types/api-responses.ts +336 -0
- package/src/lib/user-agent-parser.ts +252 -0
- package/src/logging/api/admin-analytics.ts +51 -0
- package/src/logging/api/audit-log.ts +53 -0
- package/src/logging/components/AdminAnalyticsLayout.tsx +49 -0
- package/src/logging/components/AuditLogViewer.tsx +125 -0
- package/src/logging/components/ErrorMetricsCard.tsx +98 -0
- package/src/logging/components/HealthMetricsCard.tsx +70 -0
- package/src/logging/hooks/useAdminAnalytics.ts +22 -0
- package/src/logging/hooks/useAuditLog.ts +24 -0
- package/src/logging/hooks/useErrorMetrics.ts +40 -0
- package/src/logging/hooks/useHealthMetrics.ts +44 -0
- package/src/logging/index.ts +18 -0
- package/src/logging/types/analytics.ts +81 -0
- package/src/logging/types/audit.ts +31 -0
- package/src/logging/types/index.ts +3 -0
- package/src/middleware/auth-decision.ts +43 -0
- package/src/middleware/create-middleware.ts +626 -0
- package/src/middleware/rbac-check.ts +244 -0
- package/src/middleware/twofa-presets.ts +224 -0
- package/src/models/DecodedAccessToken.ts +17 -0
- package/src/models/SessionModel.ts +258 -0
- package/src/pages/admin-login/page.tsx +229 -0
- package/src/pages/admin-roles/RolesAdminPage.tsx +357 -0
- package/src/pages/admin-roles/index.ts +9 -0
- package/src/pages/admin-roles/modals.tsx +469 -0
- package/src/pages/client-admin/ClientSiteAdminPage.tsx +380 -0
- package/src/pages/client-admin/index.ts +33 -0
- package/src/pages/login/page.tsx +463 -0
- package/src/pages/profile/EnhancedProfilePage.tsx +479 -0
- package/src/pages/profile/index.ts +9 -0
- package/src/pages/profile/page.tsx +166 -0
- package/src/pages/recovery/page.tsx +234 -0
- package/src/pages/roles/MyRolesPage.tsx +211 -0
- package/src/pages/roles/components.tsx +294 -0
- package/src/pages/roles/index.ts +17 -0
- package/src/pages/security/EnhancedSecurityPage.tsx +574 -0
- package/src/pages/security/index.ts +9 -0
- package/src/pages/security/page.tsx +507 -0
- package/src/pages/settings/EnhancedSettingsPage.tsx +642 -0
- package/src/pages/settings/index.ts +9 -0
- package/src/pages/settings/page.tsx +47 -0
- package/src/pages/showcase/ShowcasePage.tsx +530 -0
- package/src/pages/showcase/index.ts +13 -0
- package/src/pages/test-env/EmergencyLogoutPage.tsx +179 -0
- package/src/pages/test-env/JwtInspectPage.tsx +418 -0
- package/src/pages/test-env/RefreshTokenPage.tsx +155 -0
- package/src/pages/test-env/TestEnvPage.tsx +116 -0
- package/src/pages/test-env/index.ts +25 -0
- package/src/pages/verify-code/page.tsx +648 -0
- package/src/routes/account/index.ts +32 -0
- package/src/routes/account/masked-info.ts +37 -0
- package/src/routes/account/send-code.ts +40 -0
- package/src/routes/account/update-phone.ts +13 -0
- package/src/routes/account/verify-email.ts +41 -0
- package/src/routes/account/verify-sms.ts +41 -0
- package/src/routes/auth/index.ts +23 -0
- package/src/routes/auth/logout.ts +127 -0
- package/src/routes/auth/nextauth.ts +71 -0
- package/src/routes/auth/refresh.ts +54 -0
- package/src/routes/auth/session.ts +193 -0
- package/src/routes/auth/settings.ts +75 -0
- package/src/routes/auth/viability.ts +220 -0
- package/src/routes/index.ts +18 -0
- package/src/routes/session/index.ts +7 -0
- package/src/routes/session/refresh-viability.ts +17 -0
- package/src/services/signalrActivityService.ts +258 -0
- package/src/stores/authStore.ts +1904 -0
- package/src/templates/instrumentation.ts +41 -0
- package/src/theme/ThemeProvider.tsx +39 -0
- package/src/theme/default.ts +33 -0
- package/src/theme/index.ts +31 -0
- package/src/theme/types.ts +69 -0
- package/src/theme/useTheme.ts +57 -0
- package/src/theme/utils.ts +40 -0
- package/src/types/api.ts +13 -0
- package/src/types/auth.d.ts +15 -0
- package/src/types/auth.ts +22 -0
- package/src/types/logging.ts +11 -0
- package/src/types/next-auth.d.ts +15 -0
- package/src/types/recovery.ts +54 -0
- package/src/types/security.ts +1 -0
- package/src/utils/api.ts +353 -0
- package/src/utils/circuitBreaker.ts +40 -0
- package/src/utils/error-message.ts +108 -0
- package/src/utils/layout/reservedSpace.ts +124 -0
- package/src/utils/logout.ts +30 -0
- package/src/vibe/client.ts +590 -0
- package/src/vibe/errors.ts +185 -0
- package/src/vibe/generic.ts +429 -0
- package/src/vibe/hooks/index.ts +367 -0
- package/src/vibe/index.ts +121 -0
- package/src/vibe/sessions.ts +551 -0
- package/src/vibe/types.ts +577 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Account Route Exports
|
|
4
|
+
*
|
|
5
|
+
* Provides ready-to-use route exports for all 2FA/account management endpoints.
|
|
6
|
+
* These routes handle the complete 2FA flow with zero configuration.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Import individual routes
|
|
11
|
+
* export { POST } from '@payez/next-mvp/routes/account/masked-info';
|
|
12
|
+
* export { POST } from '@payez/next-mvp/routes/account/send-code';
|
|
13
|
+
* export { POST } from '@payez/next-mvp/routes/account/verify-email';
|
|
14
|
+
* export { POST } from '@payez/next-mvp/routes/account/verify-sms';
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @version 2.3.0
|
|
18
|
+
* @since auth-ready-v2
|
|
19
|
+
*/
|
|
20
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
23
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
24
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
25
|
+
}
|
|
26
|
+
Object.defineProperty(o, k2, desc);
|
|
27
|
+
}) : (function(o, m, k, k2) {
|
|
28
|
+
if (k2 === undefined) k2 = k;
|
|
29
|
+
o[k2] = m[k];
|
|
30
|
+
}));
|
|
31
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
32
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
33
|
+
}) : function(o, v) {
|
|
34
|
+
o["default"] = v;
|
|
35
|
+
});
|
|
36
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
37
|
+
var ownKeys = function(o) {
|
|
38
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
39
|
+
var ar = [];
|
|
40
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
41
|
+
return ar;
|
|
42
|
+
};
|
|
43
|
+
return ownKeys(o);
|
|
44
|
+
};
|
|
45
|
+
return function (mod) {
|
|
46
|
+
if (mod && mod.__esModule) return mod;
|
|
47
|
+
var result = {};
|
|
48
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
49
|
+
__setModuleDefault(result, mod);
|
|
50
|
+
return result;
|
|
51
|
+
};
|
|
52
|
+
})();
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.updatePhonePOST = exports.verifySmsPOST = exports.verifyEmailPOST = exports.sendCodePOST = exports.maskedInfoPOST = exports.updatePhone = exports.verifySms = exports.verifyEmail = exports.sendCode = exports.maskedInfo = void 0;
|
|
55
|
+
// Export individual route modules
|
|
56
|
+
exports.maskedInfo = __importStar(require("./masked-info"));
|
|
57
|
+
exports.sendCode = __importStar(require("./send-code"));
|
|
58
|
+
exports.verifyEmail = __importStar(require("./verify-email"));
|
|
59
|
+
exports.verifySms = __importStar(require("./verify-sms"));
|
|
60
|
+
exports.updatePhone = __importStar(require("./update-phone"));
|
|
61
|
+
// Re-export POST handlers for convenience (all 2FA endpoints use POST)
|
|
62
|
+
var masked_info_1 = require("./masked-info");
|
|
63
|
+
Object.defineProperty(exports, "maskedInfoPOST", { enumerable: true, get: function () { return masked_info_1.POST; } });
|
|
64
|
+
var send_code_1 = require("./send-code");
|
|
65
|
+
Object.defineProperty(exports, "sendCodePOST", { enumerable: true, get: function () { return send_code_1.POST; } });
|
|
66
|
+
var verify_email_1 = require("./verify-email");
|
|
67
|
+
Object.defineProperty(exports, "verifyEmailPOST", { enumerable: true, get: function () { return verify_email_1.POST; } });
|
|
68
|
+
var verify_sms_1 = require("./verify-sms");
|
|
69
|
+
Object.defineProperty(exports, "verifySmsPOST", { enumerable: true, get: function () { return verify_sms_1.POST; } });
|
|
70
|
+
var update_phone_1 = require("./update-phone");
|
|
71
|
+
Object.defineProperty(exports, "updatePhonePOST", { enumerable: true, get: function () { return update_phone_1.POST; } });
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ready-to-Use Masked Info Route
|
|
3
|
+
*
|
|
4
|
+
* Provides a pre-configured handler for fetching masked contact information
|
|
5
|
+
* during 2FA flow. Can be imported directly into your app's API routes with
|
|
6
|
+
* zero configuration.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // app/api/account/masked-info/route.ts
|
|
11
|
+
* export { POST } from '@payez/next-mvp/routes/account/masked-info';
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @version 2.3.0
|
|
15
|
+
* @since auth-ready-v2
|
|
16
|
+
*/
|
|
17
|
+
export { POST } from '../../api-handlers/account/masked-info';
|
|
18
|
+
/**
|
|
19
|
+
* Pre-configured POST handler for masked contact information
|
|
20
|
+
*
|
|
21
|
+
* This endpoint is typically called during the 2FA flow to display masked
|
|
22
|
+
* email/phone options to the user.
|
|
23
|
+
*
|
|
24
|
+
* Environment variables used:
|
|
25
|
+
* - IDP_URL or NEXT_PUBLIC_IDP_URL (default: http://localhost:32785)
|
|
26
|
+
* - CLIENT_ID or NEXT_PUBLIC_IDP_CLIENT_ID (required)
|
|
27
|
+
* - NEXTAUTH_SECRET (required)
|
|
28
|
+
*
|
|
29
|
+
* Returns:
|
|
30
|
+
* - Masked email addresses
|
|
31
|
+
* - Masked phone numbers
|
|
32
|
+
* - Contact method preferences
|
|
33
|
+
*/
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Ready-to-Use Masked Info Route
|
|
4
|
+
*
|
|
5
|
+
* Provides a pre-configured handler for fetching masked contact information
|
|
6
|
+
* during 2FA flow. Can be imported directly into your app's API routes with
|
|
7
|
+
* zero configuration.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // app/api/account/masked-info/route.ts
|
|
12
|
+
* export { POST } from '@payez/next-mvp/routes/account/masked-info';
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @version 2.3.0
|
|
16
|
+
* @since auth-ready-v2
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.POST = void 0;
|
|
20
|
+
// Re-export the POST handler from api-handlers
|
|
21
|
+
// Note: IDP uses POST for masked-info endpoint
|
|
22
|
+
var masked_info_1 = require("../../api-handlers/account/masked-info");
|
|
23
|
+
Object.defineProperty(exports, "POST", { enumerable: true, get: function () { return masked_info_1.POST; } });
|
|
24
|
+
/**
|
|
25
|
+
* Pre-configured POST handler for masked contact information
|
|
26
|
+
*
|
|
27
|
+
* This endpoint is typically called during the 2FA flow to display masked
|
|
28
|
+
* email/phone options to the user.
|
|
29
|
+
*
|
|
30
|
+
* Environment variables used:
|
|
31
|
+
* - IDP_URL or NEXT_PUBLIC_IDP_URL (default: http://localhost:32785)
|
|
32
|
+
* - CLIENT_ID or NEXT_PUBLIC_IDP_CLIENT_ID (required)
|
|
33
|
+
* - NEXTAUTH_SECRET (required)
|
|
34
|
+
*
|
|
35
|
+
* Returns:
|
|
36
|
+
* - Masked email addresses
|
|
37
|
+
* - Masked phone numbers
|
|
38
|
+
* - Contact method preferences
|
|
39
|
+
*/
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ready-to-Use Send Code Route
|
|
3
|
+
*
|
|
4
|
+
* Provides a pre-configured handler for sending 2FA verification codes
|
|
5
|
+
* to the user's registered contact methods. Can be imported directly
|
|
6
|
+
* into your app's API routes with zero configuration.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // app/api/account/send-code/route.ts
|
|
11
|
+
* export { POST } from '@payez/next-mvp/routes/account/send-code';
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @version 2.3.0
|
|
15
|
+
* @since auth-ready-v2
|
|
16
|
+
*/
|
|
17
|
+
export { POST } from '../../api-handlers/account/send-code';
|
|
18
|
+
/**
|
|
19
|
+
* Pre-configured POST handler for sending verification codes
|
|
20
|
+
*
|
|
21
|
+
* This endpoint triggers the IDP to send a verification code to the
|
|
22
|
+
* user's selected contact method (email or SMS).
|
|
23
|
+
*
|
|
24
|
+
* Request body:
|
|
25
|
+
* - method: 'email' | 'sms' - The contact method to use
|
|
26
|
+
* - contactId: string - ID of the masked contact to send to
|
|
27
|
+
*
|
|
28
|
+
* Environment variables used:
|
|
29
|
+
* - IDP_URL or NEXT_PUBLIC_IDP_URL (default: http://localhost:32785)
|
|
30
|
+
* - CLIENT_ID or NEXT_PUBLIC_IDP_CLIENT_ID (required)
|
|
31
|
+
* - NEXTAUTH_SECRET (required)
|
|
32
|
+
*
|
|
33
|
+
* Returns:
|
|
34
|
+
* - Success status
|
|
35
|
+
* - Rate limit information
|
|
36
|
+
* - Cooldown timer if applicable
|
|
37
|
+
*/
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Ready-to-Use Send Code Route
|
|
4
|
+
*
|
|
5
|
+
* Provides a pre-configured handler for sending 2FA verification codes
|
|
6
|
+
* to the user's registered contact methods. Can be imported directly
|
|
7
|
+
* into your app's API routes with zero configuration.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // app/api/account/send-code/route.ts
|
|
12
|
+
* export { POST } from '@payez/next-mvp/routes/account/send-code';
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @version 2.3.0
|
|
16
|
+
* @since auth-ready-v2
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.POST = void 0;
|
|
20
|
+
// Re-export the POST handler from api-handlers
|
|
21
|
+
var send_code_1 = require("../../api-handlers/account/send-code");
|
|
22
|
+
Object.defineProperty(exports, "POST", { enumerable: true, get: function () { return send_code_1.POST; } });
|
|
23
|
+
/**
|
|
24
|
+
* Pre-configured POST handler for sending verification codes
|
|
25
|
+
*
|
|
26
|
+
* This endpoint triggers the IDP to send a verification code to the
|
|
27
|
+
* user's selected contact method (email or SMS).
|
|
28
|
+
*
|
|
29
|
+
* Request body:
|
|
30
|
+
* - method: 'email' | 'sms' - The contact method to use
|
|
31
|
+
* - contactId: string - ID of the masked contact to send to
|
|
32
|
+
*
|
|
33
|
+
* Environment variables used:
|
|
34
|
+
* - IDP_URL or NEXT_PUBLIC_IDP_URL (default: http://localhost:32785)
|
|
35
|
+
* - CLIENT_ID or NEXT_PUBLIC_IDP_CLIENT_ID (required)
|
|
36
|
+
* - NEXTAUTH_SECRET (required)
|
|
37
|
+
*
|
|
38
|
+
* Returns:
|
|
39
|
+
* - Success status
|
|
40
|
+
* - Rate limit information
|
|
41
|
+
* - Cooldown timer if applicable
|
|
42
|
+
*/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update Phone Route
|
|
3
|
+
*
|
|
4
|
+
* Ready-to-use route handler for updating phone number.
|
|
5
|
+
* Used for 2FA setup - users need to add a phone to enable SMS verification.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // app/api/account/update-phone/route.ts
|
|
10
|
+
* export { POST } from '@payez/next-mvp/routes/account/update-phone';
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export { POST } from '../../api-handlers/account/update-phone';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Update Phone Route
|
|
6
|
+
*
|
|
7
|
+
* Ready-to-use route handler for updating phone number.
|
|
8
|
+
* Used for 2FA setup - users need to add a phone to enable SMS verification.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* // app/api/account/update-phone/route.ts
|
|
13
|
+
* export { POST } from '@payez/next-mvp/routes/account/update-phone';
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
var update_phone_1 = require("../../api-handlers/account/update-phone");
|
|
17
|
+
Object.defineProperty(exports, "POST", { enumerable: true, get: function () { return update_phone_1.POST; } });
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ready-to-Use Verify Email Route
|
|
3
|
+
*
|
|
4
|
+
* Provides a pre-configured handler for verifying email-based 2FA codes.
|
|
5
|
+
* Can be imported directly into your app's API routes with zero configuration.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // app/api/account/verify-email/route.ts
|
|
10
|
+
* export { POST } from '@payez/next-mvp/routes/account/verify-email';
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @version 2.3.0
|
|
14
|
+
* @since auth-ready-v2
|
|
15
|
+
*/
|
|
16
|
+
export { POST } from '../../api-handlers/account/verify-email';
|
|
17
|
+
/**
|
|
18
|
+
* Pre-configured POST handler for verifying email 2FA codes
|
|
19
|
+
*
|
|
20
|
+
* This endpoint verifies the code sent to the user's email address
|
|
21
|
+
* and upgrades the provisional session to a full session.
|
|
22
|
+
*
|
|
23
|
+
* Request body:
|
|
24
|
+
* - code: string - The 6-digit verification code
|
|
25
|
+
* - emailId: string - ID of the email address used
|
|
26
|
+
*
|
|
27
|
+
* Environment variables used:
|
|
28
|
+
* - IDP_URL or NEXT_PUBLIC_IDP_URL (default: http://localhost:32785)
|
|
29
|
+
* - CLIENT_ID or NEXT_PUBLIC_IDP_CLIENT_ID (required)
|
|
30
|
+
* - NEXTAUTH_SECRET (required)
|
|
31
|
+
*
|
|
32
|
+
* Returns:
|
|
33
|
+
* - Upgraded access token with MFA claim
|
|
34
|
+
* - New refresh token
|
|
35
|
+
* - Session upgrade status
|
|
36
|
+
* - AMR (Authentication Methods Reference) array
|
|
37
|
+
* - ACR (Authentication Context Class) level
|
|
38
|
+
*/
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Ready-to-Use Verify Email Route
|
|
4
|
+
*
|
|
5
|
+
* Provides a pre-configured handler for verifying email-based 2FA codes.
|
|
6
|
+
* Can be imported directly into your app's API routes with zero configuration.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // app/api/account/verify-email/route.ts
|
|
11
|
+
* export { POST } from '@payez/next-mvp/routes/account/verify-email';
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @version 2.3.0
|
|
15
|
+
* @since auth-ready-v2
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.POST = void 0;
|
|
19
|
+
// Re-export the POST handler from api-handlers
|
|
20
|
+
var verify_email_1 = require("../../api-handlers/account/verify-email");
|
|
21
|
+
Object.defineProperty(exports, "POST", { enumerable: true, get: function () { return verify_email_1.POST; } });
|
|
22
|
+
/**
|
|
23
|
+
* Pre-configured POST handler for verifying email 2FA codes
|
|
24
|
+
*
|
|
25
|
+
* This endpoint verifies the code sent to the user's email address
|
|
26
|
+
* and upgrades the provisional session to a full session.
|
|
27
|
+
*
|
|
28
|
+
* Request body:
|
|
29
|
+
* - code: string - The 6-digit verification code
|
|
30
|
+
* - emailId: string - ID of the email address used
|
|
31
|
+
*
|
|
32
|
+
* Environment variables used:
|
|
33
|
+
* - IDP_URL or NEXT_PUBLIC_IDP_URL (default: http://localhost:32785)
|
|
34
|
+
* - CLIENT_ID or NEXT_PUBLIC_IDP_CLIENT_ID (required)
|
|
35
|
+
* - NEXTAUTH_SECRET (required)
|
|
36
|
+
*
|
|
37
|
+
* Returns:
|
|
38
|
+
* - Upgraded access token with MFA claim
|
|
39
|
+
* - New refresh token
|
|
40
|
+
* - Session upgrade status
|
|
41
|
+
* - AMR (Authentication Methods Reference) array
|
|
42
|
+
* - ACR (Authentication Context Class) level
|
|
43
|
+
*/
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ready-to-Use Verify SMS Route
|
|
3
|
+
*
|
|
4
|
+
* Provides a pre-configured handler for verifying SMS-based 2FA codes.
|
|
5
|
+
* Can be imported directly into your app's API routes with zero configuration.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // app/api/account/verify-sms/route.ts
|
|
10
|
+
* export { POST } from '@payez/next-mvp/routes/account/verify-sms';
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @version 2.3.0
|
|
14
|
+
* @since auth-ready-v2
|
|
15
|
+
*/
|
|
16
|
+
export { POST } from '../../api-handlers/account/verify-sms';
|
|
17
|
+
/**
|
|
18
|
+
* Pre-configured POST handler for verifying SMS 2FA codes
|
|
19
|
+
*
|
|
20
|
+
* This endpoint verifies the code sent to the user's phone number
|
|
21
|
+
* and upgrades the provisional session to a full session.
|
|
22
|
+
*
|
|
23
|
+
* Request body:
|
|
24
|
+
* - code: string - The 6-digit verification code
|
|
25
|
+
* - phoneId: string - ID of the phone number used
|
|
26
|
+
*
|
|
27
|
+
* Environment variables used:
|
|
28
|
+
* - IDP_URL or NEXT_PUBLIC_IDP_URL (default: http://localhost:32785)
|
|
29
|
+
* - CLIENT_ID or NEXT_PUBLIC_IDP_CLIENT_ID (required)
|
|
30
|
+
* - NEXTAUTH_SECRET (required)
|
|
31
|
+
*
|
|
32
|
+
* Returns:
|
|
33
|
+
* - Upgraded access token with MFA claim
|
|
34
|
+
* - New refresh token
|
|
35
|
+
* - Session upgrade status
|
|
36
|
+
* - AMR (Authentication Methods Reference) array
|
|
37
|
+
* - ACR (Authentication Context Class) level
|
|
38
|
+
*/
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Ready-to-Use Verify SMS Route
|
|
4
|
+
*
|
|
5
|
+
* Provides a pre-configured handler for verifying SMS-based 2FA codes.
|
|
6
|
+
* Can be imported directly into your app's API routes with zero configuration.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // app/api/account/verify-sms/route.ts
|
|
11
|
+
* export { POST } from '@payez/next-mvp/routes/account/verify-sms';
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @version 2.3.0
|
|
15
|
+
* @since auth-ready-v2
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.POST = void 0;
|
|
19
|
+
// Re-export the POST handler from api-handlers
|
|
20
|
+
var verify_sms_1 = require("../../api-handlers/account/verify-sms");
|
|
21
|
+
Object.defineProperty(exports, "POST", { enumerable: true, get: function () { return verify_sms_1.POST; } });
|
|
22
|
+
/**
|
|
23
|
+
* Pre-configured POST handler for verifying SMS 2FA codes
|
|
24
|
+
*
|
|
25
|
+
* This endpoint verifies the code sent to the user's phone number
|
|
26
|
+
* and upgrades the provisional session to a full session.
|
|
27
|
+
*
|
|
28
|
+
* Request body:
|
|
29
|
+
* - code: string - The 6-digit verification code
|
|
30
|
+
* - phoneId: string - ID of the phone number used
|
|
31
|
+
*
|
|
32
|
+
* Environment variables used:
|
|
33
|
+
* - IDP_URL or NEXT_PUBLIC_IDP_URL (default: http://localhost:32785)
|
|
34
|
+
* - CLIENT_ID or NEXT_PUBLIC_IDP_CLIENT_ID (required)
|
|
35
|
+
* - NEXTAUTH_SECRET (required)
|
|
36
|
+
*
|
|
37
|
+
* Returns:
|
|
38
|
+
* - Upgraded access token with MFA claim
|
|
39
|
+
* - New refresh token
|
|
40
|
+
* - Session upgrade status
|
|
41
|
+
* - AMR (Authentication Methods Reference) array
|
|
42
|
+
* - ACR (Authentication Context Class) level
|
|
43
|
+
*/
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @payez/next-mvp Ready-to-Use Route Exports
|
|
3
|
+
*
|
|
4
|
+
* Pre-configured route handlers that can be imported directly
|
|
5
|
+
* into your Next.js app with zero configuration.
|
|
6
|
+
*
|
|
7
|
+
* @version 2.0.0
|
|
8
|
+
* @since auth-ready-v2
|
|
9
|
+
*/
|
|
10
|
+
export { POST as refreshPOST } from './refresh';
|
|
11
|
+
export { GET as sessionGET, POST as sessionPOST } from './session';
|
|
12
|
+
export { POST as logoutPOST } from './logout';
|
|
13
|
+
export { GET as viabilityGET } from './viability';
|
|
14
|
+
export { GET as nextAuthGET, POST as nextAuthPOST } from './nextauth';
|
|
15
|
+
export * as refresh from './refresh';
|
|
16
|
+
export * as session from './session';
|
|
17
|
+
export * as logout from './logout';
|
|
18
|
+
export * as viability from './viability';
|
|
19
|
+
export * as nextauth from './nextauth';
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @payez/next-mvp Ready-to-Use Route Exports
|
|
4
|
+
*
|
|
5
|
+
* Pre-configured route handlers that can be imported directly
|
|
6
|
+
* into your Next.js app with zero configuration.
|
|
7
|
+
*
|
|
8
|
+
* @version 2.0.0
|
|
9
|
+
* @since auth-ready-v2
|
|
10
|
+
*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.nextauth = exports.viability = exports.logout = exports.session = exports.refresh = exports.nextAuthPOST = exports.nextAuthGET = exports.viabilityGET = exports.logoutPOST = exports.sessionPOST = exports.sessionGET = exports.refreshPOST = void 0;
|
|
46
|
+
// Export individual route handlers
|
|
47
|
+
var refresh_1 = require("./refresh");
|
|
48
|
+
Object.defineProperty(exports, "refreshPOST", { enumerable: true, get: function () { return refresh_1.POST; } });
|
|
49
|
+
var session_1 = require("./session");
|
|
50
|
+
Object.defineProperty(exports, "sessionGET", { enumerable: true, get: function () { return session_1.GET; } });
|
|
51
|
+
Object.defineProperty(exports, "sessionPOST", { enumerable: true, get: function () { return session_1.POST; } });
|
|
52
|
+
var logout_1 = require("./logout");
|
|
53
|
+
Object.defineProperty(exports, "logoutPOST", { enumerable: true, get: function () { return logout_1.POST; } });
|
|
54
|
+
var viability_1 = require("./viability");
|
|
55
|
+
Object.defineProperty(exports, "viabilityGET", { enumerable: true, get: function () { return viability_1.GET; } });
|
|
56
|
+
var nextauth_1 = require("./nextauth");
|
|
57
|
+
Object.defineProperty(exports, "nextAuthGET", { enumerable: true, get: function () { return nextauth_1.GET; } });
|
|
58
|
+
Object.defineProperty(exports, "nextAuthPOST", { enumerable: true, get: function () { return nextauth_1.POST; } });
|
|
59
|
+
// Also export as namespaced objects for cleaner imports
|
|
60
|
+
exports.refresh = __importStar(require("./refresh"));
|
|
61
|
+
exports.session = __importStar(require("./session"));
|
|
62
|
+
exports.logout = __importStar(require("./logout"));
|
|
63
|
+
exports.viability = __importStar(require("./viability"));
|
|
64
|
+
exports.nextauth = __importStar(require("./nextauth"));
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ready-to-Use Logout Route
|
|
3
|
+
*
|
|
4
|
+
* Provides a pre-configured logout handler that properly cleans up
|
|
5
|
+
* sessions and revokes tokens.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // app/api/auth/logout/route.ts
|
|
10
|
+
* export { POST } from '@payez/next-mvp/routes/auth/logout';
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @version 2.0.0
|
|
14
|
+
* @since auth-ready-v2
|
|
15
|
+
*/
|
|
16
|
+
import { NextRequest, NextResponse } from 'next/server';
|
|
17
|
+
/**
|
|
18
|
+
* POST /api/auth/logout - Sign out and clean up session
|
|
19
|
+
*
|
|
20
|
+
* Performs complete logout:
|
|
21
|
+
* 1. Revokes tokens at IDP (if refresh token available)
|
|
22
|
+
* 2. Deletes session from store
|
|
23
|
+
* 3. Clears NextAuth session cookie
|
|
24
|
+
*/
|
|
25
|
+
export declare function POST(req: NextRequest): Promise<NextResponse<{
|
|
26
|
+
success: boolean;
|
|
27
|
+
message: string;
|
|
28
|
+
}> | NextResponse<{
|
|
29
|
+
error: string;
|
|
30
|
+
details: string;
|
|
31
|
+
}>>;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Ready-to-Use Logout Route
|
|
4
|
+
*
|
|
5
|
+
* Provides a pre-configured logout handler that properly cleans up
|
|
6
|
+
* sessions and revokes tokens.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // app/api/auth/logout/route.ts
|
|
11
|
+
* export { POST } from '@payez/next-mvp/routes/auth/logout';
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @version 2.0.0
|
|
15
|
+
* @since auth-ready-v2
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.POST = POST;
|
|
19
|
+
const server_1 = require("next/server");
|
|
20
|
+
const jwt_1 = require("next-auth/jwt");
|
|
21
|
+
const session_store_1 = require("../../lib/session-store");
|
|
22
|
+
const app_slug_1 = require("../../lib/app-slug");
|
|
23
|
+
const idp_client_config_1 = require("../../lib/idp-client-config");
|
|
24
|
+
const site_logger_1 = require("../../lib/site-logger");
|
|
25
|
+
async function getConfig() {
|
|
26
|
+
const idpConfig = await (0, idp_client_config_1.getIDPClientConfig)();
|
|
27
|
+
const idpBaseUrl = process.env.IDP_URL;
|
|
28
|
+
if (!idpBaseUrl) {
|
|
29
|
+
throw new Error('[IDP_URL] FATAL: IDP_URL environment variable is REQUIRED.');
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
nextAuthSecret: idpConfig.nextAuthSecret || '',
|
|
33
|
+
idpBaseUrl,
|
|
34
|
+
clientId: process.env.CLIENT_ID || process.env.NEXT_PUBLIC_IDP_CLIENT_ID || '',
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* POST /api/auth/logout - Sign out and clean up session
|
|
39
|
+
*
|
|
40
|
+
* Performs complete logout:
|
|
41
|
+
* 1. Revokes tokens at IDP (if refresh token available)
|
|
42
|
+
* 2. Deletes session from store
|
|
43
|
+
* 3. Clears NextAuth session cookie
|
|
44
|
+
*/
|
|
45
|
+
async function POST(req) {
|
|
46
|
+
const { nextAuthSecret, idpBaseUrl, clientId } = await getConfig();
|
|
47
|
+
try {
|
|
48
|
+
const token = await (0, jwt_1.getToken)({ req, secret: nextAuthSecret, cookieName: (0, app_slug_1.getJwtCookieName)() });
|
|
49
|
+
if (!token) {
|
|
50
|
+
// Already logged out
|
|
51
|
+
return server_1.NextResponse.json({
|
|
52
|
+
success: true,
|
|
53
|
+
message: 'No active session'
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// Support both field names: sessionToken (auth.ts JWT) and redisSessionId (legacy)
|
|
57
|
+
const sessionId = token.sessionToken || token.redisSessionId;
|
|
58
|
+
// Delete session from store (this also removes the refresh token)
|
|
59
|
+
if (sessionId) {
|
|
60
|
+
try {
|
|
61
|
+
await (0, session_store_1.deleteSession)(sessionId);
|
|
62
|
+
console.info('[LOGOUT_ROUTE] Session deleted from store');
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
console.warn('[LOGOUT_ROUTE] Failed to delete session:', error);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Log logout event (fire-and-forget)
|
|
69
|
+
const userId = token.sub || token.idpUserId;
|
|
70
|
+
if (userId) {
|
|
71
|
+
site_logger_1.siteEvents.logout({
|
|
72
|
+
user_id: userId,
|
|
73
|
+
session_id: sessionId,
|
|
74
|
+
trigger: 'user',
|
|
75
|
+
url: '/api/auth/logout',
|
|
76
|
+
user_agent: req.headers.get('user-agent') || undefined,
|
|
77
|
+
ip_address: (0, site_logger_1.getClientIp)(req.headers) || undefined,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
// Build response that clears NextAuth cookies
|
|
81
|
+
const response = server_1.NextResponse.json({
|
|
82
|
+
success: true,
|
|
83
|
+
message: 'Logged out successfully'
|
|
84
|
+
});
|
|
85
|
+
// Clear NextAuth session cookies (using app-slug prefixed names)
|
|
86
|
+
const cookieNames = [
|
|
87
|
+
(0, app_slug_1.getSessionCookieName)(),
|
|
88
|
+
(0, app_slug_1.getSecureSessionCookieName)(),
|
|
89
|
+
(0, app_slug_1.getCsrfCookieName)(),
|
|
90
|
+
(0, app_slug_1.getSecureCsrfCookieName)(),
|
|
91
|
+
(0, app_slug_1.getCallbackUrlCookieName)(),
|
|
92
|
+
`__Secure-${(0, app_slug_1.getCallbackUrlCookieName)()}`,
|
|
93
|
+
];
|
|
94
|
+
// Clear each cookie by setting it with maxAge 0
|
|
95
|
+
cookieNames.forEach(name => {
|
|
96
|
+
response.cookies.set(name, '', {
|
|
97
|
+
maxAge: 0,
|
|
98
|
+
path: '/',
|
|
99
|
+
httpOnly: true,
|
|
100
|
+
secure: process.env.NODE_ENV === 'production',
|
|
101
|
+
sameSite: 'lax'
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
return response;
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
console.error('[LOGOUT_ROUTE] Error during logout:', error);
|
|
108
|
+
return server_1.NextResponse.json({
|
|
109
|
+
error: 'Failed to logout',
|
|
110
|
+
details: error instanceof Error ? error.message : 'Unknown error'
|
|
111
|
+
}, { status: 500 });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ready-to-Use NextAuth Route Handler
|
|
3
|
+
*
|
|
4
|
+
* Provides a pre-configured NextAuth handler that uses dynamic OAuth providers
|
|
5
|
+
* loaded from IDP at startup via getAuthOptions().
|
|
6
|
+
*
|
|
7
|
+
* @version 2.2.0 - Dynamic provider loading from IDP
|
|
8
|
+
* @since auth-ready-v2-hotfix
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* GET handler for NextAuth
|
|
12
|
+
* Uses async factory to get dynamic providers from IDP
|
|
13
|
+
*/
|
|
14
|
+
export declare function GET(request: Request, context: any): Promise<any>;
|
|
15
|
+
/**
|
|
16
|
+
* POST handler for NextAuth
|
|
17
|
+
* Uses async factory to get dynamic providers from IDP
|
|
18
|
+
*/
|
|
19
|
+
export declare function POST(request: Request, context: any): Promise<any>;
|