@enterprisestandard/react 0.0.3-beta.2 → 0.0.3-beta.3

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 (2) hide show
  1. package/dist/index.js +31 -21
  2. package/package.json +2 -1
package/dist/index.js CHANGED
@@ -45,10 +45,10 @@ function sso(config) {
45
45
  return;
46
46
  }
47
47
  try {
48
- const token = await getTokenFromCookies(request);
49
- if (!token)
48
+ const { tokens } = await getTokenFromCookies(request);
49
+ if (!tokens)
50
50
  return;
51
- return await parseUser(token);
51
+ return await parseUser(tokens);
52
52
  } catch (error) {
53
53
  console.error("Error parsing user from cookies:", error);
54
54
  return;
@@ -334,7 +334,7 @@ function sso(config) {
334
334
  const refresh_token = getCookie("refresh", req);
335
335
  const control = getCookie("control", req, true);
336
336
  if (!access_token || !id_token || !refresh_token || !control) {
337
- return;
337
+ return { tokens: undefined, refreshHeaders: [] };
338
338
  }
339
339
  let tokenResponse = {
340
340
  access_token,
@@ -344,14 +344,17 @@ function sso(config) {
344
344
  };
345
345
  if (control.expires && refresh_token && Date.now() > new Date(control.expires).getTime()) {
346
346
  tokenResponse = await refreshToken(refresh_token);
347
+ const user = await parseUser(tokenResponse);
348
+ const refreshHeaders = createJwtCookies(tokenResponse, user.sso.expires);
349
+ return { tokens: tokenResponse, refreshHeaders };
347
350
  }
348
- return tokenResponse;
351
+ return { tokens: tokenResponse, refreshHeaders: [] };
349
352
  }
350
353
  async function getJwt(request) {
351
- const tokenResponse = await getTokenFromCookies(request);
352
- if (!tokenResponse)
354
+ const { tokens } = await getTokenFromCookies(request);
355
+ if (!tokens)
353
356
  return;
354
- return tokenResponse.access_token;
357
+ return tokens.access_token;
355
358
  }
356
359
  function createCookie(name, value, expires) {
357
360
  name = `${configWithDefaults.cookiePrefix}.${name}`;
@@ -396,32 +399,39 @@ function sso(config) {
396
399
  return callbackHandler(request);
397
400
  }
398
401
  if (userUrl === path) {
399
- const user = await getUser(request);
400
- if (!user) {
402
+ const { tokens, refreshHeaders } = await getTokenFromCookies(request);
403
+ if (!tokens) {
401
404
  return new Response("User not logged in", { status: 401 });
402
405
  }
406
+ const user = await parseUser(tokens);
403
407
  return new Response(JSON.stringify(user), {
404
- headers: [["Content-Type", "application/json"]]
408
+ headers: [["Content-Type", "application/json"], ...refreshHeaders]
405
409
  });
406
410
  }
407
411
  if (tokenUrl === path) {
408
- const tokenResponse = await getTokenFromCookies(request);
409
- if (!tokenResponse) {
412
+ const { tokens, refreshHeaders } = await getTokenFromCookies(request);
413
+ if (!tokens) {
410
414
  return new Response("User not logged in", { status: 401 });
411
415
  }
412
416
  return new Response(JSON.stringify({
413
- token: tokenResponse.access_token,
414
- expires: tokenResponse.expires
417
+ token: tokens.access_token,
418
+ expires: tokens.expires
415
419
  }), {
416
- headers: [["Content-Type", "application/json"]]
420
+ headers: [["Content-Type", "application/json"], ...refreshHeaders]
417
421
  });
418
422
  }
419
423
  if (refreshUrl === path) {
420
- const tokenResponse = await getTokenFromCookies(request);
421
- if (!tokenResponse) {
424
+ const refresh_token = getCookie("refresh", request);
425
+ if (!refresh_token) {
422
426
  return new Response("User not logged in", { status: 401 });
423
427
  }
424
- return new Response("Refresh Complete", { status: 200 });
428
+ const newTokenResponse = await refreshToken(refresh_token);
429
+ const user = await parseUser(newTokenResponse);
430
+ const refreshHeaders = createJwtCookies(newTokenResponse, user.sso.expires);
431
+ return new Response("Refresh Complete", {
432
+ status: 200,
433
+ headers: refreshHeaders
434
+ });
425
435
  }
426
436
  if (loginUrl === "*" || loginUrl === path) {
427
437
  return initiateLogin({
@@ -632,8 +642,8 @@ function SignedIn({ children }) {
632
642
  // src/ui/signed-out.tsx
633
643
  import { jsxDEV as jsxDEV3, Fragment as Fragment3 } from "react/jsx-dev-runtime";
634
644
  function SignedOut({ children }) {
635
- const { user } = useUser();
636
- if (user)
645
+ const { user, isLoading } = useUser();
646
+ if (user || isLoading)
637
647
  return null;
638
648
  return /* @__PURE__ */ jsxDEV3(Fragment3, {
639
649
  children
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enterprisestandard/react",
3
- "version": "0.0.3-beta.2",
3
+ "version": "0.0.3-beta.3",
4
4
  "description": "Enterprise Standard React Components",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
@@ -30,6 +30,7 @@
30
30
  "access": "public"
31
31
  },
32
32
  "devDependencies": {
33
+ "@types/react": "^18.0.0",
33
34
  "typescript": "^5.0.0"
34
35
  },
35
36
  "author": "enterprisestandard",