@asgardeo/react 0.20.1 → 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.
- package/dist/AsgardeoReactClient.d.ts +2 -1
- package/dist/__temp__/api.d.ts +4 -3
- package/dist/__temp__/models.d.ts +2 -2
- package/dist/cjs/index.js +56 -27
- package/dist/cjs/index.js.map +3 -3
- package/dist/contexts/Asgardeo/AsgardeoProvider.d.ts +1 -1
- package/dist/index.js +65 -35
- package/dist/index.js.map +3 -3
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
|
|
2
|
+
* Copyright (c) 2025-2026, WSO2 LLC. (https://www.wso2.com).
|
|
3
3
|
*
|
|
4
4
|
* WSO2 LLC. licenses this file to you under the Apache License,
|
|
5
5
|
* Version 2.0 (the "License"); you may not use this file except
|
|
@@ -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>;
|
package/dist/__temp__/api.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* specific language governing permissions and limitations
|
|
16
16
|
* under the License.
|
|
17
17
|
*/
|
|
18
|
-
import { AsgardeoSPAClient, AuthClientConfig, User, LegacyConfig as Config, IdToken, Hooks,
|
|
18
|
+
import { AsgardeoSPAClient, AuthClientConfig, User, LegacyConfig as Config, IdToken, Hooks, HttpClient, HttpRequestConfig, HttpResponse, OIDCEndpoints, SignInConfig, SPACustomGrantConfig } from '@asgardeo/browser';
|
|
19
19
|
import { AuthStateInterface } from './models';
|
|
20
20
|
declare class AuthAPI {
|
|
21
21
|
static DEFAULT_STATE: AuthStateInterface;
|
|
@@ -133,9 +133,9 @@ declare class AuthAPI {
|
|
|
133
133
|
/**
|
|
134
134
|
* This methods returns the Axios http client.
|
|
135
135
|
*
|
|
136
|
-
* @return {
|
|
136
|
+
* @return {HttpClient} - The Axios HTTP client.
|
|
137
137
|
*/
|
|
138
|
-
getHttpClient(): Promise<
|
|
138
|
+
getHttpClient(): Promise<HttpClient>;
|
|
139
139
|
/**
|
|
140
140
|
* This method decodes a JWT token payload and returns it.
|
|
141
141
|
*
|
|
@@ -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
|
*
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* specific language governing permissions and limitations
|
|
16
16
|
* under the License.
|
|
17
17
|
*/
|
|
18
|
-
import { AsgardeoAuthException, AuthClientConfig, AuthSPAClientConfig, Config, TokenExchangeRequestConfig, IdToken, Hooks,
|
|
18
|
+
import { AsgardeoAuthException, AuthClientConfig, AuthSPAClientConfig, Config, TokenExchangeRequestConfig, IdToken, Hooks, HttpClient, HttpRequestConfig, HttpResponse, OIDCEndpoints, SignInConfig, User } from '@asgardeo/browser';
|
|
19
19
|
export interface ReactConfig {
|
|
20
20
|
disableAutoSignIn?: boolean;
|
|
21
21
|
/**
|
|
@@ -65,7 +65,7 @@ export interface AuthContextInterface {
|
|
|
65
65
|
getAccessToken(): Promise<string>;
|
|
66
66
|
getDecodedIDPIDToken(): Promise<IdToken>;
|
|
67
67
|
getDecodedIdToken(sessionId?: string): Promise<IdToken>;
|
|
68
|
-
getHttpClient(): Promise<
|
|
68
|
+
getHttpClient(): Promise<HttpClient>;
|
|
69
69
|
getIdToken(): Promise<string>;
|
|
70
70
|
getOpenIDProviderEndpoints(): Promise<OIDCEndpoints>;
|
|
71
71
|
getUser(): Promise<User>;
|
package/dist/cjs/index.js
CHANGED
|
@@ -427,7 +427,7 @@ var _AuthAPI = class _AuthAPI {
|
|
|
427
427
|
/**
|
|
428
428
|
* This methods returns the Axios http client.
|
|
429
429
|
*
|
|
430
|
-
* @return {
|
|
430
|
+
* @return {HttpClient} - The Axios HTTP client.
|
|
431
431
|
*/
|
|
432
432
|
async getHttpClient() {
|
|
433
433
|
return this.client.getHttpClient();
|
|
@@ -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
|
*
|
|
@@ -748,7 +751,11 @@ var AsgardeoReactClient = class extends import_browser6.AsgardeoBrowserClient {
|
|
|
748
751
|
resolvedOrganizationHandle = (0, import_browser6.deriveOrganizationHandleFromBaseUrl)(config?.baseUrl);
|
|
749
752
|
}
|
|
750
753
|
return this.withLoading(async () => {
|
|
751
|
-
this.initializeConfig = {
|
|
754
|
+
this.initializeConfig = {
|
|
755
|
+
...config,
|
|
756
|
+
organizationHandle: resolvedOrganizationHandle,
|
|
757
|
+
periodicTokenRefresh: config?.tokenLifecycle?.refreshToken?.autoRefresh ?? config?.periodicTokenRefresh
|
|
758
|
+
};
|
|
752
759
|
return this.asgardeo.init(this.initializeConfig);
|
|
753
760
|
});
|
|
754
761
|
}
|
|
@@ -919,6 +926,9 @@ var AsgardeoReactClient = class extends import_browser6.AsgardeoBrowserClient {
|
|
|
919
926
|
async isSignedIn() {
|
|
920
927
|
return this.asgardeo.isSignedIn();
|
|
921
928
|
}
|
|
929
|
+
async startAutoRefreshToken() {
|
|
930
|
+
return this.asgardeo.startAutoRefreshToken();
|
|
931
|
+
}
|
|
922
932
|
getConfiguration() {
|
|
923
933
|
return this.asgardeo.getConfigData();
|
|
924
934
|
}
|
|
@@ -2114,6 +2124,10 @@ var UserProvider_default = UserProvider;
|
|
|
2114
2124
|
|
|
2115
2125
|
// src/contexts/Asgardeo/AsgardeoProvider.tsx
|
|
2116
2126
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
2127
|
+
var logger3 = (0, import_browser16.createPackageComponentLogger)(
|
|
2128
|
+
"@asgardeo/react",
|
|
2129
|
+
"AsgardeoProvider"
|
|
2130
|
+
);
|
|
2117
2131
|
var AsgardeoProvider = ({
|
|
2118
2132
|
afterSignInUrl = window.location.origin,
|
|
2119
2133
|
afterSignOutUrl = window.location.origin,
|
|
@@ -2271,8 +2285,23 @@ var AsgardeoProvider = ({
|
|
|
2271
2285
|
reRenderCheckRef.current = true;
|
|
2272
2286
|
(async () => {
|
|
2273
2287
|
const isAlreadySignedIn = await asgardeo.isSignedIn();
|
|
2274
|
-
|
|
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 () => {
|
|
2275
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();
|
|
2276
2305
|
return;
|
|
2277
2306
|
}
|
|
2278
2307
|
const currentUrl = new URL(window.location.href);
|
|
@@ -2928,7 +2957,7 @@ var useForm_default = useForm;
|
|
|
2928
2957
|
|
|
2929
2958
|
// src/hooks/useBranding.ts
|
|
2930
2959
|
var import_browser18 = require("@asgardeo/browser");
|
|
2931
|
-
var
|
|
2960
|
+
var logger4 = (0, import_browser18.createPackageComponentLogger)(
|
|
2932
2961
|
"@asgardeo/react",
|
|
2933
2962
|
"useBranding"
|
|
2934
2963
|
);
|
|
@@ -2936,7 +2965,7 @@ var useBranding = () => {
|
|
|
2936
2965
|
try {
|
|
2937
2966
|
return useBrandingContext_default();
|
|
2938
2967
|
} catch (error) {
|
|
2939
|
-
|
|
2968
|
+
logger4.warn(
|
|
2940
2969
|
"useBranding: BrandingProvider not available. Make sure to wrap your app with BrandingProvider or AsgardeoProvider with branding preferences."
|
|
2941
2970
|
);
|
|
2942
2971
|
return {
|
|
@@ -7007,7 +7036,7 @@ var BaseSignIn_styles_default = useStyles16;
|
|
|
7007
7036
|
|
|
7008
7037
|
// src/components/presentation/auth/SignIn/v1/BaseSignIn.tsx
|
|
7009
7038
|
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
7010
|
-
var
|
|
7039
|
+
var logger5 = (0, import_browser48.createPackageComponentLogger)(
|
|
7011
7040
|
"@asgardeo/react",
|
|
7012
7041
|
"BaseSignIn"
|
|
7013
7042
|
);
|
|
@@ -7094,7 +7123,7 @@ var BaseSignInContent = ({
|
|
|
7094
7123
|
"width=500,height=600,scrollbars=yes,resizable=yes"
|
|
7095
7124
|
);
|
|
7096
7125
|
if (!popup) {
|
|
7097
|
-
|
|
7126
|
+
logger5.error("Failed to open popup window");
|
|
7098
7127
|
return false;
|
|
7099
7128
|
}
|
|
7100
7129
|
let messageHandler;
|
|
@@ -7156,7 +7185,7 @@ var BaseSignInContent = ({
|
|
|
7156
7185
|
const state = url.searchParams.get("state");
|
|
7157
7186
|
const oauthError = url.searchParams.get("error");
|
|
7158
7187
|
if (oauthError) {
|
|
7159
|
-
|
|
7188
|
+
logger5.error("OAuth error:");
|
|
7160
7189
|
popup.close();
|
|
7161
7190
|
cleanup();
|
|
7162
7191
|
return;
|
|
@@ -7186,7 +7215,7 @@ var BaseSignInContent = ({
|
|
|
7186
7215
|
} catch (e) {
|
|
7187
7216
|
}
|
|
7188
7217
|
} catch (e) {
|
|
7189
|
-
|
|
7218
|
+
logger5.error("Error monitoring popup:");
|
|
7190
7219
|
}
|
|
7191
7220
|
}, 1e3);
|
|
7192
7221
|
return true;
|
|
@@ -7325,7 +7354,7 @@ var BaseSignInContent = ({
|
|
|
7325
7354
|
}
|
|
7326
7355
|
}
|
|
7327
7356
|
} catch (passkeyError) {
|
|
7328
|
-
|
|
7357
|
+
logger5.error("Passkey authentication error:");
|
|
7329
7358
|
let errorMessage = passkeyError instanceof Error ? passkeyError.message : t("errors.signin.flow.passkeys.failure");
|
|
7330
7359
|
if (passkeyError instanceof Error && passkeyError.message.includes("security")) {
|
|
7331
7360
|
errorMessage += " This may be due to browser security settings, an insecure connection, or device restrictions.";
|
|
@@ -8718,7 +8747,7 @@ var flowIconRegistry_default = flowIconRegistry;
|
|
|
8718
8747
|
|
|
8719
8748
|
// src/components/presentation/auth/AuthOptionFactory.tsx
|
|
8720
8749
|
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
8721
|
-
var
|
|
8750
|
+
var logger6 = (0, import_browser53.createPackageComponentLogger)(
|
|
8722
8751
|
"@asgardeo/react",
|
|
8723
8752
|
"AuthOptionFactory"
|
|
8724
8753
|
);
|
|
@@ -8961,7 +8990,7 @@ var createAuthComponentFromFlow = (component, formValues, touchedFields, formErr
|
|
|
8961
8990
|
const identifier = component.ref ?? component.id;
|
|
8962
8991
|
const rootOuId = options.additionalData?.["rootOuId"];
|
|
8963
8992
|
if (!rootOuId || !options.fetchOrganizationUnitChildren) {
|
|
8964
|
-
|
|
8993
|
+
logger6.warn("OU_SELECT requires additionalData.rootOuId and fetchOrganizationUnitChildren. Skipping render.");
|
|
8965
8994
|
return null;
|
|
8966
8995
|
}
|
|
8967
8996
|
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
@@ -9042,7 +9071,7 @@ var createAuthComponentFromFlow = (component, formValues, touchedFields, formErr
|
|
|
9042
9071
|
const iconName = component.name || "";
|
|
9043
9072
|
const IconComponent = flowIconRegistry_default[iconName];
|
|
9044
9073
|
if (!IconComponent) {
|
|
9045
|
-
|
|
9074
|
+
logger6.warn(`Unknown icon name: "${iconName}". Skipping render.`);
|
|
9046
9075
|
return null;
|
|
9047
9076
|
}
|
|
9048
9077
|
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(IconComponent, { size: component.size || 24, color: component.color || "currentColor" }, key);
|
|
@@ -9098,7 +9127,7 @@ var createAuthComponentFromFlow = (component, formValues, touchedFields, formErr
|
|
|
9098
9127
|
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FlowTimer_default, { expiresIn, textTemplate }, key);
|
|
9099
9128
|
}
|
|
9100
9129
|
default:
|
|
9101
|
-
|
|
9130
|
+
logger6.warn(`Unsupported component type: ${component.type}. Skipping render.`);
|
|
9102
9131
|
return null;
|
|
9103
9132
|
}
|
|
9104
9133
|
};
|
|
@@ -10844,7 +10873,7 @@ var BaseSignUp_styles_default = useStyles20;
|
|
|
10844
10873
|
|
|
10845
10874
|
// src/components/presentation/auth/SignUp/v1/BaseSignUp.tsx
|
|
10846
10875
|
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
10847
|
-
var
|
|
10876
|
+
var logger7 = (0, import_browser68.createPackageComponentLogger)(
|
|
10848
10877
|
"@asgardeo/react",
|
|
10849
10878
|
"BaseSignUp"
|
|
10850
10879
|
);
|
|
@@ -10985,7 +11014,7 @@ var BaseSignUpContent = ({
|
|
|
10985
11014
|
const redirectUrl = response.data.redirectURL;
|
|
10986
11015
|
const popup = window.open(redirectUrl, "oauth_popup", "width=500,height=600,scrollbars=yes,resizable=yes");
|
|
10987
11016
|
if (!popup) {
|
|
10988
|
-
|
|
11017
|
+
logger7.error("Failed to open popup window");
|
|
10989
11018
|
return false;
|
|
10990
11019
|
}
|
|
10991
11020
|
let hasProcessedCallback = false;
|
|
@@ -11054,7 +11083,7 @@ var BaseSignUpContent = ({
|
|
|
11054
11083
|
const state = url.searchParams.get("state");
|
|
11055
11084
|
const error = url.searchParams.get("error");
|
|
11056
11085
|
if (error) {
|
|
11057
|
-
|
|
11086
|
+
logger7.error("OAuth error:");
|
|
11058
11087
|
popup.close();
|
|
11059
11088
|
cleanup();
|
|
11060
11089
|
return;
|
|
@@ -11089,7 +11118,7 @@ var BaseSignUpContent = ({
|
|
|
11089
11118
|
} catch (e) {
|
|
11090
11119
|
}
|
|
11091
11120
|
} catch (e) {
|
|
11092
|
-
|
|
11121
|
+
logger7.error("Error monitoring popup:");
|
|
11093
11122
|
}
|
|
11094
11123
|
}, 1e3);
|
|
11095
11124
|
return true;
|
|
@@ -11353,7 +11382,7 @@ var getAuthComponentHeadings_default = getAuthComponentHeadings;
|
|
|
11353
11382
|
|
|
11354
11383
|
// src/components/presentation/auth/SignUp/v2/BaseSignUp.tsx
|
|
11355
11384
|
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
11356
|
-
var
|
|
11385
|
+
var logger8 = (0, import_browser69.createPackageComponentLogger)(
|
|
11357
11386
|
"@asgardeo/react",
|
|
11358
11387
|
"BaseSignUp"
|
|
11359
11388
|
);
|
|
@@ -11510,7 +11539,7 @@ var BaseSignUpContent2 = ({
|
|
|
11510
11539
|
const redirectUrl = response.data.redirectURL;
|
|
11511
11540
|
const popup = window.open(redirectUrl, "oauth_popup", "width=500,height=600,scrollbars=yes,resizable=yes");
|
|
11512
11541
|
if (!popup) {
|
|
11513
|
-
|
|
11542
|
+
logger8.error("Failed to open popup window");
|
|
11514
11543
|
return false;
|
|
11515
11544
|
}
|
|
11516
11545
|
let hasProcessedCallback = false;
|
|
@@ -11581,7 +11610,7 @@ var BaseSignUpContent2 = ({
|
|
|
11581
11610
|
const state = url.searchParams.get("state");
|
|
11582
11611
|
const error = url.searchParams.get("error");
|
|
11583
11612
|
if (error) {
|
|
11584
|
-
|
|
11613
|
+
logger8.error("OAuth error:");
|
|
11585
11614
|
popup.close();
|
|
11586
11615
|
cleanup();
|
|
11587
11616
|
return;
|
|
@@ -11616,7 +11645,7 @@ var BaseSignUpContent2 = ({
|
|
|
11616
11645
|
} catch (e) {
|
|
11617
11646
|
}
|
|
11618
11647
|
} catch (e) {
|
|
11619
|
-
|
|
11648
|
+
logger8.error("Error monitoring popup:");
|
|
11620
11649
|
}
|
|
11621
11650
|
}, 1e3);
|
|
11622
11651
|
return true;
|
|
@@ -15960,7 +15989,7 @@ var BaseCreateOrganization_styles_default = useStyles29;
|
|
|
15960
15989
|
|
|
15961
15990
|
// src/components/presentation/CreateOrganization/BaseCreateOrganization.tsx
|
|
15962
15991
|
var import_jsx_runtime109 = require("react/jsx-runtime");
|
|
15963
|
-
var
|
|
15992
|
+
var logger9 = (0, import_browser86.createPackageComponentLogger)(
|
|
15964
15993
|
"@asgardeo/react",
|
|
15965
15994
|
"BaseCreateOrganization"
|
|
15966
15995
|
);
|
|
@@ -16046,7 +16075,7 @@ var BaseCreateOrganization = ({
|
|
|
16046
16075
|
onSuccess(payload);
|
|
16047
16076
|
}
|
|
16048
16077
|
} catch (submitError) {
|
|
16049
|
-
|
|
16078
|
+
logger9.error("Form submission error:");
|
|
16050
16079
|
}
|
|
16051
16080
|
};
|
|
16052
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: [
|
|
@@ -17573,7 +17602,7 @@ var updateOrganization_default = updateOrganization;
|
|
|
17573
17602
|
|
|
17574
17603
|
// src/components/presentation/OrganizationProfile/OrganizationProfile.tsx
|
|
17575
17604
|
var import_jsx_runtime115 = require("react/jsx-runtime");
|
|
17576
|
-
var
|
|
17605
|
+
var logger10 = (0, import_browser92.createPackageComponentLogger)(
|
|
17577
17606
|
"@asgardeo/react",
|
|
17578
17607
|
"OrganizationProfile"
|
|
17579
17608
|
);
|
|
@@ -17604,7 +17633,7 @@ var OrganizationProfile = ({
|
|
|
17604
17633
|
});
|
|
17605
17634
|
setOrganization(orgData);
|
|
17606
17635
|
} catch (err) {
|
|
17607
|
-
|
|
17636
|
+
logger10.error("Failed to fetch organization:");
|
|
17608
17637
|
setOrganization(null);
|
|
17609
17638
|
}
|
|
17610
17639
|
};
|
|
@@ -17626,7 +17655,7 @@ var OrganizationProfile = ({
|
|
|
17626
17655
|
await onUpdate(payload);
|
|
17627
17656
|
}
|
|
17628
17657
|
} catch (err) {
|
|
17629
|
-
|
|
17658
|
+
logger10.error("Failed to update organization:");
|
|
17630
17659
|
throw err;
|
|
17631
17660
|
}
|
|
17632
17661
|
};
|