@payez/next-mvp 3.9.1 → 4.0.1
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/package.json +6 -18
- package/src/api/auth-handler.ts +550 -549
- package/src/api-handlers/account/change-password.ts +5 -8
- package/src/api-handlers/admin/analytics.ts +4 -6
- package/src/api-handlers/admin/audit.ts +5 -7
- package/src/api-handlers/admin/index.ts +1 -2
- package/src/api-handlers/admin/redis-sessions.ts +6 -8
- package/src/api-handlers/admin/sessions.ts +5 -7
- package/src/api-handlers/admin/site-logs.ts +8 -10
- package/src/api-handlers/admin/stats.ts +4 -6
- package/src/api-handlers/admin/users.ts +5 -7
- package/src/api-handlers/admin/vibe-data.ts +10 -12
- package/src/api-handlers/auth/refresh.ts +5 -7
- package/src/api-handlers/auth/signout.ts +5 -6
- package/src/api-handlers/auth/status.ts +4 -7
- package/src/api-handlers/auth/update-session.ts +123 -125
- package/src/api-handlers/auth/verify-code.ts +9 -13
- package/src/api-handlers/session/viability.ts +10 -47
- package/src/api-handlers/test/force-expire.ts +4 -11
- package/src/auth/auth-decision.ts +1 -1
- package/src/auth/better-auth.ts +138 -141
- package/src/auth/route-config.ts +219 -219
- package/src/auth/utils/token-utils.ts +0 -1
- package/src/client/AuthContext.tsx +6 -2
- package/src/client/fetch-with-auth.ts +47 -47
- package/src/components/SessionSync.tsx +6 -5
- package/src/components/account/MobileNavDrawer.tsx +3 -3
- package/src/components/account/UserAvatarMenu.tsx +6 -3
- package/src/components/admin/VibeAdminLayout.tsx +4 -2
- package/src/config/logger.ts +1 -1
- package/src/hooks/useAuth.ts +117 -115
- package/src/hooks/useAuthSettings.ts +2 -2
- package/src/hooks/useAvailableProviders.ts +9 -5
- package/src/hooks/useSessionExpiration.ts +101 -102
- package/src/hooks/useViabilitySession.ts +336 -335
- package/src/index.ts +60 -63
- package/src/lib/api-handler.ts +0 -1
- package/src/lib/app-slug.ts +6 -6
- package/src/lib/standardized-client-api.ts +901 -895
- package/src/lib/startup-init.ts +243 -247
- package/src/lib/test-aware-get-token.ts +22 -12
- package/src/lib/token-lifecycle.ts +12 -53
- package/src/pages/admin-login/page.tsx +9 -17
- package/src/pages/client-admin/ClientSiteAdminPage.tsx +4 -2
- package/src/pages/login/page.tsx +21 -28
- package/src/pages/showcase/ShowcasePage.tsx +4 -2
- package/src/pages/test-env/EmergencyLogoutPage.tsx +7 -6
- package/src/pages/test-env/JwtInspectPage.tsx +5 -3
- package/src/pages/test-env/RefreshTokenPage.tsx +157 -155
- package/src/pages/test-env/TestEnvPage.tsx +4 -2
- package/src/pages/verify-code/page.tsx +10 -6
- package/src/routes/auth/logout.ts +7 -25
- package/src/routes/auth/nextauth.ts +45 -71
- package/src/routes/auth/session.ts +25 -50
- package/src/routes/auth/viability.ts +7 -19
- package/src/server/auth.ts +60 -0
- package/src/stores/authStore.ts +1899 -1904
- package/src/utils/logout.ts +30 -30
- package/dist/api/auth-handler.d.ts +0 -67
- package/dist/api/auth-handler.js +0 -397
- package/dist/api/index.d.ts +0 -10
- package/dist/api/index.js +0 -19
- package/dist/api-handlers/account/change-password.d.ts +0 -9
- package/dist/api-handlers/account/change-password.js +0 -112
- package/dist/api-handlers/account/masked-info.d.ts +0 -2
- package/dist/api-handlers/account/masked-info.js +0 -41
- package/dist/api-handlers/account/profile.d.ts +0 -3
- package/dist/api-handlers/account/profile.js +0 -63
- package/dist/api-handlers/account/recovery/initiate.d.ts +0 -2
- package/dist/api-handlers/account/recovery/initiate.js +0 -26
- package/dist/api-handlers/account/recovery/send-code.d.ts +0 -2
- package/dist/api-handlers/account/recovery/send-code.js +0 -28
- package/dist/api-handlers/account/recovery/verify-code.d.ts +0 -2
- package/dist/api-handlers/account/recovery/verify-code.js +0 -28
- package/dist/api-handlers/account/reset-password.d.ts +0 -2
- package/dist/api-handlers/account/reset-password.js +0 -26
- package/dist/api-handlers/account/send-code.d.ts +0 -24
- package/dist/api-handlers/account/send-code.js +0 -60
- package/dist/api-handlers/account/update-phone.d.ts +0 -27
- package/dist/api-handlers/account/update-phone.js +0 -64
- package/dist/api-handlers/account/validate-password.d.ts +0 -17
- package/dist/api-handlers/account/validate-password.js +0 -81
- package/dist/api-handlers/account/verify-email.d.ts +0 -26
- package/dist/api-handlers/account/verify-email.js +0 -106
- package/dist/api-handlers/account/verify-sms.d.ts +0 -26
- package/dist/api-handlers/account/verify-sms.js +0 -106
- package/dist/api-handlers/admin/analytics.d.ts +0 -20
- package/dist/api-handlers/admin/analytics.js +0 -379
- package/dist/api-handlers/admin/audit.d.ts +0 -20
- package/dist/api-handlers/admin/audit.js +0 -214
- package/dist/api-handlers/admin/index.d.ts +0 -22
- package/dist/api-handlers/admin/index.js +0 -43
- package/dist/api-handlers/admin/redis-sessions.d.ts +0 -36
- package/dist/api-handlers/admin/redis-sessions.js +0 -204
- package/dist/api-handlers/admin/sessions.d.ts +0 -21
- package/dist/api-handlers/admin/sessions.js +0 -284
- package/dist/api-handlers/admin/site-logs.d.ts +0 -46
- package/dist/api-handlers/admin/site-logs.js +0 -318
- package/dist/api-handlers/admin/stats.d.ts +0 -21
- package/dist/api-handlers/admin/stats.js +0 -240
- package/dist/api-handlers/admin/users.d.ts +0 -20
- package/dist/api-handlers/admin/users.js +0 -222
- package/dist/api-handlers/admin/vibe-data.d.ts +0 -80
- package/dist/api-handlers/admin/vibe-data.js +0 -268
- package/dist/api-handlers/anon/preferences.d.ts +0 -37
- package/dist/api-handlers/anon/preferences.js +0 -96
- package/dist/api-handlers/auth/jwks.d.ts +0 -2
- package/dist/api-handlers/auth/jwks.js +0 -24
- package/dist/api-handlers/auth/login.d.ts +0 -42
- package/dist/api-handlers/auth/login.js +0 -178
- package/dist/api-handlers/auth/refresh.d.ts +0 -74
- package/dist/api-handlers/auth/refresh.js +0 -635
- package/dist/api-handlers/auth/signout.d.ts +0 -37
- package/dist/api-handlers/auth/signout.js +0 -187
- package/dist/api-handlers/auth/status.d.ts +0 -8
- package/dist/api-handlers/auth/status.js +0 -26
- package/dist/api-handlers/auth/update-session.d.ts +0 -37
- package/dist/api-handlers/auth/update-session.js +0 -95
- package/dist/api-handlers/auth/validate.d.ts +0 -6
- package/dist/api-handlers/auth/validate.js +0 -43
- package/dist/api-handlers/auth/verify-code.d.ts +0 -43
- package/dist/api-handlers/auth/verify-code.js +0 -94
- package/dist/api-handlers/session/refresh-viability.d.ts +0 -14
- package/dist/api-handlers/session/refresh-viability.js +0 -39
- package/dist/api-handlers/session/viability.d.ts +0 -13
- package/dist/api-handlers/session/viability.js +0 -146
- package/dist/api-handlers/test/force-expire.d.ts +0 -23
- package/dist/api-handlers/test/force-expire.js +0 -65
- package/dist/auth/auth-decision.d.ts +0 -39
- package/dist/auth/auth-decision.js +0 -182
- package/dist/auth/auth-options.d.ts +0 -57
- package/dist/auth/auth-options.js +0 -213
- package/dist/auth/better-auth.d.ts +0 -82
- package/dist/auth/better-auth.js +0 -122
- package/dist/auth/callbacks/index.d.ts +0 -6
- package/dist/auth/callbacks/index.js +0 -12
- package/dist/auth/callbacks/jwt.d.ts +0 -45
- package/dist/auth/callbacks/jwt.js +0 -305
- package/dist/auth/callbacks/session.d.ts +0 -60
- package/dist/auth/callbacks/session.js +0 -170
- package/dist/auth/callbacks/signin.d.ts +0 -23
- package/dist/auth/callbacks/signin.js +0 -44
- package/dist/auth/events/index.d.ts +0 -4
- package/dist/auth/events/index.js +0 -8
- package/dist/auth/events/signout.d.ts +0 -17
- package/dist/auth/events/signout.js +0 -32
- package/dist/auth/providers/credentials.d.ts +0 -32
- package/dist/auth/providers/credentials.js +0 -223
- package/dist/auth/providers/index.d.ts +0 -5
- package/dist/auth/providers/index.js +0 -21
- package/dist/auth/providers/oauth.d.ts +0 -26
- package/dist/auth/providers/oauth.js +0 -105
- package/dist/auth/route-config.d.ts +0 -66
- package/dist/auth/route-config.js +0 -190
- package/dist/auth/types/auth-types.d.ts +0 -417
- package/dist/auth/types/auth-types.js +0 -53
- package/dist/auth/types/index.d.ts +0 -6
- package/dist/auth/types/index.js +0 -22
- package/dist/auth/unauthenticated-routes.d.ts +0 -1
- package/dist/auth/unauthenticated-routes.js +0 -19
- package/dist/auth/utils/idp-client.d.ts +0 -94
- package/dist/auth/utils/idp-client.js +0 -384
- package/dist/auth/utils/index.d.ts +0 -5
- package/dist/auth/utils/index.js +0 -21
- package/dist/auth/utils/token-utils.d.ts +0 -84
- package/dist/auth/utils/token-utils.js +0 -219
- package/dist/client/AuthContext.d.ts +0 -19
- package/dist/client/AuthContext.js +0 -112
- package/dist/client/better-auth-client.d.ts +0 -1020
- package/dist/client/better-auth-client.js +0 -68
- package/dist/client/fetch-with-auth.d.ts +0 -11
- package/dist/client/fetch-with-auth.js +0 -44
- package/dist/client/fetchWithSession.d.ts +0 -3
- package/dist/client/fetchWithSession.js +0 -24
- package/dist/client/index.d.ts +0 -9
- package/dist/client/index.js +0 -20
- package/dist/client/useAnonSession.d.ts +0 -36
- package/dist/client/useAnonSession.js +0 -99
- package/dist/components/SessionSync.d.ts +0 -13
- package/dist/components/SessionSync.js +0 -119
- package/dist/components/SignalRHealthCheck.d.ts +0 -10
- package/dist/components/SignalRHealthCheck.js +0 -97
- package/dist/components/account/MobileNavDrawer.d.ts +0 -32
- package/dist/components/account/MobileNavDrawer.js +0 -81
- package/dist/components/account/UserAvatarMenu.d.ts +0 -20
- package/dist/components/account/UserAvatarMenu.js +0 -88
- package/dist/components/account/index.d.ts +0 -9
- package/dist/components/account/index.js +0 -13
- package/dist/components/admin/AlertSettingsTab.d.ts +0 -48
- package/dist/components/admin/AlertSettingsTab.js +0 -351
- package/dist/components/admin/AnalyticsTab.d.ts +0 -22
- package/dist/components/admin/AnalyticsTab.js +0 -167
- package/dist/components/admin/DataBrowserTab.d.ts +0 -19
- package/dist/components/admin/DataBrowserTab.js +0 -252
- package/dist/components/admin/LoggingSettingsTab.d.ts +0 -73
- package/dist/components/admin/LoggingSettingsTab.js +0 -339
- package/dist/components/admin/SessionsTab.d.ts +0 -37
- package/dist/components/admin/SessionsTab.js +0 -165
- package/dist/components/admin/StatsTab.d.ts +0 -53
- package/dist/components/admin/StatsTab.js +0 -161
- package/dist/components/admin/VibeAdminContext.d.ts +0 -32
- package/dist/components/admin/VibeAdminContext.js +0 -38
- package/dist/components/admin/VibeAdminLayout.d.ts +0 -11
- package/dist/components/admin/VibeAdminLayout.js +0 -69
- package/dist/components/admin/index.d.ts +0 -29
- package/dist/components/admin/index.js +0 -44
- package/dist/components/auth/FederatedAuthSection.d.ts +0 -8
- package/dist/components/auth/FederatedAuthSection.js +0 -45
- package/dist/components/auth/ModeAwareLoginPage.d.ts +0 -10
- package/dist/components/auth/ModeAwareLoginPage.js +0 -42
- package/dist/components/auth/ModeAwareSignupPage.d.ts +0 -9
- package/dist/components/auth/ModeAwareSignupPage.js +0 -78
- package/dist/components/auth/TraditionalAuthSection.d.ts +0 -14
- package/dist/components/auth/TraditionalAuthSection.js +0 -20
- package/dist/components/recovery/CompleteStep.d.ts +0 -5
- package/dist/components/recovery/CompleteStep.js +0 -8
- package/dist/components/recovery/InitiateRecoveryStep.d.ts +0 -8
- package/dist/components/recovery/InitiateRecoveryStep.js +0 -20
- package/dist/components/recovery/SelectMethodStep.d.ts +0 -8
- package/dist/components/recovery/SelectMethodStep.js +0 -8
- package/dist/components/recovery/SetPasswordStep.d.ts +0 -6
- package/dist/components/recovery/SetPasswordStep.js +0 -20
- package/dist/components/recovery/VerifyCodeStep.d.ts +0 -10
- package/dist/components/recovery/VerifyCodeStep.js +0 -24
- package/dist/components/reserved/ReservedRecoveryWarning.d.ts +0 -38
- package/dist/components/reserved/ReservedRecoveryWarning.js +0 -92
- package/dist/components/reserved/ReservedStatusBox.d.ts +0 -30
- package/dist/components/reserved/ReservedStatusBox.js +0 -71
- package/dist/components/ui/BetaBadge.d.ts +0 -29
- package/dist/components/ui/BetaBadge.js +0 -38
- package/dist/components/ui/Footer.d.ts +0 -37
- package/dist/components/ui/Footer.js +0 -41
- package/dist/config/env.d.ts +0 -66
- package/dist/config/env.js +0 -57
- package/dist/config/logger.d.ts +0 -57
- package/dist/config/logger.js +0 -73
- package/dist/config/logging-config.d.ts +0 -30
- package/dist/config/logging-config.js +0 -122
- package/dist/config/unauthenticated-routes.d.ts +0 -17
- package/dist/config/unauthenticated-routes.js +0 -24
- package/dist/config/vibe-log-transport.d.ts +0 -81
- package/dist/config/vibe-log-transport.js +0 -212
- package/dist/edge/internal-api-url.d.ts +0 -53
- package/dist/edge/internal-api-url.js +0 -63
- package/dist/edge/middleware.d.ts +0 -14
- package/dist/edge/middleware.js +0 -32
- package/dist/hooks/useAuth.d.ts +0 -23
- package/dist/hooks/useAuth.js +0 -81
- package/dist/hooks/useAuthSettings.d.ts +0 -59
- package/dist/hooks/useAuthSettings.js +0 -93
- package/dist/hooks/useAvailableProviders.d.ts +0 -45
- package/dist/hooks/useAvailableProviders.js +0 -108
- package/dist/hooks/usePasswordValidation.d.ts +0 -27
- package/dist/hooks/usePasswordValidation.js +0 -102
- package/dist/hooks/useProfile.d.ts +0 -15
- package/dist/hooks/useProfile.js +0 -59
- package/dist/hooks/usePublicAuthSettings.d.ts +0 -56
- package/dist/hooks/usePublicAuthSettings.js +0 -131
- package/dist/hooks/useSessionExpiration.d.ts +0 -57
- package/dist/hooks/useSessionExpiration.js +0 -72
- package/dist/hooks/useViabilitySession.d.ts +0 -75
- package/dist/hooks/useViabilitySession.js +0 -268
- package/dist/index.d.ts +0 -12
- package/dist/index.js +0 -55
- package/dist/lib/anon-session.d.ts +0 -74
- package/dist/lib/anon-session.js +0 -169
- package/dist/lib/api-handler.d.ts +0 -123
- package/dist/lib/api-handler.js +0 -478
- package/dist/lib/app-slug.d.ts +0 -95
- package/dist/lib/app-slug.js +0 -172
- package/dist/lib/demo-mode.d.ts +0 -6
- package/dist/lib/demo-mode.js +0 -16
- package/dist/lib/geolocation.d.ts +0 -64
- package/dist/lib/geolocation.js +0 -235
- package/dist/lib/idp-client-config.d.ts +0 -75
- package/dist/lib/idp-client-config.js +0 -425
- package/dist/lib/idp-fetch.d.ts +0 -14
- package/dist/lib/idp-fetch.js +0 -91
- package/dist/lib/internal-api.d.ts +0 -87
- package/dist/lib/internal-api.js +0 -122
- package/dist/lib/jwt-decode-client.d.ts +0 -10
- package/dist/lib/jwt-decode-client.js +0 -46
- package/dist/lib/jwt-decode.d.ts +0 -48
- package/dist/lib/jwt-decode.js +0 -57
- package/dist/lib/nextauth-secret.d.ts +0 -10
- package/dist/lib/nextauth-secret.js +0 -100
- package/dist/lib/rate-limit-service.d.ts +0 -23
- package/dist/lib/rate-limit-service.js +0 -6
- package/dist/lib/redis.d.ts +0 -5
- package/dist/lib/redis.js +0 -28
- package/dist/lib/refresh-token-validator.d.ts +0 -13
- package/dist/lib/refresh-token-validator.js +0 -117
- package/dist/lib/roles.d.ts +0 -145
- package/dist/lib/roles.js +0 -168
- package/dist/lib/secret-validation.d.ts +0 -4
- package/dist/lib/secret-validation.js +0 -14
- package/dist/lib/session-store.d.ts +0 -170
- package/dist/lib/session-store.js +0 -545
- package/dist/lib/session.d.ts +0 -21
- package/dist/lib/session.js +0 -26
- package/dist/lib/site-logger.d.ts +0 -214
- package/dist/lib/site-logger.js +0 -210
- package/dist/lib/standardized-client-api.d.ts +0 -161
- package/dist/lib/standardized-client-api.js +0 -786
- package/dist/lib/startup-init.d.ts +0 -40
- package/dist/lib/startup-init.js +0 -261
- package/dist/lib/test-aware-get-token.d.ts +0 -2
- package/dist/lib/test-aware-get-token.js +0 -81
- package/dist/lib/token-expiry.d.ts +0 -14
- package/dist/lib/token-expiry.js +0 -39
- package/dist/lib/token-lifecycle.d.ts +0 -52
- package/dist/lib/token-lifecycle.js +0 -398
- package/dist/lib/types/api-responses.d.ts +0 -128
- package/dist/lib/types/api-responses.js +0 -171
- package/dist/lib/user-agent-parser.d.ts +0 -50
- package/dist/lib/user-agent-parser.js +0 -220
- package/dist/logging/api/admin-analytics.d.ts +0 -3
- package/dist/logging/api/admin-analytics.js +0 -45
- package/dist/logging/api/audit-log.d.ts +0 -3
- package/dist/logging/api/audit-log.js +0 -52
- package/dist/logging/components/AdminAnalyticsLayout.d.ts +0 -10
- package/dist/logging/components/AdminAnalyticsLayout.js +0 -11
- package/dist/logging/components/AuditLogViewer.d.ts +0 -7
- package/dist/logging/components/AuditLogViewer.js +0 -51
- package/dist/logging/components/ErrorMetricsCard.d.ts +0 -7
- package/dist/logging/components/ErrorMetricsCard.js +0 -16
- package/dist/logging/components/HealthMetricsCard.d.ts +0 -7
- package/dist/logging/components/HealthMetricsCard.js +0 -19
- package/dist/logging/hooks/useAdminAnalytics.d.ts +0 -24
- package/dist/logging/hooks/useAdminAnalytics.js +0 -22
- package/dist/logging/hooks/useAuditLog.d.ts +0 -6
- package/dist/logging/hooks/useAuditLog.js +0 -25
- package/dist/logging/hooks/useErrorMetrics.d.ts +0 -6
- package/dist/logging/hooks/useErrorMetrics.js +0 -38
- package/dist/logging/hooks/useHealthMetrics.d.ts +0 -6
- package/dist/logging/hooks/useHealthMetrics.js +0 -41
- package/dist/logging/index.d.ts +0 -11
- package/dist/logging/index.js +0 -40
- package/dist/logging/types/analytics.d.ts +0 -68
- package/dist/logging/types/analytics.js +0 -3
- package/dist/logging/types/audit.d.ts +0 -29
- package/dist/logging/types/audit.js +0 -2
- package/dist/logging/types/index.d.ts +0 -2
- package/dist/logging/types/index.js +0 -19
- package/dist/middleware/auth-decision.d.ts +0 -33
- package/dist/middleware/auth-decision.js +0 -65
- package/dist/middleware/create-middleware.d.ts +0 -102
- package/dist/middleware/create-middleware.js +0 -469
- package/dist/middleware/rbac-check.d.ts +0 -51
- package/dist/middleware/rbac-check.js +0 -219
- package/dist/middleware/twofa-presets.d.ts +0 -134
- package/dist/middleware/twofa-presets.js +0 -175
- package/dist/models/DecodedAccessToken.d.ts +0 -17
- package/dist/models/DecodedAccessToken.js +0 -2
- package/dist/models/SessionModel.d.ts +0 -122
- package/dist/models/SessionModel.js +0 -136
- package/dist/pages/admin-login/page.d.ts +0 -31
- package/dist/pages/admin-login/page.js +0 -83
- package/dist/pages/admin-page-permissions/PagePermissionsAdminPage.d.ts +0 -18
- package/dist/pages/admin-page-permissions/PagePermissionsAdminPage.js +0 -276
- package/dist/pages/admin-page-permissions/index.d.ts +0 -6
- package/dist/pages/admin-page-permissions/index.js +0 -13
- package/dist/pages/admin-roles/RolesAdminPage.d.ts +0 -16
- package/dist/pages/admin-roles/RolesAdminPage.js +0 -261
- package/dist/pages/admin-roles/index.d.ts +0 -8
- package/dist/pages/admin-roles/index.js +0 -15
- package/dist/pages/admin-roles/modals.d.ts +0 -72
- package/dist/pages/admin-roles/modals.js +0 -154
- package/dist/pages/client-admin/ClientSiteAdminPage.d.ts +0 -79
- package/dist/pages/client-admin/ClientSiteAdminPage.js +0 -177
- package/dist/pages/client-admin/index.d.ts +0 -32
- package/dist/pages/client-admin/index.js +0 -37
- package/dist/pages/coming-soon/page.d.ts +0 -8
- package/dist/pages/coming-soon/page.js +0 -28
- package/dist/pages/login/page.d.ts +0 -22
- package/dist/pages/login/page.js +0 -239
- package/dist/pages/profile/EnhancedProfilePage.d.ts +0 -13
- package/dist/pages/profile/EnhancedProfilePage.js +0 -150
- package/dist/pages/profile/index.d.ts +0 -8
- package/dist/pages/profile/index.js +0 -16
- package/dist/pages/profile/page.d.ts +0 -19
- package/dist/pages/profile/page.js +0 -47
- package/dist/pages/profile/profile-patch.d.ts +0 -1
- package/dist/pages/profile/profile-patch.js +0 -281
- package/dist/pages/recovery/page.d.ts +0 -1
- package/dist/pages/recovery/page.js +0 -142
- package/dist/pages/roles/MyRolesPage.d.ts +0 -24
- package/dist/pages/roles/MyRolesPage.js +0 -71
- package/dist/pages/roles/components.d.ts +0 -63
- package/dist/pages/roles/components.js +0 -108
- package/dist/pages/roles/index.d.ts +0 -8
- package/dist/pages/roles/index.js +0 -19
- package/dist/pages/security/EnhancedSecurityPage.d.ts +0 -14
- package/dist/pages/security/EnhancedSecurityPage.js +0 -248
- package/dist/pages/security/index.d.ts +0 -8
- package/dist/pages/security/index.js +0 -16
- package/dist/pages/security/page.d.ts +0 -21
- package/dist/pages/security/page.js +0 -212
- package/dist/pages/security/security-patch.d.ts +0 -1
- package/dist/pages/security/security-patch.js +0 -302
- package/dist/pages/settings/EnhancedSettingsPage.d.ts +0 -46
- package/dist/pages/settings/EnhancedSettingsPage.js +0 -231
- package/dist/pages/settings/index.d.ts +0 -8
- package/dist/pages/settings/index.js +0 -16
- package/dist/pages/settings/page.d.ts +0 -7
- package/dist/pages/settings/page.js +0 -26
- package/dist/pages/showcase/ShowcasePage.d.ts +0 -13
- package/dist/pages/showcase/ShowcasePage.js +0 -140
- package/dist/pages/showcase/index.d.ts +0 -12
- package/dist/pages/showcase/index.js +0 -17
- package/dist/pages/test-env/EmergencyLogoutPage.d.ts +0 -14
- package/dist/pages/test-env/EmergencyLogoutPage.js +0 -98
- package/dist/pages/test-env/JwtInspectPage.d.ts +0 -14
- package/dist/pages/test-env/JwtInspectPage.js +0 -114
- package/dist/pages/test-env/RefreshTokenPage.d.ts +0 -15
- package/dist/pages/test-env/RefreshTokenPage.js +0 -91
- package/dist/pages/test-env/TestEnvPage.d.ts +0 -13
- package/dist/pages/test-env/TestEnvPage.js +0 -49
- package/dist/pages/test-env/index.d.ts +0 -24
- package/dist/pages/test-env/index.js +0 -32
- package/dist/pages/verify-code/page.d.ts +0 -30
- package/dist/pages/verify-code/page.js +0 -408
- package/dist/routes/account/index.d.ts +0 -28
- package/dist/routes/account/index.js +0 -71
- package/dist/routes/account/masked-info.d.ts +0 -33
- package/dist/routes/account/masked-info.js +0 -39
- package/dist/routes/account/send-code.d.ts +0 -37
- package/dist/routes/account/send-code.js +0 -42
- package/dist/routes/account/update-phone.d.ts +0 -13
- package/dist/routes/account/update-phone.js +0 -17
- package/dist/routes/account/verify-email.d.ts +0 -38
- package/dist/routes/account/verify-email.js +0 -43
- package/dist/routes/account/verify-sms.d.ts +0 -38
- package/dist/routes/account/verify-sms.js +0 -43
- package/dist/routes/auth/index.d.ts +0 -19
- package/dist/routes/auth/index.js +0 -64
- package/dist/routes/auth/logout.d.ts +0 -31
- package/dist/routes/auth/logout.js +0 -113
- package/dist/routes/auth/nextauth.d.ts +0 -19
- package/dist/routes/auth/nextauth.js +0 -72
- package/dist/routes/auth/refresh.d.ts +0 -30
- package/dist/routes/auth/refresh.js +0 -51
- package/dist/routes/auth/session.d.ts +0 -43
- package/dist/routes/auth/session.js +0 -179
- package/dist/routes/auth/settings.d.ts +0 -25
- package/dist/routes/auth/settings.js +0 -55
- package/dist/routes/auth/viability.d.ts +0 -52
- package/dist/routes/auth/viability.js +0 -201
- package/dist/routes/index.d.ts +0 -12
- package/dist/routes/index.js +0 -54
- package/dist/routes/session/index.d.ts +0 -6
- package/dist/routes/session/index.js +0 -10
- package/dist/routes/session/refresh-viability.d.ts +0 -16
- package/dist/routes/session/refresh-viability.js +0 -20
- package/dist/server/auth-guard.d.ts +0 -46
- package/dist/server/auth-guard.js +0 -128
- package/dist/server/decode-session.d.ts +0 -30
- package/dist/server/decode-session.js +0 -78
- package/dist/server/slim-middleware.d.ts +0 -23
- package/dist/server/slim-middleware.js +0 -89
- package/dist/server/with-auth.d.ts +0 -33
- package/dist/server/with-auth.js +0 -59
- package/dist/services/signalrActivityService.d.ts +0 -44
- package/dist/services/signalrActivityService.js +0 -257
- package/dist/stores/authStore.d.ts +0 -154
- package/dist/stores/authStore.js +0 -1531
- package/dist/theme/ThemeProvider.d.ts +0 -14
- package/dist/theme/ThemeProvider.js +0 -28
- package/dist/theme/default.d.ts +0 -8
- package/dist/theme/default.js +0 -33
- package/dist/theme/index.d.ts +0 -15
- package/dist/theme/index.js +0 -25
- package/dist/theme/types.d.ts +0 -56
- package/dist/theme/types.js +0 -8
- package/dist/theme/useTheme.d.ts +0 -60
- package/dist/theme/useTheme.js +0 -63
- package/dist/theme/utils.d.ts +0 -13
- package/dist/theme/utils.js +0 -39
- package/dist/types/api.d.ts +0 -134
- package/dist/types/api.js +0 -44
- package/dist/types/auth.d.ts +0 -19
- package/dist/types/auth.js +0 -2
- package/dist/types/logging.d.ts +0 -42
- package/dist/types/logging.js +0 -2
- package/dist/types/recovery.d.ts +0 -48
- package/dist/types/recovery.js +0 -2
- package/dist/types/security.d.ts +0 -1
- package/dist/types/security.js +0 -2
- package/dist/utils/api.d.ts +0 -85
- package/dist/utils/api.js +0 -287
- package/dist/utils/circuitBreaker.d.ts +0 -43
- package/dist/utils/circuitBreaker.js +0 -91
- package/dist/utils/error-message.d.ts +0 -1
- package/dist/utils/error-message.js +0 -103
- package/dist/utils/layout/reservedSpace.d.ts +0 -59
- package/dist/utils/layout/reservedSpace.js +0 -102
- package/dist/utils/logout.d.ts +0 -14
- package/dist/utils/logout.js +0 -32
- package/dist/vibe/client.d.ts +0 -261
- package/dist/vibe/client.js +0 -445
- package/dist/vibe/enterprise-auth.d.ts +0 -106
- package/dist/vibe/enterprise-auth.js +0 -173
- package/dist/vibe/errors.d.ts +0 -83
- package/dist/vibe/errors.js +0 -146
- package/dist/vibe/generic.d.ts +0 -234
- package/dist/vibe/generic.js +0 -369
- package/dist/vibe/hooks/index.d.ts +0 -169
- package/dist/vibe/hooks/index.js +0 -252
- package/dist/vibe/index.d.ts +0 -25
- package/dist/vibe/index.js +0 -72
- package/dist/vibe/sessions.d.ts +0 -161
- package/dist/vibe/sessions.js +0 -391
- package/dist/vibe/types.d.ts +0 -353
- package/dist/vibe/types.js +0 -315
- package/src/auth/auth-options.ts +0 -237
- package/src/auth/callbacks/index.ts +0 -7
- package/src/auth/callbacks/jwt.ts +0 -382
- package/src/auth/callbacks/session.ts +0 -243
- package/src/auth/callbacks/signin.ts +0 -56
- package/src/auth/events/index.ts +0 -5
- package/src/auth/events/signout.ts +0 -33
- package/src/auth/providers/credentials.ts +0 -256
- package/src/auth/providers/index.ts +0 -6
- package/src/auth/providers/oauth.ts +0 -114
- package/src/lib/nextauth-secret.ts +0 -121
- package/src/types/next-auth.d.ts +0 -15
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from 'next/server';
|
|
2
|
-
import {
|
|
3
|
-
import { resolveNextAuthSecret } from '../../lib/nextauth-secret';
|
|
2
|
+
import { getSession as getBetterAuthSession } from '../../server/auth';
|
|
4
3
|
import { getSession } from '../../lib/session-store';
|
|
5
|
-
import { getJwtCookieName } from '../../lib/app-slug';
|
|
6
4
|
|
|
7
5
|
interface ChangePasswordRequest {
|
|
8
6
|
current_password: string;
|
|
@@ -17,11 +15,10 @@ import { nanoid } from 'nanoid';
|
|
|
17
15
|
export async function POST(req: NextRequest) {
|
|
18
16
|
const requestId = nanoid();
|
|
19
17
|
try {
|
|
20
|
-
// Get session
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
if (!token || typeof sessionToken !== 'string') {
|
|
18
|
+
// Get session from Better Auth
|
|
19
|
+
const betterAuthSession = await getBetterAuthSession(req);
|
|
20
|
+
const sessionToken = betterAuthSession?.session?.token as string | undefined;
|
|
21
|
+
if (!betterAuthSession || typeof sessionToken !== 'string') {
|
|
25
22
|
return NextResponse.json({ success: false, message: 'Unauthorized' }, { status: 401 });
|
|
26
23
|
}
|
|
27
24
|
const sessionData = await getSession(sessionToken);
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { NextRequest, NextResponse } from 'next/server';
|
|
12
|
-
import {
|
|
12
|
+
import { getSession } from '../../server/auth';
|
|
13
13
|
import { getStartupIDPConfig } from '../../lib/startup-init';
|
|
14
14
|
import { ADMIN_ROLES, hasAnyRole } from '../../lib/roles';
|
|
15
15
|
|
|
@@ -18,9 +18,8 @@ interface VibeRequestOptions {
|
|
|
18
18
|
body?: unknown;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
async function checkAdminRole(
|
|
22
|
-
const
|
|
23
|
-
const session = await getServerSession(authOptions) as any;
|
|
21
|
+
async function checkAdminRole(request: NextRequest): Promise<{ isAdmin: boolean; error?: NextResponse }> {
|
|
22
|
+
const session = await getSession(request) as any;
|
|
24
23
|
|
|
25
24
|
if (!session?.user) {
|
|
26
25
|
return {
|
|
@@ -110,7 +109,6 @@ function getCountryFlag(countryCode: string): string {
|
|
|
110
109
|
}
|
|
111
110
|
|
|
112
111
|
export interface AdminAnalyticsHandlerConfig {
|
|
113
|
-
getAuthOptions: () => Promise<any>;
|
|
114
112
|
}
|
|
115
113
|
|
|
116
114
|
/**
|
|
@@ -120,7 +118,7 @@ export interface AdminAnalyticsHandlerConfig {
|
|
|
120
118
|
export function createAnalyticsHandler(config: AdminAnalyticsHandlerConfig) {
|
|
121
119
|
return {
|
|
122
120
|
async POST(request: NextRequest) {
|
|
123
|
-
const adminCheck = await checkAdminRole(
|
|
121
|
+
const adminCheck = await checkAdminRole(request);
|
|
124
122
|
if (adminCheck.error) return adminCheck.error;
|
|
125
123
|
|
|
126
124
|
const body = await request.json();
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { NextRequest, NextResponse } from 'next/server';
|
|
11
|
-
import {
|
|
11
|
+
import { getSession } from '../../server/auth';
|
|
12
12
|
import { getStartupIDPConfig } from '../../lib/startup-init';
|
|
13
13
|
import { ADMIN_ROLES, hasAnyRole } from '../../lib/roles';
|
|
14
14
|
|
|
@@ -17,9 +17,8 @@ interface VibeRequestOptions {
|
|
|
17
17
|
body?: unknown;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
async function checkAdminRole(
|
|
21
|
-
const
|
|
22
|
-
const session = await getServerSession(authOptions) as any;
|
|
20
|
+
async function checkAdminRole(request: NextRequest): Promise<{ isAdmin: boolean; error?: NextResponse }> {
|
|
21
|
+
const session = await getSession(request) as any;
|
|
23
22
|
|
|
24
23
|
if (!session?.user) {
|
|
25
24
|
return {
|
|
@@ -100,7 +99,6 @@ async function vibeServiceRequest<T = unknown>(
|
|
|
100
99
|
}
|
|
101
100
|
|
|
102
101
|
export interface AdminAuditHandlerConfig {
|
|
103
|
-
getAuthOptions: () => Promise<any>;
|
|
104
102
|
}
|
|
105
103
|
|
|
106
104
|
/**
|
|
@@ -110,7 +108,7 @@ export interface AdminAuditHandlerConfig {
|
|
|
110
108
|
export function createAuditHandler(config: AdminAuditHandlerConfig) {
|
|
111
109
|
return {
|
|
112
110
|
async GET(request: NextRequest) {
|
|
113
|
-
const adminCheck = await checkAdminRole(
|
|
111
|
+
const adminCheck = await checkAdminRole(request);
|
|
114
112
|
if (adminCheck.error) return adminCheck.error;
|
|
115
113
|
|
|
116
114
|
const { searchParams } = new URL(request.url);
|
|
@@ -178,7 +176,7 @@ export function createAuditHandler(config: AdminAuditHandlerConfig) {
|
|
|
178
176
|
},
|
|
179
177
|
|
|
180
178
|
async POST(request: NextRequest) {
|
|
181
|
-
const adminCheck = await checkAdminRole(
|
|
179
|
+
const adminCheck = await checkAdminRole(request);
|
|
182
180
|
if (adminCheck.error) return adminCheck.error;
|
|
183
181
|
|
|
184
182
|
const body = await request.json();
|
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
* ------
|
|
9
9
|
* // In your app's API route (e.g., app/api/admin/vibe/data/[collection]/[table]/route.ts)
|
|
10
10
|
* import { createGetTableDataHandler } from '@payez/next-mvp/api-handlers/admin';
|
|
11
|
-
* import { getAuthOptions } from '@payez/next-mvp/auth/auth-options';
|
|
12
11
|
*
|
|
13
|
-
* export const GET = createGetTableDataHandler({
|
|
12
|
+
* export const GET = createGetTableDataHandler({ ... });
|
|
14
13
|
*/
|
|
15
14
|
|
|
16
15
|
export {
|
|
@@ -12,21 +12,19 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import { NextRequest, NextResponse } from 'next/server';
|
|
15
|
-
import {
|
|
15
|
+
import { getSession } from '../../server/auth';
|
|
16
16
|
import { getRedis } from '../../lib/redis';
|
|
17
17
|
import { ADMIN_ROLES, hasAnyRole } from '../../lib/roles';
|
|
18
18
|
|
|
19
19
|
export interface RedisSessionsHandlerConfig {
|
|
20
|
-
getAuthOptions: () => Promise<any>;
|
|
21
20
|
appSlug?: string;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
23
|
/**
|
|
25
24
|
* Check if the current user has admin role
|
|
26
25
|
*/
|
|
27
|
-
async function checkAdminRole(
|
|
28
|
-
const
|
|
29
|
-
const session = await getServerSession(authOptions) as any;
|
|
26
|
+
async function checkAdminRole(request: NextRequest): Promise<{ isAdmin: boolean; userId?: number; error?: NextResponse }> {
|
|
27
|
+
const session = await getSession(request) as any;
|
|
30
28
|
|
|
31
29
|
if (!session?.user) {
|
|
32
30
|
return {
|
|
@@ -66,7 +64,7 @@ export function createRedisSessionsHandler(config: RedisSessionsHandlerConfig) {
|
|
|
66
64
|
|
|
67
65
|
return {
|
|
68
66
|
async GET(request: NextRequest) {
|
|
69
|
-
const adminCheck = await checkAdminRole(
|
|
67
|
+
const adminCheck = await checkAdminRole(request);
|
|
70
68
|
if (adminCheck.error) return adminCheck.error;
|
|
71
69
|
|
|
72
70
|
try {
|
|
@@ -140,7 +138,7 @@ export function createRedisSessionsHandler(config: RedisSessionsHandlerConfig) {
|
|
|
140
138
|
},
|
|
141
139
|
|
|
142
140
|
async DELETE(request: NextRequest) {
|
|
143
|
-
const adminCheck = await checkAdminRole(
|
|
141
|
+
const adminCheck = await checkAdminRole(request);
|
|
144
142
|
if (adminCheck.error) return adminCheck.error;
|
|
145
143
|
|
|
146
144
|
try {
|
|
@@ -196,7 +194,7 @@ export function createRedisSessionRevokeHandler(config: RedisSessionsHandlerConf
|
|
|
196
194
|
|
|
197
195
|
return {
|
|
198
196
|
async POST(request: NextRequest, { params }: { params: { sessionId: string } }) {
|
|
199
|
-
const adminCheck = await checkAdminRole(
|
|
197
|
+
const adminCheck = await checkAdminRole(request);
|
|
200
198
|
if (adminCheck.error) return adminCheck.error;
|
|
201
199
|
|
|
202
200
|
try {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { NextRequest, NextResponse } from 'next/server';
|
|
12
|
-
import {
|
|
12
|
+
import { getSession } from '../../server/auth';
|
|
13
13
|
import { getStartupIDPConfig } from '../../lib/startup-init';
|
|
14
14
|
import { ADMIN_ROLES, hasAnyRole } from '../../lib/roles';
|
|
15
15
|
|
|
@@ -21,9 +21,8 @@ interface VibeRequestOptions {
|
|
|
21
21
|
/**
|
|
22
22
|
* Check if the current user has admin role
|
|
23
23
|
*/
|
|
24
|
-
async function checkAdminRole(
|
|
25
|
-
const
|
|
26
|
-
const session = await getServerSession(authOptions) as any;
|
|
24
|
+
async function checkAdminRole(request: NextRequest): Promise<{ isAdmin: boolean; userId?: number; error?: NextResponse }> {
|
|
25
|
+
const session = await getSession(request) as any;
|
|
27
26
|
|
|
28
27
|
if (!session?.user) {
|
|
29
28
|
return {
|
|
@@ -126,7 +125,6 @@ function getCountryFlag(countryCode: string): string {
|
|
|
126
125
|
}
|
|
127
126
|
|
|
128
127
|
export interface AdminSessionsHandlerConfig {
|
|
129
|
-
getAuthOptions: () => Promise<any>;
|
|
130
128
|
}
|
|
131
129
|
|
|
132
130
|
/**
|
|
@@ -136,7 +134,7 @@ export interface AdminSessionsHandlerConfig {
|
|
|
136
134
|
export function createSessionsHandler(config: AdminSessionsHandlerConfig) {
|
|
137
135
|
return {
|
|
138
136
|
async GET(request: NextRequest) {
|
|
139
|
-
const adminCheck = await checkAdminRole(
|
|
137
|
+
const adminCheck = await checkAdminRole(request);
|
|
140
138
|
if (adminCheck.error) return adminCheck.error;
|
|
141
139
|
|
|
142
140
|
const { searchParams } = new URL(request.url);
|
|
@@ -201,7 +199,7 @@ export function createSessionsHandler(config: AdminSessionsHandlerConfig) {
|
|
|
201
199
|
},
|
|
202
200
|
|
|
203
201
|
async POST(request: NextRequest) {
|
|
204
|
-
const adminCheck = await checkAdminRole(
|
|
202
|
+
const adminCheck = await checkAdminRole(request);
|
|
205
203
|
if (adminCheck.error) return adminCheck.error;
|
|
206
204
|
|
|
207
205
|
const body = await request.json();
|
|
@@ -13,14 +13,13 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import { NextRequest, NextResponse } from 'next/server';
|
|
16
|
-
import {
|
|
16
|
+
import { getSession } from '../../server/auth';
|
|
17
17
|
import { getRedis } from '../../lib/redis';
|
|
18
18
|
import { ADMIN_ROLES, hasAnyRole } from '../../lib/roles';
|
|
19
19
|
const REDIS_SITE_LOG_KEY = 'vibe:site-logs:pending';
|
|
20
20
|
const REDIS_LOG_TTL = 7 * 24 * 60 * 60; // 1 week
|
|
21
21
|
|
|
22
22
|
export interface SiteLogsHandlerConfig {
|
|
23
|
-
getAuthOptions: () => Promise<any>;
|
|
24
23
|
vibeApiUrl?: string;
|
|
25
24
|
appSlug?: string;
|
|
26
25
|
vibeClientId?: string;
|
|
@@ -29,9 +28,8 @@ export interface SiteLogsHandlerConfig {
|
|
|
29
28
|
/**
|
|
30
29
|
* Check if the current user has admin role
|
|
31
30
|
*/
|
|
32
|
-
async function checkAdminRole(
|
|
33
|
-
const
|
|
34
|
-
const session = await getServerSession(authOptions) as any;
|
|
31
|
+
async function checkAdminRole(request: NextRequest): Promise<{ isAdmin: boolean; userId?: number; accessToken?: string; clientId?: string; error?: NextResponse }> {
|
|
32
|
+
const session = await getSession(request) as any;
|
|
35
33
|
|
|
36
34
|
if (!session?.user) {
|
|
37
35
|
return {
|
|
@@ -78,7 +76,7 @@ function getVibeApiUrl(config: SiteLogsHandlerConfig): string {
|
|
|
78
76
|
export function createSiteLogsHandler(config: SiteLogsHandlerConfig) {
|
|
79
77
|
return {
|
|
80
78
|
async GET(request: NextRequest) {
|
|
81
|
-
const adminCheck = await checkAdminRole(
|
|
79
|
+
const adminCheck = await checkAdminRole(request);
|
|
82
80
|
if (adminCheck.error) return adminCheck.error;
|
|
83
81
|
|
|
84
82
|
const { searchParams } = new URL(request.url);
|
|
@@ -127,7 +125,7 @@ export function createSiteLogsHandler(config: SiteLogsHandlerConfig) {
|
|
|
127
125
|
},
|
|
128
126
|
|
|
129
127
|
async POST(request: NextRequest) {
|
|
130
|
-
const adminCheck = await checkAdminRole(
|
|
128
|
+
const adminCheck = await checkAdminRole(request);
|
|
131
129
|
if (adminCheck.error) return adminCheck.error;
|
|
132
130
|
|
|
133
131
|
try {
|
|
@@ -211,7 +209,7 @@ export function createSiteLogsHandler(config: SiteLogsHandlerConfig) {
|
|
|
211
209
|
export function createSiteLogsStatsHandler(config: SiteLogsHandlerConfig) {
|
|
212
210
|
return {
|
|
213
211
|
async GET(request: NextRequest) {
|
|
214
|
-
const adminCheck = await checkAdminRole(
|
|
212
|
+
const adminCheck = await checkAdminRole(request);
|
|
215
213
|
if (adminCheck.error) return adminCheck.error;
|
|
216
214
|
|
|
217
215
|
const { searchParams } = new URL(request.url);
|
|
@@ -261,7 +259,7 @@ export function createSiteLogsStatsHandler(config: SiteLogsHandlerConfig) {
|
|
|
261
259
|
export function createSiteLogsDrainHandler(config: SiteLogsHandlerConfig) {
|
|
262
260
|
return {
|
|
263
261
|
async POST(request: NextRequest) {
|
|
264
|
-
const adminCheck = await checkAdminRole(
|
|
262
|
+
const adminCheck = await checkAdminRole(request);
|
|
265
263
|
if (adminCheck.error) return adminCheck.error;
|
|
266
264
|
|
|
267
265
|
const { searchParams } = new URL(request.url);
|
|
@@ -310,7 +308,7 @@ export function createSiteLogsDrainHandler(config: SiteLogsHandlerConfig) {
|
|
|
310
308
|
export function createSiteLogsQueueHandler(config: SiteLogsHandlerConfig) {
|
|
311
309
|
return {
|
|
312
310
|
async GET(request: NextRequest) {
|
|
313
|
-
const adminCheck = await checkAdminRole(
|
|
311
|
+
const adminCheck = await checkAdminRole(request);
|
|
314
312
|
if (adminCheck.error) return adminCheck.error;
|
|
315
313
|
|
|
316
314
|
try {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { NextRequest, NextResponse } from 'next/server';
|
|
12
|
-
import {
|
|
12
|
+
import { getSession } from '../../server/auth';
|
|
13
13
|
import { getStartupIDPConfig } from '../../lib/startup-init';
|
|
14
14
|
import { getRedis } from '../../lib/redis';
|
|
15
15
|
import { ADMIN_ROLES } from '../../lib/roles';
|
|
@@ -19,9 +19,8 @@ interface VibeRequestOptions {
|
|
|
19
19
|
body?: unknown;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
async function checkAdminRole(
|
|
23
|
-
const
|
|
24
|
-
const session = await getServerSession(authOptions) as any;
|
|
22
|
+
async function checkAdminRole(request: NextRequest): Promise<{ isAdmin: boolean; error?: NextResponse }> {
|
|
23
|
+
const session = await getSession(request) as any;
|
|
25
24
|
|
|
26
25
|
if (!session?.user) {
|
|
27
26
|
return {
|
|
@@ -101,7 +100,6 @@ async function vibeServiceRequest<T = unknown>(
|
|
|
101
100
|
}
|
|
102
101
|
|
|
103
102
|
export interface AdminStatsHandlerConfig {
|
|
104
|
-
getAuthOptions: () => Promise<any>;
|
|
105
103
|
appSlug?: string;
|
|
106
104
|
}
|
|
107
105
|
|
|
@@ -117,7 +115,7 @@ export function createStatsHandler(config: AdminStatsHandlerConfig) {
|
|
|
117
115
|
|
|
118
116
|
return {
|
|
119
117
|
async GET(_request: NextRequest) {
|
|
120
|
-
const adminCheck = await checkAdminRole(
|
|
118
|
+
const adminCheck = await checkAdminRole(_request);
|
|
121
119
|
if (adminCheck.error) return adminCheck.error;
|
|
122
120
|
|
|
123
121
|
try {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { NextRequest, NextResponse } from 'next/server';
|
|
11
|
-
import {
|
|
11
|
+
import { getSession } from '../../server/auth';
|
|
12
12
|
import { getStartupIDPConfig } from '../../lib/startup-init';
|
|
13
13
|
import { ADMIN_ROLES, hasAnyRole } from '../../lib/roles';
|
|
14
14
|
|
|
@@ -17,9 +17,8 @@ interface VibeRequestOptions {
|
|
|
17
17
|
body?: unknown;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
async function checkAdminRole(
|
|
21
|
-
const
|
|
22
|
-
const session = await getServerSession(authOptions) as any;
|
|
20
|
+
async function checkAdminRole(request: NextRequest): Promise<{ isAdmin: boolean; error?: NextResponse }> {
|
|
21
|
+
const session = await getSession(request) as any;
|
|
23
22
|
|
|
24
23
|
if (!session?.user) {
|
|
25
24
|
return {
|
|
@@ -100,7 +99,6 @@ async function vibeServiceRequest<T = unknown>(
|
|
|
100
99
|
}
|
|
101
100
|
|
|
102
101
|
export interface AdminUsersHandlerConfig {
|
|
103
|
-
getAuthOptions: () => Promise<any>;
|
|
104
102
|
}
|
|
105
103
|
|
|
106
104
|
/**
|
|
@@ -110,7 +108,7 @@ export interface AdminUsersHandlerConfig {
|
|
|
110
108
|
export function createUsersHandler(config: AdminUsersHandlerConfig) {
|
|
111
109
|
return {
|
|
112
110
|
async GET(request: NextRequest) {
|
|
113
|
-
const adminCheck = await checkAdminRole(
|
|
111
|
+
const adminCheck = await checkAdminRole(request);
|
|
114
112
|
if (adminCheck.error) return adminCheck.error;
|
|
115
113
|
|
|
116
114
|
const { searchParams } = new URL(request.url);
|
|
@@ -175,7 +173,7 @@ export function createUsersHandler(config: AdminUsersHandlerConfig) {
|
|
|
175
173
|
},
|
|
176
174
|
|
|
177
175
|
async POST(request: NextRequest) {
|
|
178
|
-
const adminCheck = await checkAdminRole(
|
|
176
|
+
const adminCheck = await checkAdminRole(request);
|
|
179
177
|
if (adminCheck.error) return adminCheck.error;
|
|
180
178
|
|
|
181
179
|
const body = await request.json();
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { NextRequest, NextResponse } from 'next/server';
|
|
12
|
-
import {
|
|
12
|
+
import { getSession } from '../../server/auth';
|
|
13
13
|
import { getStartupIDPConfig } from '../../lib/startup-init';
|
|
14
14
|
import { ADMIN_ROLES, hasAnyRole } from '../../lib/roles';
|
|
15
15
|
|
|
@@ -21,9 +21,8 @@ interface VibeRequestOptions {
|
|
|
21
21
|
/**
|
|
22
22
|
* Check if the current user has admin role
|
|
23
23
|
*/
|
|
24
|
-
async function checkAdminRole(
|
|
25
|
-
const
|
|
26
|
-
const session = await getServerSession(authOptions) as any;
|
|
24
|
+
async function checkAdminRole(request: NextRequest): Promise<{ isAdmin: boolean; error?: NextResponse }> {
|
|
25
|
+
const session = await getSession(request) as any;
|
|
27
26
|
|
|
28
27
|
if (!session?.user) {
|
|
29
28
|
return {
|
|
@@ -125,7 +124,6 @@ async function vibeServiceRequest<T = unknown>(
|
|
|
125
124
|
// =============================================================================
|
|
126
125
|
|
|
127
126
|
export interface AdminVibeHandlerConfig {
|
|
128
|
-
getAuthOptions: () => Promise<any>;
|
|
129
127
|
}
|
|
130
128
|
|
|
131
129
|
/**
|
|
@@ -134,7 +132,7 @@ export interface AdminVibeHandlerConfig {
|
|
|
134
132
|
*/
|
|
135
133
|
export function createGetCollectionsHandler(config: AdminVibeHandlerConfig) {
|
|
136
134
|
return async function GET(request: NextRequest) {
|
|
137
|
-
const adminCheck = await checkAdminRole(
|
|
135
|
+
const adminCheck = await checkAdminRole(request);
|
|
138
136
|
if (adminCheck.error) return adminCheck.error;
|
|
139
137
|
|
|
140
138
|
const result = await vibeServiceRequest<any>('/v1/collections', { method: 'GET' });
|
|
@@ -160,7 +158,7 @@ export function createGetTablesHandler(config: AdminVibeHandlerConfig) {
|
|
|
160
158
|
{ params }: { params: Promise<{ collection: string }> }
|
|
161
159
|
) {
|
|
162
160
|
const { collection } = await params;
|
|
163
|
-
const adminCheck = await checkAdminRole(
|
|
161
|
+
const adminCheck = await checkAdminRole(request);
|
|
164
162
|
if (adminCheck.error) return adminCheck.error;
|
|
165
163
|
|
|
166
164
|
const result = await vibeServiceRequest<any>(`/v1/collections/${collection}/tables`, { method: 'GET' });
|
|
@@ -186,7 +184,7 @@ export function createGetTableDataHandler(config: AdminVibeHandlerConfig) {
|
|
|
186
184
|
{ params }: { params: Promise<{ collection: string; table: string }> }
|
|
187
185
|
) {
|
|
188
186
|
const { collection, table } = await params;
|
|
189
|
-
const adminCheck = await checkAdminRole(
|
|
187
|
+
const adminCheck = await checkAdminRole(request);
|
|
190
188
|
if (adminCheck.error) return adminCheck.error;
|
|
191
189
|
|
|
192
190
|
const searchParams = request.nextUrl.searchParams.toString();
|
|
@@ -220,7 +218,7 @@ export function createGetRecordHandler(config: AdminVibeHandlerConfig) {
|
|
|
220
218
|
{ params }: { params: Promise<{ collection: string; table: string; id: string }> }
|
|
221
219
|
) {
|
|
222
220
|
const { collection, table, id } = await params;
|
|
223
|
-
const adminCheck = await checkAdminRole(
|
|
221
|
+
const adminCheck = await checkAdminRole(request);
|
|
224
222
|
if (adminCheck.error) return adminCheck.error;
|
|
225
223
|
|
|
226
224
|
const endpoint = `/v1/collections/${collection}/tables/${table}/${id}`;
|
|
@@ -248,7 +246,7 @@ export function createUpdateRecordHandler(config: AdminVibeHandlerConfig) {
|
|
|
248
246
|
{ params }: { params: Promise<{ collection: string; table: string; id: string }> }
|
|
249
247
|
) {
|
|
250
248
|
const { collection, table, id } = await params;
|
|
251
|
-
const adminCheck = await checkAdminRole(
|
|
249
|
+
const adminCheck = await checkAdminRole(request);
|
|
252
250
|
if (adminCheck.error) return adminCheck.error;
|
|
253
251
|
|
|
254
252
|
const body = await request.json();
|
|
@@ -276,7 +274,7 @@ export function createDeleteRecordHandler(config: AdminVibeHandlerConfig) {
|
|
|
276
274
|
{ params }: { params: Promise<{ collection: string; table: string; id: string }> }
|
|
277
275
|
) {
|
|
278
276
|
const { collection, table, id } = await params;
|
|
279
|
-
const adminCheck = await checkAdminRole(
|
|
277
|
+
const adminCheck = await checkAdminRole(request);
|
|
280
278
|
if (adminCheck.error) return adminCheck.error;
|
|
281
279
|
|
|
282
280
|
const endpoint = `/v1/collections/${collection}/tables/${table}/${id}`;
|
|
@@ -303,7 +301,7 @@ export function createQueryHandler(config: AdminVibeHandlerConfig) {
|
|
|
303
301
|
{ params }: { params: Promise<{ collection: string; table: string }> }
|
|
304
302
|
) {
|
|
305
303
|
const { collection, table } = await params;
|
|
306
|
-
const adminCheck = await checkAdminRole(
|
|
304
|
+
const adminCheck = await checkAdminRole(request);
|
|
307
305
|
if (adminCheck.error) return adminCheck.error;
|
|
308
306
|
|
|
309
307
|
const body = await request.json();
|
|
@@ -15,10 +15,9 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { NextRequest, NextResponse } from 'next/server';
|
|
18
|
-
import {
|
|
18
|
+
import { getSession as getBetterAuthSession } from '../../server/auth';
|
|
19
19
|
import { getSession, updateSession, acquireRefreshLock, releaseRefreshLock, checkRefreshLock } from '../../lib/session-store';
|
|
20
20
|
import { computeTokenExpiries } from '../../lib/token-expiry';
|
|
21
|
-
import { getJwtCookieName } from '../../lib/app-slug';
|
|
22
21
|
import { extractKidFromToken } from '../../auth/utils/token-utils';
|
|
23
22
|
|
|
24
23
|
interface RefreshConfig {
|
|
@@ -52,12 +51,11 @@ export function createRefreshHandler(config: RefreshConfig) {
|
|
|
52
51
|
|
|
53
52
|
return async function POST(req: NextRequest) {
|
|
54
53
|
try {
|
|
55
|
-
// Extract session
|
|
56
|
-
const
|
|
54
|
+
// Extract session from Better Auth
|
|
55
|
+
const betterAuthSession = await getBetterAuthSession(req);
|
|
57
56
|
|
|
58
|
-
|
|
59
|
-
let
|
|
60
|
-
let userId = token?.sub;
|
|
57
|
+
let sessionToken = (betterAuthSession?.session?.token) as string | undefined;
|
|
58
|
+
let userId = betterAuthSession?.user?.id;
|
|
61
59
|
|
|
62
60
|
if (!sessionToken) {
|
|
63
61
|
// Fallback: check for session token in header (for internal server-to-server calls)
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import { NextRequest, NextResponse } from 'next/server';
|
|
13
13
|
import { cookies } from 'next/headers';
|
|
14
14
|
import { deleteSession } from '../../lib/session-store';
|
|
15
|
-
import {
|
|
15
|
+
import { getSession } from '../../server/auth';
|
|
16
16
|
import {
|
|
17
17
|
getSessionCookieName,
|
|
18
18
|
getSecureSessionCookieName,
|
|
@@ -116,13 +116,12 @@ export function createSignoutHandler(config: SignoutConfig) {
|
|
|
116
116
|
// Decode NextAuth JWT to extract the Redis session UUID before deletion
|
|
117
117
|
let redisSessionToken: string | null = null;
|
|
118
118
|
|
|
119
|
-
// First attempt:
|
|
120
|
-
// Support both field names: sessionToken (auth.ts JWT) and redisSessionId (legacy)
|
|
119
|
+
// First attempt: Better Auth getSession
|
|
121
120
|
try {
|
|
122
|
-
const
|
|
123
|
-
redisSessionToken =
|
|
121
|
+
const betterAuthSession = await getSession(req);
|
|
122
|
+
redisSessionToken = betterAuthSession?.session?.token || null;
|
|
124
123
|
} catch (e) {
|
|
125
|
-
console.warn('[SIGNOUT]
|
|
124
|
+
console.warn('[SIGNOUT] getSession() failed to extract session token (will try manual decode)');
|
|
126
125
|
}
|
|
127
126
|
|
|
128
127
|
// Second attempt: manual decode of the session cookie JWT (no verification)
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from 'next/server';
|
|
2
|
-
import {
|
|
3
|
-
import { resolveNextAuthSecret } from '../../lib/nextauth-secret';
|
|
2
|
+
import { getSession } from '../../server/auth';
|
|
4
3
|
import { getSession as getRedisSession } from '../../lib/session-store';
|
|
5
|
-
import { getJwtCookieName } from '../../lib/app-slug';
|
|
6
4
|
|
|
7
5
|
export async function GET(req: NextRequest) {
|
|
8
6
|
try {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const sessionToken = (token as any)?.sessionToken || (token as any)?.redisSessionId;
|
|
7
|
+
const betterAuthSession = await getSession(req);
|
|
8
|
+
const sessionToken = betterAuthSession?.session?.token;
|
|
12
9
|
if (!sessionToken) {
|
|
13
10
|
return NextResponse.json({ success: false, error: 'No session token' }, { status: 401 });
|
|
14
11
|
}
|
|
@@ -16,7 +13,7 @@ export async function GET(req: NextRequest) {
|
|
|
16
13
|
if (!sessionModel) {
|
|
17
14
|
return NextResponse.json({ success: false, error: 'Session missing in Redis' }, { status: 401 });
|
|
18
15
|
}
|
|
19
|
-
return NextResponse.json({ success: true, userId: (sessionModel as any).userId || null });
|
|
16
|
+
return NextResponse.json({ success: true, userId: betterAuthSession?.user?.id || (sessionModel as any).userId || null });
|
|
20
17
|
} catch (err) {
|
|
21
18
|
return NextResponse.json({ success: false, error: err instanceof Error ? err.message : 'Unknown error' }, { status: 500 });
|
|
22
19
|
}
|