@civic/auth 0.0.1-beta.31 → 0.0.1-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/chunk-CRTRMMJ7.js +59 -0
- package/dist/chunk-CRTRMMJ7.js.map +1 -0
- package/dist/chunk-EAANLFR5.mjs +148 -0
- package/dist/chunk-EAANLFR5.mjs.map +1 -0
- package/dist/chunk-EGFTMH5S.mjs +214 -0
- package/dist/chunk-EGFTMH5S.mjs.map +1 -0
- package/dist/chunk-KCSGIIPA.js +214 -0
- package/dist/chunk-KCSGIIPA.js.map +1 -0
- package/dist/chunk-MVO4UZ2A.js +148 -0
- package/dist/chunk-MVO4UZ2A.js.map +1 -0
- package/dist/chunk-PMDIR5XE.mjs +502 -0
- package/dist/chunk-PMDIR5XE.mjs.map +1 -0
- package/dist/chunk-RGHW4PYM.mjs +59 -0
- package/dist/chunk-RGHW4PYM.mjs.map +1 -0
- package/dist/chunk-YNLXRD5L.js +502 -0
- package/dist/chunk-YNLXRD5L.js.map +1 -0
- package/dist/index-Bfi0hVMZ.d.mts +58 -0
- package/dist/index-Bfi0hVMZ.d.ts +58 -0
- package/dist/index.css +339 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/dist/nextjs.d.mts +224 -0
- package/dist/nextjs.d.ts +224 -0
- package/dist/nextjs.js +239 -0
- package/dist/nextjs.js.map +1 -0
- package/dist/nextjs.mjs +239 -0
- package/dist/nextjs.mjs.map +1 -0
- package/dist/react.d.mts +101 -0
- package/dist/react.d.ts +101 -0
- package/dist/react.js +970 -0
- package/dist/react.js.map +1 -0
- package/dist/react.mjs +970 -0
- package/dist/react.mjs.map +1 -0
- package/dist/server.d.mts +56 -0
- package/dist/server.d.ts +56 -0
- package/dist/server.js +20 -0
- package/dist/server.js.map +1 -0
- package/dist/server.mjs +20 -0
- package/dist/server.mjs.map +1 -0
- package/package.json +42 -52
- package/.eslintignore +0 -3
- package/.eslintrc.json +0 -10
- package/.prettierignore +0 -3
- package/.prettierrc +0 -1
- package/.turbo/turbo-build.log +0 -13
- package/.turbo/turbo-lint$colon$fix.log +0 -16
- package/.turbo/turbo-test.log +0 -1153
- package/dist/cjs/src/browser/storage.d.ts +0 -6
- package/dist/cjs/src/browser/storage.d.ts.map +0 -1
- package/dist/cjs/src/browser/storage.js +0 -13
- package/dist/cjs/src/browser/storage.js.map +0 -1
- package/dist/cjs/src/config.d.ts +0 -3
- package/dist/cjs/src/config.d.ts.map +0 -1
- package/dist/cjs/src/config.js +0 -8
- package/dist/cjs/src/config.js.map +0 -1
- package/dist/cjs/src/constants.d.ts +0 -9
- package/dist/cjs/src/constants.d.ts.map +0 -1
- package/dist/cjs/src/constants.js +0 -26
- package/dist/cjs/src/constants.js.map +0 -1
- package/dist/cjs/src/index.d.ts +0 -4
- package/dist/cjs/src/index.d.ts.map +0 -1
- package/dist/cjs/src/index.js +0 -3
- package/dist/cjs/src/index.js.map +0 -1
- package/dist/cjs/src/lib/cookies.d.ts +0 -7
- package/dist/cjs/src/lib/cookies.d.ts.map +0 -1
- package/dist/cjs/src/lib/cookies.js +0 -26
- package/dist/cjs/src/lib/cookies.js.map +0 -1
- package/dist/cjs/src/lib/jwt.d.ts +0 -3
- package/dist/cjs/src/lib/jwt.d.ts.map +0 -1
- package/dist/cjs/src/lib/jwt.js +0 -13
- package/dist/cjs/src/lib/jwt.js.map +0 -1
- package/dist/cjs/src/lib/logger.d.ts +0 -26
- package/dist/cjs/src/lib/logger.d.ts.map +0 -1
- package/dist/cjs/src/lib/logger.js +0 -62
- package/dist/cjs/src/lib/logger.js.map +0 -1
- package/dist/cjs/src/lib/oauth.d.ts +0 -19
- package/dist/cjs/src/lib/oauth.d.ts.map +0 -1
- package/dist/cjs/src/lib/oauth.js +0 -67
- package/dist/cjs/src/lib/oauth.js.map +0 -1
- package/dist/cjs/src/lib/postMessage.d.ts +0 -4
- package/dist/cjs/src/lib/postMessage.d.ts.map +0 -1
- package/dist/cjs/src/lib/postMessage.js +0 -18
- package/dist/cjs/src/lib/postMessage.js.map +0 -1
- package/dist/cjs/src/lib/windowUtil.d.ts +0 -4
- package/dist/cjs/src/lib/windowUtil.d.ts.map +0 -1
- package/dist/cjs/src/lib/windowUtil.js +0 -34
- package/dist/cjs/src/lib/windowUtil.js.map +0 -1
- package/dist/cjs/src/nextjs/GetUser.d.ts +0 -6
- package/dist/cjs/src/nextjs/GetUser.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/GetUser.js +0 -22
- package/dist/cjs/src/nextjs/GetUser.js.map +0 -1
- package/dist/cjs/src/nextjs/config.d.ts +0 -178
- package/dist/cjs/src/nextjs/config.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/config.js +0 -167
- package/dist/cjs/src/nextjs/config.js.map +0 -1
- package/dist/cjs/src/nextjs/cookies.d.ts +0 -30
- package/dist/cjs/src/nextjs/cookies.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/cookies.js +0 -119
- package/dist/cjs/src/nextjs/cookies.js.map +0 -1
- package/dist/cjs/src/nextjs/hooks/index.d.ts +0 -2
- package/dist/cjs/src/nextjs/hooks/index.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/hooks/index.js +0 -6
- package/dist/cjs/src/nextjs/hooks/index.js.map +0 -1
- package/dist/cjs/src/nextjs/hooks/useTokenCookie.d.ts +0 -3
- package/dist/cjs/src/nextjs/hooks/useTokenCookie.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/hooks/useTokenCookie.js +0 -41
- package/dist/cjs/src/nextjs/hooks/useTokenCookie.js.map +0 -1
- package/dist/cjs/src/nextjs/hooks/useUserCookie.d.ts +0 -3
- package/dist/cjs/src/nextjs/hooks/useUserCookie.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/hooks/useUserCookie.js +0 -40
- package/dist/cjs/src/nextjs/hooks/useUserCookie.js.map +0 -1
- package/dist/cjs/src/nextjs/index.d.ts +0 -7
- package/dist/cjs/src/nextjs/index.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/index.js +0 -18
- package/dist/cjs/src/nextjs/index.js.map +0 -1
- package/dist/cjs/src/nextjs/middleware/index.d.ts +0 -2
- package/dist/cjs/src/nextjs/middleware/index.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/middleware/index.js +0 -8
- package/dist/cjs/src/nextjs/middleware/index.js.map +0 -1
- package/dist/cjs/src/nextjs/middleware.d.ts +0 -59
- package/dist/cjs/src/nextjs/middleware.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/middleware.js +0 -116
- package/dist/cjs/src/nextjs/middleware.js.map +0 -1
- package/dist/cjs/src/nextjs/providers/NextAuthProvider.d.ts +0 -9
- package/dist/cjs/src/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/providers/NextAuthProvider.js +0 -76
- package/dist/cjs/src/nextjs/providers/NextAuthProvider.js.map +0 -1
- package/dist/cjs/src/nextjs/routeHandler.d.ts +0 -18
- package/dist/cjs/src/nextjs/routeHandler.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/routeHandler.js +0 -217
- package/dist/cjs/src/nextjs/routeHandler.js.map +0 -1
- package/dist/cjs/src/nextjs/utils.d.ts +0 -3
- package/dist/cjs/src/nextjs/utils.d.ts.map +0 -1
- package/dist/cjs/src/nextjs/utils.js +0 -9
- package/dist/cjs/src/nextjs/utils.js.map +0 -1
- package/dist/cjs/src/reactjs/components/SignInButton.d.ts +0 -8
- package/dist/cjs/src/reactjs/components/SignInButton.d.ts.map +0 -1
- package/dist/cjs/src/reactjs/components/SignInButton.js +0 -20
- package/dist/cjs/src/reactjs/components/SignInButton.js.map +0 -1
- package/dist/cjs/src/reactjs/components/SignOutButton.d.ts +0 -6
- package/dist/cjs/src/reactjs/components/SignOutButton.d.ts.map +0 -1
- package/dist/cjs/src/reactjs/components/SignOutButton.js +0 -20
- package/dist/cjs/src/reactjs/components/SignOutButton.js.map +0 -1
- package/dist/cjs/src/reactjs/components/UserButton.d.ts +0 -8
- package/dist/cjs/src/reactjs/components/UserButton.d.ts.map +0 -1
- package/dist/cjs/src/reactjs/components/UserButton.js +0 -136
- package/dist/cjs/src/reactjs/components/UserButton.js.map +0 -1
- package/dist/cjs/src/reactjs/components/index.d.ts +0 -6
- package/dist/cjs/src/reactjs/components/index.d.ts.map +0 -1
- package/dist/cjs/src/reactjs/components/index.js +0 -14
- package/dist/cjs/src/reactjs/components/index.js.map +0 -1
- package/dist/cjs/src/reactjs/hooks/index.d.ts +0 -7
- package/dist/cjs/src/reactjs/hooks/index.d.ts.map +0 -1
- package/dist/cjs/src/reactjs/hooks/index.js +0 -16
- package/dist/cjs/src/reactjs/hooks/index.js.map +0 -1
- package/dist/cjs/src/reactjs/hooks/useAuth.d.ts +0 -3
- package/dist/cjs/src/reactjs/hooks/useAuth.d.ts.map +0 -1
- package/dist/cjs/src/reactjs/hooks/useAuth.js +0 -15
- package/dist/cjs/src/reactjs/hooks/useAuth.js.map +0 -1
- package/dist/cjs/src/reactjs/hooks/useUser.d.ts +0 -4
- package/dist/cjs/src/reactjs/hooks/useUser.d.ts.map +0 -1
- package/dist/cjs/src/reactjs/hooks/useUser.js +0 -15
- package/dist/cjs/src/reactjs/hooks/useUser.js.map +0 -1
- package/dist/cjs/src/reactjs/index.d.ts +0 -6
- package/dist/cjs/src/reactjs/index.d.ts.map +0 -1
- package/dist/cjs/src/reactjs/index.js +0 -30
- package/dist/cjs/src/reactjs/index.js.map +0 -1
- package/dist/cjs/src/reactjs/providers/index.d.ts +0 -8
- package/dist/cjs/src/reactjs/providers/index.d.ts.map +0 -1
- package/dist/cjs/src/reactjs/providers/index.js +0 -19
- package/dist/cjs/src/reactjs/providers/index.js.map +0 -1
- package/dist/cjs/src/server/ServerAuthenticationResolver.d.ts +0 -18
- package/dist/cjs/src/server/ServerAuthenticationResolver.d.ts.map +0 -1
- package/dist/cjs/src/server/ServerAuthenticationResolver.js +0 -61
- package/dist/cjs/src/server/ServerAuthenticationResolver.js.map +0 -1
- package/dist/cjs/src/server/config.d.ts +0 -16
- package/dist/cjs/src/server/config.d.ts.map +0 -1
- package/dist/cjs/src/server/config.js +0 -3
- package/dist/cjs/src/server/config.js.map +0 -1
- package/dist/cjs/src/server/index.d.ts +0 -6
- package/dist/cjs/src/server/index.d.ts.map +0 -1
- package/dist/cjs/src/server/index.js +0 -14
- package/dist/cjs/src/server/index.js.map +0 -1
- package/dist/cjs/src/server/login.d.ts +0 -17
- package/dist/cjs/src/server/login.d.ts.map +0 -1
- package/dist/cjs/src/server/login.js +0 -42
- package/dist/cjs/src/server/login.js.map +0 -1
- package/dist/cjs/src/server/refresh.d.ts +0 -7
- package/dist/cjs/src/server/refresh.d.ts.map +0 -1
- package/dist/cjs/src/server/refresh.js +0 -16
- package/dist/cjs/src/server/refresh.js.map +0 -1
- package/dist/cjs/src/services/AuthenticationService.d.ts +0 -87
- package/dist/cjs/src/services/AuthenticationService.d.ts.map +0 -1
- package/dist/cjs/src/services/AuthenticationService.js +0 -218
- package/dist/cjs/src/services/AuthenticationService.js.map +0 -1
- package/dist/cjs/src/services/PKCE.d.ts +0 -20
- package/dist/cjs/src/services/PKCE.d.ts.map +0 -1
- package/dist/cjs/src/services/PKCE.js +0 -50
- package/dist/cjs/src/services/PKCE.js.map +0 -1
- package/dist/cjs/src/services/types.d.ts +0 -23
- package/dist/cjs/src/services/types.d.ts.map +0 -1
- package/dist/cjs/src/services/types.js +0 -11
- package/dist/cjs/src/services/types.js.map +0 -1
- package/dist/cjs/src/shared/AuthProvider.d.ts +0 -18
- package/dist/cjs/src/shared/AuthProvider.d.ts.map +0 -1
- package/dist/cjs/src/shared/AuthProvider.js +0 -246
- package/dist/cjs/src/shared/AuthProvider.js.map +0 -1
- package/dist/cjs/src/shared/CivicAuthProvider.d.ts +0 -6
- package/dist/cjs/src/shared/CivicAuthProvider.d.ts.map +0 -1
- package/dist/cjs/src/shared/CivicAuthProvider.js +0 -19
- package/dist/cjs/src/shared/CivicAuthProvider.js.map +0 -1
- package/dist/cjs/src/shared/GenericAuthenticationRefresher.d.ts +0 -15
- package/dist/cjs/src/shared/GenericAuthenticationRefresher.d.ts.map +0 -1
- package/dist/cjs/src/shared/GenericAuthenticationRefresher.js +0 -47
- package/dist/cjs/src/shared/GenericAuthenticationRefresher.js.map +0 -1
- package/dist/cjs/src/shared/UserProvider.d.ts +0 -17
- package/dist/cjs/src/shared/UserProvider.d.ts.map +0 -1
- package/dist/cjs/src/shared/UserProvider.js +0 -42
- package/dist/cjs/src/shared/UserProvider.js.map +0 -1
- package/dist/cjs/src/shared/UserSession.d.ts +0 -12
- package/dist/cjs/src/shared/UserSession.d.ts.map +0 -1
- package/dist/cjs/src/shared/UserSession.js +0 -24
- package/dist/cjs/src/shared/UserSession.js.map +0 -1
- package/dist/cjs/src/shared/components/CivicAuthIframe.d.ts +0 -8
- package/dist/cjs/src/shared/components/CivicAuthIframe.d.ts.map +0 -1
- package/dist/cjs/src/shared/components/CivicAuthIframe.js +0 -35
- package/dist/cjs/src/shared/components/CivicAuthIframe.js.map +0 -1
- package/dist/cjs/src/shared/components/CivicAuthIframeContainer.d.ts +0 -9
- package/dist/cjs/src/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
- package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js +0 -154
- package/dist/cjs/src/shared/components/CivicAuthIframeContainer.js.map +0 -1
- package/dist/cjs/src/shared/components/CloseIcon.d.ts +0 -4
- package/dist/cjs/src/shared/components/CloseIcon.d.ts.map +0 -1
- package/dist/cjs/src/shared/components/CloseIcon.js +0 -12
- package/dist/cjs/src/shared/components/CloseIcon.js.map +0 -1
- package/dist/cjs/src/shared/components/LoadingIcon.d.ts +0 -4
- package/dist/cjs/src/shared/components/LoadingIcon.d.ts.map +0 -1
- package/dist/cjs/src/shared/components/LoadingIcon.js +0 -36
- package/dist/cjs/src/shared/components/LoadingIcon.js.map +0 -1
- package/dist/cjs/src/shared/hooks/index.d.ts +0 -5
- package/dist/cjs/src/shared/hooks/index.d.ts.map +0 -1
- package/dist/cjs/src/shared/hooks/index.js +0 -12
- package/dist/cjs/src/shared/hooks/index.js.map +0 -1
- package/dist/cjs/src/shared/hooks/useAuth.d.ts +0 -3
- package/dist/cjs/src/shared/hooks/useAuth.d.ts.map +0 -1
- package/dist/cjs/src/shared/hooks/useAuth.js +0 -15
- package/dist/cjs/src/shared/hooks/useAuth.js.map +0 -1
- package/dist/cjs/src/shared/hooks/useConfig.d.ts +0 -3
- package/dist/cjs/src/shared/hooks/useConfig.d.ts.map +0 -1
- package/dist/cjs/src/shared/hooks/useConfig.js +0 -16
- package/dist/cjs/src/shared/hooks/useConfig.js.map +0 -1
- package/dist/cjs/src/shared/hooks/useIframe.d.ts +0 -3
- package/dist/cjs/src/shared/hooks/useIframe.d.ts.map +0 -1
- package/dist/cjs/src/shared/hooks/useIframe.js +0 -16
- package/dist/cjs/src/shared/hooks/useIframe.js.map +0 -1
- package/dist/cjs/src/shared/hooks/useSession.d.ts +0 -3
- package/dist/cjs/src/shared/hooks/useSession.d.ts.map +0 -1
- package/dist/cjs/src/shared/hooks/useSession.js +0 -16
- package/dist/cjs/src/shared/hooks/useSession.js.map +0 -1
- package/dist/cjs/src/shared/hooks/useToken.d.ts +0 -3
- package/dist/cjs/src/shared/hooks/useToken.d.ts.map +0 -1
- package/dist/cjs/src/shared/hooks/useToken.js +0 -15
- package/dist/cjs/src/shared/hooks/useToken.js.map +0 -1
- package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.d.ts +0 -15
- package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
- package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js +0 -43
- package/dist/cjs/src/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
- package/dist/cjs/src/shared/lib/UserSession.d.ts +0 -12
- package/dist/cjs/src/shared/lib/UserSession.d.ts.map +0 -1
- package/dist/cjs/src/shared/lib/UserSession.js +0 -24
- package/dist/cjs/src/shared/lib/UserSession.js.map +0 -1
- package/dist/cjs/src/shared/lib/session.d.ts +0 -3
- package/dist/cjs/src/shared/lib/session.d.ts.map +0 -1
- package/dist/cjs/src/shared/lib/session.js +0 -13
- package/dist/cjs/src/shared/lib/session.js.map +0 -1
- package/dist/cjs/src/shared/lib/storage.d.ts +0 -25
- package/dist/cjs/src/shared/lib/storage.d.ts.map +0 -1
- package/dist/cjs/src/shared/lib/storage.js +0 -21
- package/dist/cjs/src/shared/lib/storage.js.map +0 -1
- package/dist/cjs/src/shared/lib/types.d.ts +0 -22
- package/dist/cjs/src/shared/lib/types.d.ts.map +0 -1
- package/dist/cjs/src/shared/lib/types.js +0 -19
- package/dist/cjs/src/shared/lib/types.js.map +0 -1
- package/dist/cjs/src/shared/lib/util.d.ts +0 -33
- package/dist/cjs/src/shared/lib/util.d.ts.map +0 -1
- package/dist/cjs/src/shared/lib/util.js +0 -163
- package/dist/cjs/src/shared/lib/util.js.map +0 -1
- package/dist/cjs/src/shared/providers/AuthContext.d.ts +0 -10
- package/dist/cjs/src/shared/providers/AuthContext.d.ts.map +0 -1
- package/dist/cjs/src/shared/providers/AuthContext.js +0 -6
- package/dist/cjs/src/shared/providers/AuthContext.js.map +0 -1
- package/dist/cjs/src/shared/providers/AuthProvider.d.ts +0 -20
- package/dist/cjs/src/shared/providers/AuthProvider.d.ts.map +0 -1
- package/dist/cjs/src/shared/providers/AuthProvider.js +0 -289
- package/dist/cjs/src/shared/providers/AuthProvider.js.map +0 -1
- package/dist/cjs/src/shared/providers/CivicAuthProvider.d.ts +0 -6
- package/dist/cjs/src/shared/providers/CivicAuthProvider.d.ts.map +0 -1
- package/dist/cjs/src/shared/providers/CivicAuthProvider.js +0 -21
- package/dist/cjs/src/shared/providers/CivicAuthProvider.js.map +0 -1
- package/dist/cjs/src/shared/providers/ConfigProvider.d.ts +0 -21
- package/dist/cjs/src/shared/providers/ConfigProvider.d.ts.map +0 -1
- package/dist/cjs/src/shared/providers/ConfigProvider.js +0 -46
- package/dist/cjs/src/shared/providers/ConfigProvider.js.map +0 -1
- package/dist/cjs/src/shared/providers/IframeProvider.d.ts +0 -16
- package/dist/cjs/src/shared/providers/IframeProvider.d.ts.map +0 -1
- package/dist/cjs/src/shared/providers/IframeProvider.js +0 -38
- package/dist/cjs/src/shared/providers/IframeProvider.js.map +0 -1
- package/dist/cjs/src/shared/providers/SessionProvider.d.ts +0 -13
- package/dist/cjs/src/shared/providers/SessionProvider.d.ts.map +0 -1
- package/dist/cjs/src/shared/providers/SessionProvider.js +0 -40
- package/dist/cjs/src/shared/providers/SessionProvider.js.map +0 -1
- package/dist/cjs/src/shared/providers/TokenProvider.d.ts +0 -18
- package/dist/cjs/src/shared/providers/TokenProvider.d.ts.map +0 -1
- package/dist/cjs/src/shared/providers/TokenProvider.js +0 -80
- package/dist/cjs/src/shared/providers/TokenProvider.js.map +0 -1
- package/dist/cjs/src/shared/providers/UserProvider.d.ts +0 -18
- package/dist/cjs/src/shared/providers/UserProvider.d.ts.map +0 -1
- package/dist/cjs/src/shared/providers/UserProvider.js +0 -65
- package/dist/cjs/src/shared/providers/UserProvider.js.map +0 -1
- package/dist/cjs/src/shared/session.d.ts +0 -3
- package/dist/cjs/src/shared/session.d.ts.map +0 -1
- package/dist/cjs/src/shared/session.js +0 -13
- package/dist/cjs/src/shared/session.js.map +0 -1
- package/dist/cjs/src/shared/util.d.ts +0 -39
- package/dist/cjs/src/shared/util.d.ts.map +0 -1
- package/dist/cjs/src/shared/util.js +0 -162
- package/dist/cjs/src/shared/util.js.map +0 -1
- package/dist/cjs/src/types.d.ts +0 -146
- package/dist/cjs/src/types.d.ts.map +0 -1
- package/dist/cjs/src/types.js +0 -3
- package/dist/cjs/src/types.js.map +0 -1
- package/dist/cjs/src/utils.d.ts +0 -15
- package/dist/cjs/src/utils.d.ts.map +0 -1
- package/dist/cjs/src/utils.js +0 -47
- package/dist/cjs/src/utils.js.map +0 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/esm/src/browser/storage.d.ts +0 -6
- package/dist/esm/src/browser/storage.d.ts.map +0 -1
- package/dist/esm/src/browser/storage.js +0 -9
- package/dist/esm/src/browser/storage.js.map +0 -1
- package/dist/esm/src/config.d.ts +0 -3
- package/dist/esm/src/config.d.ts.map +0 -1
- package/dist/esm/src/config.js +0 -5
- package/dist/esm/src/config.js.map +0 -1
- package/dist/esm/src/constants.d.ts +0 -9
- package/dist/esm/src/constants.d.ts.map +0 -1
- package/dist/esm/src/constants.js +0 -17
- package/dist/esm/src/constants.js.map +0 -1
- package/dist/esm/src/index.d.ts +0 -4
- package/dist/esm/src/index.d.ts.map +0 -1
- package/dist/esm/src/index.js +0 -2
- package/dist/esm/src/index.js.map +0 -1
- package/dist/esm/src/lib/cookies.d.ts +0 -7
- package/dist/esm/src/lib/cookies.d.ts.map +0 -1
- package/dist/esm/src/lib/cookies.js +0 -23
- package/dist/esm/src/lib/cookies.js.map +0 -1
- package/dist/esm/src/lib/jwt.d.ts +0 -3
- package/dist/esm/src/lib/jwt.d.ts.map +0 -1
- package/dist/esm/src/lib/jwt.js +0 -9
- package/dist/esm/src/lib/jwt.js.map +0 -1
- package/dist/esm/src/lib/logger.d.ts +0 -26
- package/dist/esm/src/lib/logger.d.ts.map +0 -1
- package/dist/esm/src/lib/logger.js +0 -55
- package/dist/esm/src/lib/logger.js.map +0 -1
- package/dist/esm/src/lib/oauth.d.ts +0 -19
- package/dist/esm/src/lib/oauth.d.ts.map +0 -1
- package/dist/esm/src/lib/oauth.js +0 -60
- package/dist/esm/src/lib/oauth.js.map +0 -1
- package/dist/esm/src/lib/postMessage.d.ts +0 -4
- package/dist/esm/src/lib/postMessage.d.ts.map +0 -1
- package/dist/esm/src/lib/postMessage.js +0 -15
- package/dist/esm/src/lib/postMessage.js.map +0 -1
- package/dist/esm/src/lib/windowUtil.d.ts +0 -4
- package/dist/esm/src/lib/windowUtil.d.ts.map +0 -1
- package/dist/esm/src/lib/windowUtil.js +0 -30
- package/dist/esm/src/lib/windowUtil.js.map +0 -1
- package/dist/esm/src/nextjs/GetUser.d.ts +0 -6
- package/dist/esm/src/nextjs/GetUser.d.ts.map +0 -1
- package/dist/esm/src/nextjs/GetUser.js +0 -18
- package/dist/esm/src/nextjs/GetUser.js.map +0 -1
- package/dist/esm/src/nextjs/config.d.ts +0 -178
- package/dist/esm/src/nextjs/config.d.ts.map +0 -1
- package/dist/esm/src/nextjs/config.js +0 -162
- package/dist/esm/src/nextjs/config.js.map +0 -1
- package/dist/esm/src/nextjs/cookies.d.ts +0 -30
- package/dist/esm/src/nextjs/cookies.d.ts.map +0 -1
- package/dist/esm/src/nextjs/cookies.js +0 -112
- package/dist/esm/src/nextjs/cookies.js.map +0 -1
- package/dist/esm/src/nextjs/hooks/index.d.ts +0 -2
- package/dist/esm/src/nextjs/hooks/index.d.ts.map +0 -1
- package/dist/esm/src/nextjs/hooks/index.js +0 -2
- package/dist/esm/src/nextjs/hooks/index.js.map +0 -1
- package/dist/esm/src/nextjs/hooks/useTokenCookie.d.ts +0 -3
- package/dist/esm/src/nextjs/hooks/useTokenCookie.d.ts.map +0 -1
- package/dist/esm/src/nextjs/hooks/useTokenCookie.js +0 -37
- package/dist/esm/src/nextjs/hooks/useTokenCookie.js.map +0 -1
- package/dist/esm/src/nextjs/hooks/useUserCookie.d.ts +0 -3
- package/dist/esm/src/nextjs/hooks/useUserCookie.d.ts.map +0 -1
- package/dist/esm/src/nextjs/hooks/useUserCookie.js +0 -36
- package/dist/esm/src/nextjs/hooks/useUserCookie.js.map +0 -1
- package/dist/esm/src/nextjs/index.d.ts +0 -7
- package/dist/esm/src/nextjs/index.d.ts.map +0 -1
- package/dist/esm/src/nextjs/index.js +0 -6
- package/dist/esm/src/nextjs/index.js.map +0 -1
- package/dist/esm/src/nextjs/middleware/index.d.ts +0 -2
- package/dist/esm/src/nextjs/middleware/index.d.ts.map +0 -1
- package/dist/esm/src/nextjs/middleware/index.js +0 -2
- package/dist/esm/src/nextjs/middleware/index.js.map +0 -1
- package/dist/esm/src/nextjs/middleware.d.ts +0 -59
- package/dist/esm/src/nextjs/middleware.d.ts.map +0 -1
- package/dist/esm/src/nextjs/middleware.js +0 -107
- package/dist/esm/src/nextjs/middleware.js.map +0 -1
- package/dist/esm/src/nextjs/providers/NextAuthProvider.d.ts +0 -9
- package/dist/esm/src/nextjs/providers/NextAuthProvider.d.ts.map +0 -1
- package/dist/esm/src/nextjs/providers/NextAuthProvider.js +0 -50
- package/dist/esm/src/nextjs/providers/NextAuthProvider.js.map +0 -1
- package/dist/esm/src/nextjs/routeHandler.d.ts +0 -18
- package/dist/esm/src/nextjs/routeHandler.d.ts.map +0 -1
- package/dist/esm/src/nextjs/routeHandler.js +0 -212
- package/dist/esm/src/nextjs/routeHandler.js.map +0 -1
- package/dist/esm/src/nextjs/utils.d.ts +0 -3
- package/dist/esm/src/nextjs/utils.d.ts.map +0 -1
- package/dist/esm/src/nextjs/utils.js +0 -5
- package/dist/esm/src/nextjs/utils.js.map +0 -1
- package/dist/esm/src/reactjs/components/SignInButton.d.ts +0 -8
- package/dist/esm/src/reactjs/components/SignInButton.d.ts.map +0 -1
- package/dist/esm/src/reactjs/components/SignInButton.js +0 -14
- package/dist/esm/src/reactjs/components/SignInButton.js.map +0 -1
- package/dist/esm/src/reactjs/components/SignOutButton.d.ts +0 -6
- package/dist/esm/src/reactjs/components/SignOutButton.d.ts.map +0 -1
- package/dist/esm/src/reactjs/components/SignOutButton.js +0 -14
- package/dist/esm/src/reactjs/components/SignOutButton.js.map +0 -1
- package/dist/esm/src/reactjs/components/UserButton.d.ts +0 -8
- package/dist/esm/src/reactjs/components/UserButton.d.ts.map +0 -1
- package/dist/esm/src/reactjs/components/UserButton.js +0 -110
- package/dist/esm/src/reactjs/components/UserButton.js.map +0 -1
- package/dist/esm/src/reactjs/components/index.d.ts +0 -6
- package/dist/esm/src/reactjs/components/index.d.ts.map +0 -1
- package/dist/esm/src/reactjs/components/index.js +0 -6
- package/dist/esm/src/reactjs/components/index.js.map +0 -1
- package/dist/esm/src/reactjs/hooks/index.d.ts +0 -7
- package/dist/esm/src/reactjs/hooks/index.d.ts.map +0 -1
- package/dist/esm/src/reactjs/hooks/index.js +0 -7
- package/dist/esm/src/reactjs/hooks/index.js.map +0 -1
- package/dist/esm/src/reactjs/hooks/useAuth.d.ts +0 -3
- package/dist/esm/src/reactjs/hooks/useAuth.d.ts.map +0 -1
- package/dist/esm/src/reactjs/hooks/useAuth.js +0 -12
- package/dist/esm/src/reactjs/hooks/useAuth.js.map +0 -1
- package/dist/esm/src/reactjs/hooks/useUser.d.ts +0 -4
- package/dist/esm/src/reactjs/hooks/useUser.d.ts.map +0 -1
- package/dist/esm/src/reactjs/hooks/useUser.js +0 -12
- package/dist/esm/src/reactjs/hooks/useUser.js.map +0 -1
- package/dist/esm/src/reactjs/index.d.ts +0 -6
- package/dist/esm/src/reactjs/index.d.ts.map +0 -1
- package/dist/esm/src/reactjs/index.js +0 -8
- package/dist/esm/src/reactjs/index.js.map +0 -1
- package/dist/esm/src/reactjs/providers/index.d.ts +0 -8
- package/dist/esm/src/reactjs/providers/index.d.ts.map +0 -1
- package/dist/esm/src/reactjs/providers/index.js +0 -7
- package/dist/esm/src/reactjs/providers/index.js.map +0 -1
- package/dist/esm/src/server/ServerAuthenticationResolver.d.ts +0 -18
- package/dist/esm/src/server/ServerAuthenticationResolver.d.ts.map +0 -1
- package/dist/esm/src/server/ServerAuthenticationResolver.js +0 -57
- package/dist/esm/src/server/ServerAuthenticationResolver.js.map +0 -1
- package/dist/esm/src/server/config.d.ts +0 -16
- package/dist/esm/src/server/config.d.ts.map +0 -1
- package/dist/esm/src/server/config.js +0 -2
- package/dist/esm/src/server/config.js.map +0 -1
- package/dist/esm/src/server/index.d.ts +0 -6
- package/dist/esm/src/server/index.d.ts.map +0 -1
- package/dist/esm/src/server/index.js +0 -5
- package/dist/esm/src/server/index.js.map +0 -1
- package/dist/esm/src/server/login.d.ts +0 -17
- package/dist/esm/src/server/login.d.ts.map +0 -1
- package/dist/esm/src/server/login.js +0 -37
- package/dist/esm/src/server/login.js.map +0 -1
- package/dist/esm/src/server/refresh.d.ts +0 -7
- package/dist/esm/src/server/refresh.d.ts.map +0 -1
- package/dist/esm/src/server/refresh.js +0 -13
- package/dist/esm/src/server/refresh.js.map +0 -1
- package/dist/esm/src/services/AuthenticationService.d.ts +0 -87
- package/dist/esm/src/services/AuthenticationService.d.ts.map +0 -1
- package/dist/esm/src/services/AuthenticationService.js +0 -212
- package/dist/esm/src/services/AuthenticationService.js.map +0 -1
- package/dist/esm/src/services/PKCE.d.ts +0 -20
- package/dist/esm/src/services/PKCE.d.ts.map +0 -1
- package/dist/esm/src/services/PKCE.js +0 -44
- package/dist/esm/src/services/PKCE.js.map +0 -1
- package/dist/esm/src/services/types.d.ts +0 -23
- package/dist/esm/src/services/types.d.ts.map +0 -1
- package/dist/esm/src/services/types.js +0 -7
- package/dist/esm/src/services/types.js.map +0 -1
- package/dist/esm/src/shared/components/CivicAuthIframe.d.ts +0 -8
- package/dist/esm/src/shared/components/CivicAuthIframe.d.ts.map +0 -1
- package/dist/esm/src/shared/components/CivicAuthIframe.js +0 -9
- package/dist/esm/src/shared/components/CivicAuthIframe.js.map +0 -1
- package/dist/esm/src/shared/components/CivicAuthIframeContainer.d.ts +0 -9
- package/dist/esm/src/shared/components/CivicAuthIframeContainer.d.ts.map +0 -1
- package/dist/esm/src/shared/components/CivicAuthIframeContainer.js +0 -128
- package/dist/esm/src/shared/components/CivicAuthIframeContainer.js.map +0 -1
- package/dist/esm/src/shared/components/CloseIcon.d.ts +0 -4
- package/dist/esm/src/shared/components/CloseIcon.d.ts.map +0 -1
- package/dist/esm/src/shared/components/CloseIcon.js +0 -6
- package/dist/esm/src/shared/components/CloseIcon.js.map +0 -1
- package/dist/esm/src/shared/components/LoadingIcon.d.ts +0 -4
- package/dist/esm/src/shared/components/LoadingIcon.d.ts.map +0 -1
- package/dist/esm/src/shared/components/LoadingIcon.js +0 -30
- package/dist/esm/src/shared/components/LoadingIcon.js.map +0 -1
- package/dist/esm/src/shared/hooks/index.d.ts +0 -5
- package/dist/esm/src/shared/hooks/index.d.ts.map +0 -1
- package/dist/esm/src/shared/hooks/index.js +0 -5
- package/dist/esm/src/shared/hooks/index.js.map +0 -1
- package/dist/esm/src/shared/hooks/useAuth.d.ts +0 -3
- package/dist/esm/src/shared/hooks/useAuth.d.ts.map +0 -1
- package/dist/esm/src/shared/hooks/useAuth.js +0 -12
- package/dist/esm/src/shared/hooks/useAuth.js.map +0 -1
- package/dist/esm/src/shared/hooks/useConfig.d.ts +0 -3
- package/dist/esm/src/shared/hooks/useConfig.d.ts.map +0 -1
- package/dist/esm/src/shared/hooks/useConfig.js +0 -13
- package/dist/esm/src/shared/hooks/useConfig.js.map +0 -1
- package/dist/esm/src/shared/hooks/useIframe.d.ts +0 -3
- package/dist/esm/src/shared/hooks/useIframe.d.ts.map +0 -1
- package/dist/esm/src/shared/hooks/useIframe.js +0 -13
- package/dist/esm/src/shared/hooks/useIframe.js.map +0 -1
- package/dist/esm/src/shared/hooks/useSession.d.ts +0 -3
- package/dist/esm/src/shared/hooks/useSession.d.ts.map +0 -1
- package/dist/esm/src/shared/hooks/useSession.js +0 -13
- package/dist/esm/src/shared/hooks/useSession.js.map +0 -1
- package/dist/esm/src/shared/hooks/useToken.d.ts +0 -3
- package/dist/esm/src/shared/hooks/useToken.d.ts.map +0 -1
- package/dist/esm/src/shared/hooks/useToken.js +0 -12
- package/dist/esm/src/shared/hooks/useToken.js.map +0 -1
- package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.d.ts +0 -15
- package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.d.ts.map +0 -1
- package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js +0 -39
- package/dist/esm/src/shared/lib/GenericAuthenticationRefresher.js.map +0 -1
- package/dist/esm/src/shared/lib/UserSession.d.ts +0 -12
- package/dist/esm/src/shared/lib/UserSession.d.ts.map +0 -1
- package/dist/esm/src/shared/lib/UserSession.js +0 -20
- package/dist/esm/src/shared/lib/UserSession.js.map +0 -1
- package/dist/esm/src/shared/lib/session.d.ts +0 -3
- package/dist/esm/src/shared/lib/session.d.ts.map +0 -1
- package/dist/esm/src/shared/lib/session.js +0 -10
- package/dist/esm/src/shared/lib/session.js.map +0 -1
- package/dist/esm/src/shared/lib/storage.d.ts +0 -25
- package/dist/esm/src/shared/lib/storage.d.ts.map +0 -1
- package/dist/esm/src/shared/lib/storage.js +0 -17
- package/dist/esm/src/shared/lib/storage.js.map +0 -1
- package/dist/esm/src/shared/lib/types.d.ts +0 -22
- package/dist/esm/src/shared/lib/types.d.ts.map +0 -1
- package/dist/esm/src/shared/lib/types.js +0 -16
- package/dist/esm/src/shared/lib/types.js.map +0 -1
- package/dist/esm/src/shared/lib/util.d.ts +0 -33
- package/dist/esm/src/shared/lib/util.d.ts.map +0 -1
- package/dist/esm/src/shared/lib/util.js +0 -127
- package/dist/esm/src/shared/lib/util.js.map +0 -1
- package/dist/esm/src/shared/providers/AuthContext.d.ts +0 -10
- package/dist/esm/src/shared/providers/AuthContext.d.ts.map +0 -1
- package/dist/esm/src/shared/providers/AuthContext.js +0 -3
- package/dist/esm/src/shared/providers/AuthContext.js.map +0 -1
- package/dist/esm/src/shared/providers/AuthProvider.d.ts +0 -20
- package/dist/esm/src/shared/providers/AuthProvider.d.ts.map +0 -1
- package/dist/esm/src/shared/providers/AuthProvider.js +0 -263
- package/dist/esm/src/shared/providers/AuthProvider.js.map +0 -1
- package/dist/esm/src/shared/providers/CivicAuthProvider.d.ts +0 -6
- package/dist/esm/src/shared/providers/CivicAuthProvider.d.ts.map +0 -1
- package/dist/esm/src/shared/providers/CivicAuthProvider.js +0 -15
- package/dist/esm/src/shared/providers/CivicAuthProvider.js.map +0 -1
- package/dist/esm/src/shared/providers/ConfigProvider.d.ts +0 -21
- package/dist/esm/src/shared/providers/ConfigProvider.d.ts.map +0 -1
- package/dist/esm/src/shared/providers/ConfigProvider.js +0 -19
- package/dist/esm/src/shared/providers/ConfigProvider.js.map +0 -1
- package/dist/esm/src/shared/providers/IframeProvider.d.ts +0 -16
- package/dist/esm/src/shared/providers/IframeProvider.d.ts.map +0 -1
- package/dist/esm/src/shared/providers/IframeProvider.js +0 -11
- package/dist/esm/src/shared/providers/IframeProvider.js.map +0 -1
- package/dist/esm/src/shared/providers/SessionProvider.d.ts +0 -13
- package/dist/esm/src/shared/providers/SessionProvider.d.ts.map +0 -1
- package/dist/esm/src/shared/providers/SessionProvider.js +0 -13
- package/dist/esm/src/shared/providers/SessionProvider.js.map +0 -1
- package/dist/esm/src/shared/providers/TokenProvider.d.ts +0 -18
- package/dist/esm/src/shared/providers/TokenProvider.d.ts.map +0 -1
- package/dist/esm/src/shared/providers/TokenProvider.js +0 -53
- package/dist/esm/src/shared/providers/TokenProvider.js.map +0 -1
- package/dist/esm/src/shared/providers/UserProvider.d.ts +0 -18
- package/dist/esm/src/shared/providers/UserProvider.d.ts.map +0 -1
- package/dist/esm/src/shared/providers/UserProvider.js +0 -38
- package/dist/esm/src/shared/providers/UserProvider.js.map +0 -1
- package/dist/esm/src/types.d.ts +0 -146
- package/dist/esm/src/types.d.ts.map +0 -1
- package/dist/esm/src/types.js +0 -2
- package/dist/esm/src/types.js.map +0 -1
- package/dist/esm/src/utils.d.ts +0 -15
- package/dist/esm/src/utils.d.ts.map +0 -1
- package/dist/esm/src/utils.js +0 -43
- package/dist/esm/src/utils.js.map +0 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/src/nextjs/cookies.d.ts.map +0 -1
- package/dist/src/nextjs/cookies.js +0 -113
- package/dist/src/nextjs/cookies.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/browser/storage.ts +0 -11
- package/src/config.ts +0 -6
- package/src/constants.ts +0 -29
- package/src/index.ts +0 -16
- package/src/lib/cookies.ts +0 -28
- package/src/lib/jwt.ts +0 -15
- package/src/lib/logger.ts +0 -72
- package/src/lib/oauth.ts +0 -83
- package/src/lib/postMessage.ts +0 -22
- package/src/lib/windowUtil.ts +0 -29
- package/src/nextjs/GetUser.ts +0 -22
- package/src/nextjs/config.ts +0 -205
- package/src/nextjs/cookies.ts +0 -162
- package/src/nextjs/hooks/index.ts +0 -1
- package/src/nextjs/hooks/useTokenCookie.ts +0 -41
- package/src/nextjs/hooks/useUserCookie.ts +0 -41
- package/src/nextjs/index.ts +0 -20
- package/src/nextjs/middleware/index.ts +0 -1
- package/src/nextjs/middleware.ts +0 -155
- package/src/nextjs/providers/NextAuthProvider.tsx +0 -87
- package/src/nextjs/routeHandler.ts +0 -297
- package/src/nextjs/utils.ts +0 -9
- package/src/reactjs/components/SignInButton.tsx +0 -32
- package/src/reactjs/components/SignOutButton.tsx +0 -24
- package/src/reactjs/components/UserButton.tsx +0 -215
- package/src/reactjs/components/index.ts +0 -5
- package/src/reactjs/hooks/index.ts +0 -6
- package/src/reactjs/hooks/useAuth.ts +0 -15
- package/src/reactjs/hooks/useUser.ts +0 -20
- package/src/reactjs/index.ts +0 -19
- package/src/reactjs/providers/index.ts +0 -27
- package/src/server/ServerAuthenticationResolver.ts +0 -102
- package/src/server/config.ts +0 -17
- package/src/server/index.ts +0 -12
- package/src/server/login.ts +0 -59
- package/src/server/refresh.ts +0 -23
- package/src/services/AuthenticationService.ts +0 -324
- package/src/services/PKCE.ts +0 -45
- package/src/services/types.ts +0 -54
- package/src/shared/components/CivicAuthIframe.tsx +0 -26
- package/src/shared/components/CivicAuthIframeContainer.tsx +0 -190
- package/src/shared/components/CloseIcon.tsx +0 -21
- package/src/shared/components/LoadingIcon.tsx +0 -53
- package/src/shared/hooks/index.ts +0 -4
- package/src/shared/hooks/useAuth.ts +0 -15
- package/src/shared/hooks/useConfig.ts +0 -14
- package/src/shared/hooks/useIframe.ts +0 -14
- package/src/shared/hooks/useSession.ts +0 -14
- package/src/shared/hooks/useToken.ts +0 -15
- package/src/shared/lib/GenericAuthenticationRefresher.ts +0 -70
- package/src/shared/lib/UserSession.ts +0 -25
- package/src/shared/lib/session.ts +0 -11
- package/src/shared/lib/storage.ts +0 -40
- package/src/shared/lib/types.ts +0 -26
- package/src/shared/lib/util.ts +0 -217
- package/src/shared/providers/AuthContext.tsx +0 -11
- package/src/shared/providers/AuthProvider.tsx +0 -390
- package/src/shared/providers/CivicAuthProvider.tsx +0 -31
- package/src/shared/providers/ConfigProvider.tsx +0 -50
- package/src/shared/providers/IframeProvider.tsx +0 -34
- package/src/shared/providers/SessionProvider.tsx +0 -29
- package/src/shared/providers/TokenProvider.tsx +0 -78
- package/src/shared/providers/UserProvider.tsx +0 -80
- package/src/types.ts +0 -227
- package/src/utils.ts +0 -58
- package/test/integration/sdk.test.tsx +0 -266
- package/test/support/fixtures.ts +0 -56
- package/test/support/tokens.json +0 -26
- package/test/unit/lib/oauth.test.ts +0 -72
- package/test/unit/logger.test.ts +0 -175
- package/test/unit/nextjs/NextAuthProvider.test.tsx +0 -38
- package/test/unit/nextjs/config.test.ts +0 -218
- package/test/unit/nextjs/getUser.test.ts +0 -41
- package/test/unit/nextjs/middleware.test.ts +0 -138
- package/test/unit/nextjs/routeHandler.test.ts.skipped +0 -369
- package/test/unit/nextjs/utils.test.ts +0 -17
- package/test/unit/publicApi/__snapshots__/apiSnapshot.test.ts.snap +0 -17
- package/test/unit/publicApi/apiSnapshot.test.ts +0 -11
- package/test/unit/react/components/SignInButton.test.tsx +0 -50
- package/test/unit/react/components/SignOutButton.test.tsx +0 -49
- package/test/unit/server/login.test.ts +0 -181
- package/test/unit/server/session.test.ts +0 -51
- package/test/unit/services/AuthenticationService.test.ts +0 -152
- package/test/unit/services/ServerAuthenticationResolver.test.ts +0 -115
- package/test/unit/shared/GenericAuthenticationRefresher.test.ts +0 -89
- package/test/unit/shared/UserSession.test.ts +0 -42
- package/test/unit/shared/components/CivicAuthIframeContainer.test.tsx +0 -154
- package/test/unit/shared/storage.test.ts +0 -67
- package/test/unit/utils.test.ts +0 -48
- package/tsconfig.build.json +0 -5
- package/tsconfig.cjs.json +0 -8
- package/tsconfig.esm.json +0 -7
- package/tsconfig.json +0 -42
- package/vitest.config.ts +0 -41
package/README.md
CHANGED
|
@@ -29,6 +29,10 @@ yarn add @civic/auth
|
|
|
29
29
|
|
|
30
30
|
First, import the CSS styles in your main application file (e.g., `_app.tsx` for Next.js):
|
|
31
31
|
|
|
32
|
+
```tsx
|
|
33
|
+
import "@civic/auth/styles.css";
|
|
34
|
+
```
|
|
35
|
+
|
|
32
36
|
### Setup CivicAuthProvider
|
|
33
37
|
|
|
34
38
|
To use the Civic Auth Client SDK, wrap your application with the `CivicAuthProvider` component. This will allow the authentication context to be accessible throughout your app.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __objRest = (source, exclude) => {
|
|
21
|
+
var target = {};
|
|
22
|
+
for (var prop in source)
|
|
23
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
24
|
+
target[prop] = source[prop];
|
|
25
|
+
if (source != null && __getOwnPropSymbols)
|
|
26
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
27
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
28
|
+
target[prop] = source[prop];
|
|
29
|
+
}
|
|
30
|
+
return target;
|
|
31
|
+
};
|
|
32
|
+
var __async = (__this, __arguments, generator) => {
|
|
33
|
+
return new Promise((resolve, reject) => {
|
|
34
|
+
var fulfilled = (value) => {
|
|
35
|
+
try {
|
|
36
|
+
step(generator.next(value));
|
|
37
|
+
} catch (e) {
|
|
38
|
+
reject(e);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
var rejected = (value) => {
|
|
42
|
+
try {
|
|
43
|
+
step(generator.throw(value));
|
|
44
|
+
} catch (e) {
|
|
45
|
+
reject(e);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
49
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
exports.__spreadValues = __spreadValues; exports.__spreadProps = __spreadProps; exports.__objRest = __objRest; exports.__async = __async;
|
|
59
|
+
//# sourceMappingURL=chunk-CRTRMMJ7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/lucas/dev/civic/civic-auth/packages/civic-auth-client/dist/chunk-CRTRMMJ7.js"],"names":[],"mappings":"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","file":"/Users/lucas/dev/civic/civic-auth/packages/civic-auth-client/dist/chunk-CRTRMMJ7.js"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import {
|
|
2
|
+
withoutUndefined
|
|
3
|
+
} from "./chunk-PMDIR5XE.mjs";
|
|
4
|
+
import {
|
|
5
|
+
__spreadProps,
|
|
6
|
+
__spreadValues
|
|
7
|
+
} from "./chunk-RGHW4PYM.mjs";
|
|
8
|
+
|
|
9
|
+
// src/lib/logger.ts
|
|
10
|
+
import debug from "debug";
|
|
11
|
+
var PACKAGE_NAME = "@civic/auth";
|
|
12
|
+
var DebugLogger = class {
|
|
13
|
+
constructor(namespace) {
|
|
14
|
+
this.debugLogger = debug(`${PACKAGE_NAME}:${namespace}:debug`);
|
|
15
|
+
this.infoLogger = debug(`${PACKAGE_NAME}:${namespace}:info`);
|
|
16
|
+
this.warnLogger = debug(`${PACKAGE_NAME}:${namespace}:warn`);
|
|
17
|
+
this.errorLogger = debug(`${PACKAGE_NAME}:${namespace}:error`);
|
|
18
|
+
this.debugLogger.color = "4";
|
|
19
|
+
this.infoLogger.color = "2";
|
|
20
|
+
this.warnLogger.color = "3";
|
|
21
|
+
this.errorLogger.color = "1";
|
|
22
|
+
}
|
|
23
|
+
debug(message, ...args) {
|
|
24
|
+
this.debugLogger(message, ...args);
|
|
25
|
+
}
|
|
26
|
+
info(message, ...args) {
|
|
27
|
+
this.infoLogger(message, ...args);
|
|
28
|
+
}
|
|
29
|
+
warn(message, ...args) {
|
|
30
|
+
this.warnLogger(message, ...args);
|
|
31
|
+
}
|
|
32
|
+
error(message, ...args) {
|
|
33
|
+
this.errorLogger(message, ...args);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
var createLogger = (namespace) => new DebugLogger(namespace);
|
|
37
|
+
var loggers = {
|
|
38
|
+
// Next.js specific loggers
|
|
39
|
+
nextjs: {
|
|
40
|
+
routes: createLogger("api:routes"),
|
|
41
|
+
middleware: createLogger("api:middleware"),
|
|
42
|
+
handlers: {
|
|
43
|
+
auth: createLogger("api:handlers:auth")
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
// React specific loggers
|
|
47
|
+
react: {
|
|
48
|
+
components: createLogger("react:components"),
|
|
49
|
+
hooks: createLogger("react:hooks"),
|
|
50
|
+
context: createLogger("react:context")
|
|
51
|
+
},
|
|
52
|
+
// Shared utilities loggers
|
|
53
|
+
services: {
|
|
54
|
+
validation: createLogger("utils:validation"),
|
|
55
|
+
network: createLogger("utils:network")
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
// src/nextjs/config.ts
|
|
60
|
+
var logger = loggers.nextjs.handlers.auth;
|
|
61
|
+
var defaultAuthConfig = {
|
|
62
|
+
oauthServer: "https://auth-dev.civic.com/oauth",
|
|
63
|
+
callbackUrl: "/api/auth/callback",
|
|
64
|
+
challengeUrl: "/api/auth/challenge",
|
|
65
|
+
logoutUrl: "/api/auth/logout",
|
|
66
|
+
loginUrl: "/",
|
|
67
|
+
include: ["/*"],
|
|
68
|
+
exclude: [],
|
|
69
|
+
cookies: {
|
|
70
|
+
tokens: {
|
|
71
|
+
sameSite: "strict",
|
|
72
|
+
path: "/",
|
|
73
|
+
maxAge: 60 * 60
|
|
74
|
+
// 1 hour
|
|
75
|
+
},
|
|
76
|
+
user: {
|
|
77
|
+
sameSite: "strict",
|
|
78
|
+
path: "/",
|
|
79
|
+
maxAge: 60 * 60
|
|
80
|
+
// 1 hour
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
var resolveAuthConfig = (config = {}) => {
|
|
85
|
+
var _a, _b, _c, _d;
|
|
86
|
+
const configFromEnv = withoutUndefined({
|
|
87
|
+
clientId: process.env._civic_auth_client_id,
|
|
88
|
+
oauthServer: process.env._civic_oauth_server,
|
|
89
|
+
callbackUrl: process.env._civic_auth_callback_url,
|
|
90
|
+
challengeUrl: process.env._civic_auth_challenge_url,
|
|
91
|
+
loginUrl: process.env._civic_auth_login_url,
|
|
92
|
+
appUrl: process.env._civic_auth_app_url,
|
|
93
|
+
logoutUrl: process.env._civic_auth_logout_url,
|
|
94
|
+
include: (_a = process.env._civic_auth_includes) == null ? void 0 : _a.split(","),
|
|
95
|
+
exclude: (_b = process.env._civic_auth_excludes) == null ? void 0 : _b.split(","),
|
|
96
|
+
cookies: process.env._civic_auth_cookie_config ? JSON.parse(process.env._civic_auth_cookie_config) : void 0
|
|
97
|
+
});
|
|
98
|
+
const mergedConfig = __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, defaultAuthConfig), configFromEnv), config), {
|
|
99
|
+
// Override with directly passed config
|
|
100
|
+
cookies: {
|
|
101
|
+
tokens: __spreadValues(__spreadValues({}, defaultAuthConfig.cookies.tokens), ((_c = config.cookies) == null ? void 0 : _c.tokens) || {}),
|
|
102
|
+
user: __spreadValues(__spreadValues({}, defaultAuthConfig.cookies.user), ((_d = config.cookies) == null ? void 0 : _d.user) || {})
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
logger.debug("Config from environment:", configFromEnv);
|
|
106
|
+
logger.debug("Resolved config:", mergedConfig);
|
|
107
|
+
if (mergedConfig.clientId === void 0) {
|
|
108
|
+
throw new Error("Civic Auth client ID is required");
|
|
109
|
+
}
|
|
110
|
+
return mergedConfig;
|
|
111
|
+
};
|
|
112
|
+
var createCivicAuthPlugin = (clientId, authConfig = {}) => {
|
|
113
|
+
return (nextConfig) => {
|
|
114
|
+
const resolvedConfig = resolveAuthConfig(__spreadProps(__spreadValues({}, authConfig), { clientId }));
|
|
115
|
+
return __spreadProps(__spreadValues({}, nextConfig), {
|
|
116
|
+
env: __spreadProps(__spreadValues({}, nextConfig == null ? void 0 : nextConfig.env), {
|
|
117
|
+
// Internal environment variables - do not set these manually
|
|
118
|
+
_civic_auth_client_id: clientId,
|
|
119
|
+
_civic_oauth_server: resolvedConfig.oauthServer,
|
|
120
|
+
_civic_auth_callback_url: resolvedConfig.callbackUrl,
|
|
121
|
+
_civic_auth_challenge_url: resolvedConfig.challengeUrl,
|
|
122
|
+
_civic_auth_login_url: resolvedConfig.loginUrl,
|
|
123
|
+
_civic_auth_logout_url: resolvedConfig.logoutUrl,
|
|
124
|
+
_civic_auth_app_url: resolvedConfig.appUrl,
|
|
125
|
+
_civic_auth_includes: resolvedConfig.include.join(","),
|
|
126
|
+
_civic_auth_excludes: resolvedConfig.exclude.join(","),
|
|
127
|
+
_civic_auth_cookie_config: JSON.stringify(resolvedConfig.cookies)
|
|
128
|
+
})
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
// src/nextjs/utils.ts
|
|
134
|
+
var resolveCallbackUrl = (config, alternativeUrl) => {
|
|
135
|
+
var _a;
|
|
136
|
+
const baseUrl = (_a = config.appUrl) != null ? _a : alternativeUrl;
|
|
137
|
+
const callbackUrl = new URL(config == null ? void 0 : config.callbackUrl, baseUrl).toString();
|
|
138
|
+
return callbackUrl.toString();
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
export {
|
|
142
|
+
loggers,
|
|
143
|
+
defaultAuthConfig,
|
|
144
|
+
resolveAuthConfig,
|
|
145
|
+
createCivicAuthPlugin,
|
|
146
|
+
resolveCallbackUrl
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=chunk-EAANLFR5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/logger.ts","../src/nextjs/config.ts","../src/nextjs/utils.ts"],"sourcesContent":["import debug from \"debug\";\n\nconst PACKAGE_NAME = \"@civic/auth\";\n\nexport interface Logger {\n debug(message: string, ...args: unknown[]): void;\n info(message: string, ...args: unknown[]): void;\n warn(message: string, ...args: unknown[]): void;\n error(message: string, ...args: unknown[]): void;\n}\n\nclass DebugLogger implements Logger {\n private debugLogger: debug.Debugger;\n private infoLogger: debug.Debugger;\n private warnLogger: debug.Debugger;\n private errorLogger: debug.Debugger;\n\n constructor(namespace: string) {\n // Format: @org/package:library:component:level\n this.debugLogger = debug(`${PACKAGE_NAME}:${namespace}:debug`);\n this.infoLogger = debug(`${PACKAGE_NAME}:${namespace}:info`);\n this.warnLogger = debug(`${PACKAGE_NAME}:${namespace}:warn`);\n this.errorLogger = debug(`${PACKAGE_NAME}:${namespace}:error`);\n\n this.debugLogger.color = \"4\";\n this.infoLogger.color = \"2\";\n this.warnLogger.color = \"3\";\n this.errorLogger.color = \"1\";\n }\n\n debug(message: string, ...args: unknown[]): void {\n this.debugLogger(message, ...args);\n }\n\n info(message: string, ...args: unknown[]): void {\n this.infoLogger(message, ...args);\n }\n\n warn(message: string, ...args: unknown[]): void {\n this.warnLogger(message, ...args);\n }\n\n error(message: string, ...args: unknown[]): void {\n this.errorLogger(message, ...args);\n }\n}\n\nexport const createLogger = (namespace: string): Logger =>\n new DebugLogger(namespace);\n\n// Pre-configured loggers for different parts of your package\nexport const loggers = {\n // Next.js specific loggers\n nextjs: {\n routes: createLogger(\"api:routes\"),\n middleware: createLogger(\"api:middleware\"),\n handlers: {\n auth: createLogger(\"api:handlers:auth\"),\n },\n },\n // React specific loggers\n react: {\n components: createLogger(\"react:components\"),\n hooks: createLogger(\"react:hooks\"),\n context: createLogger(\"react:context\"),\n },\n // Shared utilities loggers\n services: {\n validation: createLogger(\"utils:validation\"),\n network: createLogger(\"utils:network\"),\n },\n} as const;\n","/* eslint-disable turbo/no-undeclared-env-vars */\nimport { NextConfig } from \"next\";\nimport { loggers } from \"@/lib/logger\";\nimport { withoutUndefined } from \"@/utils\";\n\nconst logger = loggers.nextjs.handlers.auth;\n\nexport interface CookieConfig {\n secure?: boolean;\n sameSite?: \"strict\" | \"lax\" | \"none\";\n domain?: string;\n path?: string;\n maxAge?: number;\n}\n\nexport type AuthConfigWithDefaults = {\n clientId: string;\n oauthServer: string;\n callbackUrl: string;\n loginUrl: string;\n logoutUrl: string;\n appUrl?: string;\n challengeUrl: string;\n include: string[];\n exclude: string[];\n cookies: {\n tokens: CookieConfig;\n user: CookieConfig;\n };\n};\n\nexport type AuthConfig = Partial<AuthConfigWithDefaults>;\n\nexport type DefinedAuthConfig = AuthConfigWithDefaults;\n\n/**\n * Default configuration values that will be used if not overridden\n */\nexport const defaultAuthConfig: Omit<AuthConfigWithDefaults, \"clientId\"> = {\n oauthServer: \"https://auth-dev.civic.com/oauth\",\n callbackUrl: \"/api/auth/callback\",\n challengeUrl: \"/api/auth/challenge\",\n logoutUrl: \"/api/auth/logout\",\n loginUrl: \"/\",\n include: [\"/*\"],\n exclude: [],\n cookies: {\n tokens: {\n sameSite: \"strict\",\n path: \"/\",\n maxAge: 60 * 60, // 1 hour\n },\n user: {\n sameSite: \"strict\",\n path: \"/\",\n maxAge: 60 * 60, // 1 hour\n },\n },\n};\n\n/**\n * Resolves the authentication configuration by combining:\n * 1. Default values\n * 2. Environment variables (set internally by the plugin)\n * 3. Explicitly passed configuration\n *\n * Note: Developers should not set _civic_auth_* environment variables directly.\n * Instead, pass configuration to the createCivicAuthPlugin in next.config.js:\n *\n * @example\n * ```js\n * // next.config.js\n * export default createCivicAuthPlugin({\n * callbackUrl: '/custom/callback',\n * })\n * ```\n */\nexport const resolveAuthConfig = (\n config: AuthConfig = {},\n): AuthConfigWithDefaults & { clientId: string } => {\n // Read configuration that was set by the plugin via environment variables\n const configFromEnv = withoutUndefined({\n clientId: process.env._civic_auth_client_id,\n oauthServer: process.env._civic_oauth_server,\n callbackUrl: process.env._civic_auth_callback_url,\n challengeUrl: process.env._civic_auth_challenge_url,\n loginUrl: process.env._civic_auth_login_url,\n appUrl: process.env._civic_auth_app_url,\n logoutUrl: process.env._civic_auth_logout_url,\n include: process.env._civic_auth_includes?.split(\",\"),\n exclude: process.env._civic_auth_excludes?.split(\",\"),\n cookies: process.env._civic_auth_cookie_config\n ? JSON.parse(process.env._civic_auth_cookie_config)\n : undefined,\n });\n\n const mergedConfig = {\n ...defaultAuthConfig,\n ...configFromEnv, // Apply plugin-set config\n ...config, // Override with directly passed config\n cookies: {\n tokens: {\n ...defaultAuthConfig.cookies.tokens,\n ...(config.cookies?.tokens || {}),\n },\n user: {\n ...defaultAuthConfig.cookies.user,\n ...(config.cookies?.user || {}),\n },\n },\n };\n\n logger.debug(\"Config from environment:\", configFromEnv);\n logger.debug(\"Resolved config:\", mergedConfig);\n if (mergedConfig.clientId === undefined) {\n throw new Error(\"Civic Auth client ID is required\");\n }\n return mergedConfig as AuthConfigWithDefaults & { clientId: string };\n};\n\n/**\n * Creates a Next.js plugin that handles auth configuration.\n *\n * This is the main configuration point for the auth system.\n * Do not set _civic_auth_* environment variables directly - instead,\n * pass your configuration here:\n *\n * @example\n * ```js\n * // next.config.js\n * export default createCivicAuthPlugin({\n * clientId: 'my-client-id',\n * callbackUrl: '/custom/callback',\n * loginUrl: '/custom/login',\n * logoutUrl: '/custom/logout',\n * include: ['/protected/*'],\n * exclude: ['/public/*']\n * })\n * ```\n *\n * The plugin sets internal environment variables that are used by\n * the auth system. These variables should not be set manually.\n */\nexport const createCivicAuthPlugin = (\n clientId: string,\n authConfig: AuthConfig = {},\n) => {\n return (nextConfig?: NextConfig) => {\n const resolvedConfig = resolveAuthConfig({ ...authConfig, clientId });\n return {\n ...nextConfig,\n env: {\n ...nextConfig?.env,\n // Internal environment variables - do not set these manually\n _civic_auth_client_id: clientId,\n _civic_oauth_server: resolvedConfig.oauthServer,\n _civic_auth_callback_url: resolvedConfig.callbackUrl,\n _civic_auth_challenge_url: resolvedConfig.challengeUrl,\n _civic_auth_login_url: resolvedConfig.loginUrl,\n _civic_auth_logout_url: resolvedConfig.logoutUrl,\n _civic_auth_app_url: resolvedConfig.appUrl,\n _civic_auth_includes: resolvedConfig.include.join(\",\"),\n _civic_auth_excludes: resolvedConfig.exclude.join(\",\"),\n _civic_auth_cookie_config: JSON.stringify(resolvedConfig.cookies),\n },\n };\n };\n};\n","import { AuthConfigWithDefaults } from \"@/nextjs/config\";\n\nexport const resolveCallbackUrl = (\n config: AuthConfigWithDefaults,\n alternativeUrl?: string,\n): string => {\n const baseUrl = config.appUrl ?? alternativeUrl;\n const callbackUrl = new URL(config?.callbackUrl, baseUrl).toString();\n return callbackUrl.toString();\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AUTH_SERVER,
|
|
3
|
+
DEFAULT_SCOPES,
|
|
4
|
+
GenericAuthenticationInitiator,
|
|
5
|
+
GenericPublicClientPKCEProducer,
|
|
6
|
+
exchangeTokens,
|
|
7
|
+
getEndpointsWithOverrides,
|
|
8
|
+
retrieveTokens,
|
|
9
|
+
storeTokens
|
|
10
|
+
} from "./chunk-PMDIR5XE.mjs";
|
|
11
|
+
import {
|
|
12
|
+
__async,
|
|
13
|
+
__spreadProps,
|
|
14
|
+
__spreadValues
|
|
15
|
+
} from "./chunk-RGHW4PYM.mjs";
|
|
16
|
+
|
|
17
|
+
// src/shared/storage.ts
|
|
18
|
+
var DEFAULT_COOKIE_DURATION = 60 * 15;
|
|
19
|
+
var CookieStorage = class {
|
|
20
|
+
constructor(settings = {}) {
|
|
21
|
+
var _a, _b, _c, _d, _e;
|
|
22
|
+
this.settings = {
|
|
23
|
+
httpOnly: (_a = settings.httpOnly) != null ? _a : true,
|
|
24
|
+
secure: (_b = settings.secure) != null ? _b : true,
|
|
25
|
+
// the callback request comes the auth server
|
|
26
|
+
// 'lax' ensures the code_verifier cookie is sent with the request
|
|
27
|
+
sameSite: (_c = settings.sameSite) != null ? _c : "lax",
|
|
28
|
+
expires: (_d = settings.expires) != null ? _d : new Date(Date.now() + 1e3 * DEFAULT_COOKIE_DURATION),
|
|
29
|
+
path: (_e = settings.path) != null ? _e : "/"
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// src/server/ServerAuthenticationResolver.ts
|
|
35
|
+
import { OAuth2Client } from "oslo/oauth2";
|
|
36
|
+
var ServerAuthenticationResolver = class _ServerAuthenticationResolver {
|
|
37
|
+
constructor(authConfig, storage, endpointOverrides) {
|
|
38
|
+
this.authConfig = authConfig;
|
|
39
|
+
this.storage = storage;
|
|
40
|
+
this.endpointOverrides = endpointOverrides;
|
|
41
|
+
this.pkceProducer = new GenericPublicClientPKCEProducer(storage);
|
|
42
|
+
}
|
|
43
|
+
validateExistingSession() {
|
|
44
|
+
throw new Error("Method not implemented.");
|
|
45
|
+
}
|
|
46
|
+
init() {
|
|
47
|
+
return __async(this, null, function* () {
|
|
48
|
+
this.endpoints = yield getEndpointsWithOverrides(
|
|
49
|
+
this.authConfig.oauthServer,
|
|
50
|
+
this.endpointOverrides
|
|
51
|
+
);
|
|
52
|
+
this.oauth2client = new OAuth2Client(
|
|
53
|
+
this.authConfig.clientId,
|
|
54
|
+
this.endpoints.auth,
|
|
55
|
+
this.endpoints.token,
|
|
56
|
+
{
|
|
57
|
+
redirectURI: this.authConfig.redirectUrl
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
return this;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
tokenExchange(code, state) {
|
|
64
|
+
return __async(this, null, function* () {
|
|
65
|
+
if (!this.oauth2client) yield this.init();
|
|
66
|
+
const codeVerifier = yield this.pkceProducer.getCodeVerifier();
|
|
67
|
+
if (!codeVerifier) throw new Error("Code verifier not found in storage");
|
|
68
|
+
const tokens = yield exchangeTokens(
|
|
69
|
+
code,
|
|
70
|
+
state,
|
|
71
|
+
this.pkceProducer,
|
|
72
|
+
this.oauth2client,
|
|
73
|
+
// clean up types here to avoid the ! operator
|
|
74
|
+
this.authConfig.oauthServer,
|
|
75
|
+
this.endpoints
|
|
76
|
+
// clean up types here to avoid the ! operator
|
|
77
|
+
);
|
|
78
|
+
storeTokens(this.storage, tokens);
|
|
79
|
+
return tokens;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
getSessionData() {
|
|
83
|
+
return __async(this, null, function* () {
|
|
84
|
+
const storageData = retrieveTokens(this.storage);
|
|
85
|
+
if (!storageData) return null;
|
|
86
|
+
return {
|
|
87
|
+
authenticated: !!storageData.id_token,
|
|
88
|
+
idToken: storageData.id_token,
|
|
89
|
+
accessToken: storageData.access_token,
|
|
90
|
+
refreshToken: storageData.refresh_token
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
static build(authConfig, storage, endpointOverrides) {
|
|
95
|
+
return __async(this, null, function* () {
|
|
96
|
+
const resolver = new _ServerAuthenticationResolver(
|
|
97
|
+
authConfig,
|
|
98
|
+
storage,
|
|
99
|
+
endpointOverrides
|
|
100
|
+
);
|
|
101
|
+
yield resolver.init();
|
|
102
|
+
return resolver;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
// src/server/login.ts
|
|
108
|
+
function resolveOAuthAccessCode(code, state, storage, config) {
|
|
109
|
+
return __async(this, null, function* () {
|
|
110
|
+
var _a;
|
|
111
|
+
const authSessionService = yield ServerAuthenticationResolver.build(
|
|
112
|
+
__spreadProps(__spreadValues({}, config), {
|
|
113
|
+
oauthServer: (_a = config.oauthServer) != null ? _a : AUTH_SERVER
|
|
114
|
+
}),
|
|
115
|
+
storage,
|
|
116
|
+
config.endpointOverrides
|
|
117
|
+
);
|
|
118
|
+
return authSessionService.tokenExchange(code, state);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
function isLoggedIn(storage) {
|
|
122
|
+
return !!storage.get("id_token");
|
|
123
|
+
}
|
|
124
|
+
function buildLoginUrl(config, storage) {
|
|
125
|
+
return __async(this, null, function* () {
|
|
126
|
+
var _a, _b, _c;
|
|
127
|
+
const state = (_a = config.state) != null ? _a : Math.random().toString(36).substring(2);
|
|
128
|
+
const scopes = (_b = config.scopes) != null ? _b : DEFAULT_SCOPES;
|
|
129
|
+
const pkceProducer = new GenericPublicClientPKCEProducer(storage);
|
|
130
|
+
const authInitiator = new GenericAuthenticationInitiator(__spreadProps(__spreadValues({}, config), {
|
|
131
|
+
state,
|
|
132
|
+
scopes,
|
|
133
|
+
oauthServer: (_c = config.oauthServer) != null ? _c : AUTH_SERVER,
|
|
134
|
+
// When retrieving the PKCE challenge on the server-side, we produce it and store it in the session
|
|
135
|
+
pkceConsumer: pkceProducer
|
|
136
|
+
}));
|
|
137
|
+
return authInitiator.signIn();
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// src/shared/GenericAuthenticationRefresher.ts
|
|
142
|
+
import { OAuth2Client as OAuth2Client2 } from "oslo/oauth2";
|
|
143
|
+
var GenericAuthenticationRefresher = class _GenericAuthenticationRefresher {
|
|
144
|
+
constructor(authConfig, storage, endpointOverrides) {
|
|
145
|
+
this.authConfig = authConfig;
|
|
146
|
+
this.storage = storage;
|
|
147
|
+
this.endpointOverrides = endpointOverrides;
|
|
148
|
+
}
|
|
149
|
+
init() {
|
|
150
|
+
return __async(this, null, function* () {
|
|
151
|
+
this.endpoints = yield getEndpointsWithOverrides(
|
|
152
|
+
this.authConfig.oauthServer,
|
|
153
|
+
this.endpointOverrides
|
|
154
|
+
);
|
|
155
|
+
this.oauth2client = new OAuth2Client2(
|
|
156
|
+
this.authConfig.clientId,
|
|
157
|
+
this.endpoints.auth,
|
|
158
|
+
this.endpoints.token,
|
|
159
|
+
{
|
|
160
|
+
redirectURI: this.authConfig.redirectUrl
|
|
161
|
+
}
|
|
162
|
+
);
|
|
163
|
+
return this;
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
static build(authConfig, storage, endpointOverrides) {
|
|
167
|
+
return __async(this, null, function* () {
|
|
168
|
+
const refresher = new _GenericAuthenticationRefresher(
|
|
169
|
+
authConfig,
|
|
170
|
+
storage,
|
|
171
|
+
endpointOverrides
|
|
172
|
+
);
|
|
173
|
+
yield refresher.init();
|
|
174
|
+
return refresher;
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
refreshTokens() {
|
|
178
|
+
return __async(this, null, function* () {
|
|
179
|
+
if (!this.oauth2client) yield this.init();
|
|
180
|
+
const tokens = retrieveTokens(this.storage);
|
|
181
|
+
if (!(tokens == null ? void 0 : tokens.refresh_token)) throw new Error("No refresh token available");
|
|
182
|
+
const oauth2Client = this.oauth2client;
|
|
183
|
+
const refreshedTokens = yield oauth2Client.refreshAccessToken(
|
|
184
|
+
tokens.refresh_token
|
|
185
|
+
);
|
|
186
|
+
storeTokens(this.storage, refreshedTokens);
|
|
187
|
+
return tokens;
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
// src/server/refresh.ts
|
|
193
|
+
function refreshTokens(storage, config) {
|
|
194
|
+
return __async(this, null, function* () {
|
|
195
|
+
var _a;
|
|
196
|
+
const refresher = yield GenericAuthenticationRefresher.build(
|
|
197
|
+
__spreadProps(__spreadValues({}, config), {
|
|
198
|
+
oauthServer: (_a = config.oauthServer) != null ? _a : AUTH_SERVER
|
|
199
|
+
}),
|
|
200
|
+
storage,
|
|
201
|
+
config.endpointOverrides
|
|
202
|
+
);
|
|
203
|
+
return refresher.refreshTokens();
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export {
|
|
208
|
+
CookieStorage,
|
|
209
|
+
resolveOAuthAccessCode,
|
|
210
|
+
isLoggedIn,
|
|
211
|
+
buildLoginUrl,
|
|
212
|
+
refreshTokens
|
|
213
|
+
};
|
|
214
|
+
//# sourceMappingURL=chunk-EGFTMH5S.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/shared/storage.ts","../src/server/ServerAuthenticationResolver.ts","../src/server/login.ts","../src/shared/GenericAuthenticationRefresher.ts","../src/server/refresh.ts"],"sourcesContent":["import { AuthStorage, SessionData, UnknownObject, User } from \"@/types.js\";\n\ntype SameSiteOption = \"strict\" | \"lax\" | \"none\";\n\nexport interface SessionStorage {\n get(): SessionData;\n getUser(): User<UnknownObject> | null;\n set(data: Partial<SessionData>): void;\n setUser(data: User<UnknownObject> | null): void;\n clear(): void;\n}\n\nexport type CookieStorageSettings = {\n httpOnly: boolean;\n secure: boolean;\n sameSite: SameSiteOption;\n expires: Date;\n path: string;\n};\n\nexport const DEFAULT_COOKIE_DURATION = 60 * 15; // 15 minutes\n\nexport abstract class CookieStorage implements AuthStorage {\n protected settings: CookieStorageSettings;\n protected constructor(settings: Partial<CookieStorageSettings> = {}) {\n this.settings = {\n httpOnly: settings.httpOnly ?? true,\n secure: settings.secure ?? true,\n // the callback request comes the auth server\n // 'lax' ensures the code_verifier cookie is sent with the request\n sameSite: settings.sameSite ?? \"lax\",\n expires:\n settings.expires ??\n new Date(Date.now() + 1000 * DEFAULT_COOKIE_DURATION),\n path: settings.path ?? \"/\",\n };\n }\n abstract get(key: string): string | null;\n abstract set(key: string, value: string): void;\n}\n","import { GenericPublicClientPKCEProducer } from \"@/services/PKCE.js\";\nimport { OAuth2Client } from \"oslo/oauth2\";\nimport {\n AuthStorage,\n Endpoints,\n OIDCTokenResponseBody,\n SessionData,\n} from \"@/types.js\";\nimport { AuthConfig } from \"@/server/config.js\";\nimport {\n exchangeTokens,\n getEndpointsWithOverrides,\n retrieveTokens,\n storeTokens,\n} from \"@/shared/util.js\";\nimport { AuthenticationResolver, PKCEProducer } from \"@/services/types.ts\";\n\nexport class ServerAuthenticationResolver implements AuthenticationResolver {\n private pkceProducer: PKCEProducer;\n private oauth2client: OAuth2Client | undefined;\n private endpoints: Endpoints | undefined;\n\n private constructor(\n readonly authConfig: AuthConfig,\n readonly storage: AuthStorage,\n readonly endpointOverrides?: Partial<Endpoints>,\n ) {\n this.pkceProducer = new GenericPublicClientPKCEProducer(storage);\n }\n validateExistingSession(): Promise<SessionData> {\n throw new Error(\"Method not implemented.\");\n }\n\n async init(): Promise<this> {\n // resolve oauth config\n this.endpoints = await getEndpointsWithOverrides(\n this.authConfig.oauthServer,\n this.endpointOverrides,\n );\n this.oauth2client = new OAuth2Client(\n this.authConfig.clientId,\n this.endpoints.auth,\n this.endpoints.token,\n {\n redirectURI: this.authConfig.redirectUrl,\n },\n );\n\n return this;\n }\n\n async tokenExchange(\n code: string,\n state: string,\n ): Promise<OIDCTokenResponseBody> {\n if (!this.oauth2client) await this.init();\n const codeVerifier = await this.pkceProducer.getCodeVerifier();\n if (!codeVerifier) throw new Error(\"Code verifier not found in storage\");\n\n // exchange auth code for tokens\n const tokens = await exchangeTokens(\n code,\n state,\n this.pkceProducer,\n this.oauth2client!, // clean up types here to avoid the ! operator\n this.authConfig.oauthServer,\n this.endpoints!, // clean up types here to avoid the ! operator\n );\n\n storeTokens(this.storage, tokens);\n\n return tokens;\n }\n\n async getSessionData(): Promise<SessionData | null> {\n const storageData = retrieveTokens(this.storage);\n\n if (!storageData) return null;\n\n return {\n authenticated: !!storageData.id_token,\n idToken: storageData.id_token,\n accessToken: storageData.access_token,\n refreshToken: storageData.refresh_token,\n };\n }\n\n static async build(\n authConfig: AuthConfig,\n storage: AuthStorage,\n endpointOverrides?: Partial<Endpoints>,\n ): Promise<AuthenticationResolver> {\n const resolver = new ServerAuthenticationResolver(\n authConfig,\n storage,\n endpointOverrides,\n );\n await resolver.init();\n\n return resolver;\n }\n}\n","import { AuthStorage, OIDCTokenResponseBody } from \"@/types.js\";\nimport { AUTH_SERVER, DEFAULT_SCOPES } from \"@/constants.js\";\nimport { GenericAuthenticationInitiator } from \"@/services/AuthenticationService.js\";\nimport { GenericPublicClientPKCEProducer } from \"@/services/PKCE.js\";\nimport { ServerAuthenticationResolver } from \"@/server/ServerAuthenticationResolver.js\";\nimport { AuthConfig } from \"@/server/config.ts\";\n/**\n * Resolve an OAuth access code to a set of OIDC tokens\n * @param code The access code, typically from a query parameter in the redirect url\n * @param state The oauth random state string, used to distinguish between requests. Typically also passed in the redirect url\n * @param storage The place that this server uses to store session data (e.g. a cookie store)\n * @param config Oauth Server configuration\n */\nexport async function resolveOAuthAccessCode(\n code: string,\n state: string,\n storage: AuthStorage,\n config: AuthConfig,\n): Promise<OIDCTokenResponseBody> {\n const authSessionService = await ServerAuthenticationResolver.build(\n {\n ...config,\n oauthServer: config.oauthServer ?? AUTH_SERVER,\n },\n storage,\n config.endpointOverrides,\n );\n\n return authSessionService.tokenExchange(code, state);\n}\n\nexport function isLoggedIn(storage: AuthStorage): boolean {\n return !!storage.get(\"id_token\");\n}\n\nexport async function buildLoginUrl(\n config: Pick<AuthConfig, \"oauthServer\" | \"clientId\" | \"redirectUrl\"> & {\n scopes?: string[];\n state?: string;\n nonce?: string;\n },\n storage: AuthStorage,\n): Promise<URL> {\n // generate a random state if not provided\n const state = config.state ?? Math.random().toString(36).substring(2);\n const scopes = config.scopes ?? DEFAULT_SCOPES;\n const pkceProducer = new GenericPublicClientPKCEProducer(storage);\n const authInitiator = new GenericAuthenticationInitiator({\n ...config,\n state,\n scopes,\n oauthServer: config.oauthServer ?? AUTH_SERVER,\n // When retrieving the PKCE challenge on the server-side, we produce it and store it in the session\n pkceConsumer: pkceProducer,\n });\n\n return authInitiator.signIn();\n}\n","import { AuthenticationRefresher } from \"@/services/types.ts\";\nimport { AuthStorage, Endpoints, OIDCTokenResponseBody } from \"@/types\";\nimport {\n getEndpointsWithOverrides,\n retrieveTokens,\n storeTokens,\n} from \"@/shared/util.ts\";\nimport { AuthConfig } from \"@/server/config.ts\";\nimport { OAuth2Client } from \"oslo/oauth2\";\n\nexport class GenericAuthenticationRefresher implements AuthenticationRefresher {\n private oauth2client: OAuth2Client | undefined;\n private endpoints: Endpoints | undefined;\n\n private constructor(\n private authConfig: AuthConfig,\n private storage: AuthStorage,\n private endpointOverrides?: Partial<Endpoints>,\n ) {}\n\n async init(): Promise<this> {\n // resolve oauth config\n this.endpoints = await getEndpointsWithOverrides(\n this.authConfig.oauthServer,\n this.endpointOverrides,\n );\n this.oauth2client = new OAuth2Client(\n this.authConfig.clientId,\n this.endpoints.auth,\n this.endpoints.token,\n {\n redirectURI: this.authConfig.redirectUrl,\n },\n );\n\n return this;\n }\n\n static async build(\n authConfig: AuthConfig,\n storage: AuthStorage,\n endpointOverrides?: Partial<Endpoints>,\n ): Promise<GenericAuthenticationRefresher> {\n const refresher = new GenericAuthenticationRefresher(\n authConfig,\n storage,\n endpointOverrides,\n );\n await refresher.init();\n\n return refresher;\n }\n\n async refreshTokens() {\n if (!this.oauth2client) await this.init();\n\n const tokens = retrieveTokens(this.storage);\n if (!tokens?.refresh_token) throw new Error(\"No refresh token available\");\n\n const oauth2Client = this.oauth2client!;\n const refreshedTokens =\n await oauth2Client.refreshAccessToken<OIDCTokenResponseBody>(\n tokens.refresh_token,\n );\n\n storeTokens(this.storage, refreshedTokens);\n\n return tokens;\n }\n}\n","import { AuthStorage, OIDCTokenResponseBody } from \"@/types.js\";\nimport { AUTH_SERVER } from \"@/constants.js\";\nimport { GenericAuthenticationRefresher } from \"@/shared/GenericAuthenticationRefresher.ts\";\nimport { AuthConfig } from \"@/server/config.ts\";\n\n/**\n * Refresh the current set of OIDC tokens\n */\nexport async function refreshTokens(\n storage: AuthStorage,\n config: AuthConfig,\n): Promise<OIDCTokenResponseBody> {\n const refresher = await GenericAuthenticationRefresher.build(\n {\n ...config,\n oauthServer: config.oauthServer ?? AUTH_SERVER,\n },\n storage,\n config.endpointOverrides,\n );\n\n return refresher.refreshTokens();\n}\n"],"mappings":"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","names":["OAuth2Client","OAuth2Client"]}
|