@civic/auth 0.0.1-beta.16 → 0.0.1-beta.17

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.
Files changed (40) hide show
  1. package/dist/{chunk-FBU2CKWK.mjs → chunk-5XL2ST72.mjs} +45 -14
  2. package/dist/chunk-5XL2ST72.mjs.map +1 -0
  3. package/dist/chunk-CRTRMMJ7.js.map +1 -1
  4. package/dist/{chunk-RKQDQJOM.mjs → chunk-G3P5TIO2.mjs} +1 -1
  5. package/dist/chunk-G3P5TIO2.mjs.map +1 -0
  6. package/dist/{chunk-CHY6AHA7.js → chunk-RF23Q4V6.js} +1 -1
  7. package/dist/chunk-RF23Q4V6.js.map +1 -0
  8. package/dist/{chunk-N4SAZYOX.js → chunk-SEKF2WZX.js} +50 -19
  9. package/dist/chunk-SEKF2WZX.js.map +1 -0
  10. package/dist/{index-Bq3T3FPG.d.ts → index-DTimUlkB.d.ts} +2 -1
  11. package/dist/{index-GtnyFGD2.d.mts → index-DvjkKpkk.d.mts} +2 -1
  12. package/dist/index.d.mts +3 -2
  13. package/dist/index.d.ts +3 -2
  14. package/dist/index.js.map +1 -1
  15. package/dist/nextjs.d.mts +3 -9
  16. package/dist/nextjs.d.ts +3 -9
  17. package/dist/nextjs.js +24 -24
  18. package/dist/nextjs.js.map +1 -1
  19. package/dist/nextjs.mjs +3 -3
  20. package/dist/nextjs.mjs.map +1 -1
  21. package/dist/react.d.mts +16 -10
  22. package/dist/react.d.ts +16 -10
  23. package/dist/react.js +152 -89
  24. package/dist/react.js.map +1 -1
  25. package/dist/react.mjs +167 -104
  26. package/dist/react.mjs.map +1 -1
  27. package/dist/server.d.mts +1 -1
  28. package/dist/server.d.ts +1 -1
  29. package/dist/server.js +2 -2
  30. package/dist/server.js.map +1 -1
  31. package/dist/server.mjs +1 -1
  32. package/dist/{types-Bfi0hVMZ.d.mts → types-HdCjGldB.d.mts} +2 -2
  33. package/dist/{types-Bfi0hVMZ.d.ts → types-HdCjGldB.d.ts} +2 -2
  34. package/dist/types-b4c1koXj.d.mts +19 -0
  35. package/dist/types-b4c1koXj.d.ts +19 -0
  36. package/package.json +1 -1
  37. package/dist/chunk-CHY6AHA7.js.map +0 -1
  38. package/dist/chunk-FBU2CKWK.mjs.map +0 -1
  39. package/dist/chunk-N4SAZYOX.js.map +0 -1
  40. package/dist/chunk-RKQDQJOM.mjs.map +0 -1
package/dist/react.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkN4SAZYOXjs = require('./chunk-N4SAZYOX.js');
5
+ var _chunkSEKF2WZXjs = require('./chunk-SEKF2WZX.js');
6
6
 
7
7
 
8
8
 
@@ -18,7 +18,7 @@ var _chunkN4SAZYOXjs = require('./chunk-N4SAZYOX.js');
18
18
 
19
19
 
20
20
 
21
- var _chunkCHY6AHA7js = require('./chunk-CHY6AHA7.js');
21
+ var _chunkRF23Q4V6js = require('./chunk-RF23Q4V6.js');
22
22
 
23
23
 
24
24
 
