@civic/auth 0.3.8-beta.0 → 0.3.8-beta.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/CHANGELOG.md +1 -0
- package/README.md +9 -2
- package/dist/lib/cookies.d.ts.map +1 -1
- package/dist/lib/jwt.d.ts.map +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/oauth.d.ts.map +1 -1
- package/dist/lib/obj.d.ts.map +1 -1
- package/dist/lib/postMessage.d.ts.map +1 -1
- package/dist/lib/windowUtil.d.ts.map +1 -1
- package/dist/nextjs/config.d.ts.map +1 -1
- package/dist/nextjs/hooks/useRefresh.d.ts.map +1 -1
- package/dist/nextjs/index.d.ts.map +1 -1
- package/dist/nextjs/middleware.d.ts +4 -4
- package/dist/nextjs/middleware.d.ts.map +1 -1
- package/dist/nextjs/middleware.js +9 -7
- package/dist/nextjs/middleware.js.map +1 -1
- package/dist/nextjs/providers/NextAuthProvider.d.ts.map +1 -1
- package/dist/nextjs/routeHandler.d.ts.map +1 -1
- package/dist/nextjs/utils.d.ts.map +1 -1
- package/dist/reactjs/components/ButtonContentOrLoader.d.ts.map +1 -1
- package/dist/reactjs/components/SignInButton.d.ts.map +1 -1
- package/dist/reactjs/components/SignOutButton.d.ts.map +1 -1
- package/dist/reactjs/components/UserButton.d.ts.map +1 -1
- package/dist/reactjs/components/utils.d.ts.map +1 -1
- package/dist/reactjs/hooks/useUser.d.ts.map +1 -1
- package/dist/reactjs/providers/AuthProvider.d.ts.map +1 -1
- package/dist/reactjs/providers/CivicAuthProvider.d.ts.map +1 -1
- package/dist/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -1
- package/dist/shared/components/BlockDisplay.d.ts.map +1 -1
- package/dist/shared/components/CivicAuthIframeContainer.d.ts.map +1 -1
- package/dist/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +1 -1
- package/dist/shared/components/IFrameAndLoading.d.ts.map +1 -1
- package/dist/shared/components/LoadingIcon.d.ts.map +1 -1
- package/dist/shared/hooks/useOAuthEndpoints.d.ts.map +1 -1
- package/dist/shared/hooks/useRefresh.d.ts.map +1 -1
- package/dist/shared/hooks/useSignIn.d.ts.map +1 -1
- package/dist/shared/lib/iframeUtils.d.ts.map +1 -1
- package/dist/shared/lib/util.d.ts.map +1 -1
- package/dist/shared/providers/CivicAuthConfigContext.d.ts.map +1 -1
- package/dist/shared/providers/IframeProvider.d.ts.map +1 -1
- package/dist/shared/providers/SessionProvider.d.ts.map +1 -1
- package/dist/shared/providers/TokenProvider.d.ts.map +1 -1
- package/dist/shared/providers/UserProvider.d.ts.map +1 -1
- package/dist/shared/version.d.ts +1 -1
- package/dist/shared/version.js +1 -1
- package/dist/shared/version.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/browser/storage.d.ts +0 -10
- package/dist/cjs/browser/storage.d.ts.map +0 -1
- package/dist/cjs/browser/storage.js +0 -24
- package/dist/cjs/browser/storage.js.map +0 -1
- package/dist/cjs/config.d.ts +0 -3
- package/dist/cjs/config.d.ts.map +0 -1
- package/dist/cjs/config.js +0 -8
- package/dist/cjs/config.js.map +0 -1
- package/dist/cjs/constants.d.ts +0 -15
- package/dist/cjs/constants.d.ts.map +0 -1
- package/dist/cjs/constants.js +0 -44
- package/dist/cjs/constants.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -8
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -11
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/lib/cookies.d.ts +0 -7
- package/dist/cjs/lib/cookies.d.ts.map +0 -1
- package/dist/cjs/lib/cookies.js +0 -29
- package/dist/cjs/lib/cookies.js.map +0 -1
- package/dist/cjs/lib/jwt.d.ts +0 -3
- package/dist/cjs/lib/jwt.d.ts.map +0 -1
- package/dist/cjs/lib/jwt.js +0 -13
- package/dist/cjs/lib/jwt.js.map +0 -1
- package/dist/cjs/lib/logger.d.ts +0 -26
- package/dist/cjs/lib/logger.d.ts.map +0 -1
- package/dist/cjs/lib/logger.js +0 -62
- package/dist/cjs/lib/logger.js.map +0 -1
- package/dist/cjs/lib/oauth.d.ts +0 -19
- package/dist/cjs/lib/oauth.d.ts.map +0 -1
- package/dist/cjs/lib/oauth.js +0 -74
- package/dist/cjs/lib/oauth.js.map +0 -1
- package/dist/cjs/lib/obj.d.ts +0 -3
- package/dist/cjs/lib/obj.d.ts.map +0 -1
- package/dist/cjs/lib/obj.js +0 -21
- package/dist/cjs/lib/obj.js.map +0 -1
- package/dist/cjs/lib/postMessage.d.ts +0 -4
- package/dist/cjs/lib/postMessage.d.ts.map +0 -1
- package/dist/cjs/lib/postMessage.js +0 -16
- package/dist/cjs/lib/postMessage.js.map +0 -1
- package/dist/cjs/lib/windowUtil.d.ts +0 -4
- package/dist/cjs/lib/windowUtil.d.ts.map +0 -1
- package/dist/cjs/lib/windowUtil.js +0 -35
- package/dist/cjs/lib/windowUtil.js.map +0 -1
- package/dist/cjs/nextjs/GetUser.d.ts +0 -6
- package/dist/cjs/nextjs/GetUser.d.ts.map +0 -1
- package/dist/cjs/nextjs/GetUser.js +0 -11
- package/dist/cjs/nextjs/GetUser.js.map +0 -1
- package/dist/cjs/nextjs/NextAuthenticationRefresherImpl.d.ts +0 -11
- package/dist/cjs/nextjs/NextAuthenticationRefresherImpl.d.ts.map +0 -1
- package/dist/cjs/nextjs/NextAuthenticationRefresherImpl.js +0 -21
- package/dist/cjs/nextjs/NextAuthenticationRefresherImpl.js.map +0 -1
- package/dist/cjs/nextjs/NextClientAuthenticationRefresher.d.ts +0 -8
- package/dist/cjs/nextjs/NextClientAuthenticationRefresher.d.ts.map +0 -1
- package/dist/cjs/nextjs/NextClientAuthenticationRefresher.js +0 -28
- package/dist/cjs/nextjs/NextClientAuthenticationRefresher.js.map +0 -1
- package/dist/cjs/nextjs/NextServerAuthenticationRefresherImpl.d.ts +0 -12
- package/dist/cjs/nextjs/NextServerAuthenticationRefresherImpl.d.ts.map +0 -1
- package/dist/cjs/nextjs/NextServerAuthenticationRefresherImpl.js +0 -29
- package/dist/cjs/nextjs/NextServerAuthenticationRefresherImpl.js.map +0 -1
- package/dist/cjs/nextjs/config.d.ts +0 -209
- package/dist/cjs/nextjs/config.d.ts.map +0 -1
- package/dist/cjs/nextjs/config.js +0 -191
- package/dist/cjs/nextjs/config.js.map +0 -1
- package/dist/cjs/nextjs/cookies.d.ts +0 -16
- package/dist/cjs/nextjs/cookies.d.ts.map +0 -1
- package/dist/cjs/nextjs/cookies.js +0 -44
- package/dist/cjs/nextjs/cookies.js.map +0 -1
- package/dist/cjs/nextjs/hooks/index.d.ts +0 -2
- package/dist/cjs/nextjs/hooks/index.d.ts.map +0 -1
- package/dist/cjs/nextjs/hooks/index.js +0 -6
- package/dist/cjs/nextjs/hooks/index.js.map +0 -1
- package/dist/cjs/nextjs/hooks/usePrevious.d.ts +0 -2
- package/dist/cjs/nextjs/hooks/usePrevious.d.ts.map +0 -1
- package/dist/cjs/nextjs/hooks/usePrevious.js +0 -12
- package/dist/cjs/nextjs/hooks/usePrevious.js.map +0 -1
- package/dist/cjs/nextjs/hooks/useRefresh.d.ts +0 -6
- package/dist/cjs/nextjs/hooks/useRefresh.d.ts.map +0 -1
- package/dist/cjs/nextjs/hooks/useRefresh.js +0 -51
- package/dist/cjs/nextjs/hooks/useRefresh.js.map +0 -1
- package/dist/cjs/nextjs/hooks/useUserCookie.d.ts +0 -8
- package/dist/cjs/nextjs/hooks/useUserCookie.d.ts.map +0 -1
- package/dist/cjs/nextjs/hooks/useUserCookie.js +0 -93
- package/dist/cjs/nextjs/hooks/useUserCookie.js.map +0 -1
- package/dist/cjs/nextjs/index.d.ts +0 -9
- package/dist/cjs/nextjs/index.d.ts.map +0 -1
- package/dist/cjs/nextjs/index.js +0 -27
- package/dist/cjs/nextjs/index.js.map +0 -1
- package/dist/cjs/nextjs/middleware/index.d.ts +0 -2
- package/dist/cjs/nextjs/middleware/index.d.ts.map +0 -1
- package/dist/cjs/nextjs/middleware/index.js +0 -10
- package/dist/cjs/nextjs/middleware/index.js.map +0 -1
- package/dist/cjs/nextjs/middleware.d.ts +0 -57
- package/dist/cjs/nextjs/middleware.d.ts.map +0 -1
- package/dist/cjs/nextjs/middleware.js +0 -110
- package/dist/cjs/nextjs/middleware.js.map +0 -1
- package/dist/cjs/nextjs/providers/NextAuthProvider.d.ts +0 -9
- package/dist/cjs/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
- package/dist/cjs/nextjs/providers/NextAuthProvider.js +0 -108
- package/dist/cjs/nextjs/providers/NextAuthProvider.js.map +0 -1
- package/dist/cjs/nextjs/routeHandler.d.ts +0 -19
- package/dist/cjs/nextjs/routeHandler.d.ts.map +0 -1
- package/dist/cjs/nextjs/routeHandler.js +0 -325
- package/dist/cjs/nextjs/routeHandler.js.map +0 -1
- package/dist/cjs/nextjs/utils.d.ts +0 -3
- package/dist/cjs/nextjs/utils.d.ts.map +0 -1
- package/dist/cjs/nextjs/utils.js +0 -9
- package/dist/cjs/nextjs/utils.js.map +0 -1
- package/dist/cjs/reactjs/components/ButtonContentOrLoader.d.ts +0 -17
- package/dist/cjs/reactjs/components/ButtonContentOrLoader.d.ts.map +0 -1
- package/dist/cjs/reactjs/components/ButtonContentOrLoader.js +0 -40
- package/dist/cjs/reactjs/components/ButtonContentOrLoader.js.map +0 -1
- package/dist/cjs/reactjs/components/LoadingSpinner.d.ts +0 -7
- package/dist/cjs/reactjs/components/LoadingSpinner.d.ts.map +0 -1
- package/dist/cjs/reactjs/components/LoadingSpinner.js +0 -33
- package/dist/cjs/reactjs/components/LoadingSpinner.js.map +0 -1
- package/dist/cjs/reactjs/components/SignInButton.d.ts +0 -9
- package/dist/cjs/reactjs/components/SignInButton.d.ts.map +0 -1
- package/dist/cjs/reactjs/components/SignInButton.js +0 -31
- package/dist/cjs/reactjs/components/SignInButton.js.map +0 -1
- package/dist/cjs/reactjs/components/SignOutButton.d.ts +0 -7
- package/dist/cjs/reactjs/components/SignOutButton.d.ts.map +0 -1
- package/dist/cjs/reactjs/components/SignOutButton.js +0 -27
- package/dist/cjs/reactjs/components/SignOutButton.js.map +0 -1
- package/dist/cjs/reactjs/components/UserButton.d.ts +0 -9
- package/dist/cjs/reactjs/components/UserButton.d.ts.map +0 -1
- package/dist/cjs/reactjs/components/UserButton.js +0 -145
- package/dist/cjs/reactjs/components/UserButton.js.map +0 -1
- package/dist/cjs/reactjs/components/index.d.ts +0 -6
- package/dist/cjs/reactjs/components/index.d.ts.map +0 -1
- package/dist/cjs/reactjs/components/index.js +0 -14
- package/dist/cjs/reactjs/components/index.js.map +0 -1
- package/dist/cjs/reactjs/components/utils.d.ts +0 -13
- package/dist/cjs/reactjs/components/utils.d.ts.map +0 -1
- package/dist/cjs/reactjs/components/utils.js +0 -31
- package/dist/cjs/reactjs/components/utils.js.map +0 -1
- package/dist/cjs/reactjs/hooks/index.d.ts +0 -3
- package/dist/cjs/reactjs/hooks/index.d.ts.map +0 -1
- package/dist/cjs/reactjs/hooks/index.js +0 -8
- package/dist/cjs/reactjs/hooks/index.js.map +0 -1
- package/dist/cjs/reactjs/hooks/useAuth.d.ts +0 -3
- package/dist/cjs/reactjs/hooks/useAuth.d.ts.map +0 -1
- package/dist/cjs/reactjs/hooks/useAuth.js +0 -15
- package/dist/cjs/reactjs/hooks/useAuth.js.map +0 -1
- package/dist/cjs/reactjs/hooks/useClientTokenExchangeSession.d.ts +0 -3
- package/dist/cjs/reactjs/hooks/useClientTokenExchangeSession.d.ts.map +0 -1
- package/dist/cjs/reactjs/hooks/useClientTokenExchangeSession.js +0 -16
- package/dist/cjs/reactjs/hooks/useClientTokenExchangeSession.js.map +0 -1
- package/dist/cjs/reactjs/hooks/useSignIn.d.ts +0 -6
- package/dist/cjs/reactjs/hooks/useSignIn.d.ts.map +0 -1
- package/dist/cjs/reactjs/hooks/useSignIn.js +0 -38
- package/dist/cjs/reactjs/hooks/useSignIn.js.map +0 -1
- package/dist/cjs/reactjs/hooks/useUser.d.ts +0 -4
- package/dist/cjs/reactjs/hooks/useUser.d.ts.map +0 -1
- package/dist/cjs/reactjs/hooks/useUser.js +0 -15
- package/dist/cjs/reactjs/hooks/useUser.js.map +0 -1
- package/dist/cjs/reactjs/index.d.ts +0 -6
- package/dist/cjs/reactjs/index.d.ts.map +0 -1
- package/dist/cjs/reactjs/index.js +0 -32
- package/dist/cjs/reactjs/index.js.map +0 -1
- package/dist/cjs/reactjs/providers/AuthProvider.d.ts +0 -10
- package/dist/cjs/reactjs/providers/AuthProvider.d.ts.map +0 -1
- package/dist/cjs/reactjs/providers/AuthProvider.js +0 -99
- package/dist/cjs/reactjs/providers/AuthProvider.js.map +0 -1
- package/dist/cjs/reactjs/providers/CivicAuthProvider.d.ts +0 -5
- package/dist/cjs/reactjs/providers/CivicAuthProvider.d.ts.map +0 -1
- package/dist/cjs/reactjs/providers/CivicAuthProvider.js +0 -29
- package/dist/cjs/reactjs/providers/CivicAuthProvider.js.map +0 -1
- package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts +0 -17
- package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +0 -1
- package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.js +0 -146
- package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +0 -1
- package/dist/cjs/reactjs/providers/index.d.ts +0 -8
- package/dist/cjs/reactjs/providers/index.d.ts.map +0 -1
- package/dist/cjs/reactjs/providers/index.js +0 -19
- package/dist/cjs/reactjs/providers/index.js.map +0 -1
- package/dist/cjs/server/ServerAuthenticationResolver.d.ts +0 -20
- package/dist/cjs/server/ServerAuthenticationResolver.d.ts.map +0 -1
- package/dist/cjs/server/ServerAuthenticationResolver.js +0 -71
- package/dist/cjs/server/ServerAuthenticationResolver.js.map +0 -1
- package/dist/cjs/server/config.d.ts +0 -11
- package/dist/cjs/server/config.d.ts.map +0 -1
- package/dist/cjs/server/config.js +0 -3
- package/dist/cjs/server/config.js.map +0 -1
- package/dist/cjs/server/index.d.ts +0 -9
- package/dist/cjs/server/index.d.ts.map +0 -1
- package/dist/cjs/server/index.js +0 -21
- package/dist/cjs/server/index.js.map +0 -1
- package/dist/cjs/server/login.d.ts +0 -17
- package/dist/cjs/server/login.d.ts.map +0 -1
- package/dist/cjs/server/login.js +0 -42
- package/dist/cjs/server/login.js.map +0 -1
- package/dist/cjs/server/logout.d.ts +0 -7
- package/dist/cjs/server/logout.d.ts.map +0 -1
- package/dist/cjs/server/logout.js +0 -26
- package/dist/cjs/server/logout.js.map +0 -1
- package/dist/cjs/server/refresh.d.ts +0 -7
- package/dist/cjs/server/refresh.d.ts.map +0 -1
- package/dist/cjs/server/refresh.js +0 -19
- package/dist/cjs/server/refresh.js.map +0 -1
- package/dist/cjs/services/AuthenticationService.d.ts +0 -93
- package/dist/cjs/services/AuthenticationService.d.ts.map +0 -1
- package/dist/cjs/services/AuthenticationService.js +0 -367
- package/dist/cjs/services/AuthenticationService.js.map +0 -1
- package/dist/cjs/services/PKCE.d.ts +0 -20
- package/dist/cjs/services/PKCE.d.ts.map +0 -1
- package/dist/cjs/services/PKCE.js +0 -50
- package/dist/cjs/services/PKCE.js.map +0 -1
- package/dist/cjs/services/types.d.ts +0 -24
- package/dist/cjs/services/types.d.ts.map +0 -1
- package/dist/cjs/services/types.js +0 -11
- package/dist/cjs/services/types.js.map +0 -1
- package/dist/cjs/shared/components/BlockDisplay.d.ts +0 -6
- package/dist/cjs/shared/components/BlockDisplay.d.ts.map +0 -1
- package/dist/cjs/shared/components/BlockDisplay.js +0 -32
- package/dist/cjs/shared/components/BlockDisplay.js.map +0 -1
- package/dist/cjs/shared/components/CivicAuthIframe.d.ts +0 -9
- package/dist/cjs/shared/components/CivicAuthIframe.d.ts.map +0 -1
- package/dist/cjs/shared/components/CivicAuthIframe.js +0 -72
- package/dist/cjs/shared/components/CivicAuthIframe.js.map +0 -1
- package/dist/cjs/shared/components/CivicAuthIframeContainer.d.ts +0 -14
- package/dist/cjs/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
- package/dist/cjs/shared/components/CivicAuthIframeContainer.js +0 -158
- package/dist/cjs/shared/components/CivicAuthIframeContainer.js.map +0 -1
- package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.d.ts +0 -6
- package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +0 -1
- package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.js +0 -21
- package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.js.map +0 -1
- package/dist/cjs/shared/components/CloseIcon.d.ts +0 -3
- package/dist/cjs/shared/components/CloseIcon.d.ts.map +0 -1
- package/dist/cjs/shared/components/CloseIcon.js +0 -7
- package/dist/cjs/shared/components/CloseIcon.js.map +0 -1
- package/dist/cjs/shared/components/IFrameAndLoading.d.ts +0 -7
- package/dist/cjs/shared/components/IFrameAndLoading.d.ts.map +0 -1
- package/dist/cjs/shared/components/IFrameAndLoading.js +0 -39
- package/dist/cjs/shared/components/IFrameAndLoading.js.map +0 -1
- package/dist/cjs/shared/components/LoadingIcon.d.ts +0 -6
- package/dist/cjs/shared/components/LoadingIcon.d.ts.map +0 -1
- package/dist/cjs/shared/components/LoadingIcon.js +0 -28
- package/dist/cjs/shared/components/LoadingIcon.js.map +0 -1
- package/dist/cjs/shared/components/SVGLoading.d.ts +0 -4
- package/dist/cjs/shared/components/SVGLoading.d.ts.map +0 -1
- package/dist/cjs/shared/components/SVGLoading.js +0 -30
- package/dist/cjs/shared/components/SVGLoading.js.map +0 -1
- package/dist/cjs/shared/hooks/index.d.ts +0 -11
- package/dist/cjs/shared/hooks/index.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/index.js +0 -24
- package/dist/cjs/shared/hooks/index.js.map +0 -1
- package/dist/cjs/shared/hooks/useAuth.d.ts +0 -3
- package/dist/cjs/shared/hooks/useAuth.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useAuth.js +0 -15
- package/dist/cjs/shared/hooks/useAuth.js.map +0 -1
- package/dist/cjs/shared/hooks/useCivicAuthConfig.d.ts +0 -3
- package/dist/cjs/shared/hooks/useCivicAuthConfig.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useCivicAuthConfig.js +0 -13
- package/dist/cjs/shared/hooks/useCivicAuthConfig.js.map +0 -1
- package/dist/cjs/shared/hooks/useClientTokenExchangeSession.d.ts +0 -3
- package/dist/cjs/shared/hooks/useClientTokenExchangeSession.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useClientTokenExchangeSession.js +0 -16
- package/dist/cjs/shared/hooks/useClientTokenExchangeSession.js.map +0 -1
- package/dist/cjs/shared/hooks/useCurrentUrl.d.ts +0 -3
- package/dist/cjs/shared/hooks/useCurrentUrl.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useCurrentUrl.js +0 -27
- package/dist/cjs/shared/hooks/useCurrentUrl.js.map +0 -1
- package/dist/cjs/shared/hooks/useIframe.d.ts +0 -3
- package/dist/cjs/shared/hooks/useIframe.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useIframe.js +0 -16
- package/dist/cjs/shared/hooks/useIframe.js.map +0 -1
- package/dist/cjs/shared/hooks/useIsInIframe.d.ts +0 -3
- package/dist/cjs/shared/hooks/useIsInIframe.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useIsInIframe.js +0 -17
- package/dist/cjs/shared/hooks/useIsInIframe.js.map +0 -1
- package/dist/cjs/shared/hooks/useOAuthEndpoints.d.ts +0 -4
- package/dist/cjs/shared/hooks/useOAuthEndpoints.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useOAuthEndpoints.js +0 -17
- package/dist/cjs/shared/hooks/useOAuthEndpoints.js.map +0 -1
- package/dist/cjs/shared/hooks/useRefresh.d.ts +0 -6
- package/dist/cjs/shared/hooks/useRefresh.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useRefresh.js +0 -49
- package/dist/cjs/shared/hooks/useRefresh.js.map +0 -1
- package/dist/cjs/shared/hooks/useSession.d.ts +0 -3
- package/dist/cjs/shared/hooks/useSession.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useSession.js +0 -16
- package/dist/cjs/shared/hooks/useSession.js.map +0 -1
- package/dist/cjs/shared/hooks/useSignIn.d.ts +0 -17
- package/dist/cjs/shared/hooks/useSignIn.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useSignIn.js +0 -171
- package/dist/cjs/shared/hooks/useSignIn.js.map +0 -1
- package/dist/cjs/shared/hooks/useToken.d.ts +0 -3
- package/dist/cjs/shared/hooks/useToken.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useToken.js +0 -15
- package/dist/cjs/shared/hooks/useToken.js.map +0 -1
- package/dist/cjs/shared/hooks/useWindowFocused.d.ts +0 -5
- package/dist/cjs/shared/hooks/useWindowFocused.d.ts.map +0 -1
- package/dist/cjs/shared/hooks/useWindowFocused.js +0 -24
- package/dist/cjs/shared/hooks/useWindowFocused.js.map +0 -1
- package/dist/cjs/shared/index.d.ts +0 -7
- package/dist/cjs/shared/index.d.ts.map +0 -1
- package/dist/cjs/shared/index.js +0 -25
- package/dist/cjs/shared/index.js.map +0 -1
- package/dist/cjs/shared/lib/AuthenticationRefresherImpl.d.ts +0 -14
- package/dist/cjs/shared/lib/AuthenticationRefresherImpl.d.ts.map +0 -1
- package/dist/cjs/shared/lib/AuthenticationRefresherImpl.js +0 -55
- package/dist/cjs/shared/lib/AuthenticationRefresherImpl.js.map +0 -1
- package/dist/cjs/shared/lib/BrowserAuthenticationRefresher.d.ts +0 -11
- package/dist/cjs/shared/lib/BrowserAuthenticationRefresher.d.ts.map +0 -1
- package/dist/cjs/shared/lib/BrowserAuthenticationRefresher.js +0 -63
- package/dist/cjs/shared/lib/BrowserAuthenticationRefresher.js.map +0 -1
- package/dist/cjs/shared/lib/BrowserCookieStorage.d.ts +0 -9
- package/dist/cjs/shared/lib/BrowserCookieStorage.d.ts.map +0 -1
- package/dist/cjs/shared/lib/BrowserCookieStorage.js +0 -60
- package/dist/cjs/shared/lib/BrowserCookieStorage.js.map +0 -1
- package/dist/cjs/shared/lib/GenericAuthenticationRefresher copy.d.ts +0 -18
- package/dist/cjs/shared/lib/GenericAuthenticationRefresher copy.d.ts.map +0 -1
- package/dist/cjs/shared/lib/GenericAuthenticationRefresher copy.js +0 -85
- package/dist/cjs/shared/lib/GenericAuthenticationRefresher copy.js.map +0 -1
- package/dist/cjs/shared/lib/GenericAuthenticationRefresher.d.ts +0 -14
- package/dist/cjs/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
- package/dist/cjs/shared/lib/GenericAuthenticationRefresher.js +0 -38
- package/dist/cjs/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
- package/dist/cjs/shared/lib/UserSession.d.ts +0 -17
- package/dist/cjs/shared/lib/UserSession.d.ts.map +0 -1
- package/dist/cjs/shared/lib/UserSession.js +0 -27
- package/dist/cjs/shared/lib/UserSession.js.map +0 -1
- package/dist/cjs/shared/lib/iframeUtils.d.ts +0 -6
- package/dist/cjs/shared/lib/iframeUtils.d.ts.map +0 -1
- package/dist/cjs/shared/lib/iframeUtils.js +0 -11
- package/dist/cjs/shared/lib/iframeUtils.js.map +0 -1
- package/dist/cjs/shared/lib/session.d.ts +0 -4
- package/dist/cjs/shared/lib/session.d.ts.map +0 -1
- package/dist/cjs/shared/lib/session.js +0 -48
- package/dist/cjs/shared/lib/session.js.map +0 -1
- package/dist/cjs/shared/lib/storage.d.ts +0 -35
- package/dist/cjs/shared/lib/storage.d.ts.map +0 -1
- package/dist/cjs/shared/lib/storage.js +0 -21
- package/dist/cjs/shared/lib/storage.js.map +0 -1
- package/dist/cjs/shared/lib/types.d.ts +0 -39
- package/dist/cjs/shared/lib/types.d.ts.map +0 -1
- package/dist/cjs/shared/lib/types.js +0 -22
- package/dist/cjs/shared/lib/types.js.map +0 -1
- package/dist/cjs/shared/lib/util.d.ts +0 -40
- package/dist/cjs/shared/lib/util.d.ts.map +0 -1
- package/dist/cjs/shared/lib/util.js +0 -252
- package/dist/cjs/shared/lib/util.js.map +0 -1
- package/dist/cjs/shared/providers/AuthContext.d.ts +0 -12
- package/dist/cjs/shared/providers/AuthContext.d.ts.map +0 -1
- package/dist/cjs/shared/providers/AuthContext.js +0 -7
- package/dist/cjs/shared/providers/AuthContext.js.map +0 -1
- package/dist/cjs/shared/providers/AuthProvider.d.ts +0 -22
- package/dist/cjs/shared/providers/AuthProvider.d.ts.map +0 -1
- package/dist/cjs/shared/providers/AuthProvider.js +0 -108
- package/dist/cjs/shared/providers/AuthProvider.js.map +0 -1
- package/dist/cjs/shared/providers/CivicAuthConfigContext.d.ts +0 -19
- package/dist/cjs/shared/providers/CivicAuthConfigContext.d.ts.map +0 -1
- package/dist/cjs/shared/providers/CivicAuthConfigContext.js +0 -59
- package/dist/cjs/shared/providers/CivicAuthConfigContext.js.map +0 -1
- package/dist/cjs/shared/providers/CivicAuthProvider.d.ts +0 -6
- package/dist/cjs/shared/providers/CivicAuthProvider.d.ts.map +0 -1
- package/dist/cjs/shared/providers/CivicAuthProvider.js +0 -38
- package/dist/cjs/shared/providers/CivicAuthProvider.js.map +0 -1
- package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.d.ts +0 -17
- package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.d.ts.map +0 -1
- package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.js +0 -168
- package/dist/cjs/shared/providers/ClientTokenExchangeSessionProvider.js.map +0 -1
- package/dist/cjs/shared/providers/IframeProvider.d.ts +0 -25
- package/dist/cjs/shared/providers/IframeProvider.d.ts.map +0 -1
- package/dist/cjs/shared/providers/IframeProvider.js +0 -63
- package/dist/cjs/shared/providers/IframeProvider.js.map +0 -1
- package/dist/cjs/shared/providers/SessionProvider.d.ts +0 -19
- package/dist/cjs/shared/providers/SessionProvider.d.ts.map +0 -1
- package/dist/cjs/shared/providers/SessionProvider.js +0 -28
- package/dist/cjs/shared/providers/SessionProvider.js.map +0 -1
- package/dist/cjs/shared/providers/TokenProvider.d.ts +0 -17
- package/dist/cjs/shared/providers/TokenProvider.d.ts.map +0 -1
- package/dist/cjs/shared/providers/TokenProvider.js +0 -39
- package/dist/cjs/shared/providers/TokenProvider.js.map +0 -1
- package/dist/cjs/shared/providers/UserProvider.d.ts +0 -26
- package/dist/cjs/shared/providers/UserProvider.d.ts.map +0 -1
- package/dist/cjs/shared/providers/UserProvider.js +0 -69
- package/dist/cjs/shared/providers/UserProvider.js.map +0 -1
- package/dist/cjs/shared/providers/types.d.ts +0 -15
- package/dist/cjs/shared/providers/types.d.ts.map +0 -1
- package/dist/cjs/shared/providers/types.js +0 -3
- package/dist/cjs/shared/providers/types.js.map +0 -1
- package/dist/cjs/shared/version.d.ts +0 -2
- package/dist/cjs/shared/version.d.ts.map +0 -1
- package/dist/cjs/shared/version.js +0 -6
- package/dist/cjs/shared/version.js.map +0 -1
- package/dist/cjs/types.d.ts +0 -163
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/types.js +0 -20
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/utils.d.ts +0 -15
- package/dist/cjs/utils.d.ts.map +0 -1
- package/dist/cjs/utils.js +0 -47
- package/dist/cjs/utils.js.map +0 -1
- package/dist/cjs/version.d.ts +0 -2
- package/dist/cjs/version.d.ts.map +0 -1
- package/dist/cjs/version.js +0 -6
- package/dist/cjs/version.js.map +0 -1
- package/dist/esm/browser/storage.d.ts +0 -10
- package/dist/esm/browser/storage.d.ts.map +0 -1
- package/dist/esm/browser/storage.js +0 -20
- package/dist/esm/browser/storage.js.map +0 -1
- package/dist/esm/config.d.ts +0 -3
- package/dist/esm/config.d.ts.map +0 -1
- package/dist/esm/config.js +0 -5
- package/dist/esm/config.js.map +0 -1
- package/dist/esm/constants.d.ts +0 -15
- package/dist/esm/constants.d.ts.map +0 -1
- package/dist/esm/constants.js +0 -29
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/index.d.ts +0 -8
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -6
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/cookies.d.ts +0 -7
- package/dist/esm/lib/cookies.d.ts.map +0 -1
- package/dist/esm/lib/cookies.js +0 -26
- package/dist/esm/lib/cookies.js.map +0 -1
- package/dist/esm/lib/jwt.d.ts +0 -3
- package/dist/esm/lib/jwt.d.ts.map +0 -1
- package/dist/esm/lib/jwt.js +0 -9
- package/dist/esm/lib/jwt.js.map +0 -1
- package/dist/esm/lib/logger.d.ts +0 -26
- package/dist/esm/lib/logger.d.ts.map +0 -1
- package/dist/esm/lib/logger.js +0 -55
- package/dist/esm/lib/logger.js.map +0 -1
- package/dist/esm/lib/oauth.d.ts +0 -19
- package/dist/esm/lib/oauth.d.ts.map +0 -1
- package/dist/esm/lib/oauth.js +0 -67
- package/dist/esm/lib/oauth.js.map +0 -1
- package/dist/esm/lib/obj.d.ts +0 -3
- package/dist/esm/lib/obj.d.ts.map +0 -1
- package/dist/esm/lib/obj.js +0 -18
- package/dist/esm/lib/obj.js.map +0 -1
- package/dist/esm/lib/postMessage.d.ts +0 -4
- package/dist/esm/lib/postMessage.d.ts.map +0 -1
- package/dist/esm/lib/postMessage.js +0 -13
- package/dist/esm/lib/postMessage.js.map +0 -1
- package/dist/esm/lib/windowUtil.d.ts +0 -4
- package/dist/esm/lib/windowUtil.d.ts.map +0 -1
- package/dist/esm/lib/windowUtil.js +0 -31
- package/dist/esm/lib/windowUtil.js.map +0 -1
- package/dist/esm/nextjs/GetUser.d.ts +0 -6
- package/dist/esm/nextjs/GetUser.d.ts.map +0 -1
- package/dist/esm/nextjs/GetUser.js +0 -7
- package/dist/esm/nextjs/GetUser.js.map +0 -1
- package/dist/esm/nextjs/NextClientAuthenticationRefresher.d.ts +0 -8
- package/dist/esm/nextjs/NextClientAuthenticationRefresher.d.ts.map +0 -1
- package/dist/esm/nextjs/NextClientAuthenticationRefresher.js +0 -24
- package/dist/esm/nextjs/NextClientAuthenticationRefresher.js.map +0 -1
- package/dist/esm/nextjs/NextServerAuthenticationRefresherImpl.d.ts +0 -12
- package/dist/esm/nextjs/NextServerAuthenticationRefresherImpl.d.ts.map +0 -1
- package/dist/esm/nextjs/NextServerAuthenticationRefresherImpl.js +0 -25
- package/dist/esm/nextjs/NextServerAuthenticationRefresherImpl.js.map +0 -1
- package/dist/esm/nextjs/config.d.ts +0 -209
- package/dist/esm/nextjs/config.d.ts.map +0 -1
- package/dist/esm/nextjs/config.js +0 -186
- package/dist/esm/nextjs/config.js.map +0 -1
- package/dist/esm/nextjs/cookies.d.ts +0 -16
- package/dist/esm/nextjs/cookies.d.ts.map +0 -1
- package/dist/esm/nextjs/cookies.js +0 -41
- package/dist/esm/nextjs/cookies.js.map +0 -1
- package/dist/esm/nextjs/hooks/index.d.ts +0 -2
- package/dist/esm/nextjs/hooks/index.d.ts.map +0 -1
- package/dist/esm/nextjs/hooks/index.js +0 -2
- package/dist/esm/nextjs/hooks/index.js.map +0 -1
- package/dist/esm/nextjs/hooks/usePrevious.d.ts +0 -2
- package/dist/esm/nextjs/hooks/usePrevious.d.ts.map +0 -1
- package/dist/esm/nextjs/hooks/usePrevious.js +0 -9
- package/dist/esm/nextjs/hooks/usePrevious.js.map +0 -1
- package/dist/esm/nextjs/hooks/useRefresh.d.ts +0 -6
- package/dist/esm/nextjs/hooks/useRefresh.d.ts.map +0 -1
- package/dist/esm/nextjs/hooks/useRefresh.js +0 -48
- package/dist/esm/nextjs/hooks/useRefresh.js.map +0 -1
- package/dist/esm/nextjs/hooks/useUserCookie.d.ts +0 -8
- package/dist/esm/nextjs/hooks/useUserCookie.d.ts.map +0 -1
- package/dist/esm/nextjs/hooks/useUserCookie.js +0 -89
- package/dist/esm/nextjs/hooks/useUserCookie.js.map +0 -1
- package/dist/esm/nextjs/index.d.ts +0 -9
- package/dist/esm/nextjs/index.d.ts.map +0 -1
- package/dist/esm/nextjs/index.js +0 -17
- package/dist/esm/nextjs/index.js.map +0 -1
- package/dist/esm/nextjs/middleware/index.d.ts +0 -2
- package/dist/esm/nextjs/middleware/index.d.ts.map +0 -1
- package/dist/esm/nextjs/middleware/index.js +0 -4
- package/dist/esm/nextjs/middleware/index.js.map +0 -1
- package/dist/esm/nextjs/middleware.d.ts +0 -57
- package/dist/esm/nextjs/middleware.d.ts.map +0 -1
- package/dist/esm/nextjs/middleware.js +0 -101
- package/dist/esm/nextjs/middleware.js.map +0 -1
- package/dist/esm/nextjs/providers/NextAuthProvider.d.ts +0 -9
- package/dist/esm/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
- package/dist/esm/nextjs/providers/NextAuthProvider.js +0 -105
- package/dist/esm/nextjs/providers/NextAuthProvider.js.map +0 -1
- package/dist/esm/nextjs/routeHandler.d.ts +0 -19
- package/dist/esm/nextjs/routeHandler.d.ts.map +0 -1
- package/dist/esm/nextjs/routeHandler.js +0 -319
- package/dist/esm/nextjs/routeHandler.js.map +0 -1
- package/dist/esm/nextjs/utils.d.ts +0 -3
- package/dist/esm/nextjs/utils.d.ts.map +0 -1
- package/dist/esm/nextjs/utils.js +0 -5
- package/dist/esm/nextjs/utils.js.map +0 -1
- package/dist/esm/reactjs/components/ButtonContentOrLoader.d.ts +0 -17
- package/dist/esm/reactjs/components/ButtonContentOrLoader.d.ts.map +0 -1
- package/dist/esm/reactjs/components/ButtonContentOrLoader.js +0 -37
- package/dist/esm/reactjs/components/ButtonContentOrLoader.js.map +0 -1
- package/dist/esm/reactjs/components/SignInButton.d.ts +0 -9
- package/dist/esm/reactjs/components/SignInButton.d.ts.map +0 -1
- package/dist/esm/reactjs/components/SignInButton.js +0 -28
- package/dist/esm/reactjs/components/SignInButton.js.map +0 -1
- package/dist/esm/reactjs/components/SignOutButton.d.ts +0 -7
- package/dist/esm/reactjs/components/SignOutButton.d.ts.map +0 -1
- package/dist/esm/reactjs/components/SignOutButton.js +0 -24
- package/dist/esm/reactjs/components/SignOutButton.js.map +0 -1
- package/dist/esm/reactjs/components/UserButton.d.ts +0 -9
- package/dist/esm/reactjs/components/UserButton.d.ts.map +0 -1
- package/dist/esm/reactjs/components/UserButton.js +0 -142
- package/dist/esm/reactjs/components/UserButton.js.map +0 -1
- package/dist/esm/reactjs/components/index.d.ts +0 -6
- package/dist/esm/reactjs/components/index.d.ts.map +0 -1
- package/dist/esm/reactjs/components/index.js +0 -6
- package/dist/esm/reactjs/components/index.js.map +0 -1
- package/dist/esm/reactjs/components/utils.d.ts +0 -13
- package/dist/esm/reactjs/components/utils.d.ts.map +0 -1
- package/dist/esm/reactjs/components/utils.js +0 -27
- package/dist/esm/reactjs/components/utils.js.map +0 -1
- package/dist/esm/reactjs/hooks/index.d.ts +0 -3
- package/dist/esm/reactjs/hooks/index.d.ts.map +0 -1
- package/dist/esm/reactjs/hooks/index.js +0 -3
- package/dist/esm/reactjs/hooks/index.js.map +0 -1
- package/dist/esm/reactjs/hooks/useAuth.d.ts +0 -3
- package/dist/esm/reactjs/hooks/useAuth.d.ts.map +0 -1
- package/dist/esm/reactjs/hooks/useAuth.js +0 -12
- package/dist/esm/reactjs/hooks/useAuth.js.map +0 -1
- package/dist/esm/reactjs/hooks/useClientTokenExchangeSession.d.ts +0 -3
- package/dist/esm/reactjs/hooks/useClientTokenExchangeSession.d.ts.map +0 -1
- package/dist/esm/reactjs/hooks/useClientTokenExchangeSession.js +0 -13
- package/dist/esm/reactjs/hooks/useClientTokenExchangeSession.js.map +0 -1
- package/dist/esm/reactjs/hooks/useSignIn.d.ts +0 -6
- package/dist/esm/reactjs/hooks/useSignIn.d.ts.map +0 -1
- package/dist/esm/reactjs/hooks/useSignIn.js +0 -34
- package/dist/esm/reactjs/hooks/useSignIn.js.map +0 -1
- package/dist/esm/reactjs/hooks/useUser.d.ts +0 -4
- package/dist/esm/reactjs/hooks/useUser.d.ts.map +0 -1
- package/dist/esm/reactjs/hooks/useUser.js +0 -12
- package/dist/esm/reactjs/hooks/useUser.js.map +0 -1
- package/dist/esm/reactjs/index.d.ts +0 -6
- package/dist/esm/reactjs/index.d.ts.map +0 -1
- package/dist/esm/reactjs/index.js +0 -10
- package/dist/esm/reactjs/index.js.map +0 -1
- package/dist/esm/reactjs/providers/AuthProvider.d.ts +0 -10
- package/dist/esm/reactjs/providers/AuthProvider.d.ts.map +0 -1
- package/dist/esm/reactjs/providers/AuthProvider.js +0 -97
- package/dist/esm/reactjs/providers/AuthProvider.js.map +0 -1
- package/dist/esm/reactjs/providers/CivicAuthProvider.d.ts +0 -5
- package/dist/esm/reactjs/providers/CivicAuthProvider.d.ts.map +0 -1
- package/dist/esm/reactjs/providers/CivicAuthProvider.js +0 -27
- package/dist/esm/reactjs/providers/CivicAuthProvider.js.map +0 -1
- package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts +0 -17
- package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +0 -1
- package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.js +0 -142
- package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +0 -1
- package/dist/esm/reactjs/providers/index.d.ts +0 -8
- package/dist/esm/reactjs/providers/index.d.ts.map +0 -1
- package/dist/esm/reactjs/providers/index.js +0 -7
- package/dist/esm/reactjs/providers/index.js.map +0 -1
- package/dist/esm/server/ServerAuthenticationResolver.d.ts +0 -20
- package/dist/esm/server/ServerAuthenticationResolver.d.ts.map +0 -1
- package/dist/esm/server/ServerAuthenticationResolver.js +0 -67
- package/dist/esm/server/ServerAuthenticationResolver.js.map +0 -1
- package/dist/esm/server/config.d.ts +0 -11
- package/dist/esm/server/config.d.ts.map +0 -1
- package/dist/esm/server/config.js +0 -2
- package/dist/esm/server/config.js.map +0 -1
- package/dist/esm/server/index.d.ts +0 -9
- package/dist/esm/server/index.d.ts.map +0 -1
- package/dist/esm/server/index.js +0 -9
- package/dist/esm/server/index.js.map +0 -1
- package/dist/esm/server/login.d.ts +0 -17
- package/dist/esm/server/login.d.ts.map +0 -1
- package/dist/esm/server/login.js +0 -37
- package/dist/esm/server/login.js.map +0 -1
- package/dist/esm/server/logout.d.ts +0 -7
- package/dist/esm/server/logout.d.ts.map +0 -1
- package/dist/esm/server/logout.js +0 -23
- package/dist/esm/server/logout.js.map +0 -1
- package/dist/esm/server/refresh.d.ts +0 -7
- package/dist/esm/server/refresh.d.ts.map +0 -1
- package/dist/esm/server/refresh.js +0 -16
- package/dist/esm/server/refresh.js.map +0 -1
- package/dist/esm/services/AuthenticationService.d.ts +0 -93
- package/dist/esm/services/AuthenticationService.d.ts.map +0 -1
- package/dist/esm/services/AuthenticationService.js +0 -361
- package/dist/esm/services/AuthenticationService.js.map +0 -1
- package/dist/esm/services/PKCE.d.ts +0 -20
- package/dist/esm/services/PKCE.d.ts.map +0 -1
- package/dist/esm/services/PKCE.js +0 -44
- package/dist/esm/services/PKCE.js.map +0 -1
- package/dist/esm/services/types.d.ts +0 -24
- package/dist/esm/services/types.d.ts.map +0 -1
- package/dist/esm/services/types.js +0 -7
- package/dist/esm/services/types.js.map +0 -1
- package/dist/esm/shared/components/BlockDisplay.d.ts +0 -6
- package/dist/esm/shared/components/BlockDisplay.d.ts.map +0 -1
- package/dist/esm/shared/components/BlockDisplay.js +0 -29
- package/dist/esm/shared/components/BlockDisplay.js.map +0 -1
- package/dist/esm/shared/components/CivicAuthIframe.d.ts +0 -9
- package/dist/esm/shared/components/CivicAuthIframe.d.ts.map +0 -1
- package/dist/esm/shared/components/CivicAuthIframe.js +0 -33
- package/dist/esm/shared/components/CivicAuthIframe.js.map +0 -1
- package/dist/esm/shared/components/CivicAuthIframeContainer.d.ts +0 -14
- package/dist/esm/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
- package/dist/esm/shared/components/CivicAuthIframeContainer.js +0 -154
- package/dist/esm/shared/components/CivicAuthIframeContainer.js.map +0 -1
- package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.d.ts +0 -6
- package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +0 -1
- package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.js +0 -19
- package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.js.map +0 -1
- package/dist/esm/shared/components/CloseIcon.d.ts +0 -3
- package/dist/esm/shared/components/CloseIcon.d.ts.map +0 -1
- package/dist/esm/shared/components/CloseIcon.js +0 -5
- package/dist/esm/shared/components/CloseIcon.js.map +0 -1
- package/dist/esm/shared/components/IFrameAndLoading.d.ts +0 -7
- package/dist/esm/shared/components/IFrameAndLoading.d.ts.map +0 -1
- package/dist/esm/shared/components/IFrameAndLoading.js +0 -36
- package/dist/esm/shared/components/IFrameAndLoading.js.map +0 -1
- package/dist/esm/shared/components/LoadingIcon.d.ts +0 -6
- package/dist/esm/shared/components/LoadingIcon.d.ts.map +0 -1
- package/dist/esm/shared/components/LoadingIcon.js +0 -26
- package/dist/esm/shared/components/LoadingIcon.js.map +0 -1
- package/dist/esm/shared/components/SVGLoading.d.ts +0 -4
- package/dist/esm/shared/components/SVGLoading.d.ts.map +0 -1
- package/dist/esm/shared/components/SVGLoading.js +0 -28
- package/dist/esm/shared/components/SVGLoading.js.map +0 -1
- package/dist/esm/shared/hooks/index.d.ts +0 -11
- package/dist/esm/shared/hooks/index.d.ts.map +0 -1
- package/dist/esm/shared/hooks/index.js +0 -11
- package/dist/esm/shared/hooks/index.js.map +0 -1
- package/dist/esm/shared/hooks/useAuth.d.ts +0 -3
- package/dist/esm/shared/hooks/useAuth.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useAuth.js +0 -12
- package/dist/esm/shared/hooks/useAuth.js.map +0 -1
- package/dist/esm/shared/hooks/useCivicAuthConfig.d.ts +0 -3
- package/dist/esm/shared/hooks/useCivicAuthConfig.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useCivicAuthConfig.js +0 -10
- package/dist/esm/shared/hooks/useCivicAuthConfig.js.map +0 -1
- package/dist/esm/shared/hooks/useClientTokenExchangeSession.d.ts +0 -3
- package/dist/esm/shared/hooks/useClientTokenExchangeSession.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useClientTokenExchangeSession.js +0 -13
- package/dist/esm/shared/hooks/useClientTokenExchangeSession.js.map +0 -1
- package/dist/esm/shared/hooks/useCurrentUrl.d.ts +0 -3
- package/dist/esm/shared/hooks/useCurrentUrl.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useCurrentUrl.js +0 -24
- package/dist/esm/shared/hooks/useCurrentUrl.js.map +0 -1
- package/dist/esm/shared/hooks/useIframe.d.ts +0 -3
- package/dist/esm/shared/hooks/useIframe.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useIframe.js +0 -13
- package/dist/esm/shared/hooks/useIframe.js.map +0 -1
- package/dist/esm/shared/hooks/useIsInIframe.d.ts +0 -3
- package/dist/esm/shared/hooks/useIsInIframe.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useIsInIframe.js +0 -14
- package/dist/esm/shared/hooks/useIsInIframe.js.map +0 -1
- package/dist/esm/shared/hooks/useOAuthEndpoints.d.ts +0 -4
- package/dist/esm/shared/hooks/useOAuthEndpoints.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useOAuthEndpoints.js +0 -14
- package/dist/esm/shared/hooks/useOAuthEndpoints.js.map +0 -1
- package/dist/esm/shared/hooks/useRefresh.d.ts +0 -6
- package/dist/esm/shared/hooks/useRefresh.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useRefresh.js +0 -46
- package/dist/esm/shared/hooks/useRefresh.js.map +0 -1
- package/dist/esm/shared/hooks/useSession.d.ts +0 -3
- package/dist/esm/shared/hooks/useSession.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useSession.js +0 -13
- package/dist/esm/shared/hooks/useSession.js.map +0 -1
- package/dist/esm/shared/hooks/useSignIn.d.ts +0 -17
- package/dist/esm/shared/hooks/useSignIn.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useSignIn.js +0 -168
- package/dist/esm/shared/hooks/useSignIn.js.map +0 -1
- package/dist/esm/shared/hooks/useToken.d.ts +0 -3
- package/dist/esm/shared/hooks/useToken.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useToken.js +0 -12
- package/dist/esm/shared/hooks/useToken.js.map +0 -1
- package/dist/esm/shared/hooks/useWindowFocused.d.ts +0 -5
- package/dist/esm/shared/hooks/useWindowFocused.d.ts.map +0 -1
- package/dist/esm/shared/hooks/useWindowFocused.js +0 -21
- package/dist/esm/shared/hooks/useWindowFocused.js.map +0 -1
- package/dist/esm/shared/index.d.ts +0 -7
- package/dist/esm/shared/index.d.ts.map +0 -1
- package/dist/esm/shared/index.js +0 -18
- package/dist/esm/shared/index.js.map +0 -1
- package/dist/esm/shared/lib/AuthenticationRefresherImpl.d.ts +0 -14
- package/dist/esm/shared/lib/AuthenticationRefresherImpl.d.ts.map +0 -1
- package/dist/esm/shared/lib/AuthenticationRefresherImpl.js +0 -51
- package/dist/esm/shared/lib/AuthenticationRefresherImpl.js.map +0 -1
- package/dist/esm/shared/lib/BrowserAuthenticationRefresher.d.ts +0 -11
- package/dist/esm/shared/lib/BrowserAuthenticationRefresher.d.ts.map +0 -1
- package/dist/esm/shared/lib/BrowserAuthenticationRefresher.js +0 -59
- package/dist/esm/shared/lib/BrowserAuthenticationRefresher.js.map +0 -1
- package/dist/esm/shared/lib/BrowserCookieStorage.d.ts +0 -9
- package/dist/esm/shared/lib/BrowserCookieStorage.d.ts.map +0 -1
- package/dist/esm/shared/lib/BrowserCookieStorage.js +0 -56
- package/dist/esm/shared/lib/BrowserCookieStorage.js.map +0 -1
- package/dist/esm/shared/lib/GenericAuthenticationRefresher.d.ts +0 -14
- package/dist/esm/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
- package/dist/esm/shared/lib/GenericAuthenticationRefresher.js +0 -34
- package/dist/esm/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
- package/dist/esm/shared/lib/UserSession.d.ts +0 -17
- package/dist/esm/shared/lib/UserSession.d.ts.map +0 -1
- package/dist/esm/shared/lib/UserSession.js +0 -23
- package/dist/esm/shared/lib/UserSession.js.map +0 -1
- package/dist/esm/shared/lib/iframeUtils.d.ts +0 -6
- package/dist/esm/shared/lib/iframeUtils.d.ts.map +0 -1
- package/dist/esm/shared/lib/iframeUtils.js +0 -7
- package/dist/esm/shared/lib/iframeUtils.js.map +0 -1
- package/dist/esm/shared/lib/session.d.ts +0 -4
- package/dist/esm/shared/lib/session.d.ts.map +0 -1
- package/dist/esm/shared/lib/session.js +0 -44
- package/dist/esm/shared/lib/session.js.map +0 -1
- package/dist/esm/shared/lib/storage.d.ts +0 -35
- package/dist/esm/shared/lib/storage.d.ts.map +0 -1
- package/dist/esm/shared/lib/storage.js +0 -17
- package/dist/esm/shared/lib/storage.js.map +0 -1
- package/dist/esm/shared/lib/types.d.ts +0 -39
- package/dist/esm/shared/lib/types.d.ts.map +0 -1
- package/dist/esm/shared/lib/types.js +0 -19
- package/dist/esm/shared/lib/types.js.map +0 -1
- package/dist/esm/shared/lib/util.d.ts +0 -40
- package/dist/esm/shared/lib/util.d.ts.map +0 -1
- package/dist/esm/shared/lib/util.js +0 -200
- package/dist/esm/shared/lib/util.js.map +0 -1
- package/dist/esm/shared/providers/AuthContext.d.ts +0 -12
- package/dist/esm/shared/providers/AuthContext.d.ts.map +0 -1
- package/dist/esm/shared/providers/AuthContext.js +0 -4
- package/dist/esm/shared/providers/AuthContext.js.map +0 -1
- package/dist/esm/shared/providers/AuthProvider.d.ts +0 -22
- package/dist/esm/shared/providers/AuthProvider.d.ts.map +0 -1
- package/dist/esm/shared/providers/AuthProvider.js +0 -72
- package/dist/esm/shared/providers/AuthProvider.js.map +0 -1
- package/dist/esm/shared/providers/CivicAuthConfigContext.d.ts +0 -19
- package/dist/esm/shared/providers/CivicAuthConfigContext.d.ts.map +0 -1
- package/dist/esm/shared/providers/CivicAuthConfigContext.js +0 -55
- package/dist/esm/shared/providers/CivicAuthConfigContext.js.map +0 -1
- package/dist/esm/shared/providers/CivicAuthProvider.d.ts +0 -6
- package/dist/esm/shared/providers/CivicAuthProvider.d.ts.map +0 -1
- package/dist/esm/shared/providers/CivicAuthProvider.js +0 -32
- package/dist/esm/shared/providers/CivicAuthProvider.js.map +0 -1
- package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.d.ts +0 -17
- package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.d.ts.map +0 -1
- package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.js +0 -131
- package/dist/esm/shared/providers/ClientTokenExchangeSessionProvider.js.map +0 -1
- package/dist/esm/shared/providers/IframeProvider.d.ts +0 -25
- package/dist/esm/shared/providers/IframeProvider.d.ts.map +0 -1
- package/dist/esm/shared/providers/IframeProvider.js +0 -59
- package/dist/esm/shared/providers/IframeProvider.js.map +0 -1
- package/dist/esm/shared/providers/SessionProvider.d.ts +0 -19
- package/dist/esm/shared/providers/SessionProvider.d.ts.map +0 -1
- package/dist/esm/shared/providers/SessionProvider.js +0 -24
- package/dist/esm/shared/providers/SessionProvider.js.map +0 -1
- package/dist/esm/shared/providers/TokenProvider.d.ts +0 -17
- package/dist/esm/shared/providers/TokenProvider.d.ts.map +0 -1
- package/dist/esm/shared/providers/TokenProvider.js +0 -35
- package/dist/esm/shared/providers/TokenProvider.js.map +0 -1
- package/dist/esm/shared/providers/UserProvider.d.ts +0 -26
- package/dist/esm/shared/providers/UserProvider.d.ts.map +0 -1
- package/dist/esm/shared/providers/UserProvider.js +0 -65
- package/dist/esm/shared/providers/UserProvider.js.map +0 -1
- package/dist/esm/shared/providers/types.d.ts +0 -15
- package/dist/esm/shared/providers/types.d.ts.map +0 -1
- package/dist/esm/shared/providers/types.js +0 -2
- package/dist/esm/shared/providers/types.js.map +0 -1
- package/dist/esm/shared/version.d.ts +0 -2
- package/dist/esm/shared/version.d.ts.map +0 -1
- package/dist/esm/shared/version.js +0 -3
- package/dist/esm/shared/version.js.map +0 -1
- package/dist/esm/types.d.ts +0 -163
- package/dist/esm/types.d.ts.map +0 -1
- package/dist/esm/types.js +0 -17
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/utils.d.ts +0 -15
- package/dist/esm/utils.d.ts.map +0 -1
- package/dist/esm/utils.js +0 -42
- package/dist/esm/utils.js.map +0 -1
- package/dist/esm/version.d.ts +0 -2
- package/dist/esm/version.d.ts.map +0 -1
- package/dist/esm/version.js +0 -3
- package/dist/esm/version.js.map +0 -1
- package/dist/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.handler = void 0;
|
|
4
|
-
exports.handleLogout = handleLogout;
|
|
5
|
-
exports.handleLogoutCallback = handleLogoutCallback;
|
|
6
|
-
const constants_js_1 = require("../constants.js");
|
|
7
|
-
const logger_js_1 = require("../lib/logger.js");
|
|
8
|
-
const oauth_js_1 = require("../lib/oauth.js");
|
|
9
|
-
const config_js_1 = require("../nextjs/config.js");
|
|
10
|
-
const cookies_js_1 = require("../nextjs/cookies.js");
|
|
11
|
-
const index_js_1 = require("../nextjs/index.js");
|
|
12
|
-
const utils_js_1 = require("../nextjs/utils.js");
|
|
13
|
-
const login_js_1 = require("../server/login.js");
|
|
14
|
-
const PKCE_js_1 = require("../services/PKCE.js");
|
|
15
|
-
const types_js_1 = require("../shared/lib/types.js");
|
|
16
|
-
const UserSession_js_1 = require("../shared/lib/UserSession.js");
|
|
17
|
-
const util_js_1 = require("../shared/lib/util.js");
|
|
18
|
-
const cache_js_1 = require("next/cache.js");
|
|
19
|
-
const server_js_1 = require("next/server.js");
|
|
20
|
-
const NextServerAuthenticationRefresherImpl_js_1 = require("./NextServerAuthenticationRefresherImpl.js");
|
|
21
|
-
const logger = logger_js_1.loggers.nextjs.handlers.auth;
|
|
22
|
-
class AuthError extends Error {
|
|
23
|
-
status;
|
|
24
|
-
constructor(message, status = 401) {
|
|
25
|
-
super(message);
|
|
26
|
-
this.status = status;
|
|
27
|
-
this.name = "AuthError";
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
const getAppUrl = (request) => request.cookies.get(types_js_1.CodeVerifier.APP_URL)?.value ||
|
|
31
|
-
request.nextUrl.searchParams.get("appUrl");
|
|
32
|
-
const getIdToken = async (config) => {
|
|
33
|
-
const cookieStorage = new cookies_js_1.NextjsCookieStorage(config.cookies?.tokens ?? {});
|
|
34
|
-
return cookieStorage.get(types_js_1.OAuthTokens.ID_TOKEN);
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* create a code verifier and challenge for PKCE
|
|
38
|
-
* saving the verifier in a cookie for later use
|
|
39
|
-
* @returns {Promise<NextResponse>}
|
|
40
|
-
*/
|
|
41
|
-
async function handleChallenge(request, config) {
|
|
42
|
-
const cookieStorage = new cookies_js_1.NextjsCookieStorage(config.cookies?.tokens ?? {});
|
|
43
|
-
const pkceProducer = new PKCE_js_1.GenericPublicClientPKCEProducer(cookieStorage);
|
|
44
|
-
const challenge = await pkceProducer.getCodeChallenge();
|
|
45
|
-
const appUrl = request.nextUrl.searchParams.get("appUrl");
|
|
46
|
-
if (appUrl) {
|
|
47
|
-
cookieStorage.set(types_js_1.CodeVerifier.APP_URL, appUrl);
|
|
48
|
-
}
|
|
49
|
-
return server_js_1.NextResponse.json({ status: "success", challenge });
|
|
50
|
-
}
|
|
51
|
-
async function performTokenExchangeAndSetCookies(config, code, state, appUrl) {
|
|
52
|
-
const resolvedConfigs = (0, config_js_1.resolveAuthConfig)(config);
|
|
53
|
-
// TODO This is messy, better would be to fix the config.cookies type to always be <name: settings>
|
|
54
|
-
// rather than nesting the tokens-related ones *and* code-verifier inside "tokens"
|
|
55
|
-
// (despite code-verifier not relating directly to tokens)
|
|
56
|
-
const cookieStorage = new cookies_js_1.NextjsCookieStorage({
|
|
57
|
-
...resolvedConfigs.cookies.tokens,
|
|
58
|
-
user: resolvedConfigs.cookies.user,
|
|
59
|
-
});
|
|
60
|
-
const callbackUrl = (0, utils_js_1.resolveCallbackUrl)(resolvedConfigs, appUrl);
|
|
61
|
-
try {
|
|
62
|
-
await (0, login_js_1.resolveOAuthAccessCode)(code, state, cookieStorage, {
|
|
63
|
-
...resolvedConfigs,
|
|
64
|
-
redirectUrl: callbackUrl,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
logger.error("Token exchange failed:", error);
|
|
69
|
-
throw new AuthError("Failed to authenticate user", 401);
|
|
70
|
-
}
|
|
71
|
-
const user = await (0, index_js_1.getUser)();
|
|
72
|
-
if (!user) {
|
|
73
|
-
throw new AuthError("Failed to get user info", 401);
|
|
74
|
-
}
|
|
75
|
-
const userSession = new UserSession_js_1.GenericUserSession(cookieStorage);
|
|
76
|
-
await userSession.set(user);
|
|
77
|
-
}
|
|
78
|
-
async function handleRefresh(_request, config) {
|
|
79
|
-
const resolvedConfigs = (0, config_js_1.resolveAuthConfig)(config);
|
|
80
|
-
const cookieStorage = new cookies_js_1.NextjsCookieStorage(config.cookies?.tokens ?? {});
|
|
81
|
-
try {
|
|
82
|
-
const onError = (error) => {
|
|
83
|
-
logger.error("handleRefresh: Token refresh failed:", error);
|
|
84
|
-
throw new AuthError("Failed to refresh tokens", 500);
|
|
85
|
-
};
|
|
86
|
-
const refresher = await NextServerAuthenticationRefresherImpl_js_1.NextServerAuthenticationRefresherImpl.build({
|
|
87
|
-
clientId: resolvedConfigs.clientId,
|
|
88
|
-
oauthServer: resolvedConfigs.oauthServer,
|
|
89
|
-
redirectUrl: resolvedConfigs.callbackUrl,
|
|
90
|
-
refreshUrl: resolvedConfigs.refreshUrl,
|
|
91
|
-
}, cookieStorage, onError);
|
|
92
|
-
const tokens = await refresher.refreshAccessToken();
|
|
93
|
-
return server_js_1.NextResponse.json({ status: "success", tokens });
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
logger.error("handleRefresh: Token refresh failed:", error);
|
|
97
|
-
throw new AuthError("Failed to refresh tokens", 500);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
const generateHtmlResponseWithCallback = (request, callbackUrl) => {
|
|
101
|
-
// we need to replace the URL with resolved config in case the server is hosted
|
|
102
|
-
// behind a reverse proxy or load balancer
|
|
103
|
-
const requestUrl = new URL(request.url);
|
|
104
|
-
const fetchUrl = `${callbackUrl}?${requestUrl.searchParams.toString()}&sameDomainCallback=true`;
|
|
105
|
-
return new server_js_1.NextResponse(`<html lang="en">
|
|
106
|
-
<body>
|
|
107
|
-
<span style="display:none">
|
|
108
|
-
<script>
|
|
109
|
-
window.onload = function () {
|
|
110
|
-
const appUrl = globalThis.window?.location?.origin;
|
|
111
|
-
fetch('${fetchUrl}&appUrl=' + appUrl).then((response) => {
|
|
112
|
-
response.json().then((jsonResponse) => {
|
|
113
|
-
if (jsonResponse.redirectUrl) {
|
|
114
|
-
window.location.href = jsonResponse.redirectUrl;
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
};
|
|
119
|
-
</script>
|
|
120
|
-
</span>
|
|
121
|
-
</body>
|
|
122
|
-
</html>
|
|
123
|
-
`);
|
|
124
|
-
};
|
|
125
|
-
async function handleCallback(request, config) {
|
|
126
|
-
const resolvedConfigs = (0, config_js_1.resolveAuthConfig)(config);
|
|
127
|
-
const code = request.nextUrl.searchParams.get("code");
|
|
128
|
-
const state = request.nextUrl.searchParams.get("state");
|
|
129
|
-
if (!code || !state)
|
|
130
|
-
throw new AuthError("Bad parameters", 400);
|
|
131
|
-
// appUrl is passed from the client to the server in the query string
|
|
132
|
-
// this is necessary because the server does not have access to the client's window.location.origin
|
|
133
|
-
// and can not accurately determine the appUrl (specially if the app is behind a reverse proxy)
|
|
134
|
-
const appUrl = getAppUrl(request);
|
|
135
|
-
// If we have a code_verifier cookie and the appUrl, we can do a token exchange.
|
|
136
|
-
// Otherwise, just render an empty page.
|
|
137
|
-
// The initial redirect back from the auth server does not send cookies, because the redirect is from a 3rd-party domain.
|
|
138
|
-
// The client will make an additional call to this route with cookies included, at which point we do the token exchange.
|
|
139
|
-
const codeVerifier = request.cookies.get(types_js_1.CodeVerifier.COOKIE_NAME);
|
|
140
|
-
if (!codeVerifier || !appUrl) {
|
|
141
|
-
logger.debug("handleCallback no code_verifier found", {
|
|
142
|
-
state,
|
|
143
|
-
serverTokenExchange: (0, oauth_js_1.serverTokenExchangeFromState)(`${state}`),
|
|
144
|
-
});
|
|
145
|
-
let response = new server_js_1.NextResponse(`<html lang="en"><body><span style="display:none">${constants_js_1.TOKEN_EXCHANGE_TRIGGER_TEXT}</span></body></html>`);
|
|
146
|
-
// in server-side token exchange mode we need to launch a page that will trigger the token exchange
|
|
147
|
-
// from the same domain, allowing it access to the code_verifier cookie
|
|
148
|
-
// we only need to do this in redirect mode, as the iframe already triggers a client-side token exchange
|
|
149
|
-
// if no code-verifier cookie is found
|
|
150
|
-
if (state && (0, oauth_js_1.serverTokenExchangeFromState)(state)) {
|
|
151
|
-
logger.debug("handleCallback serverTokenExchangeFromState, launching redirect page...", {
|
|
152
|
-
requestUrl: request.url,
|
|
153
|
-
configCallbackUrl: resolvedConfigs.callbackUrl,
|
|
154
|
-
});
|
|
155
|
-
// generate a page that will callback to the same domain, allowing access
|
|
156
|
-
// to the code_verifier cookie and passing the appUrl.
|
|
157
|
-
response = generateHtmlResponseWithCallback(request, resolvedConfigs.callbackUrl);
|
|
158
|
-
}
|
|
159
|
-
response.headers.set("Content-Type", "text/html; charset=utf-8");
|
|
160
|
-
logger.debug(`handleCallback no code_verifier found, returning ${constants_js_1.TOKEN_EXCHANGE_TRIGGER_TEXT}`);
|
|
161
|
-
return response;
|
|
162
|
-
}
|
|
163
|
-
await performTokenExchangeAndSetCookies(resolvedConfigs, code, state, appUrl);
|
|
164
|
-
if (request.url.includes("sameDomainCallback=true")) {
|
|
165
|
-
logger.debug("handleCallback sameDomainCallback = true, returning redirectUrl", appUrl);
|
|
166
|
-
return server_js_1.NextResponse.json({
|
|
167
|
-
status: "success",
|
|
168
|
-
redirectUrl: appUrl,
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
// this is the case where a 'normal' redirect is happening
|
|
172
|
-
if ((0, oauth_js_1.serverTokenExchangeFromState)(state)) {
|
|
173
|
-
logger.debug("handleCallback serverTokenExchangeFromState, redirect to appUrl", appUrl);
|
|
174
|
-
if (!appUrl) {
|
|
175
|
-
throw new Error("appUrl undefined. Cannot redirect.");
|
|
176
|
-
}
|
|
177
|
-
return server_js_1.NextResponse.redirect(`${appUrl}`);
|
|
178
|
-
}
|
|
179
|
-
// return an empty HTML response so the iframe doesn't show any response
|
|
180
|
-
// in the short moment between the redirect and the parent window
|
|
181
|
-
// acknowledging the redirect and closing the iframe
|
|
182
|
-
const response = new server_js_1.NextResponse(`<html lang="en"><span style="display:none">${constants_js_1.TOKEN_EXCHANGE_SUCCESS_TEXT}</span></html>`);
|
|
183
|
-
response.headers.set("Content-Type", "text/html; charset=utf-8");
|
|
184
|
-
return response;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* If redirectPath is an absolute path, return it as-is.
|
|
188
|
-
* Otherwise for relative paths, append it to the current domain.
|
|
189
|
-
* @param redirectPath
|
|
190
|
-
* @param currentBasePath
|
|
191
|
-
* @returns
|
|
192
|
-
*/
|
|
193
|
-
const getAbsoluteRedirectPath = (redirectPath, currentBasePath) => new URL(redirectPath, currentBasePath).href;
|
|
194
|
-
const getPostLogoutRedirectUrl = (request, config) => {
|
|
195
|
-
const { loginUrl } = (0, config_js_1.resolveAuthConfig)(config);
|
|
196
|
-
const redirectTarget = loginUrl ?? "/";
|
|
197
|
-
// if the optional loginUrl is provided and it is an absolute URL,
|
|
198
|
-
// use it as the redirect target
|
|
199
|
-
const isAbsoluteRedirect = /^(https?:\/\/|www\.).+/i.test(redirectTarget);
|
|
200
|
-
if (isAbsoluteRedirect) {
|
|
201
|
-
return redirectTarget;
|
|
202
|
-
}
|
|
203
|
-
// if loginUrl is not defined, the appUrl is passed from the client to the server
|
|
204
|
-
// in the query string or cookies. This is necessary because the server does not
|
|
205
|
-
// have access to the client's window.location and can not accurately determine
|
|
206
|
-
// the appUrl (specially if the app is behind a reverse proxy).
|
|
207
|
-
const appUrl = getAppUrl(request);
|
|
208
|
-
if (appUrl)
|
|
209
|
-
return getAbsoluteRedirectPath(redirectTarget, appUrl);
|
|
210
|
-
return null;
|
|
211
|
-
};
|
|
212
|
-
const revalidateUrlPath = async (url) => {
|
|
213
|
-
try {
|
|
214
|
-
const path = new URL(url).pathname;
|
|
215
|
-
(0, cache_js_1.revalidatePath)(path);
|
|
216
|
-
}
|
|
217
|
-
catch (error) {
|
|
218
|
-
logger.warn("Failed to revalidate path after logout:", error);
|
|
219
|
-
}
|
|
220
|
-
};
|
|
221
|
-
async function handleLogout(request, config) {
|
|
222
|
-
const resolvedConfigs = (0, config_js_1.resolveAuthConfig)(config);
|
|
223
|
-
const postLogoutUrl = new URL(resolvedConfigs.logoutCallbackUrl, getAppUrl(request) || request.url);
|
|
224
|
-
// read the id_token from the cookies
|
|
225
|
-
const idToken = await getIdToken(resolvedConfigs);
|
|
226
|
-
// read the state from the query parameters
|
|
227
|
-
const state = request.nextUrl.searchParams.get("state");
|
|
228
|
-
if (!state || !idToken) {
|
|
229
|
-
logger.error("handleLogout: missing state or idToken", { state, idToken });
|
|
230
|
-
// if token or state is missing, the logout call to the server will fail,
|
|
231
|
-
// (token has potentially expired already) so go straight to the postLogoutUrl
|
|
232
|
-
// so the user can be signed out.
|
|
233
|
-
return server_js_1.NextResponse.redirect(`${postLogoutUrl}${state ? "?state=" + state : ""}`);
|
|
234
|
-
}
|
|
235
|
-
const logoutUrl = await (0, util_js_1.generateOauthLogoutUrl)({
|
|
236
|
-
clientId: resolvedConfigs.clientId,
|
|
237
|
-
idToken,
|
|
238
|
-
state,
|
|
239
|
-
redirectUrl: postLogoutUrl.href,
|
|
240
|
-
oauthServer: resolvedConfigs.oauthServer,
|
|
241
|
-
});
|
|
242
|
-
return server_js_1.NextResponse.redirect(`${logoutUrl.href}`);
|
|
243
|
-
}
|
|
244
|
-
async function handleLogoutCallback(request, config) {
|
|
245
|
-
const resolvedConfigs = (0, config_js_1.resolveAuthConfig)(config);
|
|
246
|
-
const state = request.nextUrl.searchParams.get("state") || "";
|
|
247
|
-
const displayMode = (0, oauth_js_1.displayModeFromState)(state, "iframe");
|
|
248
|
-
const canAccessCookies = !!(await getIdToken(resolvedConfigs));
|
|
249
|
-
const isSameDomainCallback = request.url.includes("sameDomainCallback=true");
|
|
250
|
-
if (canAccessCookies || isSameDomainCallback) {
|
|
251
|
-
await (0, cookies_js_1.clearAuthCookies)();
|
|
252
|
-
}
|
|
253
|
-
let response;
|
|
254
|
-
// handle logout for iframe display mode
|
|
255
|
-
if (displayMode === "iframe") {
|
|
256
|
-
// try to read the token from cookies. If cookies cant be read/written
|
|
257
|
-
// because the request cames from a cross-origin redirect,
|
|
258
|
-
// we need to show a page that will trigger the logout from the same domain
|
|
259
|
-
if (canAccessCookies || isSameDomainCallback) {
|
|
260
|
-
// just return success
|
|
261
|
-
return server_js_1.NextResponse.json({ status: "success" });
|
|
262
|
-
}
|
|
263
|
-
// return a page that will trigger the logout from the same domain
|
|
264
|
-
response = generateHtmlResponseWithCallback(request, resolvedConfigs.logoutCallbackUrl);
|
|
265
|
-
response.headers.set("Content-Type", "text/html; charset=utf-8");
|
|
266
|
-
return response;
|
|
267
|
-
}
|
|
268
|
-
// handle logout for non-iframe display mode
|
|
269
|
-
const redirectUrl = getPostLogoutRedirectUrl(request, resolvedConfigs);
|
|
270
|
-
if (redirectUrl && (canAccessCookies || isSameDomainCallback)) {
|
|
271
|
-
// just redirect to the app url
|
|
272
|
-
response = server_js_1.NextResponse.redirect(`${redirectUrl}`);
|
|
273
|
-
revalidateUrlPath(redirectUrl);
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
logger.debug("handleLogout no redirectUrl found", { state });
|
|
277
|
-
response = generateHtmlResponseWithCallback(request, resolvedConfigs.logoutCallbackUrl);
|
|
278
|
-
response.headers.set("Content-Type", "text/html; charset=utf-8");
|
|
279
|
-
}
|
|
280
|
-
return response;
|
|
281
|
-
}
|
|
282
|
-
/**
|
|
283
|
-
* Creates an authentication handler for Next.js API routes
|
|
284
|
-
*
|
|
285
|
-
* Usage:
|
|
286
|
-
* ```ts
|
|
287
|
-
* // app/api/auth/[...civicauth]/route.ts
|
|
288
|
-
* import { handler } from '@civic/auth/nextjs'
|
|
289
|
-
* export const GET = handler({
|
|
290
|
-
* // optional config overrides
|
|
291
|
-
* })
|
|
292
|
-
* ```
|
|
293
|
-
*/
|
|
294
|
-
const handler = (authConfig = {}) => async (request) => {
|
|
295
|
-
const config = (0, config_js_1.resolveAuthConfig)(authConfig);
|
|
296
|
-
try {
|
|
297
|
-
const pathname = request.nextUrl.pathname;
|
|
298
|
-
const pathSegments = pathname.split("/");
|
|
299
|
-
const lastSegment = pathSegments[pathSegments.length - 1];
|
|
300
|
-
switch (lastSegment) {
|
|
301
|
-
case "challenge":
|
|
302
|
-
return await handleChallenge(request, config);
|
|
303
|
-
case "callback":
|
|
304
|
-
return await handleCallback(request, config);
|
|
305
|
-
case "refresh":
|
|
306
|
-
return await handleRefresh(request, config);
|
|
307
|
-
case "logout":
|
|
308
|
-
return await handleLogout(request, config);
|
|
309
|
-
case "logoutcallback":
|
|
310
|
-
return await handleLogoutCallback(request, config);
|
|
311
|
-
default:
|
|
312
|
-
throw new AuthError(`Invalid auth route: ${pathname}`, 404);
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
catch (error) {
|
|
316
|
-
logger.error("Auth handler error:", error);
|
|
317
|
-
const status = error instanceof AuthError ? error.status : 500;
|
|
318
|
-
const message = error instanceof Error ? error.message : "Authentication failed";
|
|
319
|
-
const response = server_js_1.NextResponse.json({ error: message }, { status });
|
|
320
|
-
await (0, cookies_js_1.clearAuthCookies)();
|
|
321
|
-
return response;
|
|
322
|
-
}
|
|
323
|
-
};
|
|
324
|
-
exports.handler = handler;
|
|
325
|
-
//# sourceMappingURL=routeHandler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routeHandler.js","sourceRoot":"","sources":["../../../src/nextjs/routeHandler.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n TOKEN_EXCHANGE_SUCCESS_TEXT,\n TOKEN_EXCHANGE_TRIGGER_TEXT,\n} from \"@/constants.js\";\nimport { loggers } from \"@/lib/logger.js\";\nimport {\n displayModeFromState,\n serverTokenExchangeFromState,\n} from \"@/lib/oauth.js\";\nimport type { AuthConfig } from \"@/nextjs/config.js\";\nimport { resolveAuthConfig } from \"@/nextjs/config.js\";\nimport { clearAuthCookies, NextjsCookieStorage } from \"@/nextjs/cookies.js\";\nimport { getUser } from \"@/nextjs/index.js\";\nimport { resolveCallbackUrl } from \"@/nextjs/utils.js\";\nimport { resolveOAuthAccessCode } from \"@/server/login.js\";\nimport { GenericPublicClientPKCEProducer } from \"@/services/PKCE.js\";\nimport { CodeVerifier, OAuthTokens } from \"@/shared/lib/types.js\";\nimport { GenericUserSession } from \"@/shared/lib/UserSession.js\";\nimport { generateOauthLogoutUrl } from \"@/shared/lib/util.js\";\nimport { revalidatePath } from \"next/cache.js\";\nimport type { NextRequest } from \"next/server.js\";\nimport { NextResponse } from \"next/server.js\";\nimport { NextServerAuthenticationRefresherImpl } from \"./NextServerAuthenticationRefresherImpl.js\";\n\nconst logger = loggers.nextjs.handlers.auth;\n\nclass AuthError extends Error {\n constructor(\n message: string,\n public readonly status: number = 401,\n ) {\n super(message);\n this.name = \"AuthError\";\n }\n}\n\nconst getAppUrl = (request: NextRequest): string | null =>\n request.cookies.get(CodeVerifier.APP_URL)?.value ||\n request.nextUrl.searchParams.get(\"appUrl\");\n\nconst getIdToken = async (config: AuthConfig): Promise<string | null> => {\n const cookieStorage = new NextjsCookieStorage(config.cookies?.tokens ?? {});\n return cookieStorage.get(OAuthTokens.ID_TOKEN);\n};\n\n/**\n * create a code verifier and challenge for PKCE\n * saving the verifier in a cookie for later use\n * @returns {Promise<NextResponse>}\n */\nasync function handleChallenge(\n request: NextRequest,\n config: AuthConfig,\n): Promise<NextResponse> {\n const cookieStorage = new NextjsCookieStorage(config.cookies?.tokens ?? {});\n const pkceProducer = new GenericPublicClientPKCEProducer(cookieStorage);\n\n const challenge = await pkceProducer.getCodeChallenge();\n const appUrl = request.nextUrl.searchParams.get(\"appUrl\");\n if (appUrl) {\n cookieStorage.set(CodeVerifier.APP_URL, appUrl);\n }\n return NextResponse.json({ status: \"success\", challenge });\n}\n\nasync function performTokenExchangeAndSetCookies(\n config: AuthConfig,\n code: string,\n state: string,\n appUrl: string,\n) {\n const resolvedConfigs = resolveAuthConfig(config);\n // TODO This is messy, better would be to fix the config.cookies type to always be <name: settings>\n // rather than nesting the tokens-related ones *and* code-verifier inside \"tokens\"\n // (despite code-verifier not relating directly to tokens)\n const cookieStorage = new NextjsCookieStorage({\n ...resolvedConfigs.cookies.tokens,\n user: resolvedConfigs.cookies.user,\n });\n\n const callbackUrl = resolveCallbackUrl(resolvedConfigs, appUrl);\n try {\n await resolveOAuthAccessCode(code, state, cookieStorage, {\n ...resolvedConfigs,\n redirectUrl: callbackUrl,\n });\n } catch (error) {\n logger.error(\"Token exchange failed:\", error);\n throw new AuthError(\"Failed to authenticate user\", 401);\n }\n\n const user = await getUser();\n if (!user) {\n throw new AuthError(\"Failed to get user info\", 401);\n }\n const userSession = new GenericUserSession(cookieStorage);\n await userSession.set(user);\n}\nasync function handleRefresh(\n _request: NextRequest,\n config: AuthConfig,\n): Promise<NextResponse> {\n const resolvedConfigs = resolveAuthConfig(config);\n const cookieStorage = new NextjsCookieStorage(config.cookies?.tokens ?? {});\n try {\n const onError = (error: Error) => {\n logger.error(\"handleRefresh: Token refresh failed:\", error);\n throw new AuthError(\"Failed to refresh tokens\", 500);\n };\n const refresher = await NextServerAuthenticationRefresherImpl.build(\n {\n clientId: resolvedConfigs.clientId,\n oauthServer: resolvedConfigs.oauthServer,\n redirectUrl: resolvedConfigs.callbackUrl,\n refreshUrl: resolvedConfigs.refreshUrl,\n },\n cookieStorage,\n onError,\n );\n\n const tokens = await refresher.refreshAccessToken();\n return NextResponse.json({ status: \"success\", tokens });\n } catch (error) {\n logger.error(\"handleRefresh: Token refresh failed:\", error);\n throw new AuthError(\"Failed to refresh tokens\", 500);\n }\n}\n\nconst generateHtmlResponseWithCallback = (\n request: NextRequest,\n callbackUrl: string,\n) => {\n // we need to replace the URL with resolved config in case the server is hosted\n // behind a reverse proxy or load balancer\n const requestUrl = new URL(request.url);\n const fetchUrl = `${callbackUrl}?${requestUrl.searchParams.toString()}&sameDomainCallback=true`;\n return new NextResponse(\n `<html lang=\"en\">\n <body>\n <span style=\"display:none\">\n <script>\n window.onload = function () {\n const appUrl = globalThis.window?.location?.origin;\n fetch('${fetchUrl}&appUrl=' + appUrl).then((response) => {\n response.json().then((jsonResponse) => {\n if (jsonResponse.redirectUrl) {\n window.location.href = jsonResponse.redirectUrl;\n }\n });\n });\n };\n </script>\n </span>\n </body>\n </html>\n `,\n );\n};\n\nasync function handleCallback(\n request: NextRequest,\n config: AuthConfig,\n): Promise<NextResponse> {\n const resolvedConfigs = resolveAuthConfig(config);\n const code = request.nextUrl.searchParams.get(\"code\");\n const state = request.nextUrl.searchParams.get(\"state\");\n if (!code || !state) throw new AuthError(\"Bad parameters\", 400);\n\n // appUrl is passed from the client to the server in the query string\n // this is necessary because the server does not have access to the client's window.location.origin\n // and can not accurately determine the appUrl (specially if the app is behind a reverse proxy)\n const appUrl = getAppUrl(request);\n\n // If we have a code_verifier cookie and the appUrl, we can do a token exchange.\n // Otherwise, just render an empty page.\n // The initial redirect back from the auth server does not send cookies, because the redirect is from a 3rd-party domain.\n // The client will make an additional call to this route with cookies included, at which point we do the token exchange.\n const codeVerifier = request.cookies.get(CodeVerifier.COOKIE_NAME);\n\n if (!codeVerifier || !appUrl) {\n logger.debug(\"handleCallback no code_verifier found\", {\n state,\n serverTokenExchange: serverTokenExchangeFromState(`${state}`),\n });\n let response = new NextResponse(\n `<html lang=\"en\"><body><span style=\"display:none\">${TOKEN_EXCHANGE_TRIGGER_TEXT}</span></body></html>`,\n );\n\n // in server-side token exchange mode we need to launch a page that will trigger the token exchange\n // from the same domain, allowing it access to the code_verifier cookie\n // we only need to do this in redirect mode, as the iframe already triggers a client-side token exchange\n // if no code-verifier cookie is found\n if (state && serverTokenExchangeFromState(state)) {\n logger.debug(\n \"handleCallback serverTokenExchangeFromState, launching redirect page...\",\n {\n requestUrl: request.url,\n configCallbackUrl: resolvedConfigs.callbackUrl,\n },\n );\n // generate a page that will callback to the same domain, allowing access\n // to the code_verifier cookie and passing the appUrl.\n response = generateHtmlResponseWithCallback(\n request,\n resolvedConfigs.callbackUrl,\n );\n }\n\n response.headers.set(\"Content-Type\", \"text/html; charset=utf-8\");\n logger.debug(\n `handleCallback no code_verifier found, returning ${TOKEN_EXCHANGE_TRIGGER_TEXT}`,\n );\n return response;\n }\n\n await performTokenExchangeAndSetCookies(resolvedConfigs, code, state, appUrl);\n\n if (request.url.includes(\"sameDomainCallback=true\")) {\n logger.debug(\n \"handleCallback sameDomainCallback = true, returning redirectUrl\",\n appUrl,\n );\n return NextResponse.json({\n status: \"success\",\n redirectUrl: appUrl,\n });\n }\n\n // this is the case where a 'normal' redirect is happening\n if (serverTokenExchangeFromState(state)) {\n logger.debug(\n \"handleCallback serverTokenExchangeFromState, redirect to appUrl\",\n appUrl,\n );\n if (!appUrl) {\n throw new Error(\"appUrl undefined. Cannot redirect.\");\n }\n return NextResponse.redirect(`${appUrl}`);\n }\n // return an empty HTML response so the iframe doesn't show any response\n // in the short moment between the redirect and the parent window\n // acknowledging the redirect and closing the iframe\n const response = new NextResponse(\n `<html lang=\"en\"><span style=\"display:none\">${TOKEN_EXCHANGE_SUCCESS_TEXT}</span></html>`,\n );\n response.headers.set(\"Content-Type\", \"text/html; charset=utf-8\");\n return response;\n}\n\n/**\n * If redirectPath is an absolute path, return it as-is.\n * Otherwise for relative paths, append it to the current domain.\n * @param redirectPath\n * @param currentBasePath\n * @returns\n */\nconst getAbsoluteRedirectPath = (\n redirectPath: string,\n currentBasePath: string,\n) => new URL(redirectPath, currentBasePath).href;\n\nconst getPostLogoutRedirectUrl = (\n request: NextRequest,\n config: AuthConfig,\n): string | null => {\n const { loginUrl } = resolveAuthConfig(config);\n const redirectTarget = loginUrl ?? \"/\";\n\n // if the optional loginUrl is provided and it is an absolute URL,\n // use it as the redirect target\n const isAbsoluteRedirect = /^(https?:\\/\\/|www\\.).+/i.test(redirectTarget);\n if (isAbsoluteRedirect) {\n return redirectTarget;\n }\n\n // if loginUrl is not defined, the appUrl is passed from the client to the server\n // in the query string or cookies. This is necessary because the server does not\n // have access to the client's window.location and can not accurately determine\n // the appUrl (specially if the app is behind a reverse proxy).\n const appUrl = getAppUrl(request);\n if (appUrl) return getAbsoluteRedirectPath(redirectTarget, appUrl);\n\n return null;\n};\n\nconst revalidateUrlPath = async (url: string) => {\n try {\n const path = new URL(url).pathname;\n revalidatePath(path);\n } catch (error) {\n logger.warn(\"Failed to revalidate path after logout:\", error);\n }\n};\n\nexport async function handleLogout(\n request: NextRequest,\n config: AuthConfig,\n): Promise<NextResponse> {\n const resolvedConfigs = resolveAuthConfig(config);\n\n const postLogoutUrl = new URL(\n resolvedConfigs.logoutCallbackUrl,\n getAppUrl(request) || request.url,\n );\n\n // read the id_token from the cookies\n const idToken = await getIdToken(resolvedConfigs);\n\n // read the state from the query parameters\n const state = request.nextUrl.searchParams.get(\"state\");\n\n if (!state || !idToken) {\n logger.error(\"handleLogout: missing state or idToken\", { state, idToken });\n // if token or state is missing, the logout call to the server will fail,\n // (token has potentially expired already) so go straight to the postLogoutUrl\n // so the user can be signed out.\n return NextResponse.redirect(\n `${postLogoutUrl}${state ? \"?state=\" + state : \"\"}`,\n );\n }\n\n const logoutUrl = await generateOauthLogoutUrl({\n clientId: resolvedConfigs.clientId,\n idToken,\n state,\n redirectUrl: postLogoutUrl.href,\n oauthServer: resolvedConfigs.oauthServer,\n });\n\n return NextResponse.redirect(`${logoutUrl.href}`);\n}\n\nexport async function handleLogoutCallback(\n request: NextRequest,\n config: AuthConfig,\n): Promise<NextResponse> {\n const resolvedConfigs = resolveAuthConfig(config);\n\n const state = request.nextUrl.searchParams.get(\"state\") || \"\";\n const displayMode = displayModeFromState(state, \"iframe\");\n\n const canAccessCookies = !!(await getIdToken(resolvedConfigs));\n const isSameDomainCallback = request.url.includes(\"sameDomainCallback=true\");\n\n if (canAccessCookies || isSameDomainCallback) {\n await clearAuthCookies();\n }\n\n let response;\n\n // handle logout for iframe display mode\n if (displayMode === \"iframe\") {\n // try to read the token from cookies. If cookies cant be read/written\n // because the request cames from a cross-origin redirect,\n // we need to show a page that will trigger the logout from the same domain\n if (canAccessCookies || isSameDomainCallback) {\n // just return success\n return NextResponse.json({ status: \"success\" });\n }\n\n // return a page that will trigger the logout from the same domain\n response = generateHtmlResponseWithCallback(\n request,\n resolvedConfigs.logoutCallbackUrl,\n );\n response.headers.set(\"Content-Type\", \"text/html; charset=utf-8\");\n return response;\n }\n\n // handle logout for non-iframe display mode\n const redirectUrl = getPostLogoutRedirectUrl(request, resolvedConfigs);\n\n if (redirectUrl && (canAccessCookies || isSameDomainCallback)) {\n // just redirect to the app url\n response = NextResponse.redirect(`${redirectUrl}`);\n revalidateUrlPath(redirectUrl);\n } else {\n logger.debug(\"handleLogout no redirectUrl found\", { state });\n response = generateHtmlResponseWithCallback(\n request,\n resolvedConfigs.logoutCallbackUrl,\n );\n response.headers.set(\"Content-Type\", \"text/html; charset=utf-8\");\n }\n\n return response;\n}\n\n/**\n * Creates an authentication handler for Next.js API routes\n *\n * Usage:\n * ```ts\n * // app/api/auth/[...civicauth]/route.ts\n * import { handler } from '@civic/auth/nextjs'\n * export const GET = handler({\n * // optional config overrides\n * })\n * ```\n */\nexport const handler =\n (authConfig = {}) =>\n async (request: NextRequest): Promise<NextResponse> => {\n const config = resolveAuthConfig(authConfig);\n\n try {\n const pathname = request.nextUrl.pathname;\n const pathSegments = pathname.split(\"/\");\n const lastSegment = pathSegments[pathSegments.length - 1];\n\n switch (lastSegment) {\n case \"challenge\":\n return await handleChallenge(request, config);\n case \"callback\":\n return await handleCallback(request, config);\n case \"refresh\":\n return await handleRefresh(request, config);\n case \"logout\":\n return await handleLogout(request, config);\n case \"logoutcallback\":\n return await handleLogoutCallback(request, config);\n default:\n throw new AuthError(`Invalid auth route: ${pathname}`, 404);\n }\n } catch (error) {\n logger.error(\"Auth handler error:\", error);\n\n const status = error instanceof AuthError ? error.status : 500;\n const message =\n error instanceof Error ? error.message : \"Authentication failed\";\n\n const response = NextResponse.json({ error: message }, { status });\n\n await clearAuthCookies();\n return response;\n }\n };\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/nextjs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,eAAO,MAAM,kBAAkB,WACrB,sBAAsB,YACpB,MAAM,KACf,MAGF,CAAC"}
|
package/dist/cjs/nextjs/utils.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveCallbackUrl = void 0;
|
|
4
|
-
const resolveCallbackUrl = (config, baseUrl) => {
|
|
5
|
-
const callbackUrl = new URL(config?.callbackUrl, baseUrl).toString();
|
|
6
|
-
return callbackUrl.toString();
|
|
7
|
-
};
|
|
8
|
-
exports.resolveCallbackUrl = resolveCallbackUrl;
|
|
9
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/nextjs/utils.ts"],"names":[],"mappings":";;;AAEO,MAAM,kBAAkB,GAAG,CAChC,MAA8B,EAC9B,OAAgB,EACR,EAAE;IACV,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrE,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;AAChC,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B","sourcesContent":["import type { AuthConfigWithDefaults } from \"@/nextjs/config.js\";\n\nexport const resolveCallbackUrl = (\n config: AuthConfigWithDefaults,\n baseUrl?: string,\n): string => {\n const callbackUrl = new URL(config?.callbackUrl, baseUrl).toString();\n return callbackUrl.toString();\n};\n"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { AuthStatus, DisplayMode } from "../../types.js";
|
|
3
|
-
/**
|
|
4
|
-
* show the loader if the user action has started and the iframe has not been aborted
|
|
5
|
-
* @param {AuthStatus} options.authStatus
|
|
6
|
-
* @param {DisplayMode} options.displayMode
|
|
7
|
-
* @param {boolean} options.userActionStarted
|
|
8
|
-
* @param options.children
|
|
9
|
-
* @returns
|
|
10
|
-
*/
|
|
11
|
-
export declare const ButtonContentOrLoader: ({ authStatus, displayMode, userActionStarted, children, }: {
|
|
12
|
-
authStatus: AuthStatus;
|
|
13
|
-
displayMode: DisplayMode;
|
|
14
|
-
userActionStarted?: boolean;
|
|
15
|
-
children: React.ReactNode;
|
|
16
|
-
}) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
17
|
-
//# sourceMappingURL=ButtonContentOrLoader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonContentOrLoader.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/ButtonContentOrLoader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI1D;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,8DAK/B;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qDA0CA,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.ButtonContentOrLoader = void 0;
|
|
5
|
-
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
6
|
-
const LoadingIcon_js_1 = require("../../shared/components/LoadingIcon.js");
|
|
7
|
-
const utils_js_1 = require("./utils.js");
|
|
8
|
-
const useIframe_js_1 = require("../../shared/hooks/useIframe.js");
|
|
9
|
-
/**
|
|
10
|
-
* show the loader if the user action has started and the iframe has not been aborted
|
|
11
|
-
* @param {AuthStatus} options.authStatus
|
|
12
|
-
* @param {DisplayMode} options.displayMode
|
|
13
|
-
* @param {boolean} options.userActionStarted
|
|
14
|
-
* @param options.children
|
|
15
|
-
* @returns
|
|
16
|
-
*/
|
|
17
|
-
const ButtonContentOrLoader = ({ authStatus, displayMode, userActionStarted, children, }) => {
|
|
18
|
-
const { iframeAborted } = (0, useIframe_js_1.useIframe)();
|
|
19
|
-
const showLoader = (0, utils_js_1.shouldShowLoader)(authStatus, displayMode, userActionStarted && !iframeAborted);
|
|
20
|
-
return ((0, jsx_runtime_1.jsxs)("div", { css: {
|
|
21
|
-
position: "relative",
|
|
22
|
-
display: "flex",
|
|
23
|
-
alignItems: "center",
|
|
24
|
-
justifyContent: "center",
|
|
25
|
-
}, children: [(0, jsx_runtime_1.jsx)("span", { css: {
|
|
26
|
-
visibility: showLoader ? "hidden" : "visible",
|
|
27
|
-
whiteSpace: "nowrap",
|
|
28
|
-
}, children: children }), showLoader ? ((0, jsx_runtime_1.jsx)("span", { css: {
|
|
29
|
-
position: "absolute",
|
|
30
|
-
display: "flex",
|
|
31
|
-
justifyContent: "center",
|
|
32
|
-
alignItems: "center",
|
|
33
|
-
top: 0,
|
|
34
|
-
left: 0,
|
|
35
|
-
right: 0,
|
|
36
|
-
bottom: 0,
|
|
37
|
-
}, children: (0, jsx_runtime_1.jsx)(LoadingIcon_js_1.LoadingIcon, { width: "1.5em", height: "1.5em" }) })) : null] }));
|
|
38
|
-
};
|
|
39
|
-
exports.ButtonContentOrLoader = ButtonContentOrLoader;
|
|
40
|
-
//# sourceMappingURL=ButtonContentOrLoader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonContentOrLoader.js","sourceRoot":"","sources":["../../../../src/reactjs/components/ButtonContentOrLoader.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAEb,uEAAiE;AAEjE,yCAA8C;AAC9C,8DAAwD;AAExD;;;;;;;GAOG;AACI,MAAM,qBAAqB,GAAG,CAAC,EACpC,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,QAAQ,GAMT,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,wBAAS,GAAE,CAAC;IACtC,MAAM,UAAU,GAAG,IAAA,2BAAgB,EACjC,UAAU,EACV,WAAW,EACX,iBAAiB,IAAI,CAAC,aAAa,CACpC,CAAC;IACF,OAAO,CACL,iCACE,GAAG,EAAE;YACH,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;SACzB,aAED,iCACE,GAAG,EAAE;oBACH,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;oBAC7C,UAAU,EAAE,QAAQ;iBACrB,YAEA,QAAQ,GACJ,EACN,UAAU,CAAC,CAAC,CAAC,CACZ,iCACE,GAAG,EAAE;oBACH,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,MAAM;oBACf,cAAc,EAAE,QAAQ;oBACxB,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;iBACV,YAED,uBAAC,4BAAW,IAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,GAAG,GACvC,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC;AApDW,QAAA,qBAAqB,yBAoDhC","sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { LoadingIcon } from \"@/shared/components/LoadingIcon.js\";\nimport type { AuthStatus, DisplayMode } from \"@/types.js\";\nimport { shouldShowLoader } from \"./utils.js\";\nimport { useIframe } from \"@/shared/hooks/useIframe.js\";\n\n/**\n * show the loader if the user action has started and the iframe has not been aborted\n * @param {AuthStatus} options.authStatus\n * @param {DisplayMode} options.displayMode\n * @param {boolean} options.userActionStarted\n * @param options.children\n * @returns\n */\nexport const ButtonContentOrLoader = ({\n authStatus,\n displayMode,\n userActionStarted,\n children,\n}: {\n authStatus: AuthStatus;\n displayMode: DisplayMode;\n userActionStarted?: boolean;\n children: React.ReactNode;\n}) => {\n const { iframeAborted } = useIframe();\n const showLoader = shouldShowLoader(\n authStatus,\n displayMode,\n userActionStarted && !iframeAborted,\n );\n return (\n <div\n css={{\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <span\n css={{\n visibility: showLoader ? \"hidden\" : \"visible\",\n whiteSpace: \"nowrap\",\n }}\n >\n {children}\n </span>\n {showLoader ? (\n <span\n css={{\n position: \"absolute\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n }}\n >\n <LoadingIcon width=\"1.5em\" height=\"1.5em\" />\n </span>\n ) : null}\n </div>\n );\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingSpinner.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/LoadingSpinner.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,sBAAsB;;;;uBAuClC,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.ButtonContentOrSpinner = void 0;
|
|
8
|
-
const react_1 = __importDefault(require("react"));
|
|
9
|
-
const LoadingIcon_js_1 = require("../../shared/components/LoadingIcon.js");
|
|
10
|
-
const ButtonContentOrSpinner = ({ isSigningOut, isSigningIn, children, }) => {
|
|
11
|
-
return (react_1.default.createElement("div", { style: {
|
|
12
|
-
position: "relative",
|
|
13
|
-
display: "flex",
|
|
14
|
-
alignItems: "center",
|
|
15
|
-
} },
|
|
16
|
-
react_1.default.createElement("span", { style: {
|
|
17
|
-
visibility: isSigningOut || isSigningIn ? "hidden" : "visible",
|
|
18
|
-
whiteSpace: "nowrap",
|
|
19
|
-
} }, children),
|
|
20
|
-
(isSigningOut || isSigningIn) && (react_1.default.createElement("span", { style: {
|
|
21
|
-
position: "absolute",
|
|
22
|
-
display: "flex",
|
|
23
|
-
justifyContent: "center",
|
|
24
|
-
alignItems: "center",
|
|
25
|
-
top: 0,
|
|
26
|
-
left: 0,
|
|
27
|
-
right: 0,
|
|
28
|
-
bottom: 0,
|
|
29
|
-
} },
|
|
30
|
-
react_1.default.createElement(LoadingIcon_js_1.LoadingIcon, { width: "1.5em", height: "1.5em" })))));
|
|
31
|
-
};
|
|
32
|
-
exports.ButtonContentOrSpinner = ButtonContentOrSpinner;
|
|
33
|
-
//# sourceMappingURL=LoadingSpinner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingSpinner.js","sourceRoot":"","sources":["../../../../src/reactjs/components/LoadingSpinner.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;AACb,kDAA0B;AAC1B,uEAAiE;AAE1D,MAAM,sBAAsB,GAAG,CAAC,EACrC,YAAY,EACZ,WAAW,EACX,QAAQ,GACT,EAAE,EAAE;IACH,OAAO,CACL,uCACE,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;SACrB;QAED,wCACE,KAAK,EAAE;gBACL,UAAU,EAAE,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC9D,UAAU,EAAE,QAAQ;aACrB,IAEA,QAAQ,CACJ;QACN,CAAC,YAAY,IAAI,WAAW,CAAC,IAAI,CAChC,wCACE,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,MAAM;gBACf,cAAc,EAAE,QAAQ;gBACxB,UAAU,EAAE,QAAQ;gBACpB,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;aACV;YAED,8BAAC,4BAAW,IAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,GAAG,CACvC,CACR,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAvCW,QAAA,sBAAsB,0BAuCjC","sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { LoadingIcon } from \"@/shared/components/LoadingIcon.js\";\n\nexport const ButtonContentOrSpinner = ({\n isSigningOut,\n isSigningIn,\n children,\n}) => {\n return (\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <span\n style={{\n visibility: isSigningOut || isSigningIn ? \"hidden\" : \"visible\",\n whiteSpace: \"nowrap\",\n }}\n >\n {children}\n </span>\n {(isSigningOut || isSigningIn) && (\n <span\n style={{\n position: \"absolute\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n }}\n >\n <LoadingIcon width=\"1.5em\" height=\"1.5em\" />\n </span>\n )}\n </div>\n );\n};\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type CSSProperties } from "react";
|
|
2
|
-
import { type DisplayMode } from "../../types.js";
|
|
3
|
-
declare const SignInButton: ({ displayMode, className, style, }: {
|
|
4
|
-
displayMode?: DisplayMode;
|
|
5
|
-
className?: string;
|
|
6
|
-
style?: CSSProperties;
|
|
7
|
-
}) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
8
|
-
export { SignInButton };
|
|
9
|
-
//# sourceMappingURL=SignInButton.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SignInButton.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/SignInButton.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAI1D,QAAA,MAAM,YAAY,uCAIf;IACD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,qDAwCA,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.SignInButton = void 0;
|
|
5
|
-
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
const types_js_1 = require("../../types.js");
|
|
8
|
-
const useUser_js_1 = require("../../reactjs/hooks/useUser.js");
|
|
9
|
-
const ButtonContentOrLoader_js_1 = require("./ButtonContentOrLoader.js");
|
|
10
|
-
const SignInButton = ({ displayMode, className, style, }) => {
|
|
11
|
-
const { signIn, authStatus, displayMode: userDisplayMode } = (0, useUser_js_1.useUser)();
|
|
12
|
-
const [userActionStarted, setUserActionStarted] = (0, react_1.useState)(false);
|
|
13
|
-
// reset the userActionStarted state if the user logs out or aborts
|
|
14
|
-
(0, react_1.useEffect)(() => {
|
|
15
|
-
if ([types_js_1.AuthStatus.AUTHENTICATED, types_js_1.AuthStatus.UNAUTHENTICATED].includes(authStatus)) {
|
|
16
|
-
setUserActionStarted(false);
|
|
17
|
-
}
|
|
18
|
-
}, [authStatus]);
|
|
19
|
-
return ((0, jsx_runtime_1.jsx)("button", { "data-testid": "sign-in-button", css: {
|
|
20
|
-
borderRadius: "9999px",
|
|
21
|
-
border: "1px solid #6b7280",
|
|
22
|
-
padding: "0.75rem 1rem",
|
|
23
|
-
transition: "background-color 0.2s",
|
|
24
|
-
minWidth: "9em", // this stops the button from going too small when in loading mode
|
|
25
|
-
}, className: className, style: style, onClick: () => {
|
|
26
|
-
setUserActionStarted(true);
|
|
27
|
-
signIn(displayMode);
|
|
28
|
-
}, children: (0, jsx_runtime_1.jsx)(ButtonContentOrLoader_js_1.ButtonContentOrLoader, { authStatus: authStatus, displayMode: displayMode || userDisplayMode, userActionStarted: userActionStarted, children: "Sign In" }) }));
|
|
29
|
-
};
|
|
30
|
-
exports.SignInButton = SignInButton;
|
|
31
|
-
//# sourceMappingURL=SignInButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SignInButton.js","sourceRoot":"","sources":["../../../../src/reactjs/components/SignInButton.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAEb,iCAAgE;AAChE,yCAA0D;AAC1D,2DAAqD;AACrD,yEAAmE;AAEnE,MAAM,YAAY,GAAG,CAAC,EACpB,WAAW,EACX,SAAS,EACT,KAAK,GAKN,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAA,oBAAO,GAAE,CAAC;IACvE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAElE,mEAAmE;IACnE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IACE,CAAC,qBAAU,CAAC,aAAa,EAAE,qBAAU,CAAC,eAAe,CAAC,CAAC,QAAQ,CAC7D,UAAU,CACX,EACD,CAAC;YACD,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,OAAO,CACL,kDACc,gBAAgB,EAC5B,GAAG,EAAE;YACH,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,mBAAmB;YAC3B,OAAO,EAAE,cAAc;YACvB,UAAU,EAAE,uBAAuB;YACnC,QAAQ,EAAE,KAAK,EAAE,kEAAkE;SACpF,EACD,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,EAAE;YACZ,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,CAAC,WAAW,CAAC,CAAC;QACtB,CAAC,YAED,uBAAC,gDAAqB,IACpB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,IAAI,eAAe,EAC3C,iBAAiB,EAAE,iBAAiB,wBAGd,GACjB,CACV,CAAC;AACJ,CAAC,CAAC;AAEO,oCAAY","sourcesContent":["\"use client\";\n\nimport { useEffect, useState, type CSSProperties } from \"react\";\nimport { AuthStatus, type DisplayMode } from \"@/types.js\";\nimport { useUser } from \"@/reactjs/hooks/useUser.js\";\nimport { ButtonContentOrLoader } from \"./ButtonContentOrLoader.js\";\n\nconst SignInButton = ({\n displayMode,\n className,\n style,\n}: {\n displayMode?: DisplayMode;\n className?: string;\n style?: CSSProperties;\n}) => {\n const { signIn, authStatus, displayMode: userDisplayMode } = useUser();\n const [userActionStarted, setUserActionStarted] = useState(false);\n\n // reset the userActionStarted state if the user logs out or aborts\n useEffect(() => {\n if (\n [AuthStatus.AUTHENTICATED, AuthStatus.UNAUTHENTICATED].includes(\n authStatus,\n )\n ) {\n setUserActionStarted(false);\n }\n }, [authStatus]);\n return (\n <button\n data-testid=\"sign-in-button\"\n css={{\n borderRadius: \"9999px\",\n border: \"1px solid #6b7280\",\n padding: \"0.75rem 1rem\",\n transition: \"background-color 0.2s\",\n minWidth: \"9em\", // this stops the button from going too small when in loading mode\n }}\n className={className}\n style={style}\n onClick={() => {\n setUserActionStarted(true);\n signIn(displayMode);\n }}\n >\n <ButtonContentOrLoader\n authStatus={authStatus}\n displayMode={displayMode || userDisplayMode}\n userActionStarted={userActionStarted}\n >\n Sign In\n </ButtonContentOrLoader>\n </button>\n );\n};\n\nexport { SignInButton };\n"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type CSSProperties } from "react";
|
|
2
|
-
declare const SignOutButton: ({ className, style, }: {
|
|
3
|
-
className?: string;
|
|
4
|
-
style?: CSSProperties;
|
|
5
|
-
}) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
6
|
-
export { SignOutButton };
|
|
7
|
-
//# sourceMappingURL=SignOutButton.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SignOutButton.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/SignOutButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAKhE,QAAA,MAAM,aAAa,0BAGhB;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,qDAmCA,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.SignOutButton = void 0;
|
|
5
|
-
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
const useUser_js_1 = require("../../reactjs/hooks/useUser.js");
|
|
8
|
-
const ButtonContentOrLoader_js_1 = require("./ButtonContentOrLoader.js");
|
|
9
|
-
const types_js_1 = require("../../types.js");
|
|
10
|
-
const SignOutButton = ({ className, style, }) => {
|
|
11
|
-
const { signOut, authStatus, displayMode } = (0, useUser_js_1.useUser)();
|
|
12
|
-
const [userActionStarted, setUserActionStarted] = (0, react_1.useState)(false);
|
|
13
|
-
// reset the userActionStarted state if the user logs out or aborts
|
|
14
|
-
(0, react_1.useEffect)(() => {
|
|
15
|
-
if ([types_js_1.AuthStatus.AUTHENTICATED, types_js_1.AuthStatus.UNAUTHENTICATED].includes(authStatus)) {
|
|
16
|
-
setUserActionStarted(false);
|
|
17
|
-
}
|
|
18
|
-
}, [authStatus]);
|
|
19
|
-
return ((0, jsx_runtime_1.jsx)("button", { css: {
|
|
20
|
-
borderRadius: "9999px",
|
|
21
|
-
border: "1px solid #6b7280",
|
|
22
|
-
padding: "0.75rem 1rem",
|
|
23
|
-
transition: "background-color 0.2s",
|
|
24
|
-
}, className: className, style: style, onClick: () => signOut(), children: (0, jsx_runtime_1.jsx)(ButtonContentOrLoader_js_1.ButtonContentOrLoader, { authStatus: authStatus, displayMode: displayMode, userActionStarted: userActionStarted, children: "Sign Out" }) }));
|
|
25
|
-
};
|
|
26
|
-
exports.SignOutButton = SignOutButton;
|
|
27
|
-
//# sourceMappingURL=SignOutButton.js.map
|