@civic/auth 0.3.1 → 0.3.2-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/dist/cjs/nextjs/config.d.ts.map +1 -1
- package/dist/cjs/nextjs/config.js +1 -1
- package/dist/cjs/nextjs/config.js.map +1 -1
- package/dist/cjs/nextjs/index.d.ts +2 -2
- package/dist/cjs/nextjs/index.d.ts.map +1 -1
- package/dist/cjs/nextjs/index.js.map +1 -1
- package/dist/cjs/nextjs/providers/NextAuthProvider.d.ts +1 -5
- package/dist/cjs/nextjs/providers/NextAuthProvider.d.ts.map +1 -1
- package/dist/cjs/nextjs/providers/NextAuthProvider.js +5 -45
- package/dist/cjs/nextjs/providers/NextAuthProvider.js.map +1 -1
- package/dist/cjs/reactjs/components/ButtonContentOrLoader.d.ts +1 -1
- package/dist/cjs/reactjs/components/ButtonContentOrLoader.d.ts.map +1 -1
- package/dist/cjs/reactjs/components/ButtonContentOrLoader.js +16 -23
- package/dist/cjs/reactjs/components/ButtonContentOrLoader.js.map +1 -1
- package/dist/cjs/reactjs/components/SignInButton.d.ts +4 -3
- package/dist/cjs/reactjs/components/SignInButton.d.ts.map +1 -1
- package/dist/cjs/reactjs/components/SignInButton.js +5 -9
- package/dist/cjs/reactjs/components/SignInButton.js.map +1 -1
- package/dist/cjs/reactjs/components/SignOutButton.d.ts +4 -3
- package/dist/cjs/reactjs/components/SignOutButton.d.ts.map +1 -1
- package/dist/cjs/reactjs/components/SignOutButton.js +4 -8
- package/dist/cjs/reactjs/components/SignOutButton.js.map +1 -1
- package/dist/cjs/reactjs/components/UserButton.d.ts +6 -3
- package/dist/cjs/reactjs/components/UserButton.d.ts.map +1 -1
- package/dist/cjs/reactjs/components/UserButton.js +69 -109
- package/dist/cjs/reactjs/components/UserButton.js.map +1 -1
- package/dist/cjs/reactjs/providers/AuthProvider.d.ts +1 -2
- package/dist/cjs/reactjs/providers/AuthProvider.d.ts.map +1 -1
- package/dist/cjs/reactjs/providers/AuthProvider.js +3 -37
- package/dist/cjs/reactjs/providers/AuthProvider.js.map +1 -1
- package/dist/cjs/reactjs/providers/CivicAuthProvider.d.ts +1 -2
- package/dist/cjs/reactjs/providers/CivicAuthProvider.d.ts.map +1 -1
- package/dist/cjs/reactjs/providers/CivicAuthProvider.js +4 -13
- package/dist/cjs/reactjs/providers/CivicAuthProvider.js.map +1 -1
- package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts +1 -1
- package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -1
- package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.js +3 -35
- package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +1 -1
- package/dist/cjs/shared/components/BlockDisplay.d.ts +1 -2
- package/dist/cjs/shared/components/BlockDisplay.d.ts.map +1 -1
- package/dist/cjs/shared/components/BlockDisplay.js +4 -8
- package/dist/cjs/shared/components/BlockDisplay.js.map +1 -1
- package/dist/cjs/shared/components/CivicAuthIframe.js +16 -17
- package/dist/cjs/shared/components/CivicAuthIframe.js.map +1 -1
- package/dist/cjs/shared/components/CivicAuthIframeContainer.d.ts +2 -2
- package/dist/cjs/shared/components/CivicAuthIframeContainer.d.ts.map +1 -1
- package/dist/cjs/shared/components/CivicAuthIframeContainer.js +29 -68
- package/dist/cjs/shared/components/CivicAuthIframeContainer.js.map +1 -1
- package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.d.ts +1 -2
- package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +1 -1
- package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.js +9 -15
- package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.js.map +1 -1
- package/dist/cjs/shared/components/CloseIcon.d.ts +1 -2
- package/dist/cjs/shared/components/CloseIcon.d.ts.map +1 -1
- package/dist/cjs/shared/components/CloseIcon.js +2 -7
- package/dist/cjs/shared/components/CloseIcon.js.map +1 -1
- package/dist/cjs/shared/components/IFrameAndLoading.d.ts +1 -2
- package/dist/cjs/shared/components/IFrameAndLoading.d.ts.map +1 -1
- package/dist/cjs/shared/components/IFrameAndLoading.js +5 -47
- package/dist/cjs/shared/components/IFrameAndLoading.js.map +1 -1
- package/dist/cjs/shared/components/LoadingIcon.d.ts +1 -2
- package/dist/cjs/shared/components/LoadingIcon.d.ts.map +1 -1
- package/dist/cjs/shared/components/LoadingIcon.js +19 -27
- package/dist/cjs/shared/components/LoadingIcon.js.map +1 -1
- package/dist/cjs/shared/components/SVGLoading.js +11 -24
- package/dist/cjs/shared/components/SVGLoading.js.map +1 -1
- package/dist/cjs/shared/lib/UserSession.d.ts +4 -2
- package/dist/cjs/shared/lib/UserSession.d.ts.map +1 -1
- package/dist/cjs/shared/lib/UserSession.js.map +1 -1
- package/dist/cjs/shared/lib/session.d.ts +2 -2
- package/dist/cjs/shared/lib/session.d.ts.map +1 -1
- package/dist/cjs/shared/lib/session.js +8 -5
- package/dist/cjs/shared/lib/session.js.map +1 -1
- package/dist/cjs/shared/lib/types.d.ts +1 -0
- package/dist/cjs/shared/lib/types.d.ts.map +1 -1
- package/dist/cjs/shared/lib/types.js +2 -1
- package/dist/cjs/shared/lib/types.js.map +1 -1
- package/dist/cjs/shared/lib/util.d.ts.map +1 -1
- package/dist/cjs/shared/lib/util.js +1 -0
- package/dist/cjs/shared/lib/util.js.map +1 -1
- package/dist/cjs/shared/providers/CivicAuthConfigContext.d.ts +1 -1
- package/dist/cjs/shared/providers/CivicAuthConfigContext.d.ts.map +1 -1
- package/dist/cjs/shared/providers/CivicAuthConfigContext.js +3 -35
- package/dist/cjs/shared/providers/CivicAuthConfigContext.js.map +1 -1
- package/dist/cjs/shared/providers/IframeProvider.d.ts +1 -1
- package/dist/cjs/shared/providers/IframeProvider.d.ts.map +1 -1
- package/dist/cjs/shared/providers/IframeProvider.js +4 -36
- package/dist/cjs/shared/providers/IframeProvider.js.map +1 -1
- package/dist/cjs/shared/providers/SessionProvider.d.ts +1 -1
- package/dist/cjs/shared/providers/SessionProvider.d.ts.map +1 -1
- package/dist/cjs/shared/providers/SessionProvider.js +4 -36
- package/dist/cjs/shared/providers/SessionProvider.js.map +1 -1
- package/dist/cjs/shared/providers/TokenProvider.d.ts +1 -1
- package/dist/cjs/shared/providers/TokenProvider.d.ts.map +1 -1
- package/dist/cjs/shared/providers/TokenProvider.js +3 -35
- package/dist/cjs/shared/providers/TokenProvider.js.map +1 -1
- package/dist/cjs/shared/providers/UserProvider.d.ts +1 -1
- package/dist/cjs/shared/providers/UserProvider.d.ts.map +1 -1
- package/dist/cjs/shared/providers/UserProvider.js +4 -36
- package/dist/cjs/shared/providers/UserProvider.js.map +1 -1
- package/dist/cjs/shared/version.d.ts +1 -1
- package/dist/cjs/shared/version.d.ts.map +1 -1
- package/dist/cjs/shared/version.js +1 -1
- package/dist/cjs/shared/version.js.map +1 -1
- package/dist/cjs/types.d.ts +8 -10
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +3 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/nextjs/config.d.ts.map +1 -1
- package/dist/esm/nextjs/config.js +1 -1
- package/dist/esm/nextjs/config.js.map +1 -1
- package/dist/esm/nextjs/index.d.ts +2 -2
- package/dist/esm/nextjs/index.d.ts.map +1 -1
- package/dist/esm/nextjs/index.js.map +1 -1
- package/dist/esm/nextjs/providers/NextAuthProvider.d.ts +1 -5
- package/dist/esm/nextjs/providers/NextAuthProvider.d.ts.map +1 -1
- package/dist/esm/nextjs/providers/NextAuthProvider.js +4 -11
- package/dist/esm/nextjs/providers/NextAuthProvider.js.map +1 -1
- package/dist/esm/reactjs/components/ButtonContentOrLoader.d.ts +1 -1
- package/dist/esm/reactjs/components/ButtonContentOrLoader.d.ts.map +1 -1
- package/dist/esm/reactjs/components/ButtonContentOrLoader.js +16 -19
- package/dist/esm/reactjs/components/ButtonContentOrLoader.js.map +1 -1
- package/dist/esm/reactjs/components/SignInButton.d.ts +4 -3
- package/dist/esm/reactjs/components/SignInButton.d.ts.map +1 -1
- package/dist/esm/reactjs/components/SignInButton.js +5 -6
- package/dist/esm/reactjs/components/SignInButton.js.map +1 -1
- package/dist/esm/reactjs/components/SignOutButton.d.ts +4 -3
- package/dist/esm/reactjs/components/SignOutButton.d.ts.map +1 -1
- package/dist/esm/reactjs/components/SignOutButton.js +5 -5
- package/dist/esm/reactjs/components/SignOutButton.js.map +1 -1
- package/dist/esm/reactjs/components/UserButton.d.ts +6 -3
- package/dist/esm/reactjs/components/UserButton.d.ts.map +1 -1
- package/dist/esm/reactjs/components/UserButton.js +69 -76
- package/dist/esm/reactjs/components/UserButton.js.map +1 -1
- package/dist/esm/reactjs/providers/AuthProvider.d.ts +1 -2
- package/dist/esm/reactjs/providers/AuthProvider.d.ts.map +1 -1
- package/dist/esm/reactjs/providers/AuthProvider.js +2 -3
- package/dist/esm/reactjs/providers/AuthProvider.js.map +1 -1
- package/dist/esm/reactjs/providers/CivicAuthProvider.d.ts +1 -2
- package/dist/esm/reactjs/providers/CivicAuthProvider.d.ts.map +1 -1
- package/dist/esm/reactjs/providers/CivicAuthProvider.js +4 -9
- package/dist/esm/reactjs/providers/CivicAuthProvider.js.map +1 -1
- package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts +1 -1
- package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -1
- package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.js +2 -1
- package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +1 -1
- package/dist/esm/shared/components/BlockDisplay.d.ts +1 -2
- package/dist/esm/shared/components/BlockDisplay.d.ts.map +1 -1
- package/dist/esm/shared/components/BlockDisplay.js +4 -4
- package/dist/esm/shared/components/BlockDisplay.js.map +1 -1
- package/dist/esm/shared/components/CivicAuthIframe.js +16 -17
- package/dist/esm/shared/components/CivicAuthIframe.js.map +1 -1
- package/dist/esm/shared/components/CivicAuthIframeContainer.d.ts +2 -2
- package/dist/esm/shared/components/CivicAuthIframeContainer.d.ts.map +1 -1
- package/dist/esm/shared/components/CivicAuthIframeContainer.js +28 -34
- package/dist/esm/shared/components/CivicAuthIframeContainer.js.map +1 -1
- package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.d.ts +1 -2
- package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +1 -1
- package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.js +9 -11
- package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.js.map +1 -1
- package/dist/esm/shared/components/CloseIcon.d.ts +1 -2
- package/dist/esm/shared/components/CloseIcon.d.ts.map +1 -1
- package/dist/esm/shared/components/CloseIcon.js +2 -3
- package/dist/esm/shared/components/CloseIcon.js.map +1 -1
- package/dist/esm/shared/components/IFrameAndLoading.d.ts +1 -2
- package/dist/esm/shared/components/IFrameAndLoading.d.ts.map +1 -1
- package/dist/esm/shared/components/IFrameAndLoading.js +4 -13
- package/dist/esm/shared/components/IFrameAndLoading.js.map +1 -1
- package/dist/esm/shared/components/LoadingIcon.d.ts +1 -2
- package/dist/esm/shared/components/LoadingIcon.d.ts.map +1 -1
- package/dist/esm/shared/components/LoadingIcon.js +19 -23
- package/dist/esm/shared/components/LoadingIcon.js.map +1 -1
- package/dist/esm/shared/components/SVGLoading.js +11 -20
- package/dist/esm/shared/components/SVGLoading.js.map +1 -1
- package/dist/esm/shared/lib/UserSession.d.ts +4 -2
- package/dist/esm/shared/lib/UserSession.d.ts.map +1 -1
- package/dist/esm/shared/lib/UserSession.js.map +1 -1
- package/dist/esm/shared/lib/session.d.ts +2 -2
- package/dist/esm/shared/lib/session.d.ts.map +1 -1
- package/dist/esm/shared/lib/session.js +9 -6
- package/dist/esm/shared/lib/session.js.map +1 -1
- package/dist/esm/shared/lib/types.d.ts +1 -0
- package/dist/esm/shared/lib/types.d.ts.map +1 -1
- package/dist/esm/shared/lib/types.js +1 -0
- package/dist/esm/shared/lib/types.js.map +1 -1
- package/dist/esm/shared/lib/util.d.ts.map +1 -1
- package/dist/esm/shared/lib/util.js +2 -1
- package/dist/esm/shared/lib/util.js.map +1 -1
- package/dist/esm/shared/providers/CivicAuthConfigContext.d.ts +1 -1
- package/dist/esm/shared/providers/CivicAuthConfigContext.d.ts.map +1 -1
- package/dist/esm/shared/providers/CivicAuthConfigContext.js +2 -1
- package/dist/esm/shared/providers/CivicAuthConfigContext.js.map +1 -1
- package/dist/esm/shared/providers/IframeProvider.d.ts +1 -1
- package/dist/esm/shared/providers/IframeProvider.d.ts.map +1 -1
- package/dist/esm/shared/providers/IframeProvider.js +3 -2
- package/dist/esm/shared/providers/IframeProvider.js.map +1 -1
- package/dist/esm/shared/providers/SessionProvider.d.ts +1 -1
- package/dist/esm/shared/providers/SessionProvider.d.ts.map +1 -1
- package/dist/esm/shared/providers/SessionProvider.js +3 -2
- package/dist/esm/shared/providers/SessionProvider.js.map +1 -1
- package/dist/esm/shared/providers/TokenProvider.d.ts +1 -1
- package/dist/esm/shared/providers/TokenProvider.d.ts.map +1 -1
- package/dist/esm/shared/providers/TokenProvider.js +2 -1
- package/dist/esm/shared/providers/TokenProvider.js.map +1 -1
- package/dist/esm/shared/providers/UserProvider.d.ts +1 -1
- package/dist/esm/shared/providers/UserProvider.d.ts.map +1 -1
- package/dist/esm/shared/providers/UserProvider.js +3 -2
- package/dist/esm/shared/providers/UserProvider.js.map +1 -1
- package/dist/esm/shared/version.d.ts +1 -1
- package/dist/esm/shared/version.d.ts.map +1 -1
- package/dist/esm/shared/version.js +1 -1
- package/dist/esm/shared/version.js.map +1 -1
- package/dist/esm/types.d.ts +8 -10
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +2 -2
- package/dist/esm/types.js.map +1 -1
- package/dist/generateVersion.d.ts +2 -0
- package/dist/generateVersion.d.ts.map +1 -0
- package/dist/generateVersion.js +12 -0
- package/dist/generateVersion.js.map +1 -0
- package/dist/package.json +118 -0
- package/dist/src/browser/storage.d.ts +9 -0
- package/dist/src/browser/storage.d.ts.map +1 -0
- package/dist/src/browser/storage.js +17 -0
- package/dist/src/browser/storage.js.map +1 -0
- package/dist/src/config.d.ts +3 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +5 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/constants.d.ts +8 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +16 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/cookies.d.ts +7 -0
- package/dist/src/lib/cookies.d.ts.map +1 -0
- package/dist/src/lib/cookies.js +25 -0
- package/dist/src/lib/cookies.js.map +1 -0
- package/dist/src/lib/jwt.d.ts +3 -0
- package/dist/src/lib/jwt.d.ts.map +1 -0
- package/dist/src/lib/jwt.js +9 -0
- package/dist/src/lib/jwt.js.map +1 -0
- package/dist/src/lib/logger.d.ts +26 -0
- package/dist/src/lib/logger.d.ts.map +1 -0
- package/dist/src/lib/logger.js +55 -0
- package/dist/src/lib/logger.js.map +1 -0
- package/dist/src/lib/oauth.d.ts +19 -0
- package/dist/src/lib/oauth.d.ts.map +1 -0
- package/dist/src/lib/oauth.js +61 -0
- package/dist/src/lib/oauth.js.map +1 -0
- package/dist/src/lib/obj.d.ts +3 -0
- package/dist/src/lib/obj.d.ts.map +1 -0
- package/dist/src/lib/obj.js +18 -0
- package/dist/src/lib/obj.js.map +1 -0
- package/dist/src/lib/postMessage.d.ts +4 -0
- package/dist/src/lib/postMessage.d.ts.map +1 -0
- package/dist/src/lib/postMessage.js +15 -0
- package/dist/src/lib/postMessage.js.map +1 -0
- package/dist/src/lib/windowUtil.d.ts +4 -0
- package/dist/src/lib/windowUtil.d.ts.map +1 -0
- package/dist/src/lib/windowUtil.js +31 -0
- package/dist/src/lib/windowUtil.js.map +1 -0
- package/dist/src/nextjs/GetUser.d.ts +6 -0
- package/dist/src/nextjs/GetUser.d.ts.map +1 -0
- package/dist/src/nextjs/GetUser.js +7 -0
- package/dist/src/nextjs/GetUser.js.map +1 -0
- package/dist/src/nextjs/config.d.ts +181 -0
- package/dist/src/nextjs/config.d.ts.map +1 -0
- package/dist/src/nextjs/config.js +177 -0
- package/dist/src/nextjs/config.js.map +1 -0
- package/dist/src/nextjs/cookies.d.ts +30 -0
- package/dist/src/nextjs/cookies.d.ts.map +1 -0
- package/dist/src/nextjs/cookies.js +112 -0
- package/dist/src/nextjs/cookies.js.map +1 -0
- package/dist/src/nextjs/hooks/index.d.ts +2 -0
- package/dist/src/nextjs/hooks/index.d.ts.map +1 -0
- package/dist/src/nextjs/hooks/index.js +2 -0
- package/dist/src/nextjs/hooks/index.js.map +1 -0
- package/dist/src/nextjs/hooks/usePrevious.d.ts +2 -0
- package/dist/src/nextjs/hooks/usePrevious.d.ts.map +1 -0
- package/dist/src/nextjs/hooks/usePrevious.js +9 -0
- package/dist/src/nextjs/hooks/usePrevious.js.map +1 -0
- package/dist/src/nextjs/hooks/useUserCookie.d.ts +8 -0
- package/dist/src/nextjs/hooks/useUserCookie.d.ts.map +1 -0
- package/dist/src/nextjs/hooks/useUserCookie.js +88 -0
- package/dist/src/nextjs/hooks/useUserCookie.js.map +1 -0
- package/dist/src/nextjs/index.d.ts +7 -0
- package/dist/src/nextjs/index.d.ts.map +1 -0
- package/dist/src/nextjs/index.js +8 -0
- package/dist/src/nextjs/index.js.map +1 -0
- package/dist/src/nextjs/middleware/index.d.ts +2 -0
- package/dist/src/nextjs/middleware/index.d.ts.map +1 -0
- package/dist/src/nextjs/middleware/index.js +4 -0
- package/dist/src/nextjs/middleware/index.js.map +1 -0
- package/dist/src/nextjs/middleware.d.ts +59 -0
- package/dist/src/nextjs/middleware.d.ts.map +1 -0
- package/dist/src/nextjs/middleware.js +107 -0
- package/dist/src/nextjs/middleware.js.map +1 -0
- package/dist/src/nextjs/providers/NextAuthProvider.d.ts +13 -0
- package/dist/src/nextjs/providers/NextAuthProvider.d.ts.map +1 -0
- package/dist/src/nextjs/providers/NextAuthProvider.js +94 -0
- package/dist/src/nextjs/providers/NextAuthProvider.js.map +1 -0
- package/dist/src/nextjs/routeHandler.d.ts +19 -0
- package/dist/src/nextjs/routeHandler.d.ts.map +1 -0
- package/dist/src/nextjs/routeHandler.js +309 -0
- package/dist/src/nextjs/routeHandler.js.map +1 -0
- package/dist/src/nextjs/utils.d.ts +3 -0
- package/dist/src/nextjs/utils.d.ts.map +1 -0
- package/dist/src/nextjs/utils.js +5 -0
- package/dist/src/nextjs/utils.js.map +1 -0
- package/dist/src/reactjs/components/SignInButton.d.ts +8 -0
- package/dist/src/reactjs/components/SignInButton.d.ts.map +1 -0
- package/dist/src/reactjs/components/SignInButton.js +14 -0
- package/dist/src/reactjs/components/SignInButton.js.map +1 -0
- package/dist/src/reactjs/components/SignOutButton.d.ts +6 -0
- package/dist/src/reactjs/components/SignOutButton.d.ts.map +1 -0
- package/dist/src/reactjs/components/SignOutButton.js +14 -0
- package/dist/src/reactjs/components/SignOutButton.js.map +1 -0
- package/dist/src/reactjs/components/UserButton.d.ts +6 -0
- package/dist/src/reactjs/components/UserButton.d.ts.map +1 -0
- package/dist/src/reactjs/components/UserButton.js +118 -0
- package/dist/src/reactjs/components/UserButton.js.map +1 -0
- package/dist/src/reactjs/components/index.d.ts +6 -0
- package/dist/src/reactjs/components/index.d.ts.map +1 -0
- package/dist/src/reactjs/components/index.js +6 -0
- package/dist/src/reactjs/components/index.js.map +1 -0
- package/dist/src/reactjs/hooks/index.d.ts +6 -0
- package/dist/src/reactjs/hooks/index.d.ts.map +1 -0
- package/dist/src/reactjs/hooks/index.js +6 -0
- package/dist/src/reactjs/hooks/index.js.map +1 -0
- package/dist/src/reactjs/hooks/useAuth.d.ts +3 -0
- package/dist/src/reactjs/hooks/useAuth.d.ts.map +1 -0
- package/dist/src/reactjs/hooks/useAuth.js +12 -0
- package/dist/src/reactjs/hooks/useAuth.js.map +1 -0
- package/dist/src/reactjs/hooks/useClientTokenExchangeSession.d.ts +3 -0
- package/dist/src/reactjs/hooks/useClientTokenExchangeSession.d.ts.map +1 -0
- package/dist/src/reactjs/hooks/useClientTokenExchangeSession.js +13 -0
- package/dist/src/reactjs/hooks/useClientTokenExchangeSession.js.map +1 -0
- package/dist/src/reactjs/hooks/useUser.d.ts +4 -0
- package/dist/src/reactjs/hooks/useUser.d.ts.map +1 -0
- package/dist/src/reactjs/hooks/useUser.js +12 -0
- package/dist/src/reactjs/hooks/useUser.js.map +1 -0
- package/dist/src/reactjs/index.d.ts +6 -0
- package/dist/src/reactjs/index.d.ts.map +1 -0
- package/dist/src/reactjs/index.js +10 -0
- package/dist/src/reactjs/index.js.map +1 -0
- package/dist/src/reactjs/providers/AuthProvider.d.ts +11 -0
- package/dist/src/reactjs/providers/AuthProvider.d.ts.map +1 -0
- package/dist/src/reactjs/providers/AuthProvider.js +76 -0
- package/dist/src/reactjs/providers/AuthProvider.js.map +1 -0
- package/dist/src/reactjs/providers/CivicAuthProvider.d.ts +6 -0
- package/dist/src/reactjs/providers/CivicAuthProvider.d.ts.map +1 -0
- package/dist/src/reactjs/providers/CivicAuthProvider.js +32 -0
- package/dist/src/reactjs/providers/CivicAuthProvider.js.map +1 -0
- package/dist/src/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts +17 -0
- package/dist/src/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -0
- package/dist/src/reactjs/providers/ClientTokenExchangeSessionProvider.js +148 -0
- package/dist/src/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +1 -0
- package/dist/src/reactjs/providers/index.d.ts +8 -0
- package/dist/src/reactjs/providers/index.d.ts.map +1 -0
- package/dist/src/reactjs/providers/index.js +7 -0
- package/dist/src/reactjs/providers/index.js.map +1 -0
- package/dist/src/server/ServerAuthenticationResolver.d.ts +20 -0
- package/dist/src/server/ServerAuthenticationResolver.d.ts.map +1 -0
- package/dist/src/server/ServerAuthenticationResolver.js +67 -0
- package/dist/src/server/ServerAuthenticationResolver.js.map +1 -0
- package/dist/src/server/config.d.ts +10 -0
- package/dist/src/server/config.d.ts.map +1 -0
- package/dist/src/server/config.js +2 -0
- package/dist/src/server/config.js.map +1 -0
- package/dist/src/server/index.d.ts +7 -0
- package/dist/src/server/index.d.ts.map +1 -0
- package/dist/src/server/index.js +7 -0
- package/dist/src/server/index.js.map +1 -0
- package/dist/src/server/login.d.ts +21 -0
- package/dist/src/server/login.d.ts.map +1 -0
- package/dist/src/server/login.js +56 -0
- package/dist/src/server/login.js.map +1 -0
- package/dist/src/server/refresh.d.ts +7 -0
- package/dist/src/server/refresh.d.ts.map +1 -0
- package/dist/src/server/refresh.js +13 -0
- package/dist/src/server/refresh.js.map +1 -0
- package/dist/src/services/AuthenticationService.d.ts +91 -0
- package/dist/src/services/AuthenticationService.d.ts.map +1 -0
- package/dist/src/services/AuthenticationService.js +322 -0
- package/dist/src/services/AuthenticationService.js.map +1 -0
- package/dist/src/services/PKCE.d.ts +20 -0
- package/dist/src/services/PKCE.d.ts.map +1 -0
- package/dist/src/services/PKCE.js +44 -0
- package/dist/src/services/PKCE.js.map +1 -0
- package/dist/src/services/types.d.ts +24 -0
- package/dist/src/services/types.d.ts.map +1 -0
- package/dist/src/services/types.js +7 -0
- package/dist/src/services/types.js.map +1 -0
- package/dist/src/shared/components/BlockDisplay.d.ts +7 -0
- package/dist/src/shared/components/BlockDisplay.d.ts.map +1 -0
- package/dist/src/shared/components/BlockDisplay.js +25 -0
- package/dist/src/shared/components/BlockDisplay.js.map +1 -0
- package/dist/src/shared/components/CivicAuthIframe.d.ts +9 -0
- package/dist/src/shared/components/CivicAuthIframe.d.ts.map +1 -0
- package/dist/src/shared/components/CivicAuthIframe.js +8 -0
- package/dist/src/shared/components/CivicAuthIframe.js.map +1 -0
- package/dist/src/shared/components/CivicAuthIframeContainer.d.ts +13 -0
- package/dist/src/shared/components/CivicAuthIframeContainer.d.ts.map +1 -0
- package/dist/src/shared/components/CivicAuthIframeContainer.js +138 -0
- package/dist/src/shared/components/CivicAuthIframeContainer.js.map +1 -0
- package/dist/src/shared/components/CivicAuthLogoutIframeContainer.d.ts +7 -0
- package/dist/src/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +1 -0
- package/dist/src/shared/components/CivicAuthLogoutIframeContainer.js +22 -0
- package/dist/src/shared/components/CivicAuthLogoutIframeContainer.js.map +1 -0
- package/dist/src/shared/components/CloseIcon.d.ts +4 -0
- package/dist/src/shared/components/CloseIcon.d.ts.map +1 -0
- package/dist/src/shared/components/CloseIcon.js +6 -0
- package/dist/src/shared/components/CloseIcon.js.map +1 -0
- package/dist/src/shared/components/IFrameAndLoading.d.ts +8 -0
- package/dist/src/shared/components/IFrameAndLoading.d.ts.map +1 -0
- package/dist/src/shared/components/IFrameAndLoading.js +27 -0
- package/dist/src/shared/components/IFrameAndLoading.js.map +1 -0
- package/dist/src/shared/components/LoadingIcon.d.ts +4 -0
- package/dist/src/shared/components/LoadingIcon.d.ts.map +1 -0
- package/dist/src/shared/components/LoadingIcon.js +30 -0
- package/dist/src/shared/components/LoadingIcon.js.map +1 -0
- package/dist/src/shared/hooks/index.d.ts +11 -0
- package/dist/src/shared/hooks/index.d.ts.map +1 -0
- package/dist/src/shared/hooks/index.js +11 -0
- package/dist/src/shared/hooks/index.js.map +1 -0
- package/dist/src/shared/hooks/useAuth.d.ts +3 -0
- package/dist/src/shared/hooks/useAuth.d.ts.map +1 -0
- package/dist/src/shared/hooks/useAuth.js +12 -0
- package/dist/src/shared/hooks/useAuth.js.map +1 -0
- package/dist/src/shared/hooks/useCivicAuthConfig.d.ts +3 -0
- package/dist/src/shared/hooks/useCivicAuthConfig.d.ts.map +1 -0
- package/dist/src/shared/hooks/useCivicAuthConfig.js +10 -0
- package/dist/src/shared/hooks/useCivicAuthConfig.js.map +1 -0
- package/dist/src/shared/hooks/useClientTokenExchangeSession.d.ts +3 -0
- package/dist/src/shared/hooks/useClientTokenExchangeSession.d.ts.map +1 -0
- package/dist/src/shared/hooks/useClientTokenExchangeSession.js +13 -0
- package/dist/src/shared/hooks/useClientTokenExchangeSession.js.map +1 -0
- package/dist/src/shared/hooks/useCurrentUrl.d.ts +3 -0
- package/dist/src/shared/hooks/useCurrentUrl.d.ts.map +1 -0
- package/dist/src/shared/hooks/useCurrentUrl.js +24 -0
- package/dist/src/shared/hooks/useCurrentUrl.js.map +1 -0
- package/dist/src/shared/hooks/useIframe.d.ts +3 -0
- package/dist/src/shared/hooks/useIframe.d.ts.map +1 -0
- package/dist/src/shared/hooks/useIframe.js +13 -0
- package/dist/src/shared/hooks/useIframe.js.map +1 -0
- package/dist/src/shared/hooks/useIsInIframe.d.ts +3 -0
- package/dist/src/shared/hooks/useIsInIframe.d.ts.map +1 -0
- package/dist/src/shared/hooks/useIsInIframe.js +14 -0
- package/dist/src/shared/hooks/useIsInIframe.js.map +1 -0
- package/dist/src/shared/hooks/useOAuthEndpoints.d.ts +4 -0
- package/dist/src/shared/hooks/useOAuthEndpoints.d.ts.map +1 -0
- package/dist/src/shared/hooks/useOAuthEndpoints.js +14 -0
- package/dist/src/shared/hooks/useOAuthEndpoints.js.map +1 -0
- package/dist/src/shared/hooks/useRefresh.d.ts +4 -0
- package/dist/src/shared/hooks/useRefresh.d.ts.map +1 -0
- package/dist/src/shared/hooks/useRefresh.js +38 -0
- package/dist/src/shared/hooks/useRefresh.js.map +1 -0
- package/dist/src/shared/hooks/useSession.d.ts +3 -0
- package/dist/src/shared/hooks/useSession.d.ts.map +1 -0
- package/dist/src/shared/hooks/useSession.js +13 -0
- package/dist/src/shared/hooks/useSession.js.map +1 -0
- package/dist/src/shared/hooks/useSignIn.d.ts +15 -0
- package/dist/src/shared/hooks/useSignIn.d.ts.map +1 -0
- package/dist/src/shared/hooks/useSignIn.js +126 -0
- package/dist/src/shared/hooks/useSignIn.js.map +1 -0
- package/dist/src/shared/hooks/useToken.d.ts +3 -0
- package/dist/src/shared/hooks/useToken.d.ts.map +1 -0
- package/dist/src/shared/hooks/useToken.js +12 -0
- package/dist/src/shared/hooks/useToken.js.map +1 -0
- package/dist/src/shared/hooks/useWindowFocused.d.ts +5 -0
- package/dist/src/shared/hooks/useWindowFocused.d.ts.map +1 -0
- package/dist/src/shared/hooks/useWindowFocused.js +21 -0
- package/dist/src/shared/hooks/useWindowFocused.js.map +1 -0
- package/dist/src/shared/index.d.ts +5 -0
- package/dist/src/shared/index.d.ts.map +1 -0
- package/dist/src/shared/index.js +16 -0
- package/dist/src/shared/index.js.map +1 -0
- package/dist/src/shared/lib/GenericAuthenticationRefresher.d.ts +20 -0
- package/dist/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +1 -0
- package/dist/src/shared/lib/GenericAuthenticationRefresher.js +73 -0
- package/dist/src/shared/lib/GenericAuthenticationRefresher.js.map +1 -0
- package/dist/src/shared/lib/UserSession.d.ts +12 -0
- package/dist/src/shared/lib/UserSession.d.ts.map +1 -0
- package/dist/src/shared/lib/UserSession.js +20 -0
- package/dist/src/shared/lib/UserSession.js.map +1 -0
- package/dist/src/shared/lib/session.d.ts +3 -0
- package/dist/src/shared/lib/session.d.ts.map +1 -0
- package/dist/src/shared/lib/session.js +21 -0
- package/dist/src/shared/lib/session.js.map +1 -0
- package/dist/src/shared/lib/storage.d.ts +25 -0
- package/dist/src/shared/lib/storage.d.ts.map +1 -0
- package/dist/src/shared/lib/storage.js +17 -0
- package/dist/src/shared/lib/storage.js.map +1 -0
- package/dist/src/shared/lib/types.d.ts +36 -0
- package/dist/src/shared/lib/types.d.ts.map +1 -0
- package/dist/src/shared/lib/types.js +18 -0
- package/dist/src/shared/lib/types.js.map +1 -0
- package/dist/src/shared/lib/util.d.ts +34 -0
- package/dist/src/shared/lib/util.d.ts.map +1 -0
- package/dist/src/shared/lib/util.js +137 -0
- package/dist/src/shared/lib/util.js.map +1 -0
- package/dist/src/shared/providers/AuthContext.d.ts +11 -0
- package/dist/src/shared/providers/AuthContext.d.ts.map +1 -0
- package/dist/src/shared/providers/AuthContext.js +3 -0
- package/dist/src/shared/providers/AuthContext.js.map +1 -0
- package/dist/src/shared/providers/AuthProvider.d.ts +22 -0
- package/dist/src/shared/providers/AuthProvider.d.ts.map +1 -0
- package/dist/src/shared/providers/AuthProvider.js +72 -0
- package/dist/src/shared/providers/AuthProvider.js.map +1 -0
- package/dist/src/shared/providers/CivicAuthConfigContext.d.ts +18 -0
- package/dist/src/shared/providers/CivicAuthConfigContext.d.ts.map +1 -0
- package/dist/src/shared/providers/CivicAuthConfigContext.js +52 -0
- package/dist/src/shared/providers/CivicAuthConfigContext.js.map +1 -0
- package/dist/src/shared/providers/CivicAuthProvider.d.ts +6 -0
- package/dist/src/shared/providers/CivicAuthProvider.d.ts.map +1 -0
- package/dist/src/shared/providers/CivicAuthProvider.js +32 -0
- package/dist/src/shared/providers/CivicAuthProvider.js.map +1 -0
- package/dist/src/shared/providers/ClientTokenExchangeSessionProvider.d.ts +17 -0
- package/dist/src/shared/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -0
- package/dist/src/shared/providers/ClientTokenExchangeSessionProvider.js +131 -0
- package/dist/src/shared/providers/ClientTokenExchangeSessionProvider.js.map +1 -0
- package/dist/src/shared/providers/IframeProvider.d.ts +22 -0
- package/dist/src/shared/providers/IframeProvider.d.ts.map +1 -0
- package/dist/src/shared/providers/IframeProvider.js +35 -0
- package/dist/src/shared/providers/IframeProvider.js.map +1 -0
- package/dist/src/shared/providers/SessionProvider.d.ts +19 -0
- package/dist/src/shared/providers/SessionProvider.d.ts.map +1 -0
- package/dist/src/shared/providers/SessionProvider.js +23 -0
- package/dist/src/shared/providers/SessionProvider.js.map +1 -0
- package/dist/src/shared/providers/TokenProvider.d.ts +18 -0
- package/dist/src/shared/providers/TokenProvider.d.ts.map +1 -0
- package/dist/src/shared/providers/TokenProvider.js +42 -0
- package/dist/src/shared/providers/TokenProvider.js.map +1 -0
- package/dist/src/shared/providers/UserProvider.d.ts +24 -0
- package/dist/src/shared/providers/UserProvider.d.ts.map +1 -0
- package/dist/src/shared/providers/UserProvider.js +52 -0
- package/dist/src/shared/providers/UserProvider.js.map +1 -0
- package/dist/src/shared/providers/types.d.ts +15 -0
- package/dist/src/shared/providers/types.d.ts.map +1 -0
- package/dist/src/shared/providers/types.js +2 -0
- package/dist/src/shared/providers/types.js.map +1 -0
- package/dist/src/shared/version.d.ts +2 -0
- package/dist/src/shared/version.d.ts.map +1 -0
- package/dist/src/shared/version.js +3 -0
- package/dist/src/shared/version.js.map +1 -0
- package/dist/src/types.d.ts +148 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +4 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils.d.ts +15 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +43 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/src/version.d.ts +2 -0
- package/dist/src/version.d.ts.map +1 -0
- package/dist/src/version.js +3 -0
- package/dist/src/version.js.map +1 -0
- package/dist/test/integration/sdk.test.d.ts +2 -0
- package/dist/test/integration/sdk.test.d.ts.map +1 -0
- package/dist/test/integration/sdk.test.js +237 -0
- package/dist/test/integration/sdk.test.js.map +1 -0
- package/dist/test/support/fixtures.d.ts +26 -0
- package/dist/test/support/fixtures.d.ts.map +1 -0
- package/dist/test/support/fixtures.js +55 -0
- package/dist/test/support/fixtures.js.map +1 -0
- package/dist/test/support/tokens.json +26 -0
- package/dist/test/unit/lib/oauth.test.d.ts +2 -0
- package/dist/test/unit/lib/oauth.test.d.ts.map +1 -0
- package/dist/test/unit/lib/oauth.test.js +56 -0
- package/dist/test/unit/lib/oauth.test.js.map +1 -0
- package/dist/test/unit/lib/obj.test.d.ts +2 -0
- package/dist/test/unit/lib/obj.test.d.ts.map +1 -0
- package/dist/test/unit/lib/obj.test.js +37 -0
- package/dist/test/unit/lib/obj.test.js.map +1 -0
- package/dist/test/unit/logger.test.d.ts +2 -0
- package/dist/test/unit/logger.test.d.ts.map +1 -0
- package/dist/test/unit/logger.test.js +141 -0
- package/dist/test/unit/logger.test.js.map +1 -0
- package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts +2 -0
- package/dist/test/unit/nextjs/NextAuthProvider.test.d.ts.map +1 -0
- package/dist/test/unit/nextjs/NextAuthProvider.test.js +31 -0
- package/dist/test/unit/nextjs/NextAuthProvider.test.js.map +1 -0
- package/dist/test/unit/nextjs/config.test.d.ts +2 -0
- package/dist/test/unit/nextjs/config.test.d.ts.map +1 -0
- package/dist/test/unit/nextjs/config.test.js +203 -0
- package/dist/test/unit/nextjs/config.test.js.map +1 -0
- package/dist/test/unit/nextjs/getUser.test.d.ts +2 -0
- package/dist/test/unit/nextjs/getUser.test.d.ts.map +1 -0
- package/dist/test/unit/nextjs/getUser.test.js +22 -0
- package/dist/test/unit/nextjs/getUser.test.js.map +1 -0
- package/dist/test/unit/nextjs/handler.test.d.ts +2 -0
- package/dist/test/unit/nextjs/handler.test.d.ts.map +1 -0
- package/dist/test/unit/nextjs/handler.test.js +207 -0
- package/dist/test/unit/nextjs/handler.test.js.map +1 -0
- package/dist/test/unit/nextjs/middleware.test.d.ts +2 -0
- package/dist/test/unit/nextjs/middleware.test.d.ts.map +1 -0
- package/dist/test/unit/nextjs/middleware.test.js +113 -0
- package/dist/test/unit/nextjs/middleware.test.js.map +1 -0
- package/dist/test/unit/nextjs/utils.test.d.ts +2 -0
- package/dist/test/unit/nextjs/utils.test.d.ts.map +1 -0
- package/dist/test/unit/nextjs/utils.test.js +13 -0
- package/dist/test/unit/nextjs/utils.test.js.map +1 -0
- package/dist/test/unit/publicApi/apiSnapshot.test.d.ts +2 -0
- package/dist/test/unit/publicApi/apiSnapshot.test.d.ts.map +1 -0
- package/dist/test/unit/publicApi/apiSnapshot.test.js +10 -0
- package/dist/test/unit/publicApi/apiSnapshot.test.js.map +1 -0
- package/dist/test/unit/react/components/SignInButton.test.d.ts +2 -0
- package/dist/test/unit/react/components/SignInButton.test.d.ts.map +1 -0
- package/dist/test/unit/react/components/SignInButton.test.js +31 -0
- package/dist/test/unit/react/components/SignInButton.test.js.map +1 -0
- package/dist/test/unit/react/components/SignOutButton.test.d.ts +2 -0
- package/dist/test/unit/react/components/SignOutButton.test.d.ts.map +1 -0
- package/dist/test/unit/react/components/SignOutButton.test.js +30 -0
- package/dist/test/unit/react/components/SignOutButton.test.js.map +1 -0
- package/dist/test/unit/server/login.test.d.ts +2 -0
- package/dist/test/unit/server/login.test.d.ts.map +1 -0
- package/dist/test/unit/server/login.test.js +184 -0
- package/dist/test/unit/server/login.test.js.map +1 -0
- package/dist/test/unit/server/refresh.test.d.ts +2 -0
- package/dist/test/unit/server/refresh.test.d.ts.map +1 -0
- package/dist/test/unit/server/refresh.test.js +55 -0
- package/dist/test/unit/server/refresh.test.js.map +1 -0
- package/dist/test/unit/server/session.test.d.ts +2 -0
- package/dist/test/unit/server/session.test.d.ts.map +1 -0
- package/dist/test/unit/server/session.test.js +41 -0
- package/dist/test/unit/server/session.test.js.map +1 -0
- package/dist/test/unit/services/AuthenticationService.test.d.ts +2 -0
- package/dist/test/unit/services/AuthenticationService.test.d.ts.map +1 -0
- package/dist/test/unit/services/AuthenticationService.test.js +301 -0
- package/dist/test/unit/services/AuthenticationService.test.js.map +1 -0
- package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts +2 -0
- package/dist/test/unit/services/ServerAuthenticationResolver.test.d.ts.map +1 -0
- package/dist/test/unit/services/ServerAuthenticationResolver.test.js +75 -0
- package/dist/test/unit/services/ServerAuthenticationResolver.test.js.map +1 -0
- package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts +2 -0
- package/dist/test/unit/shared/GenericAuthenticationRefresher.test.d.ts.map +1 -0
- package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js +144 -0
- package/dist/test/unit/shared/GenericAuthenticationRefresher.test.js.map +1 -0
- package/dist/test/unit/shared/UserSession.test.d.ts +2 -0
- package/dist/test/unit/shared/UserSession.test.d.ts.map +1 -0
- package/dist/test/unit/shared/UserSession.test.js +37 -0
- package/dist/test/unit/shared/UserSession.test.js.map +1 -0
- package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts +2 -0
- package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.d.ts.map +1 -0
- package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js +122 -0
- package/dist/test/unit/shared/components/CivicAuthIframeContainer.test.js.map +1 -0
- package/dist/test/unit/shared/printVersion.test.d.ts +2 -0
- package/dist/test/unit/shared/printVersion.test.d.ts.map +1 -0
- package/dist/test/unit/shared/printVersion.test.js +39 -0
- package/dist/test/unit/shared/printVersion.test.js.map +1 -0
- package/dist/test/unit/shared/providers/ClientTokenExchangeSessionProvider.test.d.ts +2 -0
- package/dist/test/unit/shared/providers/ClientTokenExchangeSessionProvider.test.d.ts.map +1 -0
- package/dist/test/unit/shared/providers/ClientTokenExchangeSessionProvider.test.js +108 -0
- package/dist/test/unit/shared/providers/ClientTokenExchangeSessionProvider.test.js.map +1 -0
- package/dist/test/unit/shared/storage.test.d.ts +2 -0
- package/dist/test/unit/shared/storage.test.d.ts.map +1 -0
- package/dist/test/unit/shared/storage.test.js +53 -0
- package/dist/test/unit/shared/storage.test.js.map +1 -0
- package/dist/test/unit/utils.test.d.ts +2 -0
- package/dist/test/unit/utils.test.d.ts.map +1 -0
- package/dist/test/unit/utils.test.js +40 -0
- package/dist/test/unit/utils.test.js.map +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +44 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +20 -18
- 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/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/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
|
@@ -1,36 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.LoadingIcon = void 0;
|
|
7
|
-
const
|
|
8
|
-
const LoadingIcon = ({ width = "2em", height = "2em" }) => (
|
|
9
|
-
react_1.default.createElement("style", null, `
|
|
4
|
+
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
5
|
+
const LoadingIcon = ({ width = "2em", height = "2em" }) => ((0, jsx_runtime_1.jsxs)("div", { id: "civic-auth-loading-icon", role: "status", children: [(0, jsx_runtime_1.jsx)("style", { children: `
|
|
10
6
|
@keyframes spin {
|
|
11
7
|
0% { transform: rotate(0deg); }
|
|
12
8
|
100% { transform: rotate(360deg); }
|
|
13
9
|
}
|
|
14
|
-
`),
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
overflow: "hidden",
|
|
32
|
-
clip: "rect(0, 0, 0, 0)",
|
|
33
|
-
border: 0,
|
|
34
|
-
} }, "Loading...")));
|
|
10
|
+
` }), (0, jsx_runtime_1.jsxs)("svg", { "aria-hidden": "true", style: {
|
|
11
|
+
display: "inline",
|
|
12
|
+
width,
|
|
13
|
+
height,
|
|
14
|
+
animation: "spin 1s linear infinite",
|
|
15
|
+
fill: "#4b5563",
|
|
16
|
+
color: "#e5e7eb",
|
|
17
|
+
}, viewBox: "0 0 100 101", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [(0, jsx_runtime_1.jsx)("path", { d: "M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z", fill: "currentColor" }), (0, jsx_runtime_1.jsx)("path", { d: "M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z", fill: "currentFill" })] }), (0, jsx_runtime_1.jsx)("span", { style: {
|
|
18
|
+
position: "absolute",
|
|
19
|
+
width: "1px",
|
|
20
|
+
height: "1px",
|
|
21
|
+
padding: 0,
|
|
22
|
+
margin: "-1px",
|
|
23
|
+
overflow: "hidden",
|
|
24
|
+
clip: "rect(0, 0, 0, 0)",
|
|
25
|
+
border: 0,
|
|
26
|
+
}, children: "Loading..." })] }));
|
|
35
27
|
exports.LoadingIcon = LoadingIcon;
|
|
36
28
|
//# sourceMappingURL=LoadingIcon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingIcon.js","sourceRoot":"","sources":["../../../../src/shared/components/LoadingIcon.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LoadingIcon.js","sourceRoot":"","sources":["../../../../src/shared/components/LoadingIcon.tsx"],"names":[],"mappings":";;;;AAEA,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CACzD,iCAAK,EAAE,EAAC,yBAAyB,EAAC,IAAI,EAAC,QAAQ,aAC7C,4CACG;;;;;OAKA,GACK,EACR,gDACc,MAAM,EAClB,KAAK,EAAE;gBACL,OAAO,EAAE,QAAQ;gBACjB,KAAK;gBACL,MAAM;gBACN,SAAS,EAAE,yBAAyB;gBACpC,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;aACjB,EACD,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,aAElC,iCACE,CAAC,EAAC,8WAA8W,EAChX,IAAI,EAAC,cAAc,GACnB,EACF,iCACE,CAAC,EAAC,+kBAA+kB,EACjlB,IAAI,EAAC,aAAa,GAClB,IACE,EACN,iCACE,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,CAAC;aACV,2BAGI,IACH,CACP,CAAC;AAEO,kCAAW","sourcesContent":["import React from \"react\";\n\nconst LoadingIcon = ({ width = \"2em\", height = \"2em\" }) => (\n <div id=\"civic-auth-loading-icon\" role=\"status\">\n <style>\n {`\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `}\n </style>\n <svg\n aria-hidden=\"true\"\n style={{\n display: \"inline\",\n width,\n height,\n animation: \"spin 1s linear infinite\",\n fill: \"#4b5563\",\n color: \"#e5e7eb\",\n }}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n <span\n style={{\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n padding: 0,\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n border: 0,\n }}\n >\n Loading...\n </span>\n </div>\n);\n\nexport { LoadingIcon };\n"]}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.default = SVGLoading;
|
|
7
|
-
const
|
|
4
|
+
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
8
5
|
const shimmerKeyframes = `
|
|
9
6
|
@keyframes shimmer {
|
|
10
7
|
0% {
|
|
@@ -19,25 +16,15 @@ const shimmerStyle = {
|
|
|
19
16
|
animation: "1s linear infinite both shimmer",
|
|
20
17
|
};
|
|
21
18
|
function SVGLoading() {
|
|
22
|
-
return (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}, className: "svg-loading" },
|
|
33
|
-
react_1.default.createElement("defs", null,
|
|
34
|
-
react_1.default.createElement("linearGradient", { id: "Gradient-0", x2: "320", y1: "15", y2: "15", gradientUnits: "userSpaceOnUse" },
|
|
35
|
-
react_1.default.createElement("stop", { offset: "0", stopColor: "#ffffff" }),
|
|
36
|
-
react_1.default.createElement("stop", { offset: ".511", stopColor: "#9A9DA6" }),
|
|
37
|
-
react_1.default.createElement("stop", { offset: "1", stopColor: "#ffffff" }))),
|
|
38
|
-
react_1.default.createElement("path", { id: "rect", fill: "#f6f7f8", d: "M0 0h324v28H0z" }),
|
|
39
|
-
" ",
|
|
40
|
-
react_1.default.createElement("path", { id: "shimmer", fill: "url(#Gradient-0)", d: "M0 0h324v28H0z" // Adjusted height
|
|
41
|
-
, transform: "translate(-326)", style: shimmerStyle }))));
|
|
19
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("style", { children: shimmerKeyframes }), (0, jsx_runtime_1.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", shapeRendering: "geometricPrecision", textRendering: "geometricPrecision", viewBox: "0 0 324 28" // Adjusted viewBox height
|
|
20
|
+
, height: "38" // Adjusted height
|
|
21
|
+
, width: "100%", style: {
|
|
22
|
+
position: "absolute",
|
|
23
|
+
top: -4,
|
|
24
|
+
left: 0,
|
|
25
|
+
borderRadius: "0.5rem", // Added borderRadius
|
|
26
|
+
backgroundColor: "#f6f7f8", // Added background color
|
|
27
|
+
}, className: "svg-loading", children: [(0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsxs)("linearGradient", { id: "Gradient-0", x2: "320", y1: "15", y2: "15", gradientUnits: "userSpaceOnUse", children: [(0, jsx_runtime_1.jsx)("stop", { offset: "0", stopColor: "#ffffff" }), (0, jsx_runtime_1.jsx)("stop", { offset: ".511", stopColor: "#9A9DA6" }), (0, jsx_runtime_1.jsx)("stop", { offset: "1", stopColor: "#ffffff" })] }) }), (0, jsx_runtime_1.jsx)("path", { id: "rect", fill: "#f6f7f8", d: "M0 0h324v28H0z" }), " ", (0, jsx_runtime_1.jsx)("path", { id: "shimmer", fill: "url(#Gradient-0)", d: "M0 0h324v28H0z" // Adjusted height
|
|
28
|
+
, transform: "translate(-326)", style: shimmerStyle })] })] }));
|
|
42
29
|
}
|
|
43
30
|
//# sourceMappingURL=SVGLoading.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SVGLoading.js","sourceRoot":"","sources":["../../../../src/shared/components/SVGLoading.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SVGLoading.js","sourceRoot":"","sources":["../../../../src/shared/components/SVGLoading.tsx"],"names":[],"mappings":";;AAiBA,6BA6CC;;AA5DD,MAAM,gBAAgB,GAAG;;;;;;;;;CASxB,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,SAAS,EAAE,iCAAiC;CAC7C,CAAC;AAEF,SAAwB,UAAU;IAChC,OAAO,CACL,6DACE,4CAAQ,gBAAgB,GAAS,EACjC,iCACE,KAAK,EAAC,4BAA4B,EAClC,cAAc,EAAC,oBAAoB,EACnC,aAAa,EAAC,oBAAoB,EAClC,OAAO,EAAC,YAAY,CAAC,0BAA0B;kBAC/C,MAAM,EAAC,IAAI,CAAC,kBAAkB;kBAC9B,KAAK,EAAC,MAAM,EACZ,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,CAAC,CAAC;oBACP,IAAI,EAAE,CAAC;oBACP,YAAY,EAAE,QAAQ,EAAE,qBAAqB;oBAC7C,eAAe,EAAE,SAAS,EAAE,yBAAyB;iBACtD,EACD,SAAS,EAAC,aAAa,aAEvB,2CACE,4CACE,EAAE,EAAC,YAAY,EACf,EAAE,EAAC,KAAK,EACR,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,aAAa,EAAC,gBAAgB,aAE9B,iCAAM,MAAM,EAAC,GAAG,EAAC,SAAS,EAAC,SAAS,GAAG,EACvC,iCAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,GAAG,EAC1C,iCAAM,MAAM,EAAC,GAAG,EAAC,SAAS,EAAC,SAAS,GAAG,IACxB,GACZ,EACP,iCAAM,EAAE,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,CAAC,EAAC,gBAAgB,GAAG,EAAC,GAAG,EAExD,iCACE,EAAE,EAAC,SAAS,EACZ,IAAI,EAAC,kBAAkB,EACvB,CAAC,EAAC,gBAAgB,CAAC,kBAAkB;0BACrC,SAAS,EAAC,iBAAiB,EAC3B,KAAK,EAAE,YAAY,GACnB,IACE,IACL,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\n\nconst shimmerKeyframes = `\n @keyframes shimmer {\n 0% {\n transform: translate(-328px, 0);\n }\n to {\n transform: translate(328px, 0);\n }\n }\n`;\n\nconst shimmerStyle = {\n animation: \"1s linear infinite both shimmer\",\n};\n\nexport default function SVGLoading(): JSX.Element {\n return (\n <>\n <style>{shimmerKeyframes}</style>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n shapeRendering=\"geometricPrecision\"\n textRendering=\"geometricPrecision\"\n viewBox=\"0 0 324 28\" // Adjusted viewBox height\n height=\"38\" // Adjusted height\n width=\"100%\"\n style={{\n position: \"absolute\",\n top: -4,\n left: 0,\n borderRadius: \"0.5rem\", // Added borderRadius\n backgroundColor: \"#f6f7f8\", // Added background color\n }}\n className=\"svg-loading\"\n >\n <defs>\n <linearGradient\n id=\"Gradient-0\"\n x2=\"320\"\n y1=\"15\"\n y2=\"15\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset=\"0\" stopColor=\"#ffffff\" />\n <stop offset=\".511\" stopColor=\"#9A9DA6\" />\n <stop offset=\"1\" stopColor=\"#ffffff\" />\n </linearGradient>\n </defs>\n <path id=\"rect\" fill=\"#f6f7f8\" d=\"M0 0h324v28H0z\" />{\" \"}\n {/* Adjusted height */}\n <path\n id=\"shimmer\"\n fill=\"url(#Gradient-0)\"\n d=\"M0 0h324v28H0z\" // Adjusted height\n transform=\"translate(-326)\"\n style={shimmerStyle}\n />\n </svg>\n </>\n );\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AuthStorage, UnknownObject, User } from "../../types.js";
|
|
1
|
+
import type { AuthStorage, ForwardedTokensJWT, UnknownObject, User } from "../../types.js";
|
|
2
2
|
export interface UserSession<T extends UnknownObject> {
|
|
3
3
|
get(): Promise<User<T> | null>;
|
|
4
4
|
set(user: User<T>): Promise<void>;
|
|
@@ -7,7 +7,9 @@ export declare class GenericUserSession<T extends UnknownObject> implements User
|
|
|
7
7
|
readonly storage: AuthStorage;
|
|
8
8
|
constructor(storage: AuthStorage);
|
|
9
9
|
get(): Promise<User<T> | null>;
|
|
10
|
-
set(user: User<T>
|
|
10
|
+
set(user: (User<T> & {
|
|
11
|
+
forwardedTokens?: ForwardedTokensJWT;
|
|
12
|
+
}) | null): Promise<void>;
|
|
11
13
|
clear(): Promise<void>;
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=UserSession.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSession.d.ts","sourceRoot":"","sources":["../../../../src/shared/lib/UserSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,
|
|
1
|
+
{"version":3,"file":"UserSession.d.ts","sourceRoot":"","sources":["../../../../src/shared/lib/UserSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,IAAI,EACL,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,aAAa;IAClD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/B,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,qBAAa,kBAAkB,CAAC,CAAC,SAAS,aAAa,CACrD,YAAW,WAAW,CAAC,CAAC,CAAC;IAEb,QAAQ,CAAC,OAAO,EAAE,WAAW;gBAApB,OAAO,EAAE,WAAW;IAEnC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAK9B,GAAG,CACP,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,eAAe,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC,GAAG,IAAI,GAChE,OAAO,CAAC,IAAI,CAAC;IAQV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSession.js","sourceRoot":"","sources":["../../../../src/shared/lib/UserSession.ts"],"names":[],"mappings":";;;AAMA,oDAAoD;AACpD,yCAA2D;AAO3D,MAAa,kBAAkB;IAGR;IAArB,YAAqB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAE7C,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAW,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"UserSession.js","sourceRoot":"","sources":["../../../../src/shared/lib/UserSession.ts"],"names":[],"mappings":";;;AAMA,oDAAoD;AACpD,yCAA2D;AAO3D,MAAa,kBAAkB;IAGR;IAArB,YAAqB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAE7C,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAW,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAiE;QAEjE,MAAM,eAAe,GAAG,IAAI,EAAE,eAAe;YAC3C,CAAC,CAAC,IAAA,oCAA2B,EAAC,IAAI,EAAE,eAAqC,CAAC;YAC1E,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAW,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF;AAvBD,gDAuBC","sourcesContent":["import type {\n AuthStorage,\n ForwardedTokensJWT,\n UnknownObject,\n User,\n} from \"@/types.js\";\nimport { UserStorage } from \"@/shared/lib/types.js\";\nimport { convertForwardedTokenFormat } from \"@/lib/jwt.js\";\n\nexport interface UserSession<T extends UnknownObject> {\n get(): Promise<User<T> | null>;\n set(user: User<T>): Promise<void>;\n}\n\nexport class GenericUserSession<T extends UnknownObject>\n implements UserSession<T>\n{\n constructor(readonly storage: AuthStorage) {}\n\n async get(): Promise<User<T> | null> {\n const user = await this.storage.get(UserStorage.USER);\n return user ? JSON.parse(user) : null;\n }\n\n async set(\n user: (User<T> & { forwardedTokens?: ForwardedTokensJWT }) | null,\n ): Promise<void> {\n const forwardedTokens = user?.forwardedTokens\n ? convertForwardedTokenFormat(user?.forwardedTokens as ForwardedTokensJWT)\n : null;\n const value = user ? JSON.stringify({ ...user, forwardedTokens }) : \"\";\n await this.storage.set(UserStorage.USER, value);\n }\n\n async clear(): Promise<void> {\n await this.storage.delete(UserStorage.USER);\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AuthStorage, type OAuthTokens, type User } from "../../types.js";
|
|
2
|
-
export declare function getUser(storage: AuthStorage): Promise<User | null>;
|
|
1
|
+
import { type AuthStorage, type OAuthTokens, type User, type EmptyObject, type UnknownObject } from "../../types.js";
|
|
2
|
+
export declare function getUser<T extends UnknownObject = EmptyObject>(storage: AuthStorage): Promise<User<T> | null>;
|
|
3
3
|
export declare function getTokens(storage: AuthStorage): Promise<OAuthTokens | null>;
|
|
4
4
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/shared/lib/session.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/shared/lib/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,IAAI,EAET,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAqBpB,wBAAsB,OAAO,CAAC,CAAC,SAAS,aAAa,GAAG,WAAW,EACjE,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAmBzB;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAS7B"}
|
|
@@ -13,22 +13,25 @@ const omitKeys = (keys, obj) => {
|
|
|
13
13
|
});
|
|
14
14
|
return result;
|
|
15
15
|
};
|
|
16
|
+
const parseJWTToType = (jwt) => {
|
|
17
|
+
const parseResult = (0, jwt_1.parseJWT)(jwt);
|
|
18
|
+
return parseResult ? parseResult.payload : null;
|
|
19
|
+
};
|
|
16
20
|
async function getUser(storage) {
|
|
17
21
|
const tokens = await (0, util_js_1.retrieveTokens)(storage);
|
|
18
22
|
if (!tokens)
|
|
19
23
|
return null;
|
|
20
|
-
const
|
|
21
|
-
if (!
|
|
24
|
+
const parsedToken = parseJWTToType(tokens.id_token);
|
|
25
|
+
if (!parsedToken)
|
|
22
26
|
return null;
|
|
23
|
-
const parsedToken = parseResult.payload;
|
|
24
27
|
// set the user ID from the token sub
|
|
25
|
-
const
|
|
28
|
+
const userWithAdditionalTokenFields = {
|
|
26
29
|
...parsedToken,
|
|
27
30
|
id: parsedToken.sub,
|
|
28
31
|
};
|
|
29
32
|
// Assumes all information is in the ID token
|
|
30
33
|
// remove the token keys from the user object to stop it getting too large
|
|
31
|
-
return
|
|
34
|
+
return omitKeys([...types_js_1.jwtPayloadKnownClaimsKeys, ...types_js_1.tokenKeys], userWithAdditionalTokenFields);
|
|
32
35
|
}
|
|
33
36
|
async function getTokens(storage) {
|
|
34
37
|
const storageData = await (0, util_js_1.retrieveTokens)(storage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/shared/lib/session.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/shared/lib/session.ts"],"names":[],"mappings":";;AAgCA,0BAqBC;AAED,8BAWC;AAlED,kDAAsD;AACtD,kCAAoC;AACpC,yCASoB;AAEpB,uCAAuC;AACvC,MAAM,QAAQ,GAAG,CACf,IAAS,EACT,GAAM,EACM,EAAE;IACd,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,GAAW,EACc,EAAE;IAC3B,MAAM,WAAW,GAAG,IAAA,cAAQ,EAAC,GAAG,CAAC,CAAC;IAClC,OAAO,WAAW,CAAC,CAAC,CAAE,WAAW,CAAC,OAA0B,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC,CAAC;AAEK,KAAK,UAAU,OAAO,CAC3B,OAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAc,EAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,WAAW,GAAG,cAAc,CAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,qCAAqC;IACrC,MAAM,6BAA6B,GAAG;QACpC,GAAG,WAAW;QACd,EAAE,EAAE,WAAW,CAAC,GAAG;KACpB,CAAC;IAEF,6CAA6C;IAC7C,0EAA0E;IAC1E,OAAO,QAAQ,CACb,CAAC,GAAG,oCAAyB,EAAE,GAAG,oBAAS,CAAC,EAC5C,6BAA6B,CAC9B,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,SAAS,CAC7B,OAAoB;IAEpB,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAc,EAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,QAAQ;QAC7B,WAAW,EAAE,WAAW,CAAC,YAAY;QACrC,YAAY,EAAE,WAAW,CAAC,aAAa;KACxC,CAAC;AACJ,CAAC","sourcesContent":["import { retrieveTokens } from \"@/shared/lib/util.js\";\nimport { parseJWT } from \"oslo/jwt\";\nimport {\n jwtPayloadKnownClaimsKeys,\n tokenKeys,\n type AuthStorage,\n type OAuthTokens,\n type User,\n type JWTPayload,\n type EmptyObject,\n type UnknownObject,\n} from \"@/types.js\";\n\n// Function to omit keys from an object\nconst omitKeys = <K extends keyof T, T extends Record<string, unknown>>(\n keys: K[],\n obj: T,\n): Omit<T, K> => {\n const result = { ...obj };\n keys.forEach((key) => {\n delete result[key];\n });\n return result;\n};\n\nconst parseJWTToType = <T extends UnknownObject = EmptyObject>(\n jwt: string,\n): (JWTPayload & T) | null => {\n const parseResult = parseJWT(jwt);\n return parseResult ? (parseResult.payload as JWTPayload & T) : null;\n};\n\nexport async function getUser<T extends UnknownObject = EmptyObject>(\n storage: AuthStorage,\n): Promise<User<T> | null> {\n const tokens = await retrieveTokens(storage);\n if (!tokens) return null;\n\n const parsedToken = parseJWTToType<T>(tokens.id_token);\n if (!parsedToken) return null;\n\n // set the user ID from the token sub\n const userWithAdditionalTokenFields = {\n ...parsedToken,\n id: parsedToken.sub,\n };\n\n // Assumes all information is in the ID token\n // remove the token keys from the user object to stop it getting too large\n return omitKeys(\n [...jwtPayloadKnownClaimsKeys, ...tokenKeys],\n userWithAdditionalTokenFields,\n );\n}\n\nexport async function getTokens(\n storage: AuthStorage,\n): Promise<OAuthTokens | null> {\n const storageData = await retrieveTokens(storage);\n if (!storageData) return null;\n\n return {\n idToken: storageData.id_token,\n accessToken: storageData.access_token,\n refreshToken: storageData.refresh_token,\n };\n}\n"]}
|
|
@@ -6,6 +6,7 @@ export declare enum OAuthTokens {
|
|
|
6
6
|
ACCESS_TOKEN_EXPIRES_AT = "access_token_expires_at"
|
|
7
7
|
}
|
|
8
8
|
export declare const AUTH_SERVER_SESSION = "_session";
|
|
9
|
+
export declare const AUTH_SERVER_LEGACY_SESSION = "_session.legacy";
|
|
9
10
|
export declare enum CodeVerifier {
|
|
10
11
|
COOKIE_NAME = "code_verifier",
|
|
11
12
|
APP_URL = "app_url"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/shared/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,oBAAY,WAAW;IACrB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,uBAAuB,4BAA4B;CACpD;AAED,eAAO,MAAM,mBAAmB,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/shared/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,oBAAY,WAAW;IACrB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,uBAAuB,4BAA4B;CACpD;AAED,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAE5D,oBAAY,YAAY;IACtB,WAAW,kBAAkB;IAC7B,OAAO,YAAY;CACpB;AACD,oBAAY,WAAW;IACrB,IAAI,SAAS;CACd;AACD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CACrC,WAAW,GAAG,YAAY,EAC1B,YAAY,CACb,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UserStorage = exports.CodeVerifier = exports.AUTH_SERVER_SESSION = exports.OAuthTokens = void 0;
|
|
3
|
+
exports.UserStorage = exports.CodeVerifier = exports.AUTH_SERVER_LEGACY_SESSION = exports.AUTH_SERVER_SESSION = exports.OAuthTokens = void 0;
|
|
4
4
|
var OAuthTokens;
|
|
5
5
|
(function (OAuthTokens) {
|
|
6
6
|
OAuthTokens["ID_TOKEN"] = "id_token";
|
|
@@ -9,6 +9,7 @@ var OAuthTokens;
|
|
|
9
9
|
OAuthTokens["ACCESS_TOKEN_EXPIRES_AT"] = "access_token_expires_at";
|
|
10
10
|
})(OAuthTokens || (exports.OAuthTokens = OAuthTokens = {}));
|
|
11
11
|
exports.AUTH_SERVER_SESSION = "_session";
|
|
12
|
+
exports.AUTH_SERVER_LEGACY_SESSION = "_session.legacy";
|
|
12
13
|
var CodeVerifier;
|
|
13
14
|
(function (CodeVerifier) {
|
|
14
15
|
CodeVerifier["COOKIE_NAME"] = "code_verifier";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/shared/lib/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4CAA6B,CAAA;IAC7B,8CAA+B,CAAA;IAC/B,kEAAmD,CAAA;AACrD,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAEY,QAAA,mBAAmB,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/shared/lib/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4CAA6B,CAAA;IAC7B,8CAA+B,CAAA;IAC/B,kEAAmD,CAAA;AACrD,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAEY,QAAA,mBAAmB,GAAG,UAAU,CAAC;AACjC,QAAA,0BAA0B,GAAG,iBAAiB,CAAC;AAE5D,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6CAA6B,CAAA;IAC7B,mCAAmB,CAAA;AACrB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AACD,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,4BAAa,CAAA;AACf,CAAC,EAFW,WAAW,2BAAX,WAAW,QAEtB","sourcesContent":["import type { Endpoints } from \"@/types.js\";\n\nexport enum OAuthTokens {\n ID_TOKEN = \"id_token\",\n ACCESS_TOKEN = \"access_token\",\n REFRESH_TOKEN = \"refresh_token\",\n ACCESS_TOKEN_EXPIRES_AT = \"access_token_expires_at\",\n}\n\nexport const AUTH_SERVER_SESSION = \"_session\";\nexport const AUTH_SERVER_LEGACY_SESSION = \"_session.legacy\";\n\nexport enum CodeVerifier {\n COOKIE_NAME = \"code_verifier\",\n APP_URL = \"app_url\",\n}\nexport enum UserStorage {\n USER = \"user\",\n}\nexport interface CookieConfig {\n secure?: boolean;\n sameSite?: \"strict\" | \"lax\" | \"none\";\n domain?: string;\n path?: string;\n maxAge?: number;\n httpOnly?: boolean;\n}\n\nexport type TokensCookieConfig = Record<\n OAuthTokens | CodeVerifier,\n CookieConfig\n>;\n\nexport type CivicAuthConfig = null | {\n clientId: string;\n redirectUrl: string;\n logoutRedirectUrl: string;\n oauthServer: string;\n endpoints: Endpoints;\n scopes: string[];\n nonce?: string;\n challengeUrl?: string;\n refreshUrl?: string;\n logoutUrl?: string;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/shared/lib/util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EAET,qBAAqB,EACrB,YAAY,EACb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/shared/lib/util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EAET,qBAAqB,EACrB,YAAY,EACb,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAItE;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,OAAO,GAAG,MAAe,GAChC,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,iBAAiB,GAAE,OAAO,CAAC,SAAS,CAAM,GACzC,OAAO,CAAC,SAAS,CAAC,CAMpB;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,YAAY,EAAE,YAAY,CAAC;CAC5B,GAAG,OAAO,CAAC,GAAG,CAAC,CA2Bf;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CACxC,GAAG,OAAO,CAAC,GAAG,CAAC,CAcf;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,SAAS,GACnB,YAAY,CAId;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,SAAS,kCAoBrB;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,qBAAqB,iBAkB9B;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,qBAAqB,iBAS9B;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,iBAKrD;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,WAAW,iBAGhE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,WAAW,iBAGnD;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAmBvC;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,qBAAqB,EAC7B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CA2BvB"}
|
|
@@ -159,6 +159,7 @@ async function clearTokens(storage) {
|
|
|
159
159
|
}
|
|
160
160
|
async function clearAuthServerSession(storage) {
|
|
161
161
|
await storage.delete(types_js_1.AUTH_SERVER_SESSION);
|
|
162
|
+
await storage.delete(types_js_1.AUTH_SERVER_LEGACY_SESSION);
|
|
162
163
|
}
|
|
163
164
|
async function clearUser(storage) {
|
|
164
165
|
const userSession = new UserSession_js_1.GenericUserSession(storage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/shared/lib/util.ts"],"names":[],"mappings":"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","sourcesContent":["// Utility functions shared by auth server and client integrations\n// Typically these functions should be used inside AuthenticationInitiator and AuthenticationResolver implementations\nimport type {\n AuthStorage,\n Endpoints,\n JWTPayload,\n OIDCTokenResponseBody,\n ParsedTokens,\n} from \"@/types.js\";\nimport { AUTH_SERVER_SESSION, OAuthTokens } from \"./types.js\";\nimport { OAuth2Client } from \"oslo/oauth2\";\nimport { getIssuerVariations, getOauthEndpoints } from \"@/lib/oauth.js\";\nimport * as jose from \"jose\";\nimport { withoutUndefined } from \"@/utils.js\";\nimport type { PKCEConsumer, PKCEProducer } from \"@/services/types.js\";\nimport { GenericUserSession } from \"@/shared/lib/UserSession.js\";\nimport { parseJWT } from \"oslo/jwt\";\n\n/**\n * Given a PKCE code verifier, derive the code challenge using SHA\n */\nexport async function deriveCodeChallenge(\n codeVerifier: string,\n method: \"Plain\" | \"S256\" = \"S256\",\n): Promise<string> {\n if (method === \"Plain\") {\n console.warn(\"Using insecure plain code challenge method\");\n return codeVerifier;\n }\n\n const encoder = new TextEncoder();\n const data = encoder.encode(codeVerifier);\n const digest = await crypto.subtle.digest(\"SHA-256\", data);\n return btoa(String.fromCharCode(...new Uint8Array(digest)))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n}\n\nexport async function getEndpointsWithOverrides(\n oauthServer: string,\n endpointOverrides: Partial<Endpoints> = {},\n): Promise<Endpoints> {\n const endpoints = await getOauthEndpoints(oauthServer);\n return {\n ...endpoints,\n ...endpointOverrides,\n };\n}\n\nexport async function generateOauthLoginUrl(config: {\n clientId: string;\n scopes: string[];\n state: string;\n redirectUrl: string;\n oauthServer: string;\n nonce?: string;\n endpointOverrides?: Partial<Endpoints>;\n // used to get the PKCE challenge\n pkceConsumer: PKCEConsumer;\n}): Promise<URL> {\n const endpoints = await getEndpointsWithOverrides(\n config.oauthServer,\n config.endpointOverrides,\n );\n const oauth2Client = buildOauth2Client(\n config.clientId,\n config.redirectUrl,\n endpoints,\n );\n const challenge = await config.pkceConsumer.getCodeChallenge();\n const oAuthUrl = await oauth2Client.createAuthorizationURL({\n state: config.state,\n scopes: config.scopes,\n });\n // The OAuth2 client supports PKCE, but does not allow passing in a code challenge from some other source\n // It only allows passing in a code verifier which it then hashes itself.\n oAuthUrl.searchParams.append(\"code_challenge\", challenge);\n oAuthUrl.searchParams.append(\"code_challenge_method\", \"S256\");\n if (config.nonce) {\n // nonce isn't supported by oslo, so we add it manually\n oAuthUrl.searchParams.append(\"nonce\", config.nonce);\n }\n // Required by the auth server for offline_access scope\n oAuthUrl.searchParams.append(\"prompt\", \"consent\");\n\n return oAuthUrl;\n}\n\nexport async function generateOauthLogoutUrl(config: {\n clientId: string;\n redirectUrl: string;\n idToken: string;\n state: string;\n oauthServer: string;\n endpointOverrides?: Partial<Endpoints>;\n}): Promise<URL> {\n const endpoints = await getEndpointsWithOverrides(\n config.oauthServer,\n config.endpointOverrides,\n );\n const endSessionUrl = new URL(endpoints.endsession);\n endSessionUrl.searchParams.append(\"client_id\", config.clientId);\n endSessionUrl.searchParams.append(\"id_token_hint\", config.idToken);\n endSessionUrl.searchParams.append(\"state\", config.state);\n endSessionUrl.searchParams.append(\n \"post_logout_redirect_uri\",\n config.redirectUrl,\n );\n return endSessionUrl;\n}\n\nexport function buildOauth2Client(\n clientId: string,\n redirectUri: string,\n endpoints: Endpoints,\n): OAuth2Client {\n return new OAuth2Client(clientId, endpoints.auth, endpoints.token, {\n redirectURI: redirectUri,\n });\n}\n\nexport async function exchangeTokens(\n code: string,\n state: string,\n pkceProducer: PKCEProducer,\n oauth2Client: OAuth2Client,\n oauthServer: string,\n endpoints: Endpoints,\n) {\n const codeVerifier = await pkceProducer.getCodeVerifier();\n if (!codeVerifier) throw new Error(\"Code verifier not found in state\");\n\n const tokens =\n await oauth2Client.validateAuthorizationCode<OIDCTokenResponseBody>(code, {\n codeVerifier,\n });\n\n // Validate relevant tokens\n try {\n await validateOauth2Tokens(tokens, endpoints, oauth2Client, oauthServer);\n } catch (error) {\n console.error(\"tokenExchange error\", { error, tokens });\n throw new Error(\n `OIDC tokens validation failed: ${(error as Error).message}`,\n );\n }\n return tokens;\n}\n\nexport async function setAccessTokenExpiresAt(\n storage: AuthStorage,\n tokens: OIDCTokenResponseBody,\n) {\n // try to extract absolut expiry time from access token but fallback to calculation if not possible\n const parsedAccessToken = parseJWT(tokens.access_token);\n if (parsedAccessToken && parsedAccessToken?.expiresAt) {\n await storage.set(\n OAuthTokens.ACCESS_TOKEN_EXPIRES_AT,\n parsedAccessToken.expiresAt?.getTime().toString(),\n );\n } else if (tokens.expires_in) {\n const now = Math.floor(new Date().getTime() / 1000);\n await storage.set(\n OAuthTokens.ACCESS_TOKEN_EXPIRES_AT,\n (now + tokens.expires_in).toString(),\n );\n } else {\n throw new Error(\"Cannot determine access token expiry!\");\n }\n}\n\nexport async function storeTokens(\n storage: AuthStorage,\n tokens: OIDCTokenResponseBody,\n) {\n // store tokens in storage ( TODO we should probably store them against the state to allow multiple logins )\n await storage.set(OAuthTokens.ID_TOKEN, tokens.id_token);\n await storage.set(OAuthTokens.ACCESS_TOKEN, tokens.access_token);\n if (tokens.refresh_token) {\n await storage.set(OAuthTokens.REFRESH_TOKEN, tokens.refresh_token);\n }\n await setAccessTokenExpiresAt(storage, tokens);\n}\n\nexport async function clearTokens(storage: AuthStorage) {\n const clearOAuthPromises = Object.values(OAuthTokens).map(async (key) => {\n await storage.delete(key);\n });\n await Promise.all([...clearOAuthPromises]);\n}\n\nexport async function clearAuthServerSession(storage: AuthStorage) {\n await storage.delete(AUTH_SERVER_SESSION);\n}\n\nexport async function clearUser(storage: AuthStorage) {\n const userSession = new GenericUserSession(storage);\n await userSession.clear();\n}\n\nexport async function retrieveTokens(\n storage: AuthStorage,\n): Promise<OIDCTokenResponseBody | null> {\n const idToken = await storage.get(OAuthTokens.ID_TOKEN);\n const accessToken = await storage.get(OAuthTokens.ACCESS_TOKEN);\n const refreshToken = await storage.get(OAuthTokens.REFRESH_TOKEN);\n const accessTokenExpiresAt = await storage.get(\n OAuthTokens.ACCESS_TOKEN_EXPIRES_AT,\n );\n\n if (!idToken || !accessToken) return null;\n\n return {\n id_token: idToken,\n access_token: accessToken,\n refresh_token: refreshToken ?? undefined,\n access_token_expires_at:\n accessTokenExpiresAt !== null\n ? parseInt(accessTokenExpiresAt, 10)\n : undefined, // Convert string to number\n };\n}\n\nexport async function retrieveAccessTokenExpiresAt(\n storage: AuthStorage,\n): Promise<number> {\n return Number(await storage.get(OAuthTokens.ACCESS_TOKEN_EXPIRES_AT));\n}\n\nexport async function validateOauth2Tokens(\n tokens: OIDCTokenResponseBody,\n endpoints: Endpoints,\n oauth2Client: OAuth2Client,\n issuer: string,\n): Promise<ParsedTokens> {\n const JWKS = jose.createRemoteJWKSet(new URL(endpoints.jwks));\n\n // validate the ID token\n const idTokenResponse = await jose.jwtVerify<JWTPayload>(\n tokens.id_token,\n JWKS,\n {\n issuer: getIssuerVariations(issuer),\n audience: oauth2Client.clientId,\n },\n );\n\n // validate the access token\n const accessTokenResponse = await jose.jwtVerify<JWTPayload>(\n tokens.access_token,\n JWKS,\n {\n issuer: getIssuerVariations(issuer),\n },\n );\n\n return withoutUndefined({\n id_token: idTokenResponse.payload,\n access_token: accessTokenResponse.payload,\n refresh_token: tokens.refresh_token,\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/shared/lib/util.ts"],"names":[],"mappings":"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","sourcesContent":["// Utility functions shared by auth server and client integrations\n// Typically these functions should be used inside AuthenticationInitiator and AuthenticationResolver implementations\nimport type {\n AuthStorage,\n Endpoints,\n JWTPayload,\n OIDCTokenResponseBody,\n ParsedTokens,\n} from \"@/types.js\";\nimport {\n AUTH_SERVER_LEGACY_SESSION,\n AUTH_SERVER_SESSION,\n OAuthTokens,\n} from \"./types.js\";\nimport { OAuth2Client } from \"oslo/oauth2\";\nimport { getIssuerVariations, getOauthEndpoints } from \"@/lib/oauth.js\";\nimport * as jose from \"jose\";\nimport { withoutUndefined } from \"@/utils.js\";\nimport type { PKCEConsumer, PKCEProducer } from \"@/services/types.js\";\nimport { GenericUserSession } from \"@/shared/lib/UserSession.js\";\nimport { parseJWT } from \"oslo/jwt\";\n\n/**\n * Given a PKCE code verifier, derive the code challenge using SHA\n */\nexport async function deriveCodeChallenge(\n codeVerifier: string,\n method: \"Plain\" | \"S256\" = \"S256\",\n): Promise<string> {\n if (method === \"Plain\") {\n console.warn(\"Using insecure plain code challenge method\");\n return codeVerifier;\n }\n\n const encoder = new TextEncoder();\n const data = encoder.encode(codeVerifier);\n const digest = await crypto.subtle.digest(\"SHA-256\", data);\n return btoa(String.fromCharCode(...new Uint8Array(digest)))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n}\n\nexport async function getEndpointsWithOverrides(\n oauthServer: string,\n endpointOverrides: Partial<Endpoints> = {},\n): Promise<Endpoints> {\n const endpoints = await getOauthEndpoints(oauthServer);\n return {\n ...endpoints,\n ...endpointOverrides,\n };\n}\n\nexport async function generateOauthLoginUrl(config: {\n clientId: string;\n scopes: string[];\n state: string;\n redirectUrl: string;\n oauthServer: string;\n nonce?: string;\n endpointOverrides?: Partial<Endpoints>;\n // used to get the PKCE challenge\n pkceConsumer: PKCEConsumer;\n}): Promise<URL> {\n const endpoints = await getEndpointsWithOverrides(\n config.oauthServer,\n config.endpointOverrides,\n );\n const oauth2Client = buildOauth2Client(\n config.clientId,\n config.redirectUrl,\n endpoints,\n );\n const challenge = await config.pkceConsumer.getCodeChallenge();\n const oAuthUrl = await oauth2Client.createAuthorizationURL({\n state: config.state,\n scopes: config.scopes,\n });\n // The OAuth2 client supports PKCE, but does not allow passing in a code challenge from some other source\n // It only allows passing in a code verifier which it then hashes itself.\n oAuthUrl.searchParams.append(\"code_challenge\", challenge);\n oAuthUrl.searchParams.append(\"code_challenge_method\", \"S256\");\n if (config.nonce) {\n // nonce isn't supported by oslo, so we add it manually\n oAuthUrl.searchParams.append(\"nonce\", config.nonce);\n }\n // Required by the auth server for offline_access scope\n oAuthUrl.searchParams.append(\"prompt\", \"consent\");\n\n return oAuthUrl;\n}\n\nexport async function generateOauthLogoutUrl(config: {\n clientId: string;\n redirectUrl: string;\n idToken: string;\n state: string;\n oauthServer: string;\n endpointOverrides?: Partial<Endpoints>;\n}): Promise<URL> {\n const endpoints = await getEndpointsWithOverrides(\n config.oauthServer,\n config.endpointOverrides,\n );\n const endSessionUrl = new URL(endpoints.endsession);\n endSessionUrl.searchParams.append(\"client_id\", config.clientId);\n endSessionUrl.searchParams.append(\"id_token_hint\", config.idToken);\n endSessionUrl.searchParams.append(\"state\", config.state);\n endSessionUrl.searchParams.append(\n \"post_logout_redirect_uri\",\n config.redirectUrl,\n );\n return endSessionUrl;\n}\n\nexport function buildOauth2Client(\n clientId: string,\n redirectUri: string,\n endpoints: Endpoints,\n): OAuth2Client {\n return new OAuth2Client(clientId, endpoints.auth, endpoints.token, {\n redirectURI: redirectUri,\n });\n}\n\nexport async function exchangeTokens(\n code: string,\n state: string,\n pkceProducer: PKCEProducer,\n oauth2Client: OAuth2Client,\n oauthServer: string,\n endpoints: Endpoints,\n) {\n const codeVerifier = await pkceProducer.getCodeVerifier();\n if (!codeVerifier) throw new Error(\"Code verifier not found in state\");\n\n const tokens =\n await oauth2Client.validateAuthorizationCode<OIDCTokenResponseBody>(code, {\n codeVerifier,\n });\n\n // Validate relevant tokens\n try {\n await validateOauth2Tokens(tokens, endpoints, oauth2Client, oauthServer);\n } catch (error) {\n console.error(\"tokenExchange error\", { error, tokens });\n throw new Error(\n `OIDC tokens validation failed: ${(error as Error).message}`,\n );\n }\n return tokens;\n}\n\nexport async function setAccessTokenExpiresAt(\n storage: AuthStorage,\n tokens: OIDCTokenResponseBody,\n) {\n // try to extract absolut expiry time from access token but fallback to calculation if not possible\n const parsedAccessToken = parseJWT(tokens.access_token);\n if (parsedAccessToken && parsedAccessToken?.expiresAt) {\n await storage.set(\n OAuthTokens.ACCESS_TOKEN_EXPIRES_AT,\n parsedAccessToken.expiresAt?.getTime().toString(),\n );\n } else if (tokens.expires_in) {\n const now = Math.floor(new Date().getTime() / 1000);\n await storage.set(\n OAuthTokens.ACCESS_TOKEN_EXPIRES_AT,\n (now + tokens.expires_in).toString(),\n );\n } else {\n throw new Error(\"Cannot determine access token expiry!\");\n }\n}\n\nexport async function storeTokens(\n storage: AuthStorage,\n tokens: OIDCTokenResponseBody,\n) {\n // store tokens in storage ( TODO we should probably store them against the state to allow multiple logins )\n await storage.set(OAuthTokens.ID_TOKEN, tokens.id_token);\n await storage.set(OAuthTokens.ACCESS_TOKEN, tokens.access_token);\n if (tokens.refresh_token) {\n await storage.set(OAuthTokens.REFRESH_TOKEN, tokens.refresh_token);\n }\n await setAccessTokenExpiresAt(storage, tokens);\n}\n\nexport async function clearTokens(storage: AuthStorage) {\n const clearOAuthPromises = Object.values(OAuthTokens).map(async (key) => {\n await storage.delete(key);\n });\n await Promise.all([...clearOAuthPromises]);\n}\n\nexport async function clearAuthServerSession(storage: AuthStorage) {\n await storage.delete(AUTH_SERVER_SESSION);\n await storage.delete(AUTH_SERVER_LEGACY_SESSION);\n}\n\nexport async function clearUser(storage: AuthStorage) {\n const userSession = new GenericUserSession(storage);\n await userSession.clear();\n}\n\nexport async function retrieveTokens(\n storage: AuthStorage,\n): Promise<OIDCTokenResponseBody | null> {\n const idToken = await storage.get(OAuthTokens.ID_TOKEN);\n const accessToken = await storage.get(OAuthTokens.ACCESS_TOKEN);\n const refreshToken = await storage.get(OAuthTokens.REFRESH_TOKEN);\n const accessTokenExpiresAt = await storage.get(\n OAuthTokens.ACCESS_TOKEN_EXPIRES_AT,\n );\n\n if (!idToken || !accessToken) return null;\n\n return {\n id_token: idToken,\n access_token: accessToken,\n refresh_token: refreshToken ?? undefined,\n access_token_expires_at:\n accessTokenExpiresAt !== null\n ? parseInt(accessTokenExpiresAt, 10)\n : undefined, // Convert string to number\n };\n}\n\nexport async function retrieveAccessTokenExpiresAt(\n storage: AuthStorage,\n): Promise<number> {\n return Number(await storage.get(OAuthTokens.ACCESS_TOKEN_EXPIRES_AT));\n}\n\nexport async function validateOauth2Tokens(\n tokens: OIDCTokenResponseBody,\n endpoints: Endpoints,\n oauth2Client: OAuth2Client,\n issuer: string,\n): Promise<ParsedTokens> {\n const JWKS = jose.createRemoteJWKSet(new URL(endpoints.jwks));\n\n // validate the ID token\n const idTokenResponse = await jose.jwtVerify<JWTPayload>(\n tokens.id_token,\n JWKS,\n {\n issuer: getIssuerVariations(issuer),\n audience: oauth2Client.clientId,\n },\n );\n\n // validate the access token\n const accessTokenResponse = await jose.jwtVerify<JWTPayload>(\n tokens.access_token,\n JWKS,\n {\n issuer: getIssuerVariations(issuer),\n },\n );\n\n return withoutUndefined({\n id_token: idTokenResponse.payload,\n access_token: accessTokenResponse.payload,\n refresh_token: tokens.refresh_token,\n });\n}\n"]}
|
|
@@ -14,6 +14,6 @@ type CivicAuthConfigContextType = {
|
|
|
14
14
|
logoutCallbackUrl?: string;
|
|
15
15
|
};
|
|
16
16
|
declare const CivicAuthConfigContext: React.Context<CivicAuthConfig>;
|
|
17
|
-
declare const CivicAuthConfigProvider: ({ children, oauthServer, clientId, redirectUrl: inputRedirectUrl, nonce, challengeUrl, refreshUrl, logoutUrl, scopes, logoutRedirectUrl: inputLogoutRedirectUrl, }: CivicAuthConfigContextType) =>
|
|
17
|
+
declare const CivicAuthConfigProvider: ({ children, oauthServer, clientId, redirectUrl: inputRedirectUrl, nonce, challengeUrl, refreshUrl, logoutUrl, scopes, logoutRedirectUrl: inputLogoutRedirectUrl, }: CivicAuthConfigContextType) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
18
18
|
export { CivicAuthConfigProvider, CivicAuthConfigContext };
|
|
19
19
|
//# sourceMappingURL=CivicAuthConfigContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CivicAuthConfigContext.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/CivicAuthConfigContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAA0B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,QAAA,MAAM,sBAAsB,gCAAgD,CAAC;AAE7E,QAAA,MAAM,uBAAuB,uKAW1B,0BAA0B,
|
|
1
|
+
{"version":3,"file":"CivicAuthConfigContext.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/CivicAuthConfigContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAA0B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,QAAA,MAAM,sBAAsB,gCAAgD,CAAC;AAE7E,QAAA,MAAM,uBAAuB,uKAW1B,0BAA0B,qDAsD5B,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -1,42 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
4
|
exports.CivicAuthConfigContext = exports.CivicAuthConfigProvider = void 0;
|
|
5
|
+
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
38
6
|
const constants_js_1 = require("../../constants.js");
|
|
39
|
-
const react_1 =
|
|
7
|
+
const react_1 = require("react");
|
|
40
8
|
const useOAuthEndpoints_js_1 = require("../../shared/hooks/useOAuthEndpoints.js");
|
|
41
9
|
const useCurrentUrl_js_1 = require("../../shared/hooks/useCurrentUrl.js");
|
|
42
10
|
const defaultConfig = null;
|
|
@@ -85,7 +53,7 @@ const CivicAuthConfigProvider = ({ children, oauthServer, clientId, redirectUrl:
|
|
|
85
53
|
scopes,
|
|
86
54
|
logoutRedirectUrl,
|
|
87
55
|
]);
|
|
88
|
-
return (
|
|
56
|
+
return ((0, jsx_runtime_1.jsx)(CivicAuthConfigContext.Provider, { value: value, children: children }));
|
|
89
57
|
};
|
|
90
58
|
exports.CivicAuthConfigProvider = CivicAuthConfigProvider;
|
|
91
59
|
//# sourceMappingURL=CivicAuthConfigContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CivicAuthConfigContext.js","sourceRoot":"","sources":["../../../../src/shared/providers/CivicAuthConfigContext.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"CivicAuthConfigContext.js","sourceRoot":"","sources":["../../../../src/shared/providers/CivicAuthConfigContext.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AACb,iDAAqE;AACrE,iCAAsE;AACtE,8EAAwE;AACxE,sEAAgE;AAGhE,MAAM,aAAa,GAAoB,IAAI,CAAC;AAe5C,gEAAgE;AAChE,MAAM,sBAAsB,GAAG,IAAA,qBAAa,EAAkB,aAAa,CAAC,CAAC;AAqE3C,wDAAsB;AAnExD,MAAM,uBAAuB,GAAG,CAAC,EAC/B,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,WAAW,EAAE,gBAAgB,EAC7B,KAAK,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,MAAM,EACN,iBAAiB,EAAE,sBAAsB,GACd,EAAE,EAAE;IAC/B,MAAM,UAAU,GAAG,IAAA,gCAAa,GAAE,CAAC;IAEnC,MAAM,WAAW,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC/B,MAAM,MAAM,GAAG,gBAAgB,IAAI,UAAU,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,IAAA,wCAAiB,EAAC,WAAW,CAAC,CAAC;IAEjD,MAAM,iBAAiB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACrC,MAAM,MAAM,GAAG,sBAAsB,IAAI,UAAU,CAAC;QACpD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,IAAA,eAAO,EACnB,GAAG,EAAE,CACH,SAAS;QACP,CAAC,CAAC;YACE,QAAQ;YACR,WAAW;YACX,WAAW,EAAE,WAAW,IAAI,kCAAmB;YAC/C,SAAS;YACT,KAAK;YACL,YAAY;YACZ,UAAU;YACV,SAAS;YACT,MAAM,EAAE,MAAM,IAAI,6BAAc;YAChC,iBAAiB;SAClB;QACH,CAAC,CAAC,IAAI,EACV;QACE,QAAQ;QACR,WAAW;QACX,WAAW;QACX,SAAS;QACT,KAAK;QACL,YAAY;QACZ,UAAU;QACV,SAAS;QACT,MAAM;QACN,iBAAiB;KAClB,CACF,CAAC;IACF,OAAO,CACL,uBAAC,sBAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAC1C,QAAQ,GACuB,CACnC,CAAC;AACJ,CAAC,CAAC;AAEO,0DAAuB","sourcesContent":["\"use client\";\nimport { DEFAULT_AUTH_SERVER, DEFAULT_SCOPES } from \"@/constants.js\";\nimport React, { createContext, useMemo, type ReactNode } from \"react\";\nimport { useOAuthEndpoints } from \"@/shared/hooks/useOAuthEndpoints.js\";\nimport { useCurrentUrl } from \"@/shared/hooks/useCurrentUrl.js\";\nimport type { CivicAuthConfig } from \"../lib/types.js\";\n\nconst defaultConfig: CivicAuthConfig = null;\n\ntype CivicAuthConfigContextType = {\n children: ReactNode;\n oauthServer?: string;\n clientId: string;\n scopes?: string[];\n redirectUrl?: string;\n logoutRedirectUrl?: string;\n nonce?: string;\n challengeUrl?: string;\n refreshUrl?: string;\n logoutUrl?: string;\n logoutCallbackUrl?: string;\n};\n// Context for exposing Config specifically to the TokenProvider\nconst CivicAuthConfigContext = createContext<CivicAuthConfig>(defaultConfig);\n\nconst CivicAuthConfigProvider = ({\n children,\n oauthServer,\n clientId,\n redirectUrl: inputRedirectUrl,\n nonce,\n challengeUrl,\n refreshUrl,\n logoutUrl,\n scopes,\n logoutRedirectUrl: inputLogoutRedirectUrl,\n}: CivicAuthConfigContextType) => {\n const currentUrl = useCurrentUrl();\n\n const redirectUrl = useMemo(() => {\n const useUrl = inputRedirectUrl || currentUrl;\n if (useUrl) {\n return `${useUrl.split(\"?\")[0]}`;\n }\n return \"\";\n }, [currentUrl, inputRedirectUrl]);\n const endpoints = useOAuthEndpoints(oauthServer);\n\n const logoutRedirectUrl = useMemo(() => {\n const useUrl = inputLogoutRedirectUrl || currentUrl;\n if (useUrl) {\n return `${useUrl.split(\"?\")[0]}`;\n }\n return \"\";\n }, [currentUrl, inputLogoutRedirectUrl]);\n\n const value = useMemo(\n () =>\n endpoints\n ? {\n clientId,\n redirectUrl,\n oauthServer: oauthServer || DEFAULT_AUTH_SERVER,\n endpoints,\n nonce,\n challengeUrl,\n refreshUrl,\n logoutUrl,\n scopes: scopes || DEFAULT_SCOPES,\n logoutRedirectUrl,\n }\n : null,\n [\n clientId,\n redirectUrl,\n oauthServer,\n endpoints,\n nonce,\n challengeUrl,\n refreshUrl,\n logoutUrl,\n scopes,\n logoutRedirectUrl,\n ],\n );\n return (\n <CivicAuthConfigContext.Provider value={value}>\n {children}\n </CivicAuthConfigContext.Provider>\n );\n};\n\nexport { CivicAuthConfigProvider, CivicAuthConfigContext };\n"]}
|
|
@@ -18,7 +18,7 @@ type IframeContextType = {
|
|
|
18
18
|
children: ReactNode;
|
|
19
19
|
iframeMode?: IframeMode;
|
|
20
20
|
};
|
|
21
|
-
declare const IframeProvider: ({ children, iframeMode, }: IframeContextType) =>
|
|
21
|
+
declare const IframeProvider: ({ children, iframeMode, }: IframeContextType) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
22
22
|
export type { IframeContextType };
|
|
23
23
|
export { IframeProvider, IframeContext };
|
|
24
24
|
//# sourceMappingURL=IframeProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IframeProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/IframeProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5E,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAC/C,eAAe,EAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IACrD,kBAAkB,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,gBAAgB,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,aAAa,EAAE,OAAO,CAAC;IACvB,wBAAwB,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAeF,QAAA,MAAM,aAAa,qCAAqD,CAAC;AAEzE,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,QAAA,MAAM,cAAc,8BAGjB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"IframeProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/IframeProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5E,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAC/C,eAAe,EAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IACrD,kBAAkB,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,gBAAgB,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,aAAa,EAAE,OAAO,CAAC;IACvB,wBAAwB,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAeF,QAAA,MAAM,aAAa,qCAAqD,CAAC;AAEzE,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,QAAA,MAAM,cAAc,8BAGjB,iBAAiB,qDA2BnB,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,41 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
4
|
exports.IframeContext = exports.IframeProvider = void 0;
|
|
38
|
-
const
|
|
5
|
+
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
6
|
+
const react_1 = require("react");
|
|
39
7
|
const useIsInIframe_js_1 = require("../../shared/hooks/useIsInIframe.js");
|
|
40
8
|
const defaultIframe = {
|
|
41
9
|
iframeRef: null,
|
|
@@ -60,7 +28,7 @@ const IframeProvider = ({ children, iframeMode = "modal", }) => {
|
|
|
60
28
|
const [iframeAborted, setIframeAborted] = (0, react_1.useState)(false);
|
|
61
29
|
const [logoutIframeIsVisible, setLogoutIframeIsVisible] = (0, react_1.useState)(false);
|
|
62
30
|
const renderIframe = iframeMode === "modal" && !isInIframe;
|
|
63
|
-
return (
|
|
31
|
+
return ((0, jsx_runtime_1.jsx)(IframeContext.Provider, { value: {
|
|
64
32
|
iframeRef,
|
|
65
33
|
logoutIframeRef,
|
|
66
34
|
setIframeIsVisible,
|
|
@@ -71,7 +39,7 @@ const IframeProvider = ({ children, iframeMode = "modal", }) => {
|
|
|
71
39
|
logoutIframeIsVisible,
|
|
72
40
|
iframeMode,
|
|
73
41
|
renderIframe,
|
|
74
|
-
}
|
|
42
|
+
}, children: children }));
|
|
75
43
|
};
|
|
76
44
|
exports.IframeProvider = IframeProvider;
|
|
77
45
|
//# sourceMappingURL=IframeProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IframeProvider.js","sourceRoot":"","sources":["../../../../src/shared/providers/IframeProvider.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"IframeProvider.js","sourceRoot":"","sources":["../../../../src/shared/providers/IframeProvider.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAEb,iCAA+D;AAC/D,sEAAgE;AAehE,MAAM,aAAa,GAAyB;IAC1C,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC5B,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC1B,wBAAwB,EAAE,GAAG,EAAE,GAAE,CAAC;IAClC,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,KAAK;IACpB,qBAAqB,EAAE,KAAK;IAC5B,UAAU,EAAE,OAAO;IACnB,YAAY,EAAE,KAAK;CACpB,CAAC;AAEF,gEAAgE;AAChE,MAAM,aAAa,GAAG,IAAA,qBAAa,EAAuB,aAAa,CAAC,CAAC;AAwChD,sCAAa;AAjCtC,MAAM,cAAc,GAAG,CAAC,EACtB,QAAQ,EACR,UAAU,GAAG,OAAO,GACF,EAAE,EAAE;IACtB,MAAM,SAAS,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,IAAA,gCAAa,GAAE,CAAC;IACnC,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE1E,MAAM,YAAY,GAAG,UAAU,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3D,OAAO,CACL,uBAAC,aAAa,CAAC,QAAQ,IACrB,KAAK,EAAE;YACL,SAAS;YACT,eAAe;YACf,kBAAkB;YAClB,aAAa;YACb,gBAAgB;YAChB,wBAAwB;YACxB,eAAe;YACf,qBAAqB;YACrB,UAAU;YACV,YAAY;SACb,YAEA,QAAQ,GACc,CAC1B,CAAC;AACJ,CAAC,CAAC;AAGO,wCAAc","sourcesContent":["\"use client\";\nimport type { Dispatch, ReactNode, RefObject, SetStateAction } from \"react\";\nimport React, { createContext, useRef, useState } from \"react\";\nimport { useIsInIframe } from \"@/shared/hooks/useIsInIframe.js\";\nimport type { IframeMode } from \"@/types.js\";\n\nexport type IframeProviderOutput = {\n iframeRef: RefObject<HTMLIFrameElement> | null;\n logoutIframeRef: RefObject<HTMLIFrameElement> | null;\n setIframeIsVisible: Dispatch<SetStateAction<boolean>>;\n setIframeAborted: Dispatch<SetStateAction<boolean>>;\n iframeAborted: boolean;\n setLogoutIframeIsVisible: Dispatch<SetStateAction<boolean>>;\n iframeIsVisible: boolean;\n logoutIframeIsVisible: boolean;\n iframeMode: IframeMode;\n renderIframe: boolean;\n};\nconst defaultIframe: IframeProviderOutput = {\n iframeRef: null,\n logoutIframeRef: null,\n setIframeIsVisible: () => {},\n setIframeAborted: () => {},\n setLogoutIframeIsVisible: () => {},\n iframeIsVisible: false,\n iframeAborted: false,\n logoutIframeIsVisible: false,\n iframeMode: \"modal\",\n renderIframe: false,\n};\n\n// Context for exposing Iframe specifically to the TokenProvider\nconst IframeContext = createContext<IframeProviderOutput>(defaultIframe);\n\ntype IframeContextType = {\n children: ReactNode;\n iframeMode?: IframeMode;\n};\n\nconst IframeProvider = ({\n children,\n iframeMode = \"modal\",\n}: IframeContextType) => {\n const iframeRef = useRef<HTMLIFrameElement>(null);\n const logoutIframeRef = useRef<HTMLIFrameElement>(null);\n const isInIframe = useIsInIframe();\n const [iframeIsVisible, setIframeIsVisible] = useState(false);\n const [iframeAborted, setIframeAborted] = useState(false);\n const [logoutIframeIsVisible, setLogoutIframeIsVisible] = useState(false);\n\n const renderIframe = iframeMode === \"modal\" && !isInIframe;\n return (\n <IframeContext.Provider\n value={{\n iframeRef,\n logoutIframeRef,\n setIframeIsVisible,\n iframeAborted,\n setIframeAborted,\n setLogoutIframeIsVisible,\n iframeIsVisible,\n logoutIframeIsVisible,\n iframeMode,\n renderIframe,\n }}\n >\n {children}\n </IframeContext.Provider>\n );\n};\n\nexport type { IframeContextType };\nexport { IframeProvider, IframeContext };\n"]}
|