@asgardeo/react 0.21.0 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -63,6 +63,7 @@ declare class AsgardeoReactClient<T extends AsgardeoReactConfig = AsgardeoReactC
63
63
  isLoading(): boolean;
64
64
  isInitialized(): Promise<boolean>;
65
65
  isSignedIn(): Promise<boolean>;
66
+ startAutoRefreshToken(): Promise<void>;
66
67
  getConfiguration(): T;
67
68
  exchangeToken(config: TokenExchangeRequestConfig): Promise<TokenResponse | Response>;
68
69
  signIn(options?: SignInOptions, sessionId?: string, onSignInSuccess?: (afterSignInUrl: string) => void): Promise<User>;
@@ -193,6 +193,7 @@ declare class AuthAPI {
193
193
  * @return {Promise<boolean>} - A Promise that resolves with `true` if teh user is authenticated.
194
194
  */
195
195
  isSignedIn(): Promise<boolean>;
196
+ startAutoRefreshToken(): Promise<void>;
196
197
  /**
197
198
  * This method specifies if the session is active or not.
198
199
  *
package/dist/cjs/index.js CHANGED
@@ -505,6 +505,9 @@ var _AuthAPI = class _AuthAPI {
505
505
  async isSignedIn() {
506
506
  return this.client.isSignedIn();
507
507
  }
508
+ async startAutoRefreshToken() {
509
+ return this.client.startAutoRefreshToken();
510
+ }
508
511
  /**
509
512
  * This method specifies if the session is active or not.
510
513
  *
@@ -923,6 +926,9 @@ var AsgardeoReactClient = class extends import_browser6.AsgardeoBrowserClient {
923
926
  async isSignedIn() {
924
927
  return this.asgardeo.isSignedIn();
925
928
  }
929
+ async startAutoRefreshToken() {
930
+ return this.asgardeo.startAutoRefreshToken();
931
+ }
926
932
  getConfiguration() {
927
933
  return this.asgardeo.getConfigData();
928
934
  }
@@ -2118,6 +2124,10 @@ var UserProvider_default = UserProvider;
2118
2124
 
2119
2125
  // src/contexts/Asgardeo/AsgardeoProvider.tsx
2120
2126
  var import_jsx_runtime10 = require("react/jsx-runtime");
2127
+ var logger3 = (0, import_browser16.createPackageComponentLogger)(
2128
+ "@asgardeo/react",
2129
+ "AsgardeoProvider"
2130
+ );
2121
2131
  var AsgardeoProvider = ({
2122
2132
  afterSignInUrl = window.location.origin,
2123
2133
  afterSignOutUrl = window.location.origin,
@@ -2275,8 +2285,23 @@ var AsgardeoProvider = ({
2275
2285
  reRenderCheckRef.current = true;
2276
2286
  (async () => {
2277
2287
  const isAlreadySignedIn = await asgardeo.isSignedIn();
2278
- if (isAlreadySignedIn) {
2288
+ const scheduleAutoRefresh = async () => {
2289
+ try {
2290
+ await asgardeo.startAutoRefreshToken();
2291
+ } catch (error) {
2292
+ logger3.warn("Failed to schedule automatic token refresh.", error);
2293
+ }
2294
+ };
2295
+ const resumeSession = async () => {
2279
2296
  await updateSession();
2297
+ await scheduleAutoRefresh();
2298
+ };
2299
+ if (isAlreadySignedIn) {
2300
+ await resumeSession();
2301
+ }
2302
+ await scheduleAutoRefresh();
2303
+ if (await asgardeo.isSignedIn()) {
2304
+ await resumeSession();
2280
2305
  return;
2281
2306
  }
2282
2307
  const currentUrl = new URL(window.location.href);
@@ -2932,7 +2957,7 @@ var useForm_default = useForm;
2932
2957
 
2933
2958
  // src/hooks/useBranding.ts
2934
2959
  var import_browser18 = require("@asgardeo/browser");
2935
- var logger3 = (0, import_browser18.createPackageComponentLogger)(
2960
+ var logger4 = (0, import_browser18.createPackageComponentLogger)(
2936
2961
  "@asgardeo/react",
2937
2962
  "useBranding"
2938
2963
  );
@@ -2940,7 +2965,7 @@ var useBranding = () => {
2940
2965
  try {
2941
2966
  return useBrandingContext_default();
2942
2967
  } catch (error) {
2943
- logger3.warn(
2968
+ logger4.warn(
2944
2969
  "useBranding: BrandingProvider not available. Make sure to wrap your app with BrandingProvider or AsgardeoProvider with branding preferences."
2945
2970
  );
2946
2971
  return {
@@ -7011,7 +7036,7 @@ var BaseSignIn_styles_default = useStyles16;
7011
7036
 
7012
7037
  // src/components/presentation/auth/SignIn/v1/BaseSignIn.tsx
7013
7038
  var import_jsx_runtime58 = require("react/jsx-runtime");
7014
- var logger4 = (0, import_browser48.createPackageComponentLogger)(
7039
+ var logger5 = (0, import_browser48.createPackageComponentLogger)(
7015
7040
  "@asgardeo/react",
7016
7041
  "BaseSignIn"
7017
7042
  );
@@ -7098,7 +7123,7 @@ var BaseSignInContent = ({
7098
7123
  "width=500,height=600,scrollbars=yes,resizable=yes"
7099
7124
  );
7100
7125
  if (!popup) {
7101
- logger4.error("Failed to open popup window");
7126
+ logger5.error("Failed to open popup window");
7102
7127
  return false;
7103
7128
  }
7104
7129
  let messageHandler;
@@ -7160,7 +7185,7 @@ var BaseSignInContent = ({
7160
7185
  const state = url.searchParams.get("state");
7161
7186
  const oauthError = url.searchParams.get("error");
7162
7187
  if (oauthError) {
7163
- logger4.error("OAuth error:");
7188
+ logger5.error("OAuth error:");
7164
7189
  popup.close();
7165
7190
  cleanup();
7166
7191
  return;
@@ -7190,7 +7215,7 @@ var BaseSignInContent = ({
7190
7215
  } catch (e) {
7191
7216
  }
7192
7217
  } catch (e) {
7193
- logger4.error("Error monitoring popup:");
7218
+ logger5.error("Error monitoring popup:");
7194
7219
  }
7195
7220
  }, 1e3);
7196
7221
  return true;
@@ -7329,7 +7354,7 @@ var BaseSignInContent = ({
7329
7354
  }
7330
7355
  }
7331
7356
  } catch (passkeyError) {
7332
- logger4.error("Passkey authentication error:");
7357
+ logger5.error("Passkey authentication error:");
7333
7358
  let errorMessage = passkeyError instanceof Error ? passkeyError.message : t("errors.signin.flow.passkeys.failure");
7334
7359
  if (passkeyError instanceof Error && passkeyError.message.includes("security")) {
7335
7360
  errorMessage += " This may be due to browser security settings, an insecure connection, or device restrictions.";
@@ -8722,7 +8747,7 @@ var flowIconRegistry_default = flowIconRegistry;
8722
8747
 
8723
8748
  // src/components/presentation/auth/AuthOptionFactory.tsx
8724
8749
  var import_jsx_runtime68 = require("react/jsx-runtime");
8725
- var logger5 = (0, import_browser53.createPackageComponentLogger)(
8750
+ var logger6 = (0, import_browser53.createPackageComponentLogger)(
8726
8751
  "@asgardeo/react",
8727
8752
  "AuthOptionFactory"
8728
8753
  );
@@ -8965,7 +8990,7 @@ var createAuthComponentFromFlow = (component, formValues, touchedFields, formErr
8965
8990
  const identifier = component.ref ?? component.id;
8966
8991
  const rootOuId = options.additionalData?.["rootOuId"];
8967
8992
  if (!rootOuId || !options.fetchOrganizationUnitChildren) {
8968
- logger5.warn("OU_SELECT requires additionalData.rootOuId and fetchOrganizationUnitChildren. Skipping render.");
8993
+ logger6.warn("OU_SELECT requires additionalData.rootOuId and fetchOrganizationUnitChildren. Skipping render.");
8969
8994
  return null;
8970
8995
  }
8971
8996
  return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
@@ -9046,7 +9071,7 @@ var createAuthComponentFromFlow = (component, formValues, touchedFields, formErr
9046
9071
  const iconName = component.name || "";
9047
9072
  const IconComponent = flowIconRegistry_default[iconName];
9048
9073
  if (!IconComponent) {
9049
- logger5.warn(`Unknown icon name: "${iconName}". Skipping render.`);
9074
+ logger6.warn(`Unknown icon name: "${iconName}". Skipping render.`);
9050
9075
  return null;
9051
9076
  }
9052
9077
  return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(IconComponent, { size: component.size || 24, color: component.color || "currentColor" }, key);
@@ -9102,7 +9127,7 @@ var createAuthComponentFromFlow = (component, formValues, touchedFields, formErr
9102
9127
  return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FlowTimer_default, { expiresIn, textTemplate }, key);
9103
9128
  }
9104
9129
  default:
9105
- logger5.warn(`Unsupported component type: ${component.type}. Skipping render.`);
9130
+ logger6.warn(`Unsupported component type: ${component.type}. Skipping render.`);
9106
9131
  return null;
9107
9132
  }
9108
9133
  };
@@ -10848,7 +10873,7 @@ var BaseSignUp_styles_default = useStyles20;
10848
10873
 
10849
10874
  // src/components/presentation/auth/SignUp/v1/BaseSignUp.tsx
10850
10875
  var import_jsx_runtime79 = require("react/jsx-runtime");
10851
- var logger6 = (0, import_browser68.createPackageComponentLogger)(
10876
+ var logger7 = (0, import_browser68.createPackageComponentLogger)(
10852
10877
  "@asgardeo/react",
10853
10878
  "BaseSignUp"
10854
10879
  );
@@ -10989,7 +11014,7 @@ var BaseSignUpContent = ({
10989
11014
  const redirectUrl = response.data.redirectURL;
10990
11015
  const popup = window.open(redirectUrl, "oauth_popup", "width=500,height=600,scrollbars=yes,resizable=yes");
10991
11016
  if (!popup) {
10992
- logger6.error("Failed to open popup window");
11017
+ logger7.error("Failed to open popup window");
10993
11018
  return false;
10994
11019
  }
10995
11020
  let hasProcessedCallback = false;
@@ -11058,7 +11083,7 @@ var BaseSignUpContent = ({
11058
11083
  const state = url.searchParams.get("state");
11059
11084
  const error = url.searchParams.get("error");
11060
11085
  if (error) {
11061
- logger6.error("OAuth error:");
11086
+ logger7.error("OAuth error:");
11062
11087
  popup.close();
11063
11088
  cleanup();
11064
11089
  return;
@@ -11093,7 +11118,7 @@ var BaseSignUpContent = ({
11093
11118
  } catch (e) {
11094
11119
  }
11095
11120
  } catch (e) {
11096
- logger6.error("Error monitoring popup:");
11121
+ logger7.error("Error monitoring popup:");
11097
11122
  }
11098
11123
  }, 1e3);
11099
11124
  return true;
@@ -11357,7 +11382,7 @@ var getAuthComponentHeadings_default = getAuthComponentHeadings;
11357
11382
 
11358
11383
  // src/components/presentation/auth/SignUp/v2/BaseSignUp.tsx
11359
11384
  var import_jsx_runtime80 = require("react/jsx-runtime");
11360
- var logger7 = (0, import_browser69.createPackageComponentLogger)(
11385
+ var logger8 = (0, import_browser69.createPackageComponentLogger)(
11361
11386
  "@asgardeo/react",
11362
11387
  "BaseSignUp"
11363
11388
  );
@@ -11514,7 +11539,7 @@ var BaseSignUpContent2 = ({
11514
11539
  const redirectUrl = response.data.redirectURL;
11515
11540
  const popup = window.open(redirectUrl, "oauth_popup", "width=500,height=600,scrollbars=yes,resizable=yes");
11516
11541
  if (!popup) {
11517
- logger7.error("Failed to open popup window");
11542
+ logger8.error("Failed to open popup window");
11518
11543
  return false;
11519
11544
  }
11520
11545
  let hasProcessedCallback = false;
@@ -11585,7 +11610,7 @@ var BaseSignUpContent2 = ({
11585
11610
  const state = url.searchParams.get("state");
11586
11611
  const error = url.searchParams.get("error");
11587
11612
  if (error) {
11588
- logger7.error("OAuth error:");
11613
+ logger8.error("OAuth error:");
11589
11614
  popup.close();
11590
11615
  cleanup();
11591
11616
  return;
@@ -11620,7 +11645,7 @@ var BaseSignUpContent2 = ({
11620
11645
  } catch (e) {
11621
11646
  }
11622
11647
  } catch (e) {
11623
- logger7.error("Error monitoring popup:");
11648
+ logger8.error("Error monitoring popup:");
11624
11649
  }
11625
11650
  }, 1e3);
11626
11651
  return true;
@@ -15964,7 +15989,7 @@ var BaseCreateOrganization_styles_default = useStyles29;
15964
15989
 
15965
15990
  // src/components/presentation/CreateOrganization/BaseCreateOrganization.tsx
15966
15991
  var import_jsx_runtime109 = require("react/jsx-runtime");
15967
- var logger8 = (0, import_browser86.createPackageComponentLogger)(
15992
+ var logger9 = (0, import_browser86.createPackageComponentLogger)(
15968
15993
  "@asgardeo/react",
15969
15994
  "BaseCreateOrganization"
15970
15995
  );
@@ -16050,7 +16075,7 @@ var BaseCreateOrganization = ({
16050
16075
  onSuccess(payload);
16051
16076
  }
16052
16077
  } catch (submitError) {
16053
- logger8.error("Form submission error:");
16078
+ logger9.error("Form submission error:");
16054
16079
  }
16055
16080
  };
16056
16081
  const createOrganizationContent = /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: (0, import_css64.cx)(styles["root"], cardLayout && styles["card"], className), style, children: /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)("div", { className: (0, import_css64.cx)(styles["content"]), children: [
@@ -17577,7 +17602,7 @@ var updateOrganization_default = updateOrganization;
17577
17602
 
17578
17603
  // src/components/presentation/OrganizationProfile/OrganizationProfile.tsx
17579
17604
  var import_jsx_runtime115 = require("react/jsx-runtime");
17580
- var logger9 = (0, import_browser92.createPackageComponentLogger)(
17605
+ var logger10 = (0, import_browser92.createPackageComponentLogger)(
17581
17606
  "@asgardeo/react",
17582
17607
  "OrganizationProfile"
17583
17608
  );
@@ -17608,7 +17633,7 @@ var OrganizationProfile = ({
17608
17633
  });
17609
17634
  setOrganization(orgData);
17610
17635
  } catch (err) {
17611
- logger9.error("Failed to fetch organization:");
17636
+ logger10.error("Failed to fetch organization:");
17612
17637
  setOrganization(null);
17613
17638
  }
17614
17639
  };
@@ -17630,7 +17655,7 @@ var OrganizationProfile = ({
17630
17655
  await onUpdate(payload);
17631
17656
  }
17632
17657
  } catch (err) {
17633
- logger9.error("Failed to update organization:");
17658
+ logger10.error("Failed to update organization:");
17634
17659
  throw err;
17635
17660
  }
17636
17661
  };