@thunderid/browser 1.2.0 → 1.2.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.
@@ -3,6 +3,7 @@ export declare const ERROR_DESCRIPTION = "error_description";
3
3
  export declare const CUSTOM_GRANT_CONFIG = "custom_grant_config";
4
4
  export declare const STATE_QUERY = "state";
5
5
  export declare const SILENT_SIGN_IN_STATE = "sign-in-silently";
6
+ export declare const SILENT_SIGN_IN_TIMEOUT = 10000;
6
7
  export declare const ACCESS_TOKEN_INVALID = "Access token is invalid";
7
8
  export declare const REFRESH_ACCESS_TOKEN_ERR0R = "refresh-access-token-error";
8
9
  export declare const TOKEN_REQUEST_CONFIG_KEY = "token_request_config";
@@ -1 +1 @@
1
- {"version":3,"file":"SPAConstants.d.ts","sourceRoot":"","sources":["../../src/constants/SPAConstants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AACvE,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,eAAO,MAAM,yBAAyB,8BAA8B,CAAC"}
1
+ {"version":3,"file":"SPAConstants.d.ts","sourceRoot":"","sources":["../../src/constants/SPAConstants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAE5C,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AACvE,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,eAAO,MAAM,yBAAyB,8BAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -39,6 +39,7 @@ const ERROR_DESCRIPTION = "error_description";
39
39
  const CUSTOM_GRANT_CONFIG = "custom_grant_config";
40
40
  const STATE_QUERY = "state";
41
41
  const SILENT_SIGN_IN_STATE = "sign-in-silently";
42
+ const SILENT_SIGN_IN_TIMEOUT = 1e4;
42
43
  const ACCESS_TOKEN_INVALID = "Access token is invalid";
43
44
  const REFRESH_ACCESS_TOKEN_ERR0R = "refresh-access-token-error";
44
45
  const TOKEN_REQUEST_CONFIG_KEY = "token_request_config";
@@ -606,9 +607,10 @@ var AuthenticationHelper = class {
606
607
  * @param requestAccessToken - Exchanges the returned code for tokens.
607
608
  * @param additionalParams - Extra authorize request params.
608
609
  * @param tokenRequestConfig - Additional params for the token request.
610
+ * @param timeout - How long to wait for the iframe's response, in milliseconds.
609
611
  * @returns The user session, or `false` if the user is not signed in.
610
612
  */
611
- async signInSilently(constructSilentSignInUrl, requestAccessToken, additionalParams, tokenRequestConfig) {
613
+ async signInSilently(constructSilentSignInUrl, requestAccessToken, additionalParams, tokenRequestConfig, timeout = SILENT_SIGN_IN_TIMEOUT) {
612
614
  if (SPAUtils_default.isInitializedSilentSignIn()) {
613
615
  await this.handleSilentSignInResponse();
614
616
  return Promise.resolve({
@@ -637,7 +639,7 @@ var AuthenticationHelper = class {
637
639
  const timer = setTimeout(() => {
638
640
  cleanUp();
639
641
  resolve(false);
640
- }, 1e4);
642
+ }, timeout);
641
643
  const listenToSilentSignInIFrame = async (e) => {
642
644
  if (e.origin !== window.location.origin || e.source !== silentSignInIFrame.contentWindow) return;
643
645
  const data = e.data;
@@ -2539,6 +2541,12 @@ var ThunderIDBrowserClient = class ThunderIDBrowserClient extends ThunderIDJavaS
2539
2541
  if (storedTokenRequestConfig && typeof storedTokenRequestConfig === "string") resolvedTokenRequestConfig = JSON.parse(storedTokenRequestConfig);
2540
2542
  return this._exchangeCodeForTokens(resolvedAuthorizationCode, resolvedState, resolvedTokenRequestConfig);
2541
2543
  }
2544
+ if ((config?.session)?.silentSignIn?.beforeRedirect && window.self === window.top && !signInConfig?.["prompt"]) try {
2545
+ const silentUser = await this._signInSilentlyInternal(signInConfig, tokenRequestConfig);
2546
+ if (silentUser && typeof silentUser === "object") return silentUser;
2547
+ } catch (error) {
2548
+ logger$2.debug("Checking for an existing session failed; continuing with the sign-in redirect.", error);
2549
+ }
2542
2550
  return this.getSignInUrl(signInConfig).then(async (url) => {
2543
2551
  if (this._storage === BrowserStorage_default.BrowserMemory && config.enablePKCE) {
2544
2552
  const pkceKey = extractPkceStorageKeyFromState(resolvedState);
@@ -2576,10 +2584,14 @@ var ThunderIDBrowserClient = class ThunderIDBrowserClient extends ThunderIDJavaS
2576
2584
  async signInSilently(additionalParams, tokenRequestConfig) {
2577
2585
  await this.isInitialized();
2578
2586
  if (SPAUtils_default.wasSignInCalled()) return;
2579
- const response = await this._authHelper.signInSilently((params) => this._constructSilentSignInUrl(params), (code$1, s, trc) => this._exchangeCodeForTokens(code$1, s, trc), additionalParams, tokenRequestConfig);
2587
+ const response = await this._signInSilentlyInternal(additionalParams, tokenRequestConfig);
2580
2588
  if (this._onSignInCallback && response) this._onSignInCallback(response);
2581
2589
  return response;
2582
2590
  }
2591
+ async _signInSilentlyInternal(additionalParams, tokenRequestConfig) {
2592
+ const { session } = await this.getStorageManager().getConfigData();
2593
+ return this._authHelper.signInSilently((params) => this._constructSilentSignInUrl(params), (code$1, s, trc) => this._exchangeCodeForTokens(code$1, s, trc), additionalParams, tokenRequestConfig, session?.silentSignIn?.timeout);
2594
+ }
2583
2595
  async signOut(_options, sessionIdOrAfterSignOut, afterSignOutParam) {
2584
2596
  let afterSignOut;
2585
2597
  let sessionId;
@@ -3730,5 +3742,5 @@ const normalizeBorderRadius = (raw) => {
3730
3742
  var normalizeBorderRadius_default = normalizeBorderRadius;
3731
3743
 
3732
3744
  //#endregion
3733
- export { ACCESS_TOKEN_INVALID, ANONYMOUS_ANIMAL_ICONS, ANONYMOUS_ENTITY_ICONS, AVATAR_GRADIENT_COUNT, AVATAR_URI_SCHEME, AuthenticationHelper_default as AuthenticationHelper, Hooks as BrowserHooks, BrowserStorage_default as BrowserStorage, CUSTOM_GRANT_CONFIG, ERROR, ERROR_DESCRIPTION, FetchHttpClient_default as FetchHttpClient, Hooks_default as Hooks, LocalStore_default as LocalStore, MemoryStore_default as MemoryStore, REFRESH_ACCESS_TOKEN_ERR0R, SILENT_SIGN_IN_SIGNED_IN, SILENT_SIGN_IN_SIGNED_OUT, SILENT_SIGN_IN_STATE, SPACryptoUtils_default as SPACryptoUtils, SPAHelper_default as SPAHelper, SPAUtils_default as SPAUtils, STATE_QUERY, SessionStore_default as SessionStore, TOKEN_REQUEST_CONFIG_KEY, ThunderIDBrowserClient_default as ThunderIDBrowserClient, buildAvatarSpec_default as buildAvatarSpec, createClassObserver, createHttpClientFetcher_default as createHttpClientFetcher, createMediaQueryListener, deriveAvatarContent, detectThemeMode, extractAvatarParamsFromUri_default as extractAvatarParamsFromUri, generateAvatarDataUri_default as generateAvatarDataUri, getActiveTheme_default as getActiveTheme, handleWebAuthnAuthentication_default as handleWebAuthnAuthentication, hasAuthParamsInUrl_default as hasAuthParamsInUrl, hasCalledForThisInstanceInUrl_default as hasCalledForThisInstanceInUrl, http_default as http, isAvatarUri_default as isAvatarUri, navigate_default as navigate, normalizeBorderRadius_default as normalizeBorderRadius, pickAnonymousAvatarName_default as pickAnonymousAvatarName, pickAnonymousEntityName_default as pickAnonymousEntityName, resolveEmojiUrisInHtml_default as resolveEmojiUrisInHtml, resolveLogoUri_default as resolveLogoUri };
3745
+ export { ACCESS_TOKEN_INVALID, ANONYMOUS_ANIMAL_ICONS, ANONYMOUS_ENTITY_ICONS, AVATAR_GRADIENT_COUNT, AVATAR_URI_SCHEME, AuthenticationHelper_default as AuthenticationHelper, Hooks as BrowserHooks, BrowserStorage_default as BrowserStorage, CUSTOM_GRANT_CONFIG, ERROR, ERROR_DESCRIPTION, FetchHttpClient_default as FetchHttpClient, Hooks_default as Hooks, LocalStore_default as LocalStore, MemoryStore_default as MemoryStore, REFRESH_ACCESS_TOKEN_ERR0R, SILENT_SIGN_IN_SIGNED_IN, SILENT_SIGN_IN_SIGNED_OUT, SILENT_SIGN_IN_STATE, SILENT_SIGN_IN_TIMEOUT, SPACryptoUtils_default as SPACryptoUtils, SPAHelper_default as SPAHelper, SPAUtils_default as SPAUtils, STATE_QUERY, SessionStore_default as SessionStore, TOKEN_REQUEST_CONFIG_KEY, ThunderIDBrowserClient_default as ThunderIDBrowserClient, buildAvatarSpec_default as buildAvatarSpec, createClassObserver, createHttpClientFetcher_default as createHttpClientFetcher, createMediaQueryListener, deriveAvatarContent, detectThemeMode, extractAvatarParamsFromUri_default as extractAvatarParamsFromUri, generateAvatarDataUri_default as generateAvatarDataUri, getActiveTheme_default as getActiveTheme, handleWebAuthnAuthentication_default as handleWebAuthnAuthentication, hasAuthParamsInUrl_default as hasAuthParamsInUrl, hasCalledForThisInstanceInUrl_default as hasCalledForThisInstanceInUrl, http_default as http, isAvatarUri_default as isAvatarUri, navigate_default as navigate, normalizeBorderRadius_default as normalizeBorderRadius, pickAnonymousAvatarName_default as pickAnonymousAvatarName, pickAnonymousEntityName_default as pickAnonymousEntityName, resolveEmojiUrisInHtml_default as resolveEmojiUrisInHtml, resolveLogoUri_default as resolveLogoUri };
3734
3746
  //# sourceMappingURL=index.js.map