@civic/auth 0.0.1--.tsc.alpha.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/.eslintignore +3 -0
- package/.eslintrc.json +10 -0
- package/.prettierignore +3 -0
- package/.prettierrc +4 -0
- package/.turbo/turbo-build.log +13 -0
- package/.turbo/turbo-lint.log +6 -0
- package/.turbo/turbo-test.log +2415 -0
- package/README.md +202 -0
- package/civic-auth-0.0.1-beta.21.tgz +0 -0
- package/dist/cjs/src/browser/storage.d.ts +6 -0
- package/dist/cjs/src/browser/storage.d.ts.map +1 -0
- package/dist/cjs/src/browser/storage.js +13 -0
- package/dist/cjs/src/browser/storage.js.map +1 -0
- package/dist/cjs/src/config.d.ts +3 -0
- package/dist/cjs/src/config.d.ts.map +1 -0
- package/dist/cjs/src/config.js +8 -0
- package/dist/cjs/src/config.js.map +1 -0
- package/dist/cjs/src/constants.d.ts +9 -0
- package/dist/cjs/src/constants.d.ts.map +1 -0
- package/dist/cjs/src/constants.js +26 -0
- package/dist/cjs/src/constants.js.map +1 -0
- package/dist/cjs/src/index.d.ts +5 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/src/index.js +5 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/src/lib/cookies.d.ts +7 -0
- package/dist/cjs/src/lib/cookies.d.ts.map +1 -0
- package/dist/cjs/src/lib/cookies.js +26 -0
- package/dist/cjs/src/lib/cookies.js.map +1 -0
- package/dist/cjs/src/lib/jwt.d.ts +3 -0
- package/dist/cjs/src/lib/jwt.d.ts.map +1 -0
- package/dist/cjs/src/lib/jwt.js +13 -0
- package/dist/cjs/src/lib/jwt.js.map +1 -0
- package/dist/cjs/src/lib/logger.d.ts +26 -0
- package/dist/cjs/src/lib/logger.d.ts.map +1 -0
- package/dist/cjs/src/lib/logger.js +62 -0
- package/dist/cjs/src/lib/logger.js.map +1 -0
- package/dist/cjs/src/lib/oauth.d.ts +19 -0
- package/dist/cjs/src/lib/oauth.d.ts.map +1 -0
- package/dist/cjs/src/lib/oauth.js +67 -0
- package/dist/cjs/src/lib/oauth.js.map +1 -0
- package/dist/cjs/src/lib/postMessage.d.ts +4 -0
- package/dist/cjs/src/lib/postMessage.d.ts.map +1 -0
- package/dist/cjs/src/lib/postMessage.js +18 -0
- package/dist/cjs/src/lib/postMessage.js.map +1 -0
- package/dist/cjs/src/lib/windowUtil.d.ts +4 -0
- package/dist/cjs/src/lib/windowUtil.d.ts.map +1 -0
- package/dist/cjs/src/lib/windowUtil.js +34 -0
- package/dist/cjs/src/lib/windowUtil.js.map +1 -0
- package/dist/cjs/src/nextjs/GetUser.d.ts +6 -0
- package/dist/cjs/src/nextjs/GetUser.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/GetUser.js +22 -0
- package/dist/cjs/src/nextjs/GetUser.js.map +1 -0
- package/dist/cjs/src/nextjs/client/index.d.ts +2 -0
- package/dist/cjs/src/nextjs/client/index.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/client/index.js +6 -0
- package/dist/cjs/src/nextjs/client/index.js.map +1 -0
- package/dist/cjs/src/nextjs/config.d.ts +180 -0
- package/dist/cjs/src/nextjs/config.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/config.js +163 -0
- package/dist/cjs/src/nextjs/config.js.map +1 -0
- package/dist/cjs/src/nextjs/cookies.d.ts +30 -0
- package/dist/cjs/src/nextjs/cookies.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/cookies.js +116 -0
- package/dist/cjs/src/nextjs/cookies.js.map +1 -0
- package/dist/cjs/src/nextjs/hooks/index.d.ts +2 -0
- package/dist/cjs/src/nextjs/hooks/index.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/hooks/index.js +6 -0
- package/dist/cjs/src/nextjs/hooks/index.js.map +1 -0
- package/dist/cjs/src/nextjs/hooks/useTokenCookie.d.ts +3 -0
- package/dist/cjs/src/nextjs/hooks/useTokenCookie.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/hooks/useTokenCookie.js +41 -0
- package/dist/cjs/src/nextjs/hooks/useTokenCookie.js.map +1 -0
- package/dist/cjs/src/nextjs/hooks/useUserCookie.d.ts +3 -0
- package/dist/cjs/src/nextjs/hooks/useUserCookie.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/hooks/useUserCookie.js +40 -0
- package/dist/cjs/src/nextjs/hooks/useUserCookie.js.map +1 -0
- package/dist/cjs/src/nextjs/index.d.ts +7 -0
- package/dist/cjs/src/nextjs/index.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/index.js +20 -0
- package/dist/cjs/src/nextjs/index.js.map +1 -0
- package/dist/cjs/src/nextjs/middleware/index.d.ts +2 -0
- package/dist/cjs/src/nextjs/middleware/index.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/middleware/index.js +8 -0
- package/dist/cjs/src/nextjs/middleware/index.js.map +1 -0
- package/dist/cjs/src/nextjs/middleware.d.ts +59 -0
- package/dist/cjs/src/nextjs/middleware.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/middleware.js +116 -0
- package/dist/cjs/src/nextjs/middleware.js.map +1 -0
- package/dist/cjs/src/nextjs/providers/NextAuthProvider.d.ts +9 -0
- package/dist/cjs/src/nextjs/providers/NextAuthProvider.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/providers/NextAuthProvider.js +77 -0
- package/dist/cjs/src/nextjs/providers/NextAuthProvider.js.map +1 -0
- package/dist/cjs/src/nextjs/routeHandler.d.ts +18 -0
- package/dist/cjs/src/nextjs/routeHandler.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/routeHandler.js +208 -0
- package/dist/cjs/src/nextjs/routeHandler.js.map +1 -0
- package/dist/cjs/src/nextjs/utils.d.ts +3 -0
- package/dist/cjs/src/nextjs/utils.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/utils.js +10 -0
- package/dist/cjs/src/nextjs/utils.js.map +1 -0
- package/dist/cjs/src/nextjs/worker/index.d.ts +2 -0
- package/dist/cjs/src/nextjs/worker/index.d.ts.map +1 -0
- package/dist/cjs/src/nextjs/worker/index.js +8 -0
- package/dist/cjs/src/nextjs/worker/index.js.map +1 -0
- package/dist/cjs/src/reactjs/components/NextLogOut.d.ts +7 -0
- package/dist/cjs/src/reactjs/components/NextLogOut.d.ts.map +1 -0
- package/dist/cjs/src/reactjs/components/NextLogOut.js +18 -0
- package/dist/cjs/src/reactjs/components/NextLogOut.js.map +1 -0
- package/dist/cjs/src/reactjs/components/SignInButton.d.ts +8 -0
- package/dist/cjs/src/reactjs/components/SignInButton.d.ts.map +1 -0
- package/dist/cjs/src/reactjs/components/SignInButton.js +16 -0
- package/dist/cjs/src/reactjs/components/SignInButton.js.map +1 -0
- package/dist/cjs/src/reactjs/components/SignOutButton.d.ts +6 -0
- package/dist/cjs/src/reactjs/components/SignOutButton.d.ts.map +1 -0
- package/dist/cjs/src/reactjs/components/SignOutButton.js +16 -0
- package/dist/cjs/src/reactjs/components/SignOutButton.js.map +1 -0
- package/dist/cjs/src/reactjs/components/UserButton.d.ts +8 -0
- package/dist/cjs/src/reactjs/components/UserButton.d.ts.map +1 -0
- package/dist/cjs/src/reactjs/components/UserButton.js +84 -0
- package/dist/cjs/src/reactjs/components/UserButton.js.map +1 -0
- package/dist/cjs/src/reactjs/components/index.d.ts +6 -0
- package/dist/cjs/src/reactjs/components/index.d.ts.map +1 -0
- package/dist/cjs/src/reactjs/components/index.js +14 -0
- package/dist/cjs/src/reactjs/components/index.js.map +1 -0
- package/dist/cjs/src/reactjs/hooks/index.d.ts +9 -0
- package/dist/cjs/src/reactjs/hooks/index.d.ts.map +1 -0
- package/dist/cjs/src/reactjs/hooks/index.js +20 -0
- package/dist/cjs/src/reactjs/hooks/index.js.map +1 -0
- package/dist/cjs/src/reactjs/hooks/useAuth.d.ts +3 -0
- package/dist/cjs/src/reactjs/hooks/useAuth.d.ts.map +1 -0
- package/dist/cjs/src/reactjs/hooks/useAuth.js +15 -0
- package/dist/cjs/src/reactjs/hooks/useAuth.js.map +1 -0
- package/dist/cjs/src/reactjs/hooks/useUser.d.ts +4 -0
- package/dist/cjs/src/reactjs/hooks/useUser.d.ts.map +1 -0
- package/dist/cjs/src/reactjs/hooks/useUser.js +15 -0
- package/dist/cjs/src/reactjs/hooks/useUser.js.map +1 -0
- package/dist/cjs/src/reactjs/index.d.ts +6 -0
- package/dist/cjs/src/reactjs/index.d.ts.map +1 -0
- package/dist/cjs/src/reactjs/index.js +30 -0
- package/dist/cjs/src/reactjs/index.js.map +1 -0
- package/dist/cjs/src/reactjs/providers/index.d.ts +8 -0
- package/dist/cjs/src/reactjs/providers/index.d.ts.map +1 -0
- package/dist/cjs/src/reactjs/providers/index.js +19 -0
- package/dist/cjs/src/reactjs/providers/index.js.map +1 -0
- package/dist/cjs/src/server/ServerAuthenticationResolver.d.ts +18 -0
- package/dist/cjs/src/server/ServerAuthenticationResolver.d.ts.map +1 -0
- package/dist/cjs/src/server/ServerAuthenticationResolver.js +66 -0
- package/dist/cjs/src/server/ServerAuthenticationResolver.js.map +1 -0
- package/dist/cjs/src/server/config.d.ts +16 -0
- package/dist/cjs/src/server/config.d.ts.map +1 -0
- package/dist/cjs/src/server/config.js +3 -0
- package/dist/cjs/src/server/config.js.map +1 -0
- package/dist/cjs/src/server/index.d.ts +6 -0
- package/dist/cjs/src/server/index.d.ts.map +1 -0
- package/dist/cjs/src/server/index.js +14 -0
- package/dist/cjs/src/server/index.js.map +1 -0
- package/dist/cjs/src/server/login.d.ts +17 -0
- package/dist/cjs/src/server/login.d.ts.map +1 -0
- package/dist/cjs/src/server/login.js +42 -0
- package/dist/cjs/src/server/login.js.map +1 -0
- package/dist/cjs/src/server/refresh.d.ts +7 -0
- package/dist/cjs/src/server/refresh.d.ts.map +1 -0
- package/dist/cjs/src/server/refresh.js +16 -0
- package/dist/cjs/src/server/refresh.js.map +1 -0
- package/dist/cjs/src/services/AuthenticationService.d.ts +87 -0
- package/dist/cjs/src/services/AuthenticationService.d.ts.map +1 -0
- package/dist/cjs/src/services/AuthenticationService.js +228 -0
- package/dist/cjs/src/services/AuthenticationService.js.map +1 -0
- package/dist/cjs/src/services/PKCE.d.ts +20 -0
- package/dist/cjs/src/services/PKCE.d.ts.map +1 -0
- package/dist/cjs/src/services/PKCE.js +50 -0
- package/dist/cjs/src/services/PKCE.js.map +1 -0
- package/dist/cjs/src/services/types.d.ts +23 -0
- package/dist/cjs/src/services/types.d.ts.map +1 -0
- package/dist/cjs/src/services/types.js +11 -0
- package/dist/cjs/src/services/types.js.map +1 -0
- package/dist/cjs/src/shared/AuthContext.d.ts +10 -0
- package/dist/cjs/src/shared/AuthContext.d.ts.map +1 -0
- package/dist/cjs/src/shared/AuthContext.js +6 -0
- package/dist/cjs/src/shared/AuthContext.js.map +1 -0
- package/dist/cjs/src/shared/AuthProvider.d.ts +18 -0
- package/dist/cjs/src/shared/AuthProvider.d.ts.map +1 -0
- package/dist/cjs/src/shared/AuthProvider.js +276 -0
- package/dist/cjs/src/shared/AuthProvider.js.map +1 -0
- package/dist/cjs/src/shared/CivicAuthProvider.d.ts +7 -0
- package/dist/cjs/src/shared/CivicAuthProvider.d.ts.map +1 -0
- package/dist/cjs/src/shared/CivicAuthProvider.js +23 -0
- package/dist/cjs/src/shared/CivicAuthProvider.js.map +1 -0
- package/dist/cjs/src/shared/GenericAuthenticationRefresher.d.ts +15 -0
- package/dist/cjs/src/shared/GenericAuthenticationRefresher.d.ts.map +1 -0
- package/dist/cjs/src/shared/GenericAuthenticationRefresher.js +47 -0
- package/dist/cjs/src/shared/GenericAuthenticationRefresher.js.map +1 -0
- package/dist/cjs/src/shared/UserProvider.d.ts +18 -0
- package/dist/cjs/src/shared/UserProvider.d.ts.map +1 -0
- package/dist/cjs/src/shared/UserProvider.js +65 -0
- package/dist/cjs/src/shared/UserProvider.js.map +1 -0
- package/dist/cjs/src/shared/UserSession.d.ts +12 -0
- package/dist/cjs/src/shared/UserSession.d.ts.map +1 -0
- package/dist/cjs/src/shared/UserSession.js +24 -0
- package/dist/cjs/src/shared/UserSession.js.map +1 -0
- package/dist/cjs/src/shared/components/CivicAuthIframe.d.ts +8 -0
- package/dist/cjs/src/shared/components/CivicAuthIframe.d.ts.map +1 -0
- package/dist/cjs/src/shared/components/CivicAuthIframe.js +35 -0
- package/dist/cjs/src/shared/components/CivicAuthIframe.js.map +1 -0
- package/dist/cjs/src/shared/components/CivicAuthIframeContainer.d.ts +9 -0
- package/dist/cjs/src/shared/components/CivicAuthIframeContainer.d.ts.map +1 -0
- package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js +117 -0
- package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js.map +1 -0
- package/dist/cjs/src/shared/components/CloseIcon.d.ts +4 -0
- package/dist/cjs/src/shared/components/CloseIcon.d.ts.map +1 -0
- package/dist/cjs/src/shared/components/CloseIcon.js +12 -0
- package/dist/cjs/src/shared/components/CloseIcon.js.map +1 -0
- package/dist/cjs/src/shared/components/LoadingIcon.d.ts +4 -0
- package/dist/cjs/src/shared/components/LoadingIcon.d.ts.map +1 -0
- package/dist/cjs/src/shared/components/LoadingIcon.js +14 -0
- package/dist/cjs/src/shared/components/LoadingIcon.js.map +1 -0
- package/dist/cjs/src/shared/hooks/index.d.ts +5 -0
- package/dist/cjs/src/shared/hooks/index.d.ts.map +1 -0
- package/dist/cjs/src/shared/hooks/index.js +12 -0
- package/dist/cjs/src/shared/hooks/index.js.map +1 -0
- package/dist/cjs/src/shared/hooks/useAuth.d.ts +3 -0
- package/dist/cjs/src/shared/hooks/useAuth.d.ts.map +1 -0
- package/dist/cjs/src/shared/hooks/useAuth.js +15 -0
- package/dist/cjs/src/shared/hooks/useAuth.js.map +1 -0
- package/dist/cjs/src/shared/hooks/useConfig.d.ts +3 -0
- package/dist/cjs/src/shared/hooks/useConfig.d.ts.map +1 -0
- package/dist/cjs/src/shared/hooks/useConfig.js +16 -0
- package/dist/cjs/src/shared/hooks/useConfig.js.map +1 -0
- package/dist/cjs/src/shared/hooks/useIframe.d.ts +3 -0
- package/dist/cjs/src/shared/hooks/useIframe.d.ts.map +1 -0
- package/dist/cjs/src/shared/hooks/useIframe.js +16 -0
- package/dist/cjs/src/shared/hooks/useIframe.js.map +1 -0
- package/dist/cjs/src/shared/hooks/useSession.d.ts +3 -0
- package/dist/cjs/src/shared/hooks/useSession.d.ts.map +1 -0
- package/dist/cjs/src/shared/hooks/useSession.js +16 -0
- package/dist/cjs/src/shared/hooks/useSession.js.map +1 -0
- package/dist/cjs/src/shared/hooks/useToken.d.ts +3 -0
- package/dist/cjs/src/shared/hooks/useToken.d.ts.map +1 -0
- package/dist/cjs/src/shared/hooks/useToken.js +15 -0
- package/dist/cjs/src/shared/hooks/useToken.js.map +1 -0
- package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.d.ts +15 -0
- package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -0
- package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js +47 -0
- package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js.map +1 -0
- package/dist/cjs/src/shared/lib/UserSession.d.ts +12 -0
- package/dist/cjs/src/shared/lib/UserSession.d.ts.map +1 -0
- package/dist/cjs/src/shared/lib/UserSession.js +24 -0
- package/dist/cjs/src/shared/lib/UserSession.js.map +1 -0
- package/dist/cjs/src/shared/lib/session.d.ts +3 -0
- package/dist/cjs/src/shared/lib/session.d.ts.map +1 -0
- package/dist/cjs/src/shared/lib/session.js +13 -0
- package/dist/cjs/src/shared/lib/session.js.map +1 -0
- package/dist/cjs/src/shared/lib/storage.d.ts +25 -0
- package/dist/cjs/src/shared/lib/storage.d.ts.map +1 -0
- package/dist/cjs/src/shared/lib/storage.js +21 -0
- package/dist/cjs/src/shared/lib/storage.js.map +1 -0
- package/dist/cjs/src/shared/lib/types.d.ts +21 -0
- package/dist/cjs/src/shared/lib/types.d.ts.map +1 -0
- package/dist/cjs/src/shared/lib/types.js +18 -0
- package/dist/cjs/src/shared/lib/types.js.map +1 -0
- package/dist/cjs/src/shared/lib/util.d.ts +33 -0
- package/dist/cjs/src/shared/lib/util.d.ts.map +1 -0
- package/dist/cjs/src/shared/lib/util.js +164 -0
- package/dist/cjs/src/shared/lib/util.js.map +1 -0
- package/dist/cjs/src/shared/providers/AuthContext.d.ts +10 -0
- package/dist/cjs/src/shared/providers/AuthContext.d.ts.map +1 -0
- package/dist/cjs/src/shared/providers/AuthContext.js +6 -0
- package/dist/cjs/src/shared/providers/AuthContext.js.map +1 -0
- package/dist/cjs/src/shared/providers/AuthProvider.d.ts +18 -0
- package/dist/cjs/src/shared/providers/AuthProvider.d.ts.map +1 -0
- package/dist/cjs/src/shared/providers/AuthProvider.js +271 -0
- package/dist/cjs/src/shared/providers/AuthProvider.js.map +1 -0
- package/dist/cjs/src/shared/providers/CivicAuthProvider.d.ts +6 -0
- package/dist/cjs/src/shared/providers/CivicAuthProvider.d.ts.map +1 -0
- package/dist/cjs/src/shared/providers/CivicAuthProvider.js +23 -0
- package/dist/cjs/src/shared/providers/CivicAuthProvider.js.map +1 -0
- package/dist/cjs/src/shared/providers/ConfigProvider.d.ts +21 -0
- package/dist/cjs/src/shared/providers/ConfigProvider.d.ts.map +1 -0
- package/dist/cjs/src/shared/providers/ConfigProvider.js +46 -0
- package/dist/cjs/src/shared/providers/ConfigProvider.js.map +1 -0
- package/dist/cjs/src/shared/providers/IframeProvider.d.ts +16 -0
- package/dist/cjs/src/shared/providers/IframeProvider.d.ts.map +1 -0
- package/dist/cjs/src/shared/providers/IframeProvider.js +38 -0
- package/dist/cjs/src/shared/providers/IframeProvider.js.map +1 -0
- package/dist/cjs/src/shared/providers/SessionProvider.d.ts +13 -0
- package/dist/cjs/src/shared/providers/SessionProvider.d.ts.map +1 -0
- package/dist/cjs/src/shared/providers/SessionProvider.js +40 -0
- package/dist/cjs/src/shared/providers/SessionProvider.js.map +1 -0
- package/dist/cjs/src/shared/providers/TokenProvider.d.ts +18 -0
- package/dist/cjs/src/shared/providers/TokenProvider.d.ts.map +1 -0
- package/dist/cjs/src/shared/providers/TokenProvider.js +80 -0
- package/dist/cjs/src/shared/providers/TokenProvider.js.map +1 -0
- package/dist/cjs/src/shared/providers/UserProvider.d.ts +18 -0
- package/dist/cjs/src/shared/providers/UserProvider.d.ts.map +1 -0
- package/dist/cjs/src/shared/providers/UserProvider.js +65 -0
- package/dist/cjs/src/shared/providers/UserProvider.js.map +1 -0
- package/dist/cjs/src/shared/session.d.ts +3 -0
- package/dist/cjs/src/shared/session.d.ts.map +1 -0
- package/dist/cjs/src/shared/session.js +13 -0
- package/dist/cjs/src/shared/session.js.map +1 -0
- package/dist/cjs/src/shared/storage.d.ts +25 -0
- package/dist/cjs/src/shared/storage.d.ts.map +1 -0
- package/dist/cjs/src/shared/storage.js +21 -0
- package/dist/cjs/src/shared/storage.js.map +1 -0
- package/dist/cjs/src/shared/types.d.ts +21 -0
- package/dist/cjs/src/shared/types.d.ts.map +1 -0
- package/dist/cjs/src/shared/types.js +18 -0
- package/dist/cjs/src/shared/types.js.map +1 -0
- package/dist/cjs/src/shared/util.d.ts +33 -0
- package/dist/cjs/src/shared/util.d.ts.map +1 -0
- package/dist/cjs/src/shared/util.js +164 -0
- package/dist/cjs/src/shared/util.js.map +1 -0
- package/dist/cjs/src/types.d.ts +146 -0
- package/dist/cjs/src/types.d.ts.map +1 -0
- package/dist/cjs/src/types.js +3 -0
- package/dist/cjs/src/types.js.map +1 -0
- package/dist/cjs/src/utils.d.ts +17 -0
- package/dist/cjs/src/utils.d.ts.map +1 -0
- package/dist/cjs/src/utils.js +53 -0
- package/dist/cjs/src/utils.js.map +1 -0
- package/dist/cjs/src/worker/index.d.ts +2 -0
- package/dist/cjs/src/worker/index.d.ts.map +1 -0
- package/dist/cjs/src/worker/index.js +8 -0
- package/dist/cjs/src/worker/index.js.map +1 -0
- package/dist/cjs/tsconfig.build.tsbuildinfo +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/esm/src/browser/storage.d.ts +6 -0
- package/dist/esm/src/browser/storage.d.ts.map +1 -0
- package/dist/esm/src/browser/storage.js +9 -0
- package/dist/esm/src/browser/storage.js.map +1 -0
- package/dist/esm/src/config.d.ts +3 -0
- package/dist/esm/src/config.d.ts.map +1 -0
- package/dist/esm/src/config.js +5 -0
- package/dist/esm/src/config.js.map +1 -0
- package/dist/esm/src/constants.d.ts +9 -0
- package/dist/esm/src/constants.d.ts.map +1 -0
- package/dist/esm/src/constants.js +17 -0
- package/dist/esm/src/constants.js.map +1 -0
- package/dist/esm/src/index.d.ts +5 -0
- package/dist/esm/src/index.d.ts.map +1 -0
- package/dist/esm/src/index.js +3 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/lib/cookies.d.ts +7 -0
- package/dist/esm/src/lib/cookies.d.ts.map +1 -0
- package/dist/esm/src/lib/cookies.js +23 -0
- package/dist/esm/src/lib/cookies.js.map +1 -0
- package/dist/esm/src/lib/jwt.d.ts +3 -0
- package/dist/esm/src/lib/jwt.d.ts.map +1 -0
- package/dist/esm/src/lib/jwt.js +9 -0
- package/dist/esm/src/lib/jwt.js.map +1 -0
- package/dist/esm/src/lib/logger.d.ts +26 -0
- package/dist/esm/src/lib/logger.d.ts.map +1 -0
- package/dist/esm/src/lib/logger.js +55 -0
- package/dist/esm/src/lib/logger.js.map +1 -0
- package/dist/esm/src/lib/oauth.d.ts +19 -0
- package/dist/esm/src/lib/oauth.d.ts.map +1 -0
- package/dist/esm/src/lib/oauth.js +60 -0
- package/dist/esm/src/lib/oauth.js.map +1 -0
- package/dist/esm/src/lib/postMessage.d.ts +4 -0
- package/dist/esm/src/lib/postMessage.d.ts.map +1 -0
- package/dist/esm/src/lib/postMessage.js +15 -0
- package/dist/esm/src/lib/postMessage.js.map +1 -0
- package/dist/esm/src/lib/windowUtil.d.ts +4 -0
- package/dist/esm/src/lib/windowUtil.d.ts.map +1 -0
- package/dist/esm/src/lib/windowUtil.js +30 -0
- package/dist/esm/src/lib/windowUtil.js.map +1 -0
- package/dist/esm/src/nextjs/GetUser.d.ts +6 -0
- package/dist/esm/src/nextjs/GetUser.d.ts.map +1 -0
- package/dist/esm/src/nextjs/GetUser.js +18 -0
- package/dist/esm/src/nextjs/GetUser.js.map +1 -0
- package/dist/esm/src/nextjs/client/index.d.ts +2 -0
- package/dist/esm/src/nextjs/client/index.d.ts.map +1 -0
- package/dist/esm/src/nextjs/client/index.js +2 -0
- package/dist/esm/src/nextjs/client/index.js.map +1 -0
- package/dist/esm/src/nextjs/config.d.ts +180 -0
- package/dist/esm/src/nextjs/config.d.ts.map +1 -0
- package/dist/esm/src/nextjs/config.js +158 -0
- package/dist/esm/src/nextjs/config.js.map +1 -0
- package/dist/esm/src/nextjs/cookies.d.ts +30 -0
- package/dist/esm/src/nextjs/cookies.d.ts.map +1 -0
- package/dist/esm/src/nextjs/cookies.js +109 -0
- package/dist/esm/src/nextjs/cookies.js.map +1 -0
- package/dist/esm/src/nextjs/hooks/index.d.ts +2 -0
- package/dist/esm/src/nextjs/hooks/index.d.ts.map +1 -0
- package/dist/esm/src/nextjs/hooks/index.js +2 -0
- package/dist/esm/src/nextjs/hooks/index.js.map +1 -0
- package/dist/esm/src/nextjs/hooks/useTokenCookie.d.ts +3 -0
- package/dist/esm/src/nextjs/hooks/useTokenCookie.d.ts.map +1 -0
- package/dist/esm/src/nextjs/hooks/useTokenCookie.js +37 -0
- package/dist/esm/src/nextjs/hooks/useTokenCookie.js.map +1 -0
- package/dist/esm/src/nextjs/hooks/useUserCookie.d.ts +3 -0
- package/dist/esm/src/nextjs/hooks/useUserCookie.d.ts.map +1 -0
- package/dist/esm/src/nextjs/hooks/useUserCookie.js +36 -0
- package/dist/esm/src/nextjs/hooks/useUserCookie.js.map +1 -0
- package/dist/esm/src/nextjs/index.d.ts +7 -0
- package/dist/esm/src/nextjs/index.d.ts.map +1 -0
- package/dist/esm/src/nextjs/index.js +6 -0
- package/dist/esm/src/nextjs/index.js.map +1 -0
- package/dist/esm/src/nextjs/middleware/index.d.ts +2 -0
- package/dist/esm/src/nextjs/middleware/index.d.ts.map +1 -0
- package/dist/esm/src/nextjs/middleware/index.js +2 -0
- package/dist/esm/src/nextjs/middleware/index.js.map +1 -0
- package/dist/esm/src/nextjs/middleware.d.ts +59 -0
- package/dist/esm/src/nextjs/middleware.d.ts.map +1 -0
- package/dist/esm/src/nextjs/middleware.js +107 -0
- package/dist/esm/src/nextjs/middleware.js.map +1 -0
- package/dist/esm/src/nextjs/providers/NextAuthProvider.d.ts +9 -0
- package/dist/esm/src/nextjs/providers/NextAuthProvider.d.ts.map +1 -0
- package/dist/esm/src/nextjs/providers/NextAuthProvider.js +51 -0
- package/dist/esm/src/nextjs/providers/NextAuthProvider.js.map +1 -0
- package/dist/esm/src/nextjs/routeHandler.d.ts +18 -0
- package/dist/esm/src/nextjs/routeHandler.d.ts.map +1 -0
- package/dist/esm/src/nextjs/routeHandler.js +203 -0
- package/dist/esm/src/nextjs/routeHandler.js.map +1 -0
- package/dist/esm/src/nextjs/utils.d.ts +3 -0
- package/dist/esm/src/nextjs/utils.d.ts.map +1 -0
- package/dist/esm/src/nextjs/utils.js +6 -0
- package/dist/esm/src/nextjs/utils.js.map +1 -0
- package/dist/esm/src/nextjs/worker/index.d.ts +2 -0
- package/dist/esm/src/nextjs/worker/index.d.ts.map +1 -0
- package/dist/esm/src/nextjs/worker/index.js +2 -0
- package/dist/esm/src/nextjs/worker/index.js.map +1 -0
- package/dist/esm/src/reactjs/components/NextLogOut.d.ts +7 -0
- package/dist/esm/src/reactjs/components/NextLogOut.d.ts.map +1 -0
- package/dist/esm/src/reactjs/components/NextLogOut.js +12 -0
- package/dist/esm/src/reactjs/components/NextLogOut.js.map +1 -0
- package/dist/esm/src/reactjs/components/SignInButton.d.ts +8 -0
- package/dist/esm/src/reactjs/components/SignInButton.d.ts.map +1 -0
- package/dist/esm/src/reactjs/components/SignInButton.js +10 -0
- package/dist/esm/src/reactjs/components/SignInButton.js.map +1 -0
- package/dist/esm/src/reactjs/components/SignOutButton.d.ts +6 -0
- package/dist/esm/src/reactjs/components/SignOutButton.d.ts.map +1 -0
- package/dist/esm/src/reactjs/components/SignOutButton.js +10 -0
- package/dist/esm/src/reactjs/components/SignOutButton.js.map +1 -0
- package/dist/esm/src/reactjs/components/UserButton.d.ts +8 -0
- package/dist/esm/src/reactjs/components/UserButton.d.ts.map +1 -0
- package/dist/esm/src/reactjs/components/UserButton.js +58 -0
- package/dist/esm/src/reactjs/components/UserButton.js.map +1 -0
- package/dist/esm/src/reactjs/components/index.d.ts +6 -0
- package/dist/esm/src/reactjs/components/index.d.ts.map +1 -0
- package/dist/esm/src/reactjs/components/index.js +6 -0
- package/dist/esm/src/reactjs/components/index.js.map +1 -0
- package/dist/esm/src/reactjs/hooks/index.d.ts +9 -0
- package/dist/esm/src/reactjs/hooks/index.d.ts.map +1 -0
- package/dist/esm/src/reactjs/hooks/index.js +9 -0
- package/dist/esm/src/reactjs/hooks/index.js.map +1 -0
- package/dist/esm/src/reactjs/hooks/useAuth.d.ts +3 -0
- package/dist/esm/src/reactjs/hooks/useAuth.d.ts.map +1 -0
- package/dist/esm/src/reactjs/hooks/useAuth.js +12 -0
- package/dist/esm/src/reactjs/hooks/useAuth.js.map +1 -0
- package/dist/esm/src/reactjs/hooks/useUser.d.ts +4 -0
- package/dist/esm/src/reactjs/hooks/useUser.d.ts.map +1 -0
- package/dist/esm/src/reactjs/hooks/useUser.js +12 -0
- package/dist/esm/src/reactjs/hooks/useUser.js.map +1 -0
- package/dist/esm/src/reactjs/index.d.ts +6 -0
- package/dist/esm/src/reactjs/index.d.ts.map +1 -0
- package/dist/esm/src/reactjs/index.js +8 -0
- package/dist/esm/src/reactjs/index.js.map +1 -0
- package/dist/esm/src/reactjs/providers/index.d.ts +8 -0
- package/dist/esm/src/reactjs/providers/index.d.ts.map +1 -0
- package/dist/esm/src/reactjs/providers/index.js +7 -0
- package/dist/esm/src/reactjs/providers/index.js.map +1 -0
- package/dist/esm/src/server/ServerAuthenticationResolver.d.ts +18 -0
- package/dist/esm/src/server/ServerAuthenticationResolver.d.ts.map +1 -0
- package/dist/esm/src/server/ServerAuthenticationResolver.js +62 -0
- package/dist/esm/src/server/ServerAuthenticationResolver.js.map +1 -0
- package/dist/esm/src/server/config.d.ts +16 -0
- package/dist/esm/src/server/config.d.ts.map +1 -0
- package/dist/esm/src/server/config.js +2 -0
- package/dist/esm/src/server/config.js.map +1 -0
- package/dist/esm/src/server/index.d.ts +6 -0
- package/dist/esm/src/server/index.d.ts.map +1 -0
- package/dist/esm/src/server/index.js +5 -0
- package/dist/esm/src/server/index.js.map +1 -0
- package/dist/esm/src/server/login.d.ts +17 -0
- package/dist/esm/src/server/login.d.ts.map +1 -0
- package/dist/esm/src/server/login.js +37 -0
- package/dist/esm/src/server/login.js.map +1 -0
- package/dist/esm/src/server/refresh.d.ts +7 -0
- package/dist/esm/src/server/refresh.d.ts.map +1 -0
- package/dist/esm/src/server/refresh.js +13 -0
- package/dist/esm/src/server/refresh.js.map +1 -0
- package/dist/esm/src/services/AuthenticationService.d.ts +87 -0
- package/dist/esm/src/services/AuthenticationService.d.ts.map +1 -0
- package/dist/esm/src/services/AuthenticationService.js +222 -0
- package/dist/esm/src/services/AuthenticationService.js.map +1 -0
- package/dist/esm/src/services/PKCE.d.ts +20 -0
- package/dist/esm/src/services/PKCE.d.ts.map +1 -0
- package/dist/esm/src/services/PKCE.js +44 -0
- package/dist/esm/src/services/PKCE.js.map +1 -0
- package/dist/esm/src/services/types.d.ts +23 -0
- package/dist/esm/src/services/types.d.ts.map +1 -0
- package/dist/esm/src/services/types.js +7 -0
- package/dist/esm/src/services/types.js.map +1 -0
- package/dist/esm/src/shared/AuthContext.d.ts +10 -0
- package/dist/esm/src/shared/AuthContext.d.ts.map +1 -0
- package/dist/esm/src/shared/AuthContext.js +3 -0
- package/dist/esm/src/shared/AuthContext.js.map +1 -0
- package/dist/esm/src/shared/AuthProvider.d.ts +18 -0
- package/dist/esm/src/shared/AuthProvider.d.ts.map +1 -0
- package/dist/esm/src/shared/AuthProvider.js +250 -0
- package/dist/esm/src/shared/AuthProvider.js.map +1 -0
- package/dist/esm/src/shared/CivicAuthProvider.d.ts +7 -0
- package/dist/esm/src/shared/CivicAuthProvider.d.ts.map +1 -0
- package/dist/esm/src/shared/CivicAuthProvider.js +17 -0
- package/dist/esm/src/shared/CivicAuthProvider.js.map +1 -0
- package/dist/esm/src/shared/GenericAuthenticationRefresher.d.ts +15 -0
- package/dist/esm/src/shared/GenericAuthenticationRefresher.d.ts.map +1 -0
- package/dist/esm/src/shared/GenericAuthenticationRefresher.js +43 -0
- package/dist/esm/src/shared/GenericAuthenticationRefresher.js.map +1 -0
- package/dist/esm/src/shared/UserProvider.d.ts +18 -0
- package/dist/esm/src/shared/UserProvider.d.ts.map +1 -0
- package/dist/esm/src/shared/UserProvider.js +38 -0
- package/dist/esm/src/shared/UserProvider.js.map +1 -0
- package/dist/esm/src/shared/UserSession.d.ts +12 -0
- package/dist/esm/src/shared/UserSession.d.ts.map +1 -0
- package/dist/esm/src/shared/UserSession.js +20 -0
- package/dist/esm/src/shared/UserSession.js.map +1 -0
- package/dist/esm/src/shared/components/CivicAuthIframe.d.ts +8 -0
- package/dist/esm/src/shared/components/CivicAuthIframe.d.ts.map +1 -0
- package/dist/esm/src/shared/components/CivicAuthIframe.js +9 -0
- package/dist/esm/src/shared/components/CivicAuthIframe.js.map +1 -0
- package/dist/esm/src/shared/components/CivicAuthIframeContainer.d.ts +9 -0
- package/dist/esm/src/shared/components/CivicAuthIframeContainer.d.ts.map +1 -0
- package/dist/esm/src/shared/components/CivicAuthIframeContainer.js +91 -0
- package/dist/esm/src/shared/components/CivicAuthIframeContainer.js.map +1 -0
- package/dist/esm/src/shared/components/CloseIcon.d.ts +4 -0
- package/dist/esm/src/shared/components/CloseIcon.d.ts.map +1 -0
- package/dist/esm/src/shared/components/CloseIcon.js +6 -0
- package/dist/esm/src/shared/components/CloseIcon.js.map +1 -0
- package/dist/esm/src/shared/components/LoadingIcon.d.ts +4 -0
- package/dist/esm/src/shared/components/LoadingIcon.d.ts.map +1 -0
- package/dist/esm/src/shared/components/LoadingIcon.js +8 -0
- package/dist/esm/src/shared/components/LoadingIcon.js.map +1 -0
- package/dist/esm/src/shared/hooks/index.d.ts +5 -0
- package/dist/esm/src/shared/hooks/index.d.ts.map +1 -0
- package/dist/esm/src/shared/hooks/index.js +5 -0
- package/dist/esm/src/shared/hooks/index.js.map +1 -0
- package/dist/esm/src/shared/hooks/useAuth.d.ts +3 -0
- package/dist/esm/src/shared/hooks/useAuth.d.ts.map +1 -0
- package/dist/esm/src/shared/hooks/useAuth.js +12 -0
- package/dist/esm/src/shared/hooks/useAuth.js.map +1 -0
- package/dist/esm/src/shared/hooks/useConfig.d.ts +3 -0
- package/dist/esm/src/shared/hooks/useConfig.d.ts.map +1 -0
- package/dist/esm/src/shared/hooks/useConfig.js +13 -0
- package/dist/esm/src/shared/hooks/useConfig.js.map +1 -0
- package/dist/esm/src/shared/hooks/useIframe.d.ts +3 -0
- package/dist/esm/src/shared/hooks/useIframe.d.ts.map +1 -0
- package/dist/esm/src/shared/hooks/useIframe.js +13 -0
- package/dist/esm/src/shared/hooks/useIframe.js.map +1 -0
- package/dist/esm/src/shared/hooks/useSession.d.ts +3 -0
- package/dist/esm/src/shared/hooks/useSession.d.ts.map +1 -0
- package/dist/esm/src/shared/hooks/useSession.js +13 -0
- package/dist/esm/src/shared/hooks/useSession.js.map +1 -0
- package/dist/esm/src/shared/hooks/useToken.d.ts +3 -0
- package/dist/esm/src/shared/hooks/useToken.d.ts.map +1 -0
- package/dist/esm/src/shared/hooks/useToken.js +12 -0
- package/dist/esm/src/shared/hooks/useToken.js.map +1 -0
- package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.d.ts +15 -0
- package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -0
- package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js +43 -0
- package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js.map +1 -0
- package/dist/esm/src/shared/lib/UserSession.d.ts +12 -0
- package/dist/esm/src/shared/lib/UserSession.d.ts.map +1 -0
- package/dist/esm/src/shared/lib/UserSession.js +20 -0
- package/dist/esm/src/shared/lib/UserSession.js.map +1 -0
- package/dist/esm/src/shared/lib/session.d.ts +3 -0
- package/dist/esm/src/shared/lib/session.d.ts.map +1 -0
- package/dist/esm/src/shared/lib/session.js +10 -0
- package/dist/esm/src/shared/lib/session.js.map +1 -0
- package/dist/esm/src/shared/lib/storage.d.ts +25 -0
- package/dist/esm/src/shared/lib/storage.d.ts.map +1 -0
- package/dist/esm/src/shared/lib/storage.js +17 -0
- package/dist/esm/src/shared/lib/storage.js.map +1 -0
- package/dist/esm/src/shared/lib/types.d.ts +21 -0
- package/dist/esm/src/shared/lib/types.d.ts.map +1 -0
- package/dist/esm/src/shared/lib/types.js +15 -0
- package/dist/esm/src/shared/lib/types.js.map +1 -0
- package/dist/esm/src/shared/lib/util.d.ts +33 -0
- package/dist/esm/src/shared/lib/util.d.ts.map +1 -0
- package/dist/esm/src/shared/lib/util.js +128 -0
- package/dist/esm/src/shared/lib/util.js.map +1 -0
- package/dist/esm/src/shared/providers/AuthContext.d.ts +10 -0
- package/dist/esm/src/shared/providers/AuthContext.d.ts.map +1 -0
- package/dist/esm/src/shared/providers/AuthContext.js +3 -0
- package/dist/esm/src/shared/providers/AuthContext.js.map +1 -0
- package/dist/esm/src/shared/providers/AuthProvider.d.ts +18 -0
- package/dist/esm/src/shared/providers/AuthProvider.d.ts.map +1 -0
- package/dist/esm/src/shared/providers/AuthProvider.js +245 -0
- package/dist/esm/src/shared/providers/AuthProvider.js.map +1 -0
- package/dist/esm/src/shared/providers/CivicAuthProvider.d.ts +6 -0
- package/dist/esm/src/shared/providers/CivicAuthProvider.d.ts.map +1 -0
- package/dist/esm/src/shared/providers/CivicAuthProvider.js +17 -0
- package/dist/esm/src/shared/providers/CivicAuthProvider.js.map +1 -0
- package/dist/esm/src/shared/providers/ConfigProvider.d.ts +21 -0
- package/dist/esm/src/shared/providers/ConfigProvider.d.ts.map +1 -0
- package/dist/esm/src/shared/providers/ConfigProvider.js +19 -0
- package/dist/esm/src/shared/providers/ConfigProvider.js.map +1 -0
- package/dist/esm/src/shared/providers/IframeProvider.d.ts +16 -0
- package/dist/esm/src/shared/providers/IframeProvider.d.ts.map +1 -0
- package/dist/esm/src/shared/providers/IframeProvider.js +11 -0
- package/dist/esm/src/shared/providers/IframeProvider.js.map +1 -0
- package/dist/esm/src/shared/providers/SessionProvider.d.ts +13 -0
- package/dist/esm/src/shared/providers/SessionProvider.d.ts.map +1 -0
- package/dist/esm/src/shared/providers/SessionProvider.js +13 -0
- package/dist/esm/src/shared/providers/SessionProvider.js.map +1 -0
- package/dist/esm/src/shared/providers/TokenProvider.d.ts +18 -0
- package/dist/esm/src/shared/providers/TokenProvider.d.ts.map +1 -0
- package/dist/esm/src/shared/providers/TokenProvider.js +53 -0
- package/dist/esm/src/shared/providers/TokenProvider.js.map +1 -0
- package/dist/esm/src/shared/providers/UserProvider.d.ts +18 -0
- package/dist/esm/src/shared/providers/UserProvider.d.ts.map +1 -0
- package/dist/esm/src/shared/providers/UserProvider.js +38 -0
- package/dist/esm/src/shared/providers/UserProvider.js.map +1 -0
- package/dist/esm/src/shared/session.d.ts +3 -0
- package/dist/esm/src/shared/session.d.ts.map +1 -0
- package/dist/esm/src/shared/session.js +10 -0
- package/dist/esm/src/shared/session.js.map +1 -0
- package/dist/esm/src/shared/storage.d.ts +25 -0
- package/dist/esm/src/shared/storage.d.ts.map +1 -0
- package/dist/esm/src/shared/storage.js +17 -0
- package/dist/esm/src/shared/storage.js.map +1 -0
- package/dist/esm/src/shared/types.d.ts +21 -0
- package/dist/esm/src/shared/types.d.ts.map +1 -0
- package/dist/esm/src/shared/types.js +15 -0
- package/dist/esm/src/shared/types.js.map +1 -0
- package/dist/esm/src/shared/util.d.ts +33 -0
- package/dist/esm/src/shared/util.d.ts.map +1 -0
- package/dist/esm/src/shared/util.js +128 -0
- package/dist/esm/src/shared/util.js.map +1 -0
- package/dist/esm/src/types.d.ts +146 -0
- package/dist/esm/src/types.d.ts.map +1 -0
- package/dist/esm/src/types.js +2 -0
- package/dist/esm/src/types.js.map +1 -0
- package/dist/esm/src/utils.d.ts +17 -0
- package/dist/esm/src/utils.d.ts.map +1 -0
- package/dist/esm/src/utils.js +48 -0
- package/dist/esm/src/utils.js.map +1 -0
- package/dist/esm/src/worker/index.d.ts +2 -0
- package/dist/esm/src/worker/index.d.ts.map +1 -0
- package/dist/esm/src/worker/index.js +2 -0
- package/dist/esm/src/worker/index.js.map +1 -0
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +115 -0
- package/postcss.config.cjs +6 -0
- package/src/browser/storage.ts +11 -0
- package/src/config.ts +6 -0
- package/src/constants.ts +29 -0
- package/src/index.ts +18 -0
- package/src/lib/cookies.ts +28 -0
- package/src/lib/jwt.ts +15 -0
- package/src/lib/logger.ts +72 -0
- package/src/lib/oauth.ts +83 -0
- package/src/lib/postMessage.ts +22 -0
- package/src/lib/windowUtil.ts +29 -0
- package/src/nextjs/GetUser.ts +22 -0
- package/src/nextjs/client/index.ts +4 -0
- package/src/nextjs/config.ts +203 -0
- package/src/nextjs/cookies.ts +166 -0
- package/src/nextjs/hooks/index.ts +1 -0
- package/src/nextjs/hooks/useTokenCookie.ts +41 -0
- package/src/nextjs/hooks/useUserCookie.ts +41 -0
- package/src/nextjs/index.ts +24 -0
- package/src/nextjs/middleware/index.ts +1 -0
- package/src/nextjs/middleware.ts +155 -0
- package/src/nextjs/providers/NextAuthProvider.tsx +89 -0
- package/src/nextjs/routeHandler.ts +276 -0
- package/src/nextjs/utils.ts +10 -0
- package/src/reactjs/components/SignInButton.tsx +30 -0
- package/src/reactjs/components/SignOutButton.tsx +22 -0
- package/src/reactjs/components/UserButton.tsx +153 -0
- package/src/reactjs/components/index.ts +5 -0
- package/src/reactjs/hooks/index.ts +8 -0
- package/src/reactjs/hooks/useAuth.ts +15 -0
- package/src/reactjs/hooks/useUser.ts +20 -0
- package/src/reactjs/index.ts +19 -0
- package/src/reactjs/providers/index.ts +27 -0
- package/src/server/ServerAuthenticationResolver.ts +107 -0
- package/src/server/config.ts +17 -0
- package/src/server/index.ts +12 -0
- package/src/server/login.ts +58 -0
- package/src/server/refresh.ts +23 -0
- package/src/services/AuthenticationService.ts +334 -0
- package/src/services/PKCE.ts +43 -0
- package/src/services/types.ts +54 -0
- package/src/shared/components/CivicAuthIframe.tsx +26 -0
- package/src/shared/components/CivicAuthIframeContainer.tsx +150 -0
- package/src/shared/components/CloseIcon.tsx +21 -0
- package/src/shared/components/LoadingIcon.tsx +25 -0
- package/src/shared/hooks/index.ts +4 -0
- package/src/shared/hooks/useAuth.ts +15 -0
- package/src/shared/hooks/useConfig.ts +14 -0
- package/src/shared/hooks/useIframe.ts +14 -0
- package/src/shared/hooks/useSession.ts +14 -0
- package/src/shared/hooks/useToken.ts +15 -0
- package/src/shared/lib/GenericAuthenticationRefresher.ts +75 -0
- package/src/shared/lib/UserSession.ts +25 -0
- package/src/shared/lib/session.ts +11 -0
- package/src/shared/lib/storage.ts +40 -0
- package/src/shared/lib/types.ts +25 -0
- package/src/shared/lib/util.ts +217 -0
- package/src/shared/providers/AuthContext.tsx +11 -0
- package/src/shared/providers/AuthProvider.tsx +364 -0
- package/src/shared/providers/CivicAuthProvider.tsx +34 -0
- package/src/shared/providers/ConfigProvider.tsx +50 -0
- package/src/shared/providers/IframeProvider.tsx +34 -0
- package/src/shared/providers/SessionProvider.tsx +29 -0
- package/src/shared/providers/TokenProvider.tsx +78 -0
- package/src/shared/providers/UserProvider.tsx +80 -0
- package/src/styles.css +3 -0
- package/src/types.ts +227 -0
- package/src/utils.ts +65 -0
- package/tailwind.config.js +8 -0
- package/test/integration/sdk.test.tsx +266 -0
- package/test/support/fixtures.ts +56 -0
- package/test/support/tokens.json +26 -0
- package/test/unit/lib/oauth.test.ts +72 -0
- package/test/unit/logger.test.ts +175 -0
- package/test/unit/nextjs/NextAuthProvider.test.tsx +38 -0
- package/test/unit/nextjs/config.test.ts +201 -0
- package/test/unit/nextjs/getUser.test.ts +41 -0
- package/test/unit/nextjs/middleware.test.ts +138 -0
- package/test/unit/nextjs/routeHandler.test.ts +369 -0
- package/test/unit/nextjs/utils.test.ts +26 -0
- package/test/unit/publicApi/__snapshots__/apiSnapshot.test.ts.snap +19 -0
- package/test/unit/publicApi/apiSnapshot.test.ts +11 -0
- package/test/unit/react/components/SignInButton.test.tsx +50 -0
- package/test/unit/react/components/SignOutButton.test.tsx +49 -0
- package/test/unit/server/login.test.ts +179 -0
- package/test/unit/server/session.test.ts +51 -0
- package/test/unit/services/AuthenticationService.test.ts +152 -0
- package/test/unit/services/ServerAuthenticationResolver.test.ts +110 -0
- package/test/unit/shared/GenericAuthenticationRefresher.test.ts +89 -0
- package/test/unit/shared/UserSession.test.ts +42 -0
- package/test/unit/shared/components/CivicAuthIframeContainer.test.tsx +154 -0
- package/test/unit/shared/storage.test.ts +67 -0
- package/test/unit/utils.test.ts +48 -0
- package/tsconfig.build.json +5 -0
- package/tsconfig.cjs.json +8 -0
- package/tsconfig.esm.json +7 -0
- package/tsconfig.json +42 -0
- package/vitest.config.ts +41 -0
package/README.md
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# Civic Auth Client SDK
|
|
2
|
+
|
|
3
|
+
The Civic Auth Client SDK is a powerful and flexible authentication library for React and Next.js applications. It provides a seamless way to integrate Civic's authentication services into your web applications.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Easy-to-use React hooks and components
|
|
8
|
+
- Support for various authentication flows (iframe, redirect, new tab)
|
|
9
|
+
- Token management and refresh
|
|
10
|
+
- User information retrieval
|
|
11
|
+
- Customizable UI components
|
|
12
|
+
- TypeScript support
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
Install the package using npm or yarn:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install @civic/auth
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
or
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
yarn add @civic/auth
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Usage
|
|
29
|
+
|
|
30
|
+
First, import the CSS styles in your main application file (e.g., `_app.tsx` for Next.js):
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
import "@civic/auth/styles.css";
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Setup CivicAuthProvider
|
|
37
|
+
|
|
38
|
+
To use the Civic Auth Client SDK, wrap your application with the `CivicAuthProvider` component. This will allow the authentication context to be accessible throughout your app.
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
import { CivicAuthProvider } from "@civic/auth/react";
|
|
42
|
+
|
|
43
|
+
function App({ children }) {
|
|
44
|
+
return (
|
|
45
|
+
<CivicAuthProvider clientId="your-client-id" redirectUrl="https://your-app.com/callback">
|
|
46
|
+
{children}
|
|
47
|
+
</CivicAuthProvider>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The only required prop for `CivicAuthProvider` is the `clientId`. By default, the SDK uses Civic's endpoints. If you need to use your own endpoints, you can provide them using the `config` prop. See the advanced configuration section below for more details.
|
|
53
|
+
|
|
54
|
+
### Advanced Configuration
|
|
55
|
+
|
|
56
|
+
If you want to use your own endpoints, you can pass a `config` object to the `CivicAuthProvider` as shown below:
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
import { CivicAuthProvider } from "@civic/auth/react";
|
|
60
|
+
|
|
61
|
+
function App({ children }) {
|
|
62
|
+
return (
|
|
63
|
+
<CivicAuthProvider
|
|
64
|
+
clientId="your-client-id"
|
|
65
|
+
redirectUrl="https://your-app.com/callback"
|
|
66
|
+
config={{
|
|
67
|
+
endpoints: {
|
|
68
|
+
auth: "https://your-auth-server.com/oauth/auth",
|
|
69
|
+
token: "https://your-auth-server.com/oauth/token",
|
|
70
|
+
userinfo: "https://your-auth-server.com/oauth/userinfo",
|
|
71
|
+
},
|
|
72
|
+
}}
|
|
73
|
+
>
|
|
74
|
+
{children}
|
|
75
|
+
</CivicAuthProvider>
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Sign In and User Profile
|
|
81
|
+
|
|
82
|
+
The SDK provides hooks like `useAuth` and `useUser` to manage authentication and user information. Below is an example of a profile component that handles signing in and signing out.
|
|
83
|
+
|
|
84
|
+
```tsx
|
|
85
|
+
import { useAuth, useUser } from "@civic/auth/react";
|
|
86
|
+
|
|
87
|
+
function Profile() {
|
|
88
|
+
const { isAuthenticated, signIn, signOut } = useAuth();
|
|
89
|
+
const { user } = useUser();
|
|
90
|
+
|
|
91
|
+
if (!isAuthenticated) {
|
|
92
|
+
return <button onClick={() => signIn()}>Sign In</button>;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return (
|
|
96
|
+
<div>
|
|
97
|
+
<h1>Welcome, {user?.name}</h1>
|
|
98
|
+
<button onClick={() => signOut()}>Sign Out</button>
|
|
99
|
+
</div>
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### UserButton Component
|
|
105
|
+
|
|
106
|
+
The SDK also includes ready-to-use UI components like `UserButton`, which provides an easy way to display user information and authentication controls.
|
|
107
|
+
|
|
108
|
+
```tsx
|
|
109
|
+
import { UserButton } from "@civic/auth/react";
|
|
110
|
+
|
|
111
|
+
function Header() {
|
|
112
|
+
return (
|
|
113
|
+
<header>
|
|
114
|
+
<h1>My App</h1>
|
|
115
|
+
<UserButton />
|
|
116
|
+
</header>
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Embedding the login iframe in your page
|
|
122
|
+
|
|
123
|
+
The default displayMode for user login is 'iframe' which will show a modal containing the login page for users, when the `signIn` hook is called. If you want to customize where this page is shown and embed it into your page instead i.e. in the case where you have a landing page and don't want users to have to click on a 'sign-in' button, you can embed the login iframe directly inside your page and it will work just like in the modal, as long as it is a child of a <CivicAuthProvider>. In this mode, the iframe auto-loads the login page.
|
|
124
|
+
|
|
125
|
+
To enable this mode, you need to set the parameter 'modalIframe' to `false` (it defaults to `true` in normal operation).
|
|
126
|
+
|
|
127
|
+
The example below shows the iframe centered inside a div embedded on the page:
|
|
128
|
+
```tsx
|
|
129
|
+
import { CivicAuthProvider } from "@civic/auth/react";
|
|
130
|
+
|
|
131
|
+
function App({ children }) {
|
|
132
|
+
return (
|
|
133
|
+
<CivicAuthProvider
|
|
134
|
+
clientId="your-client-id"
|
|
135
|
+
redirectUrl="https://your-app.com/callback"
|
|
136
|
+
modalIframe={false}
|
|
137
|
+
>
|
|
138
|
+
{children}
|
|
139
|
+
<div className="flex min-h-[200px] items-center justify-center">
|
|
140
|
+
<CivicAuthIframeContainer />
|
|
141
|
+
</div>
|
|
142
|
+
</CivicAuthProvider>
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Token Management with useToken Hook
|
|
148
|
+
|
|
149
|
+
The `useToken` hook can be used to access and manage tokens within your application. This hook provides the current access and ID tokens, a refresh function, and token loading/error states.
|
|
150
|
+
|
|
151
|
+
```tsx
|
|
152
|
+
import { useToken } from "@civic/auth/react";
|
|
153
|
+
|
|
154
|
+
function TokenInfo() {
|
|
155
|
+
const { accessToken, idToken, refreshToken, isLoading, error } = useToken();
|
|
156
|
+
|
|
157
|
+
if (isLoading) {
|
|
158
|
+
return <div>Loading tokens...</div>;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (error) {
|
|
162
|
+
return <div>Error: {error.message}</div>;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return (
|
|
166
|
+
<div>
|
|
167
|
+
<h2>Access Token: {accessToken}</h2>
|
|
168
|
+
<h2>ID Token: {idToken}</h2>
|
|
169
|
+
<button onClick={() => refreshToken()}>Refresh Tokens</button>
|
|
170
|
+
</div>
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Configuration Options
|
|
176
|
+
|
|
177
|
+
- `clientId`: Your application's client ID provided by Civic.
|
|
178
|
+
- `redirectUrl`: (Optional) The URL to which users will be redirected after authentication.
|
|
179
|
+
- `endpoints`: (Optional) Object containing the URLs for the authentication endpoints (`auth`, `token`, `userinfo`). Use this if you want to point to your own authentication server.
|
|
180
|
+
|
|
181
|
+
## Display modes
|
|
182
|
+
|
|
183
|
+
In order to verify a user's credentials, an auth window is loaded in one of three modes:
|
|
184
|
+
|
|
185
|
+
### iframe
|
|
186
|
+
an iframe is overlaid onto the page where the AuthProvider lives, and the Civic auth UI is loaded inside the iframe. When authentication is complete the iframe will disappear.
|
|
187
|
+
|
|
188
|
+
### redirect
|
|
189
|
+
the current page is redirecting to the Civic auth UI. When authentication is complete, the page redirects back to the original page.
|
|
190
|
+
|
|
191
|
+
### new_tab
|
|
192
|
+
the current page remains open and a new tab is open to show the Civic auth UI. When authentication is complete, the tab is closed.
|
|
193
|
+
|
|
194
|
+
Note that if a user's browser does not allow popups, then the display mode defaults to 'redirect'.
|
|
195
|
+
|
|
196
|
+
## TypeScript Support
|
|
197
|
+
|
|
198
|
+
This SDK is fully written in TypeScript, providing type definitions out of the box for a smooth development experience.
|
|
199
|
+
|
|
200
|
+
## License
|
|
201
|
+
|
|
202
|
+
This project is licensed under the MIT License.
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/browser/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,qBAAa,mBAAoB,YAAW,WAAW;IACrD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIxB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAGtC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalStorageAdapter = void 0;
|
|
4
|
+
class LocalStorageAdapter {
|
|
5
|
+
get(key) {
|
|
6
|
+
return localStorage.getItem(key) || "";
|
|
7
|
+
}
|
|
8
|
+
set(key, value) {
|
|
9
|
+
localStorage.setItem(key, value);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.LocalStorageAdapter = LocalStorageAdapter;
|
|
13
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../src/browser/storage.ts"],"names":[],"mappings":";;;AAEA,MAAa,mBAAmB;IAC9B,GAAG,CAAC,GAAW;QACb,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAa;QAC5B,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;CACF;AARD,kDAQC","sourcesContent":["import type { AuthStorage } from \"@/types.js\";\n\nexport class LocalStorageAdapter implements AuthStorage {\n get(key: string): string {\n return localStorage.getItem(key) || \"\";\n }\n\n set(key: string, value: string): void {\n localStorage.setItem(key, value);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,eAAO,MAAM,UAAU,EAAE,MAExB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.authConfig = void 0;
|
|
4
|
+
const constants_js_1 = require("./constants.js");
|
|
5
|
+
exports.authConfig = {
|
|
6
|
+
oauthServer: constants_js_1.DEFAULT_AUTH_SERVER,
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":";;;AACA,iDAAqD;AAExC,QAAA,UAAU,GAAW;IAChC,WAAW,EAAE,kCAAmB;CACjC,CAAC","sourcesContent":["import type { Config } from \"@/types.js\";\nimport { DEFAULT_AUTH_SERVER } from \"./constants.js\";\n\nexport const authConfig: Config = {\n oauthServer: DEFAULT_AUTH_SERVER,\n};\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare const DEFAULT_SCOPES: string[];
|
|
2
|
+
declare const IFRAME_ID = "civic-auth-iframe";
|
|
3
|
+
declare const DEFAULT_AUTH_SERVER = "https://auth.civic.com/oauth";
|
|
4
|
+
declare const DEFAULT_OAUTH_GET_PARAMS: string[];
|
|
5
|
+
declare const TOKEN_EXCHANGE_TRIGGER_TEXT = "sameDomainCodeExchangeRequired";
|
|
6
|
+
declare const TOKEN_EXCHANGE_SUCCESS_TEXT = "serverSideTokenExchangeSuccess";
|
|
7
|
+
declare const DEFAULT_DISPLAY_MODE = "iframe";
|
|
8
|
+
export { DEFAULT_SCOPES, DEFAULT_OAUTH_GET_PARAMS, DEFAULT_DISPLAY_MODE, IFRAME_ID, DEFAULT_AUTH_SERVER, TOKEN_EXCHANGE_TRIGGER_TEXT, TOKEN_EXCHANGE_SUCCESS_TEXT, };
|
|
9
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/constants.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,cAAc,UAMnB,CAAC;AACF,QAAA,MAAM,SAAS,sBAAsB,CAAC;AAEtC,QAAA,MAAM,mBAAmB,iCAAiC,CAAC;AAE3D,QAAA,MAAM,wBAAwB,UAA2B,CAAC;AAI1D,QAAA,MAAM,2BAA2B,mCAAmC,CAAC;AAErE,QAAA,MAAM,2BAA2B,mCAAmC,CAAC;AAErE,QAAA,MAAM,oBAAoB,WAAW,CAAC;AACtC,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,2BAA2B,EAC3B,2BAA2B,GAC5B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TOKEN_EXCHANGE_SUCCESS_TEXT = exports.TOKEN_EXCHANGE_TRIGGER_TEXT = exports.DEFAULT_AUTH_SERVER = exports.IFRAME_ID = exports.DEFAULT_DISPLAY_MODE = exports.DEFAULT_OAUTH_GET_PARAMS = exports.DEFAULT_SCOPES = void 0;
|
|
4
|
+
const DEFAULT_SCOPES = [
|
|
5
|
+
"openid",
|
|
6
|
+
"profile",
|
|
7
|
+
"email",
|
|
8
|
+
"forwardedTokens",
|
|
9
|
+
"offline_access",
|
|
10
|
+
];
|
|
11
|
+
exports.DEFAULT_SCOPES = DEFAULT_SCOPES;
|
|
12
|
+
const IFRAME_ID = "civic-auth-iframe";
|
|
13
|
+
exports.IFRAME_ID = IFRAME_ID;
|
|
14
|
+
const DEFAULT_AUTH_SERVER = "https://auth.civic.com/oauth";
|
|
15
|
+
exports.DEFAULT_AUTH_SERVER = DEFAULT_AUTH_SERVER;
|
|
16
|
+
const DEFAULT_OAUTH_GET_PARAMS = ["code", "state", "iss"];
|
|
17
|
+
exports.DEFAULT_OAUTH_GET_PARAMS = DEFAULT_OAUTH_GET_PARAMS;
|
|
18
|
+
// The server's callback handler renders this text if it needs the front-end to make an additional token exchange call,
|
|
19
|
+
// for the iframe case where cookies are not sent along with the initial redirect.
|
|
20
|
+
const TOKEN_EXCHANGE_TRIGGER_TEXT = "sameDomainCodeExchangeRequired";
|
|
21
|
+
exports.TOKEN_EXCHANGE_TRIGGER_TEXT = TOKEN_EXCHANGE_TRIGGER_TEXT;
|
|
22
|
+
const TOKEN_EXCHANGE_SUCCESS_TEXT = "serverSideTokenExchangeSuccess";
|
|
23
|
+
exports.TOKEN_EXCHANGE_SUCCESS_TEXT = TOKEN_EXCHANGE_SUCCESS_TEXT;
|
|
24
|
+
const DEFAULT_DISPLAY_MODE = "iframe";
|
|
25
|
+
exports.DEFAULT_DISPLAY_MODE = DEFAULT_DISPLAY_MODE;
|
|
26
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG;IACrB,QAAQ;IACR,SAAS;IACT,OAAO;IACP,iBAAiB;IACjB,gBAAgB;CACjB,CAAC;AAeA,wCAAc;AAdhB,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAiBpC,8BAAS;AAfX,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAgBzD,kDAAmB;AAdrB,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAWxD,4DAAwB;AAT1B,uHAAuH;AACvH,kFAAkF;AAClF,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;AAWnE,kEAA2B;AAT7B,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;AAUnE,kEAA2B;AAR7B,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAIpC,oDAAoB","sourcesContent":["const DEFAULT_SCOPES = [\n \"openid\",\n \"profile\",\n \"email\",\n \"forwardedTokens\",\n \"offline_access\",\n];\nconst IFRAME_ID = \"civic-auth-iframe\";\n\nconst DEFAULT_AUTH_SERVER = \"https://auth.civic.com/oauth\";\n\nconst DEFAULT_OAUTH_GET_PARAMS = [\"code\", \"state\", \"iss\"];\n\n// The server's callback handler renders this text if it needs the front-end to make an additional token exchange call,\n// for the iframe case where cookies are not sent along with the initial redirect.\nconst TOKEN_EXCHANGE_TRIGGER_TEXT = \"sameDomainCodeExchangeRequired\";\n\nconst TOKEN_EXCHANGE_SUCCESS_TEXT = \"serverSideTokenExchangeSuccess\";\n\nconst DEFAULT_DISPLAY_MODE = \"iframe\";\nexport {\n DEFAULT_SCOPES,\n DEFAULT_OAUTH_GET_PARAMS,\n DEFAULT_DISPLAY_MODE,\n IFRAME_ID,\n DEFAULT_AUTH_SERVER,\n TOKEN_EXCHANGE_TRIGGER_TEXT,\n TOKEN_EXCHANGE_SUCCESS_TEXT,\n};\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { Tokens, Endpoints, Config, User, DisplayMode, ForwardedTokens, AuthStorage, } from "./types.js";
|
|
2
|
+
export type * from "./shared/lib/types.js";
|
|
3
|
+
export type { UserContextType } from "./shared/providers/UserProvider.js";
|
|
4
|
+
import "./styles.css";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,MAAM,EACN,SAAS,EACT,MAAM,EACN,IAAI,EACJ,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,mBAAmB,uBAAuB,CAAC;AAE3C,YAAY,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;AAgBA,yDAAyD;AACzD,wBAAsB","sourcesContent":["// These are the default exports of the project.\n// They are limited by design to ensure that the public API does not expose any internal implementation details.\n// Do not change this without thinking carefully about the impact on the client-facing public API.\nexport type {\n Tokens,\n Endpoints,\n Config,\n User,\n DisplayMode,\n ForwardedTokens,\n AuthStorage,\n} from \"@/types.js\";\n\nexport type * from \"@/shared/lib/types.js\";\n\nexport type { UserContextType } from \"@/shared/providers/UserProvider.js\";\n// We need this to have the styles exported on the bundle\nimport \"./styles.css\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../../../src/lib/cookies.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,oBAAoB,gCAIvB;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,QAkBA,CAAC;AACF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getWindowCookieValue = void 0;
|
|
4
|
+
const getWindowCookieValue = ({ key, window, parseJson = false, }) => {
|
|
5
|
+
const cookie = window.document.cookie;
|
|
6
|
+
if (!cookie)
|
|
7
|
+
return null;
|
|
8
|
+
const cookies = cookie.split(";");
|
|
9
|
+
for (const c of cookies) {
|
|
10
|
+
const [name, value] = c.trim().split("=");
|
|
11
|
+
if (value && name === key) {
|
|
12
|
+
try {
|
|
13
|
+
const decodeURIComponentValue = decodeURIComponent(value);
|
|
14
|
+
return parseJson
|
|
15
|
+
? JSON.parse(decodeURIComponentValue)
|
|
16
|
+
: decodeURIComponentValue;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
};
|
|
25
|
+
exports.getWindowCookieValue = getWindowCookieValue;
|
|
26
|
+
//# sourceMappingURL=cookies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../../../src/lib/cookies.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG,CAAC,EAC5B,GAAG,EACH,MAAM,EACN,SAAS,GAAG,KAAK,GAKlB,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,KAAK,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,uBAAuB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC1D,OAAO,SAAS;oBACd,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC;oBACrC,CAAC,CAAC,uBAAuB,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACO,oDAAoB","sourcesContent":["const getWindowCookieValue = ({\n key,\n window,\n parseJson = false,\n}: {\n key: string;\n window: Window;\n parseJson?: boolean;\n}) => {\n const cookie = window.document.cookie;\n if (!cookie) return null;\n const cookies = cookie.split(\";\");\n for (const c of cookies) {\n const [name, value] = c.trim().split(\"=\");\n if (value && name === key) {\n try {\n const decodeURIComponentValue = decodeURIComponent(value);\n return parseJson\n ? JSON.parse(decodeURIComponentValue)\n : decodeURIComponentValue;\n } catch {\n return value;\n }\n }\n }\n return null;\n};\nexport { getWindowCookieValue };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../../src/lib/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE,eAAO,MAAM,2BAA2B,gBACzB,kBAAkB,KAC9B,eAUA,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertForwardedTokenFormat = void 0;
|
|
4
|
+
const convertForwardedTokenFormat = (inputTokens) => Object.fromEntries(Object.entries(inputTokens).map(([source, tokens]) => [
|
|
5
|
+
source,
|
|
6
|
+
{
|
|
7
|
+
idToken: tokens?.id_token,
|
|
8
|
+
accessToken: tokens?.access_token,
|
|
9
|
+
refreshToken: tokens?.refresh_token,
|
|
10
|
+
},
|
|
11
|
+
]));
|
|
12
|
+
exports.convertForwardedTokenFormat = convertForwardedTokenFormat;
|
|
13
|
+
//# sourceMappingURL=jwt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../../src/lib/jwt.ts"],"names":[],"mappings":";;;AAEO,MAAM,2BAA2B,GAAG,CACzC,WAA+B,EACd,EAAE,CACnB,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IACpD,MAAM;IACN;QACE,OAAO,EAAE,MAAM,EAAE,QAAQ;QACzB,WAAW,EAAE,MAAM,EAAE,YAAY;QACjC,YAAY,EAAE,MAAM,EAAE,aAAa;KACpC;CACF,CAAC,CACH,CAAC;AAZS,QAAA,2BAA2B,+BAYpC","sourcesContent":["import type { ForwardedTokens, ForwardedTokensJWT } from \"@/types.js\";\n\nexport const convertForwardedTokenFormat = (\n inputTokens: ForwardedTokensJWT,\n): ForwardedTokens =>\n Object.fromEntries(\n Object.entries(inputTokens).map(([source, tokens]) => [\n source,\n {\n idToken: tokens?.id_token,\n accessToken: tokens?.access_token,\n refreshToken: tokens?.refresh_token,\n },\n ]),\n );\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface Logger {
|
|
2
|
+
debug(message: string, ...args: unknown[]): void;
|
|
3
|
+
info(message: string, ...args: unknown[]): void;
|
|
4
|
+
warn(message: string, ...args: unknown[]): void;
|
|
5
|
+
error(message: string, ...args: unknown[]): void;
|
|
6
|
+
}
|
|
7
|
+
export declare const createLogger: (namespace: string) => Logger;
|
|
8
|
+
export declare const loggers: {
|
|
9
|
+
readonly nextjs: {
|
|
10
|
+
readonly routes: Logger;
|
|
11
|
+
readonly middleware: Logger;
|
|
12
|
+
readonly handlers: {
|
|
13
|
+
readonly auth: Logger;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
readonly react: {
|
|
17
|
+
readonly components: Logger;
|
|
18
|
+
readonly hooks: Logger;
|
|
19
|
+
readonly context: Logger;
|
|
20
|
+
};
|
|
21
|
+
readonly services: {
|
|
22
|
+
readonly validation: Logger;
|
|
23
|
+
readonly network: Logger;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/lib/logger.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAsCD,eAAO,MAAM,YAAY,cAAe,MAAM,KAAG,MACrB,CAAC;AAG7B,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;CAoBV,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loggers = exports.createLogger = void 0;
|
|
7
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
|
+
const PACKAGE_NAME = "@civic/auth";
|
|
9
|
+
class DebugLogger {
|
|
10
|
+
debugLogger;
|
|
11
|
+
infoLogger;
|
|
12
|
+
warnLogger;
|
|
13
|
+
errorLogger;
|
|
14
|
+
constructor(namespace) {
|
|
15
|
+
// Format: @org/package:library:component:level
|
|
16
|
+
this.debugLogger = (0, debug_1.default)(`${PACKAGE_NAME}:${namespace}:debug`);
|
|
17
|
+
this.infoLogger = (0, debug_1.default)(`${PACKAGE_NAME}:${namespace}:info`);
|
|
18
|
+
this.warnLogger = (0, debug_1.default)(`${PACKAGE_NAME}:${namespace}:warn`);
|
|
19
|
+
this.errorLogger = (0, debug_1.default)(`${PACKAGE_NAME}:${namespace}:error`);
|
|
20
|
+
this.debugLogger.color = "4";
|
|
21
|
+
this.infoLogger.color = "2";
|
|
22
|
+
this.warnLogger.color = "3";
|
|
23
|
+
this.errorLogger.color = "1";
|
|
24
|
+
}
|
|
25
|
+
debug(message, ...args) {
|
|
26
|
+
this.debugLogger(message, ...args);
|
|
27
|
+
}
|
|
28
|
+
info(message, ...args) {
|
|
29
|
+
this.infoLogger(message, ...args);
|
|
30
|
+
}
|
|
31
|
+
warn(message, ...args) {
|
|
32
|
+
this.warnLogger(message, ...args);
|
|
33
|
+
}
|
|
34
|
+
error(message, ...args) {
|
|
35
|
+
this.errorLogger(message, ...args);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const createLogger = (namespace) => new DebugLogger(namespace);
|
|
39
|
+
exports.createLogger = createLogger;
|
|
40
|
+
// Pre-configured loggers for different parts of your package
|
|
41
|
+
exports.loggers = {
|
|
42
|
+
// Next.js specific loggers
|
|
43
|
+
nextjs: {
|
|
44
|
+
routes: (0, exports.createLogger)("api:routes"),
|
|
45
|
+
middleware: (0, exports.createLogger)("api:middleware"),
|
|
46
|
+
handlers: {
|
|
47
|
+
auth: (0, exports.createLogger)("api:handlers:auth"),
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
// React specific loggers
|
|
51
|
+
react: {
|
|
52
|
+
components: (0, exports.createLogger)("react:components"),
|
|
53
|
+
hooks: (0, exports.createLogger)("react:hooks"),
|
|
54
|
+
context: (0, exports.createLogger)("react:context"),
|
|
55
|
+
},
|
|
56
|
+
// Shared utilities loggers
|
|
57
|
+
services: {
|
|
58
|
+
validation: (0, exports.createLogger)("utils:validation"),
|
|
59
|
+
network: (0, exports.createLogger)("utils:network"),
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../src/lib/logger.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,MAAM,YAAY,GAAG,aAAa,CAAC;AASnC,MAAM,WAAW;IACP,WAAW,CAAiB;IAC5B,UAAU,CAAiB;IAC3B,UAAU,CAAiB;IAC3B,WAAW,CAAiB;IAEpC,YAAY,SAAiB;QAC3B,+CAA+C;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAA,eAAK,EAAC,GAAG,YAAY,IAAI,SAAS,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,GAAG,IAAA,eAAK,EAAC,GAAG,YAAY,IAAI,SAAS,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,IAAA,eAAK,EAAC,GAAG,YAAY,IAAI,SAAS,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,IAAA,eAAK,EAAC,GAAG,YAAY,IAAI,SAAS,QAAQ,CAAC,CAAC;QAE/D,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAe;QACvC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAe;QACtC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAe;QACtC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAe;QACvC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;CACF;AAEM,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAU,EAAE,CACxD,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;AADhB,QAAA,YAAY,gBACI;AAE7B,6DAA6D;AAChD,QAAA,OAAO,GAAG;IACrB,2BAA2B;IAC3B,MAAM,EAAE;QACN,MAAM,EAAE,IAAA,oBAAY,EAAC,YAAY,CAAC;QAClC,UAAU,EAAE,IAAA,oBAAY,EAAC,gBAAgB,CAAC;QAC1C,QAAQ,EAAE;YACR,IAAI,EAAE,IAAA,oBAAY,EAAC,mBAAmB,CAAC;SACxC;KACF;IACD,yBAAyB;IACzB,KAAK,EAAE;QACL,UAAU,EAAE,IAAA,oBAAY,EAAC,kBAAkB,CAAC;QAC5C,KAAK,EAAE,IAAA,oBAAY,EAAC,aAAa,CAAC;QAClC,OAAO,EAAE,IAAA,oBAAY,EAAC,eAAe,CAAC;KACvC;IACD,2BAA2B;IAC3B,QAAQ,EAAE;QACR,UAAU,EAAE,IAAA,oBAAY,EAAC,kBAAkB,CAAC;QAC5C,OAAO,EAAE,IAAA,oBAAY,EAAC,eAAe,CAAC;KACvC;CACO,CAAC","sourcesContent":["import debug from \"debug\";\n\nconst PACKAGE_NAME = \"@civic/auth\";\n\nexport interface Logger {\n debug(message: string, ...args: unknown[]): void;\n info(message: string, ...args: unknown[]): void;\n warn(message: string, ...args: unknown[]): void;\n error(message: string, ...args: unknown[]): void;\n}\n\nclass DebugLogger implements Logger {\n private debugLogger: debug.Debugger;\n private infoLogger: debug.Debugger;\n private warnLogger: debug.Debugger;\n private errorLogger: debug.Debugger;\n\n constructor(namespace: string) {\n // Format: @org/package:library:component:level\n this.debugLogger = debug(`${PACKAGE_NAME}:${namespace}:debug`);\n this.infoLogger = debug(`${PACKAGE_NAME}:${namespace}:info`);\n this.warnLogger = debug(`${PACKAGE_NAME}:${namespace}:warn`);\n this.errorLogger = debug(`${PACKAGE_NAME}:${namespace}:error`);\n\n this.debugLogger.color = \"4\";\n this.infoLogger.color = \"2\";\n this.warnLogger.color = \"3\";\n this.errorLogger.color = \"1\";\n }\n\n debug(message: string, ...args: unknown[]): void {\n this.debugLogger(message, ...args);\n }\n\n info(message: string, ...args: unknown[]): void {\n this.infoLogger(message, ...args);\n }\n\n warn(message: string, ...args: unknown[]): void {\n this.warnLogger(message, ...args);\n }\n\n error(message: string, ...args: unknown[]): void {\n this.errorLogger(message, ...args);\n }\n}\n\nexport const createLogger = (namespace: string): Logger =>\n new DebugLogger(namespace);\n\n// Pre-configured loggers for different parts of your package\nexport const loggers = {\n // Next.js specific loggers\n nextjs: {\n routes: createLogger(\"api:routes\"),\n middleware: createLogger(\"api:middleware\"),\n handlers: {\n auth: createLogger(\"api:handlers:auth\"),\n },\n },\n // React specific loggers\n react: {\n components: createLogger(\"react:components\"),\n hooks: createLogger(\"react:hooks\"),\n context: createLogger(\"react:context\"),\n },\n // Shared utilities loggers\n services: {\n validation: createLogger(\"utils:validation\"),\n network: createLogger(\"utils:network\"),\n },\n} as const;\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DisplayMode, Endpoints } from "../types.js";
|
|
2
|
+
declare const getIssuerVariations: (issuer: string) => string[];
|
|
3
|
+
declare const getOauthEndpoints: (oauthServer: string) => Promise<Endpoints>;
|
|
4
|
+
/**
|
|
5
|
+
* creates a state string for the OAuth2 flow, encoding the display mode too for future use
|
|
6
|
+
* @param {DisplayMode} displayMode
|
|
7
|
+
* @returns {string}
|
|
8
|
+
*/
|
|
9
|
+
declare const generateState: (displayMode: DisplayMode, serverTokenExchange?: boolean) => string;
|
|
10
|
+
/**
|
|
11
|
+
* parses the state string from the OAuth2 flow, decoding the display mode too
|
|
12
|
+
* @param state
|
|
13
|
+
* @param sessionDisplayMode
|
|
14
|
+
* @returns { uuid: string, displayMode: DisplayMode }
|
|
15
|
+
*/
|
|
16
|
+
declare const displayModeFromState: (state: string, sessionDisplayMode: DisplayMode | undefined) => DisplayMode | undefined;
|
|
17
|
+
declare const serverTokenExchangeFromState: (state: string) => boolean | undefined;
|
|
18
|
+
export { serverTokenExchangeFromState, getIssuerVariations, getOauthEndpoints, displayModeFromState, generateState, };
|
|
19
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/lib/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAuB,MAAM,YAAY,CAAC;AAG9E,QAAA,MAAM,mBAAmB,WAAY,MAAM,KAAG,MAAM,EAQnD,CAAC;AAKF,QAAA,MAAM,iBAAiB,gBAAuB,MAAM,KAAG,OAAO,CAAC,SAAS,CAYvE,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,aAAa,gBACJ,WAAW,wBACF,OAAO,KAC5B,MAOF,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,oBAAoB,UACjB,MAAM,sBACO,WAAW,GAAG,SAAS,KAC1C,WAAW,GAAG,SAQhB,CAAC;AAEF,QAAA,MAAM,4BAA4B,UAAW,MAAM,KAAG,OAAO,GAAG,SAQ/D,CAAC;AAEF,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,GACd,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateState = exports.displayModeFromState = exports.getOauthEndpoints = exports.getIssuerVariations = exports.serverTokenExchangeFromState = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const getIssuerVariations = (issuer) => {
|
|
6
|
+
const issuerWithoutSlash = issuer.endsWith("/")
|
|
7
|
+
? issuer.slice(0, issuer.length - 1)
|
|
8
|
+
: issuer;
|
|
9
|
+
const issuerWithSlash = `${issuerWithoutSlash}/`;
|
|
10
|
+
return [issuerWithoutSlash, issuerWithSlash];
|
|
11
|
+
};
|
|
12
|
+
exports.getIssuerVariations = getIssuerVariations;
|
|
13
|
+
const addSlashIfNeeded = (url) => url.endsWith("/") ? url : `${url}/`;
|
|
14
|
+
const getOauthEndpoints = async (oauthServer) => {
|
|
15
|
+
const openIdConfigResponse = await fetch(`${addSlashIfNeeded(oauthServer)}.well-known/openid-configuration`);
|
|
16
|
+
const openIdConfig = (await openIdConfigResponse.json());
|
|
17
|
+
return {
|
|
18
|
+
jwks: openIdConfig.jwks_uri,
|
|
19
|
+
auth: openIdConfig.authorization_endpoint,
|
|
20
|
+
token: openIdConfig.token_endpoint,
|
|
21
|
+
userinfo: openIdConfig.userinfo_endpoint,
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
exports.getOauthEndpoints = getOauthEndpoints;
|
|
25
|
+
/**
|
|
26
|
+
* creates a state string for the OAuth2 flow, encoding the display mode too for future use
|
|
27
|
+
* @param {DisplayMode} displayMode
|
|
28
|
+
* @returns {string}
|
|
29
|
+
*/
|
|
30
|
+
const generateState = (displayMode, serverTokenExchange) => {
|
|
31
|
+
const jsonString = JSON.stringify({
|
|
32
|
+
uuid: (0, uuid_1.v4)(),
|
|
33
|
+
displayMode,
|
|
34
|
+
...(serverTokenExchange ? { serverTokenExchange } : {}),
|
|
35
|
+
});
|
|
36
|
+
return btoa(jsonString);
|
|
37
|
+
};
|
|
38
|
+
exports.generateState = generateState;
|
|
39
|
+
/**
|
|
40
|
+
* parses the state string from the OAuth2 flow, decoding the display mode too
|
|
41
|
+
* @param state
|
|
42
|
+
* @param sessionDisplayMode
|
|
43
|
+
* @returns { uuid: string, displayMode: DisplayMode }
|
|
44
|
+
*/
|
|
45
|
+
const displayModeFromState = (state, sessionDisplayMode) => {
|
|
46
|
+
try {
|
|
47
|
+
const jsonString = atob(state);
|
|
48
|
+
return JSON.parse(jsonString).displayMode;
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
console.error("Failed to parse displayMode from state:", state, e);
|
|
52
|
+
return sessionDisplayMode;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
exports.displayModeFromState = displayModeFromState;
|
|
56
|
+
const serverTokenExchangeFromState = (state) => {
|
|
57
|
+
try {
|
|
58
|
+
const jsonString = atob(state);
|
|
59
|
+
return JSON.parse(jsonString).serverTokenExchange;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
console.error("Failed to parse serverTokenExchange from state:", state);
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
exports.serverTokenExchangeFromState = serverTokenExchangeFromState;
|
|
67
|
+
//# sourceMappingURL=oauth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../src/lib/oauth.ts"],"names":[],"mappings":";;;AACA,+BAAkC;AAElC,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAY,EAAE;IACvD,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC7C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC;IAEX,MAAM,eAAe,GAAG,GAAG,kBAAkB,GAAG,CAAC;IAEjD,OAAO,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;AAC/C,CAAC,CAAC;AAmEA,kDAAmB;AAjErB,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAU,EAAE,CAC/C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;AAEtC,MAAM,iBAAiB,GAAG,KAAK,EAAE,WAAmB,EAAsB,EAAE;IAC1E,MAAM,oBAAoB,GAAG,MAAM,KAAK,CACtC,GAAG,gBAAgB,CAAC,WAAW,CAAC,kCAAkC,CACnE,CAAC;IACF,MAAM,YAAY,GAChB,CAAC,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAwB,CAAC;IAC7D,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,QAAQ;QAC3B,IAAI,EAAE,YAAY,CAAC,sBAAsB;QACzC,KAAK,EAAE,YAAY,CAAC,cAAc;QAClC,QAAQ,EAAE,YAAY,CAAC,iBAAiB;KACzC,CAAC;AACJ,CAAC,CAAC;AAmDA,8CAAiB;AAjDnB;;;;GAIG;AACH,MAAM,aAAa,GAAG,CACpB,WAAwB,EACxB,mBAA6B,EACrB,EAAE;IACV,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,EAAE,IAAA,SAAI,GAAE;QACZ,WAAW;QACX,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC,CAAC;AAoCA,sCAAa;AAlCf;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,CAC3B,KAAa,EACb,kBAA2C,EAClB,EAAE;IAC3B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC;AAgBA,oDAAoB;AAdtB,MAAM,4BAA4B,GAAG,CAAC,KAAa,EAAuB,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAGA,oEAA4B","sourcesContent":["import type { DisplayMode, Endpoints, OpenIdConfiguration } from \"@/types.js\";\nimport { v4 as uuid } from \"uuid\";\n\nconst getIssuerVariations = (issuer: string): string[] => {\n const issuerWithoutSlash = issuer.endsWith(\"/\")\n ? issuer.slice(0, issuer.length - 1)\n : issuer;\n\n const issuerWithSlash = `${issuerWithoutSlash}/`;\n\n return [issuerWithoutSlash, issuerWithSlash];\n};\n\nconst addSlashIfNeeded = (url: string): string =>\n url.endsWith(\"/\") ? url : `${url}/`;\n\nconst getOauthEndpoints = async (oauthServer: string): Promise<Endpoints> => {\n const openIdConfigResponse = await fetch(\n `${addSlashIfNeeded(oauthServer)}.well-known/openid-configuration`,\n );\n const openIdConfig =\n (await openIdConfigResponse.json()) as OpenIdConfiguration;\n return {\n jwks: openIdConfig.jwks_uri,\n auth: openIdConfig.authorization_endpoint,\n token: openIdConfig.token_endpoint,\n userinfo: openIdConfig.userinfo_endpoint,\n };\n};\n\n/**\n * creates a state string for the OAuth2 flow, encoding the display mode too for future use\n * @param {DisplayMode} displayMode\n * @returns {string}\n */\nconst generateState = (\n displayMode: DisplayMode,\n serverTokenExchange?: boolean,\n): string => {\n const jsonString = JSON.stringify({\n uuid: uuid(),\n displayMode,\n ...(serverTokenExchange ? { serverTokenExchange } : {}),\n });\n return btoa(jsonString);\n};\n\n/**\n * parses the state string from the OAuth2 flow, decoding the display mode too\n * @param state\n * @param sessionDisplayMode\n * @returns { uuid: string, displayMode: DisplayMode }\n */\nconst displayModeFromState = (\n state: string,\n sessionDisplayMode: DisplayMode | undefined,\n): DisplayMode | undefined => {\n try {\n const jsonString = atob(state);\n return JSON.parse(jsonString).displayMode;\n } catch (e) {\n console.error(\"Failed to parse displayMode from state:\", state, e);\n return sessionDisplayMode;\n }\n};\n\nconst serverTokenExchangeFromState = (state: string): boolean | undefined => {\n try {\n const jsonString = atob(state);\n return JSON.parse(jsonString).serverTokenExchange;\n } catch {\n console.error(\"Failed to parse serverTokenExchange from state:\", state);\n return undefined;\n }\n};\n\nexport {\n serverTokenExchangeFromState,\n getIssuerVariations,\n getOauthEndpoints,\n displayModeFromState,\n generateState,\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postMessage.d.ts","sourceRoot":"","sources":["../../../../src/lib/postMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,QAAA,MAAM,2BAA2B,UACxB,gBAAgB,YACb,MAAM,KACf,OAcF,CAAC;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateLoginAppPostMessage = void 0;
|
|
4
|
+
const validateLoginAppPostMessage = (event, clientId) => {
|
|
5
|
+
const caseEvent = event;
|
|
6
|
+
console.log("caseEvent", caseEvent);
|
|
7
|
+
if (!caseEvent.clientId ||
|
|
8
|
+
!caseEvent.data.url ||
|
|
9
|
+
!caseEvent.source ||
|
|
10
|
+
!caseEvent.type ||
|
|
11
|
+
caseEvent.clientId !== clientId ||
|
|
12
|
+
caseEvent.source !== "civicloginApp") {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
return true;
|
|
16
|
+
};
|
|
17
|
+
exports.validateLoginAppPostMessage = validateLoginAppPostMessage;
|
|
18
|
+
//# sourceMappingURL=postMessage.js.map
|