@@ -61,31 +61,15 @@ var useAuth = () => {
61
61
 
62
62
  // src/react/providers/SessionProvider.tsx
63
63
 
64
-
65
-
66
64
  var _jsxruntime = require('react/jsx-runtime');
67
65
  var defaultSession = {
68
66
  authenticated: false,
69
67
  idToken: void 0,
70
68
  accessToken: void 0,
71
- displayMode: "iframe",
72
- iframeRef: null,
73
- setAuthResponseUrl: () => {
74
- }
69
+ displayMode: "iframe"
75
70
  };
76
71
  var SessionContext = _react.createContext.call(void 0, defaultSession);
77
- var SessionProvider = ({
78
- children,
79
- session,
80
- iframeRef,
81
- setAuthResponseUrl
82
- }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
83
- SessionContext.Provider,
84
- {
85
- value: _chunkCRTRMMJ7js.__spreadProps.call(void 0, _chunkCRTRMMJ7js.__spreadValues.call(void 0, {}, session || defaultSession), { iframeRef, setAuthResponseUrl }),
86
- children
87
- }
88
- );
72
+ var SessionProvider = ({ children, session }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SessionContext.Provider, { value: _chunkCRTRMMJ7js.__spreadValues.call(void 0, _chunkCRTRMMJ7js.__spreadValues.call(void 0, {}, defaultSession), session || {}), children });
89
73
 
90
74
  // src/react/hooks/useSession.tsx
91
75
  var useSession = () => {
@@ -117,7 +101,7 @@ var TokenProvider = ({ children }) => {
117
101
  const parsedJWT = _jwt.parseJWT.call(void 0, session.idToken);
118
102
  if (!parsedJWT) return null;
119
103
  const { forwardedTokens } = parsedJWT.payload;
120
- return forwardedTokens ? _chunkCHY6AHA7js.convertForwardedTokenFormat.call(void 0, forwardedTokens) : null;
104
+ return forwardedTokens ? _chunkRF23Q4V6js.convertForwardedTokenFormat.call(void 0, forwardedTokens) : null;
121
105
  }, [session == null ? void 0 : session.idToken]);
122
106
  const value = _react.useMemo.call(void 0,
123
107
  () => ({
@@ -168,7 +152,7 @@ var UserProvider = ({
168
152
  if (!accessToken) {
169
153
  return null;
170
154
  }
171
- const userSession = new (0, _chunkCHY6AHA7js.GenericUserSession)(storage);
155
+ const userSession = new (0, _chunkRF23Q4V6js.GenericUserSession)(storage);
172
156
  return userSession.get();
173
157
  });
174
158
  const {
@@ -273,7 +257,7 @@ var CivicAuthIframe = _react.forwardRef.call(void 0,
273
257
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
274
258
  "iframe",
275
259
  {
276
- id: _chunkCHY6AHA7js.IFRAME_ID,
260
+ id: _chunkRF23Q4V6js.IFRAME_ID,
277
261
  ref,
278
262
  className: "cac-h-[26rem] cac-w-80 cac-border-none",
279
263
  onLoad
@@ -328,7 +312,7 @@ var CivicAuthIframeContainer = ({
328
312
  const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
329
313
  const { isLoading: isAuthLoading } = useAuth();
330
314
  const config = useConfig();
331
- const { setAuthResponseUrl, iframeRef } = useSession();
315
+ const { setAuthResponseUrl, iframeRef } = useIframe();
332
316
  const processIframeUrl = _react.useCallback.call(void 0, () => {
333
317
  if (iframeRef && iframeRef.current && iframeRef.current.contentWindow) {
334
318
  try {
@@ -336,9 +320,9 @@ var CivicAuthIframeContainer = ({
336
320
  if (iframeUrl.startsWith(config.redirectUrl)) {
337
321
  setIsLoading(true);
338
322
  const iframeBody = iframeRef.current.contentWindow.document.body.innerHTML;
339
- if (iframeBody.includes(_chunkCHY6AHA7js.TOKEN_EXCHANGE_TRIGGER_TEXT)) {
323
+ if (iframeBody.includes(_chunkRF23Q4V6js.TOKEN_EXCHANGE_TRIGGER_TEXT)) {
340
324
  console.log(
341
- `${_chunkCHY6AHA7js.TOKEN_EXCHANGE_TRIGGER_TEXT}, calling callback URL again...`
325
+ `${_chunkRF23Q4V6js.TOKEN_EXCHANGE_TRIGGER_TEXT}, calling callback URL again...`
342
326
  );
343
327
  const params = new URL(iframeUrl).searchParams;
344
328
  fetch(`${config.redirectUrl}?${params.toString()}`);
@@ -423,6 +407,23 @@ var ConfigProvider = ({
423
407
  }
424
408
  );
425
409
 
410
+ // src/react/providers/IframeProvider.tsx
411
+
412
+
413
+
414
+
415
+ var defaultIframe = {
416
+ iframeRef: null,
417
+ setAuthResponseUrl: () => {
418
+ }
419
+ };
420
+ var IframeContext = _react.createContext.call(void 0, defaultIframe);
421
+ var IframeProvider = ({
422
+ children,
423
+ iframeRef,
424
+ setAuthResponseUrl
425
+ }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IframeContext.Provider, { value: { iframeRef, setAuthResponseUrl }, children });
426
+
426
427
  // src/shared/AuthProvider.tsx
427
428
 
428
429
  var globalThisObject;
@@ -435,7 +436,7 @@ if (typeof window !== "undefined") {
435
436
  }
436
437
  globalThisObject.globalThis = globalThisObject;
437
438
  function BlockDisplay({ children }) {
438
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "cac-absolute cac-left-0 cac-top-0 cac-z-50 cac-flex cac-h-screen cac-w-screen cac-items-center cac-justify-center cac-bg-white", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "cac-absolute cac-inset-0 cac-flex cac-items-center cac-justify-center cac-bg-white", children }) });
439
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "cac-relative cac-left-0 cac-top-0 cac-z-50 cac-flex cac-h-screen cac-w-screen cac-items-center cac-justify-center cac-bg-white", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "cac-absolute cac-inset-0 cac-flex cac-items-center cac-justify-center cac-bg-white", children }) });
439
440
  }
440
441
  var AuthProvider = ({
441
442
  children,
@@ -446,7 +447,8 @@ var AuthProvider = ({
446
447
  onSignOut,
447
448
  pkceConsumer,
448
449
  nonce,
449
- modalIframe = true
450
+ modalIframe = true,
451
+ sessionData: inputSessionData
450
452
  }) => {
451
453
  const [iframeUrl, setIframeUrl] = _react.useState.call(void 0, null);
452
454
  const [currentUrl, setCurrentUrl] = _react.useState.call(void 0, null);
@@ -459,11 +461,11 @@ var AuthProvider = ({
459
461
  const [isRedirecting, setIsRedirecting] = _react.useState.call(void 0, false);
460
462
  const queryClient3 = _reactquery.useQueryClient.call(void 0, );
461
463
  const iframeRef = _react.useRef.call(void 0, null);
462
- const serverTokenExchange = pkceConsumer instanceof _chunkCHY6AHA7js.ConfidentialClientPKCEConsumer;
464
+ const serverTokenExchange = pkceConsumer instanceof _chunkRF23Q4V6js.ConfidentialClientPKCEConsumer;
463
465
  _react.useEffect.call(void 0, () => {
464
466
  if (typeof globalThis.window !== "undefined") {
465
467
  setCurrentUrl(globalThis.window.location.href);
466
- const isInIframeVal = _chunkCHY6AHA7js.isWindowInIframe.call(void 0, globalThis.window);
468
+ const isInIframeVal = _chunkRF23Q4V6js.isWindowInIframe.call(void 0, globalThis.window);
467
469
  setIsInIframe(isInIframeVal);
468
470
  }
469
471
  }, []);
@@ -474,11 +476,11 @@ var AuthProvider = ({
474
476
  const [authService, setAuthService] = _react.useState.call(void 0, );
475
477
  _react.useEffect.call(void 0, () => {
476
478
  if (!currentUrl) return;
477
- _chunkCHY6AHA7js.BrowserAuthenticationService.build({
479
+ _chunkRF23Q4V6js.BrowserAuthenticationService.build({
478
480
  clientId,
479
481
  redirectUrl,
480
482
  oauthServer: config.oauthServer,
481
- scopes: _chunkCHY6AHA7js.DEFAULT_SCOPES,
483
+ scopes: _chunkRF23Q4V6js.DEFAULT_SCOPES,
482
484
  displayMode
483
485
  }).then(setAuthService);
484
486
  }, [currentUrl, clientId, redirectUrl, config, displayMode]);
@@ -499,9 +501,16 @@ var AuthProvider = ({
499
501
  if (!authService) {
500
502
  return { authenticated: false };
501
503
  }
504
+ if (inputSessionData) {
505
+ return inputSessionData;
506
+ }
502
507
  const url = new URL(
503
508
  authResponseUrl ? authResponseUrl : globalThis.window.location.href || ""
504
509
  );
510
+ const existingSessionData = yield authService.validateExistingSession();
511
+ if (existingSessionData.authenticated) {
512
+ return existingSessionData;
513
+ }
505
514
  const code = url.searchParams.get("code");
506
515
  const state = url.searchParams.get("state");
507
516
  if (!serverTokenExchange && code && state && !isInIframe) {
@@ -512,12 +521,12 @@ var AuthProvider = ({
512
521
  state
513
522
  });
514
523
  yield authService.tokenExchange(code, state);
515
- const clientStorage = new (0, _chunkCHY6AHA7js.LocalStorageAdapter)();
516
- const user = yield _chunkCHY6AHA7js.getUser.call(void 0, clientStorage);
524
+ const clientStorage = new (0, _chunkRF23Q4V6js.LocalStorageAdapter)();
525
+ const user = yield _chunkRF23Q4V6js.getUser.call(void 0, clientStorage);
517
526
  if (!user) {
518
527
  throw new Error("Failed to get user info");
519
528
  }
520
- const userSession = new (0, _chunkCHY6AHA7js.GenericUserSession)(clientStorage);
529
+ const userSession = new (0, _chunkRF23Q4V6js.GenericUserSession)(clientStorage);
521
530
  userSession.set(user);
522
531
  onSignIn == null ? void 0 : onSignIn();
523
532
  return authService.getSessionData();
@@ -529,10 +538,6 @@ var AuthProvider = ({
529
538
  return { authenticated: false };
530
539
  }
531
540
  }
532
- const existingSessionData = yield authService.validateExistingSession();
533
- if (existingSessionData.authenticated) {
534
- return existingSessionData;
535
- }
536
541
  return existingSessionData;
537
542
  })
538
543
  });
@@ -565,13 +570,13 @@ var AuthProvider = ({
565
570
  if (!pkceConsumer) {
566
571
  return null;
567
572
  }
568
- return browserAuthenticationInitiator || new (0, _chunkCHY6AHA7js.BrowserAuthenticationInitiator)({
573
+ return browserAuthenticationInitiator || new (0, _chunkRF23Q4V6js.BrowserAuthenticationInitiator)({
569
574
  pkceConsumer,
570
575
  // generate and retrieve the challenge client-side
571
576
  clientId,
572
577
  redirectUrl,
573
- state: _chunkCHY6AHA7js.generateState.call(void 0, useDisplayMode),
574
- scopes: _chunkCHY6AHA7js.DEFAULT_SCOPES,
578
+ state: _chunkRF23Q4V6js.generateState.call(void 0, useDisplayMode),
579
+ scopes: _chunkRF23Q4V6js.DEFAULT_SCOPES,
575
580
  displayMode: useDisplayMode,
576
581
  oauthServer: config.oauthServer,
577
582
  // the endpoints to use for the login (if not obtained from the auth server
@@ -608,11 +613,7 @@ var AuthProvider = ({
608
613
  () => session ? session.authenticated : false,
609
614
  [session]
610
615
  );
611
- const {
612
- data: autoSignIn,
613
- isLoading: autoSignInLoading,
614
- error: autoSignInError
615
- } = _reactquery.useQuery.call(void 0, {
616
+ _reactquery.useQuery.call(void 0, {
616
617
  queryKey: ["autoSignIn", modalIframe, redirectUrl, isAuthenticated],
617
618
  queryFn: () => _chunkCRTRMMJ7js.__async.call(void 0, void 0, null, function* () {
618
619
  if (!modalIframe && redirectUrl && !isAuthenticated && iframeRef.current) {
@@ -642,12 +643,11 @@ var AuthProvider = ({
642
643
  modalIframe,
643
644
  serverTokenExchange,
644
645
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
645
- SessionProvider,
646
+ IframeProvider,
646
647
  {
647
- session,
648
648
  setAuthResponseUrl,
649
649
  iframeRef,
650
- children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, TokenProvider, { children: [
650
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SessionProvider, { session, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, TokenProvider, { children: [
651
651
  modalIframe && !isInIframe && !(session == null ? void 0 : session.authenticated) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
652
652
  "div",
653
653
  {
@@ -660,13 +660,13 @@ var AuthProvider = ({
660
660
  )
661
661
  }
662
662
  ),
663
- modalIframe && (isInIframe || isRedirecting || isLoading) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BlockDisplay, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadingIcon, {}) }),
663
+ modalIframe && (isInIframe || isRedirecting || isLoading && !serverTokenExchange) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BlockDisplay, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadingIcon, {}) }),
664
664
  (tokenExchangeError || error) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BlockDisplay, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
665
665
  "Error: ",
666
666
  (tokenExchangeError || error).message
667
667
  ] }) }),
668
668
  children
669
- ] })
669
+ ] }) })
670
670
  }
671
671
  )
672
672
  }
@@ -683,8 +683,8 @@ var CivicAuthProvider = (_a) => {
683
683
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
684
684
  AuthProvider,
685
685
  _chunkCRTRMMJ7js.__spreadProps.call(void 0, _chunkCRTRMMJ7js.__spreadValues.call(void 0, {}, props), {
686
- pkceConsumer: new (0, _chunkCHY6AHA7js.BrowserPublicClientPKCEProducer)(),
687
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UserProvider, { storage: new (0, _chunkCHY6AHA7js.LocalStorageAdapter)(), children })
686
+ pkceConsumer: new (0, _chunkRF23Q4V6js.BrowserPublicClientPKCEProducer)(),
687
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UserProvider, { storage: new (0, _chunkRF23Q4V6js.LocalStorageAdapter)(), children })
688
688
  })
689
689
  ) });
690
690
  };
@@ -694,6 +694,68 @@ var CivicAuthProvider = (_a) => {
694
694
 
695
695
 
696
696
 
697
+ // src/react/hooks/useTokenCookie.ts
698
+
699
+ var _navigationjs = require('next/navigation.js');
700
+
701
+
702
+ // src/lib/cookies.ts
703
+ var getWindowCookieValue = ({
704
+ key,
705
+ window: window2,
706
+ parseJson = false
707
+ }) => {
708
+ const cookie = window2.document.cookie;
709
+ if (!cookie) return null;
710
+ const cookies = cookie.split(";");
711
+ for (const c of cookies) {
712
+ const [name, value] = c.trim().split("=");
713
+ if (value && name === key) {
714
+ try {
715
+ const decodeURIComponentValue = decodeURIComponent(value);
716
+ return parseJson === true ? JSON.parse(decodeURIComponentValue) : decodeURIComponentValue;
717
+ } catch (e) {
718
+ return value;
719
+ }
720
+ }
721
+ }
722
+ return null;
723
+ };
724
+
725
+ // src/react/hooks/useTokenCookie.ts
726
+ var getTokenFromCookie = (tokenName) => {
727
+ return getWindowCookieValue({
728
+ key: tokenName,
729
+ window: globalThis.window,
730
+ parseJson: false
731
+ });
732
+ };
733
+ var useTokenCookie = (tokenName) => {
734
+ const hasRunRef = _react.useRef.call(void 0, false);
735
+ const router = _navigationjs.useRouter.call(void 0, );
736
+ const { data: token } = _reactquery.useQuery.call(void 0, {
737
+ queryKey: ["token", tokenName],
738
+ queryFn: () => getTokenFromCookie(tokenName) || null,
739
+ refetchInterval: 2e3,
740
+ refetchIntervalInBackground: true,
741
+ enabled: !hasRunRef.current,
742
+ refetchOnWindowFocus: true
743
+ });
744
+ _react.useEffect.call(void 0, () => {
745
+ if (token) {
746
+ if (!hasRunRef.current) {
747
+ hasRunRef.current = true;
748
+ router.refresh();
749
+ }
750
+ } else {
751
+ hasRunRef.current = false;
752
+ }
753
+ }, [token, router]);
754
+ return token != null ? token : null;
755
+ };
756
+
757
+ // src/react/providers/NextAuthProvider.tsx
758
+
697
759
  var queryClient2 = new (0, _reactquery.QueryClient)();
698
760
  var CivicNextAuthProvider = (_a) => {
699
761
  var _b = _a, {
@@ -702,18 +764,23 @@ var CivicNextAuthProvider = (_a) => {
702
764
  "children"
703
765
  ]);
704
766
  const [redirectUrl, setRedirectUrl] = _react.useState.call(void 0, "");
705
- const { clientId, oauthServer, callbackUrl, challengeUrl, logoutUrl } = _chunkN4SAZYOXjs.resolveAuthConfig.call(void 0, );
767
+ const { clientId, oauthServer, callbackUrl, challengeUrl, logoutUrl } = _chunkSEKF2WZXjs.resolveAuthConfig.call(void 0, );
706
768
  _react.useEffect.call(void 0, () => {
707
769
  if (typeof globalThis.window !== "undefined") {
708
770
  const currentUrl = globalThis.window.location.href;
709
- setRedirectUrl(_chunkN4SAZYOXjs.resolveCallbackUrl.call(void 0, _chunkN4SAZYOXjs.resolveAuthConfig.call(void 0, ), currentUrl));
771
+ setRedirectUrl(_chunkSEKF2WZXjs.resolveCallbackUrl.call(void 0, _chunkSEKF2WZXjs.resolveAuthConfig.call(void 0, ), currentUrl));
710
772
  }
711
773
  }, [callbackUrl]);
712
774
  const user = useUserCookie();
775
+ const idToken = useTokenCookie("id_token" /* ID_TOKEN */);
776
+ const combinedUser = user ? _chunkCRTRMMJ7js.__spreadProps.call(void 0, _chunkCRTRMMJ7js.__spreadValues.call(void 0, {}, user || {}), { idToken }) : null;
777
+ const sessionData = _chunkCRTRMMJ7js.__spreadValues.call(void 0, {
778
+ authenticated: !!user
779
+ }, idToken ? { idToken } : {});
713
780
  const signOut = () => _chunkCRTRMMJ7js.__async.call(void 0, void 0, null, function* () {
714
781
  var _a2;
715
- yield fetch(logoutUrl);
716
782
  (_a2 = props.onSignOut) == null ? void 0 : _a2.call(props);
783
+ window.location.href = logoutUrl;
717
784
  return;
718
785
  });
719
786
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider, { client: queryClient2, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -722,12 +789,13 @@ var CivicNextAuthProvider = (_a) => {
722
789
  redirectUrl,
723
790
  config: { oauthServer },
724
791
  clientId,
725
- pkceConsumer: new (0, _chunkCHY6AHA7js.ConfidentialClientPKCEConsumer)(challengeUrl),
792
+ pkceConsumer: new (0, _chunkRF23Q4V6js.ConfidentialClientPKCEConsumer)(challengeUrl),
793
+ sessionData,
726
794
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
727
795
  UserProvider,
728
796
  {
729
- storage: new (0, _chunkN4SAZYOXjs.NextjsClientStorage)(),
730
- user,
797
+ storage: new (0, _chunkSEKF2WZXjs.NextjsClientStorage)(),
798
+ user: combinedUser,
731
799
  signOut,
732
800
  children
733
801
  }
@@ -747,31 +815,14 @@ var useUser = () => {
747
815
 
748
816
  // src/react/hooks/useUserCookie.ts
749
817
 
750
- var _navigationjs = require('next/navigation.js');
751
-
752
818
 
753
- // src/lib/cookies.ts
754
- var getCookieValue = (key, window2) => {
755
- const cookie = window2.document.cookie;
756
- if (!cookie) return null;
757
- const cookies = cookie.split(";");
758
- for (const c of cookies) {
759
- const [name, value] = c.trim().split("=");
760
- if (value && name === key) {
761
- try {
762
- return JSON.parse(decodeURIComponent(value));
763
- } catch (e) {
764
- console.log("Error parsing cookie value", e);
765
- return value;
766
- }
767
- }
768
- }
769
- return null;
770
- };
771
819
 
772
- // src/react/hooks/useUserCookie.ts
773
820
  var getUserFromCookie = () => {
774
- const userCookie = getCookieValue("user", globalThis.window);
821
+ const userCookie = getWindowCookieValue({
822
+ key: "user" /* USER */,
823
+ window: globalThis.window,
824
+ parseJson: true
825
+ });
775
826
  return userCookie;
776
827
  };
777
828
  var useUserCookie = () => {
@@ -795,7 +846,7 @@ var useUserCookie = () => {
795
846
  hasRunRef.current = false;
796
847
  }
797
848
  }, [user, router]);
798
- return user;
849
+ return user != null ? user : null;
799
850
  };
800
851
 
801
852
  // src/react/hooks/useConfig.tsx
@@ -808,6 +859,16 @@ var useConfig = () => {
808
859
  return context;
809
860
  };
810
861
 
862
+ // src/react/hooks/useIframe.tsx
863
+
864
+ var useIframe = () => {
865
+ const context = _react.useContext.call(void 0, IframeContext);
866
+ if (!context) {
867
+ throw new Error("useIframe must be used within an IframeProvider");
868
+ }
869
+ return context;
870
+ };
871
+
811
872
  // src/react/components/UserButton.tsx
812
873
 
813
874
 
@@ -883,7 +944,7 @@ var UserButton = ({
883
944
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
884
945
  "button",
885
946
  {
886
- className: _chunkCHY6AHA7js.cn.call(void 0,
947
+ className: _chunkRF23Q4V6js.cn.call(void 0,
887
948
  "cac-flex cac-w-full cac-items-center cac-justify-between cac-gap-2 cac-rounded-full cac-border cac-border-neutral-500 cac-px-3 cac-py-2 cac-text-neutral-500 cac-transition-colors hover:cac-bg-neutral-200 hover:cac-bg-opacity-50",
888
949
  className
889
950
  ),
@@ -922,7 +983,7 @@ var UserButton = ({
922
983
  "button",
923
984
  {
924
985
  "data-testid": "sign-in-button",
925
- className: _chunkCHY6AHA7js.cn.call(void 0,
986
+ className: _chunkRF23Q4V6js.cn.call(void 0,
926
987
  "cac-rounded-full cac-border cac-border-neutral-500 cac-px-3 cac-py-2 cac-transition-colors hover:cac-bg-neutral-200 hover:cac-bg-opacity-50",
927
988
  className
928
989
  ),
@@ -943,7 +1004,7 @@ var SignInButton = ({
943
1004
  "button",
944
1005
  {
945
1006
  "data-testid": "sign-in-button",
946
- className: _chunkCHY6AHA7js.cn.call(void 0,
1007
+ className: _chunkRF23Q4V6js.cn.call(void 0,
947
1008
  "cac-rounded-full cac-border cac-border-neutral-500 cac-px-3 cac-py-2 cac-transition-colors hover:cac-bg-neutral-200 hover:cac-bg-opacity-50",
948
1009
  className
949
1010
  ),
@@ -960,7 +1021,7 @@ var SignOutButton = ({ className }) => {
960
1021
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
961
1022
  "button",
962
1023
  {
963
- className: _chunkCHY6AHA7js.cn.call(void 0,
1024
+ className: _chunkRF23Q4V6js.cn.call(void 0,
964
1025
  "cac-rounded-full cac-border cac-border-neutral-500 cac-px-3 cac-py-2 cac-transition-colors hover:cac-bg-neutral-200 hover:cac-bg-opacity-50",
965
1026
  className
966
1027
  ),
@@ -973,7 +1034,7 @@ var SignOutButton = ({ className }) => {
973
1034
  // src/react/components/NextLogOut.tsx
974
1035
 
975
1036
  var NextLogOut = ({ children }) => {
976
- const config = _chunkN4SAZYOXjs.resolveAuthConfig.call(void 0, );
1037
+ const config = _chunkSEKF2WZXjs.resolveAuthConfig.call(void 0, );
977
1038
  const logoutUrl = `${config.logoutUrl}`;
978
1039
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href: logoutUrl, children });
979
1040
  };
@@ -991,5 +1052,7 @@ var NextLogOut = ({ children }) => {
991
1052
 
992
1053
 
993
1054
 
994
- exports.CivicAuthIframeContainer = CivicAuthIframeContainer; exports.CivicAuthProvider = CivicAuthProvider; exports.CivicNextAuthProvider = CivicNextAuthProvider; exports.NextLogOut = NextLogOut; exports.SignInButton = SignInButton; exports.SignOutButton = SignOutButton; exports.UserButton = UserButton; exports.useAuth = useAuth; exports.useConfig = useConfig; exports.useSession = useSession; exports.useToken = useToken; exports.useUser = useUser; exports.useUserCookie = useUserCookie;
1055
+
1056
+
1057
+ exports.CivicAuthIframeContainer = CivicAuthIframeContainer; exports.CivicAuthProvider = CivicAuthProvider; exports.CivicNextAuthProvider = CivicNextAuthProvider; exports.NextLogOut = NextLogOut; exports.SignInButton = SignInButton; exports.SignOutButton = SignOutButton; exports.UserButton = UserButton; exports.useAuth = useAuth; exports.useConfig = useConfig; exports.useIframe = useIframe; exports.useSession = useSession; exports.useToken = useToken; exports.useTokenCookie = useTokenCookie; exports.useUser = useUser; exports.useUserCookie = useUserCookie;
995
1058
  //# sourceMappingURL=react.js.map