@thunderid/browser 1.1.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.
@@ -7,7 +7,6 @@ declare class ThunderIDBrowserClient<T = BrowserAuthConfig> extends ThunderIDJav
7
7
  private _browserInstanceId;
8
8
  private _httpClient;
9
9
  private _spaHelper;
10
- private _sessionManagementHelper;
11
10
  private _authHelper;
12
11
  private _storage;
13
12
  private _getSignOutURLFromSessionStorage;
@@ -27,7 +26,7 @@ declare class ThunderIDBrowserClient<T = BrowserAuthConfig> extends ThunderIDJav
27
26
  isInitialized(): Promise<boolean>;
28
27
  private _validateMethod;
29
28
  isLoading(): boolean;
30
- signIn(config?: SignInConfig, authorizationCode?: string, sessionState?: string, state?: string, tokenRequestConfig?: {
29
+ signIn(config?: SignInConfig, authorizationCode?: string, state?: string, tokenRequestConfig?: {
31
30
  params: Record<string, unknown>;
32
31
  }): Promise<User | undefined>;
33
32
  private _signInInternal;
@@ -35,6 +34,7 @@ declare class ThunderIDBrowserClient<T = BrowserAuthConfig> extends ThunderIDJav
35
34
  signInSilently(additionalParams?: Record<string, string | boolean>, tokenRequestConfig?: {
36
35
  params: Record<string, unknown>;
37
36
  }): Promise<User | boolean | undefined>;
37
+ private _signInSilentlyInternal;
38
38
  signOut(_options?: any, sessionIdOrAfterSignOut?: string | ((url: string) => void), afterSignOutParam?: (url: string) => void): Promise<string>;
39
39
  httpRequest(requestConfig: HttpRequestConfig): Promise<HttpResponse | undefined>;
40
40
  httpRequestAll(configs: HttpRequestConfig[]): Promise<HttpResponse[] | undefined>;
@@ -57,8 +57,6 @@ declare class ThunderIDBrowserClient<T = BrowserAuthConfig> extends ThunderIDJav
57
57
  disableHttpHandler(): Promise<boolean | undefined>;
58
58
  decodeJwtToken<R = Record<string, unknown>>(token: string): Promise<R>;
59
59
  on(hook: string, callback: (response?: any) => void | Promise<void>, id?: string): Promise<void>;
60
- private _checkSession;
61
- private _shouldStopAuthn;
62
60
  private _enableRetrievingSignOutURLFromSession;
63
61
  private _constructSilentSignInUrl;
64
62
  getInstanceId(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"ThunderIDBrowserClient.d.ts","sourceRoot":"","sources":["../src/ThunderIDBrowserClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThunderIDBrowserClient.d.ts","sourceRoot":"","sources":["../src/ThunderIDBrowserClient.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,yBAAyB,EAEzB,IAAI,EACJ,gBAAgB,EAChB,OAAO,EACP,aAAa,EAGb,OAAO,EACP,aAAa,EAGb,iBAAiB,EACjB,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAE/B,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AA8BpE,cAAM,sBAAsB,CAAC,CAAC,GAAG,iBAAiB,CAAE,SAAQ,yBAAyB,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,QAAQ,CAA0D;IAC1E,OAAO,CAAC,gCAAgC,CAAS;IACjD,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,kBAAkB,CAA2D;IACrF,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,iBAAiB,CAAwC;IACjE,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,wBAAwB,CAA6C;IAC7E,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,aAAa,CAA2C;IAChE,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAS;gBAEhB,UAAU,SAAI;IAKX,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA4DnE,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;YAmBhC,eAAe;IAwBb,SAAS,IAAI,OAAO;IAId,MAAM,CAC1B,MAAM,CAAC,EAAE,YAAY,EACrB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,KAAK,CAAC,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAC,GACrD,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;YAkBd,eAAe;YAyEf,sBAAsB;IA6Bd,cAAc,CAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACnD,kBAAkB,CAAC,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAC,GACrD,OAAO,CAAC,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;YAgBxB,uBAAuB;IAef,OAAO,CAC3B,QAAQ,CAAC,EAAE,GAAG,EACd,uBAAuB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,EAC1D,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACxC,OAAO,CAAC,MAAM,CAAC;IA+EL,WAAW,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAYhF,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC;IAYxE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAInD,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMtE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5C,0BAA0B,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAMtE,SAAS,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAMxD,aAAa,IAAI,eAAe;IAYjB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMnE,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI3B,eAAe,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAMtC,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;IAUlE,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;IAa/D,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAyBvE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3D,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtC,iBAAiB,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IASjD,kBAAkB,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IASzC,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAI/E,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D7G,OAAO,CAAC,sCAAsC;YAMhC,yBAAyB;IAqBvB,aAAa,IAAI,MAAM;WAInB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlD;AAED,eAAe,sBAAsB,CAAC"}
@@ -40,19 +40,13 @@ const ERROR = "error";
40
40
  const ERROR_DESCRIPTION = "error_description";
41
41
  const CUSTOM_GRANT_CONFIG = "custom_grant_config";
42
42
  const STATE_QUERY = "state";
43
- const OP_IFRAME = "opIFrame";
44
- const RP_IFRAME = "rpIFrame";
45
- const PROMPT_NONE_IFRAME = "promptNoneIFrame";
46
- const STATE = "Y2hlY2tTZXNzaW9u";
47
43
  const SILENT_SIGN_IN_STATE = "sign-in-silently";
48
- const INITIALIZED_SILENT_SIGN_IN = "initialized-silent-sign-in";
49
- const PROMPT_NONE_REQUEST_SENT = "promptNoneRequestSent";
44
+ const SILENT_SIGN_IN_TIMEOUT = 1e4;
50
45
  const ACCESS_TOKEN_INVALID = "Access token is invalid";
51
46
  const REFRESH_ACCESS_TOKEN_ERR0R = "refresh-access-token-error";
52
47
  const TOKEN_REQUEST_CONFIG_KEY = "token_request_config";
53
- const CHECK_SESSION_SIGNED_IN = "check_session_signed_in";
54
- const CHECK_SESSION_SIGNED_OUT = "check_session_signed_out";
55
- const SET_SESSION_STATE_FROM_IFRAME = "set_session_state_from_iframe";
48
+ const SILENT_SIGN_IN_SIGNED_IN = "silent_sign_in_signed_in";
49
+ const SILENT_SIGN_IN_SIGNED_OUT = "silent_sign_in_signed_out";
56
50
 
57
51
  //#endregion
58
52
  //#region src/FetchHttpClient.ts
@@ -290,13 +284,6 @@ var SPAUtils = class SPAUtils {
290
284
  return false;
291
285
  }
292
286
  /**
293
- * Returns `true` if a silent sign-in was previously initialized in this session.
294
- */
295
- static wasSilentSignInCalled() {
296
- const raw = sessionStorage.getItem(INITIALIZED_SILENT_SIGN_IN);
297
- return Boolean(raw ? JSON.parse(raw) : null);
298
- }
299
- /**
300
287
  * Checks whether the current URL indicates a successful sign-out redirect.
301
288
  * Clears the query string and session data if `true`.
302
289
  *
@@ -359,21 +346,6 @@ var SPAUtils = class SPAUtils {
359
346
  return !!urlObject.searchParams.get(ERROR) && urlObject.searchParams.get(STATE_QUERY) !== __thunderid_javascript.OIDCRequestConstants.Params.SIGN_OUT_SUCCESS;
360
347
  }
361
348
  /**
362
- * Returns `true` if no prompt-none request has been sent yet this session.
363
- */
364
- static canSendPromptNoneRequest() {
365
- const raw = sessionStorage.getItem(PROMPT_NONE_REQUEST_SENT);
366
- return !(raw ? JSON.parse(raw) : null);
367
- }
368
- /**
369
- * Records whether a prompt-none request has been sent.
370
- *
371
- * @param canSend - `true` marks the request as sent.
372
- */
373
- static setPromptNoneRequestSent(canSend) {
374
- sessionStorage.setItem(PROMPT_NONE_REQUEST_SENT, JSON.stringify(canSend));
375
- }
376
- /**
377
349
  * Waits until the browser has redirected (non-blocking delay).
378
350
  *
379
351
  * @param time - Time to wait in seconds (default: 3).
@@ -402,7 +374,7 @@ var SPAUtils_default = SPAUtils;
402
374
  //#region src/utils/AuthenticationHelper.ts
403
375
  /**
404
376
  * Browser-level authentication helper that orchestrates HTTP requests with token attachment,
405
- * automatic token refresh, session management, and the silent sign-in flow.
377
+ * automatic token refresh, and the silent sign-in flow.
406
378
  *
407
379
  * @typeParam T - The browser client config extension type.
408
380
  */
@@ -462,18 +434,6 @@ var AuthenticationHelper = class {
462
434
  httpClient?.disableHandler && httpClient.disableHandler();
463
435
  }
464
436
  /**
465
- * Initializes OIDC Session Management via an RP iframe.
466
- *
467
- * @param config - The current auth config.
468
- * @param oidcEndpoints - Resolved OIDC provider endpoints.
469
- * @param getSessionState - Returns the current session state from storage.
470
- * @param getAuthzURL - Builds an authorization URL with optional params.
471
- * @param sessionManagementHelper - The session management helper instance.
472
- */
473
- initializeSessionManger(config, oidcEndpoints, getSessionState, getAuthzURL, sessionManagementHelper) {
474
- sessionManagementHelper.initialize(config.clientId, oidcEndpoints.checkSessionIframe ?? "", getSessionState, config.checkSessionInterval ?? 3, config.sessionRefreshInterval ?? 300, config.afterSignInUrl, getAuthzURL);
475
- }
476
- /**
477
437
  * Executes a custom token exchange grant, enforcing `allowedExternalUrls` rules when applicable.
478
438
  *
479
439
  * @param config - The token exchange configuration.
@@ -643,76 +603,97 @@ var AuthenticationHelper = class {
643
603
  });
644
604
  }
645
605
  /**
646
- * Executes the silent sign-in flow using a prompt-none request via an iFrame.
606
+ * Executes the silent sign-in flow by loading a `prompt=none` authorize request in a hidden iframe.
647
607
  *
648
608
  * @param constructSilentSignInUrl - Builds the prompt-none authorize URL.
649
609
  * @param requestAccessToken - Exchanges the returned code for tokens.
650
- * @param sessionManagementHelper - Handles the iFrame prompt-none response.
651
610
  * @param additionalParams - Extra authorize request params.
652
611
  * @param tokenRequestConfig - Additional params for the token request.
612
+ * @param timeout - How long to wait for the iframe's response, in milliseconds.
653
613
  * @returns The user session, or `false` if the user is not signed in.
654
614
  */
655
- async signInSilently(constructSilentSignInUrl, requestAccessToken, sessionManagementHelper, additionalParams, tokenRequestConfig) {
615
+ async signInSilently(constructSilentSignInUrl, requestAccessToken, additionalParams, tokenRequestConfig, timeout = SILENT_SIGN_IN_TIMEOUT) {
656
616
  if (SPAUtils_default.isInitializedSilentSignIn()) {
657
- await sessionManagementHelper.receivePromptNoneResponse();
617
+ await this.handleSilentSignInResponse();
658
618
  return Promise.resolve({
659
619
  allowedScopes: "",
660
620
  displayName: "",
661
621
  email: "",
662
- sessionState: "",
663
622
  sub: "",
664
623
  tenantDomain: "",
665
624
  username: ""
666
625
  });
667
626
  }
668
- const promptNoneIFrame = document.getElementById(RP_IFRAME)?.contentDocument?.getElementById(PROMPT_NONE_IFRAME);
627
+ let url;
669
628
  try {
670
- promptNoneIFrame.src = await constructSilentSignInUrl(additionalParams);
629
+ url = await constructSilentSignInUrl(additionalParams);
671
630
  } catch (error) {
672
631
  return Promise.reject(error);
673
632
  }
633
+ const silentSignInIFrame = document.createElement("iframe");
634
+ silentSignInIFrame.style.display = "none";
674
635
  return new Promise((resolve, reject) => {
636
+ const cleanUp = () => {
637
+ window.removeEventListener("message", listenToSilentSignInIFrame);
638
+ clearTimeout(timer);
639
+ silentSignInIFrame.remove();
640
+ };
675
641
  const timer = setTimeout(() => {
642
+ cleanUp();
676
643
  resolve(false);
677
- }, 1e4);
678
- const listenToPromptNoneIFrame = async (e) => {
644
+ }, timeout);
645
+ const listenToSilentSignInIFrame = async (e) => {
646
+ if (e.origin !== window.location.origin || e.source !== silentSignInIFrame.contentWindow) return;
679
647
  const data = e.data;
680
- if (data?.type == CHECK_SESSION_SIGNED_OUT) {
681
- window.removeEventListener("message", listenToPromptNoneIFrame);
682
- clearTimeout(timer);
648
+ if (data?.type === SILENT_SIGN_IN_SIGNED_OUT) {
649
+ cleanUp();
683
650
  resolve(false);
684
651
  }
685
- if (data?.type == CHECK_SESSION_SIGNED_IN && data?.data?.code) {
652
+ if (data?.type === SILENT_SIGN_IN_SIGNED_IN && data?.data?.code) {
686
653
  const authInfo = data.data;
687
- requestAccessToken(authInfo.code, authInfo.sessionState, authInfo.state, tokenRequestConfig).then((response) => {
688
- window.removeEventListener("message", listenToPromptNoneIFrame);
689
- resolve(response);
690
- }).catch((error) => {
691
- window.removeEventListener("message", listenToPromptNoneIFrame);
692
- reject(error);
693
- }).finally(() => {
694
- clearTimeout(timer);
695
- });
654
+ cleanUp();
655
+ requestAccessToken(authInfo.code, authInfo.state, tokenRequestConfig).then(resolve).catch(reject);
696
656
  }
697
657
  };
698
- window.addEventListener("message", listenToPromptNoneIFrame);
658
+ window.addEventListener("message", listenToSilentSignInIFrame);
659
+ silentSignInIFrame.src = url;
660
+ document.body.appendChild(silentSignInIFrame);
699
661
  });
700
662
  }
701
663
  /**
664
+ * Handles the page load inside the silent sign-in iframe: relays the authorization response to the
665
+ * parent window and blanks the iframe.
666
+ *
667
+ * @returns `true` if the current page load was a silent sign-in response.
668
+ */
669
+ async handleSilentSignInResponse() {
670
+ const url = new URL(window.location.href);
671
+ const state = url.searchParams.get(STATE_QUERY);
672
+ if (state === null || !state.includes(SILENT_SIGN_IN_STATE)) return false;
673
+ const code$1 = url.searchParams.get("code");
674
+ const message = code$1 !== null && code$1.length !== 0 ? {
675
+ data: {
676
+ code: code$1,
677
+ state
678
+ },
679
+ type: SILENT_SIGN_IN_SIGNED_IN
680
+ } : { type: SILENT_SIGN_IN_SIGNED_OUT };
681
+ window.parent.postMessage(message, window.location.origin);
682
+ window.location.href = "about:blank";
683
+ await SPAUtils_default.waitTillPageRedirect();
684
+ return true;
685
+ }
686
+ /**
702
687
  * Handles the early-return path of `signIn()` when a session already exists
703
- * or the page is handling a prompt-none response.
688
+ * or the page is handling a silent sign-in response.
704
689
  *
705
- * @param shouldStopAuthn - Returns `true` if we should short-circuit and return early.
706
- * @param checkSession - Callback to initialize OIDC session management.
707
690
  * @returns The current user if already signed in, or `undefined` to continue normal sign-in.
708
691
  */
709
- async handleSignIn(shouldStopAuthn, checkSession) {
710
- const configAny = await this._storageManager.getConfigData();
711
- if (await shouldStopAuthn()) return Promise.resolve({
692
+ async handleSignIn() {
693
+ if (await this.handleSilentSignInResponse()) return Promise.resolve({
712
694
  allowedScopes: "",
713
695
  displayName: "",
714
696
  email: "",
715
- sessionState: "",
716
697
  sub: "",
717
698
  tenantDomain: "",
718
699
  username: ""
@@ -720,7 +701,6 @@ var AuthenticationHelper = class {
720
701
  if (await this._isSignedIn()) {
721
702
  await this._spaHelper.clearRefreshTokenTimeout();
722
703
  await this._spaHelper.refreshAccessTokenAutomatically(() => this.refreshAccessToken());
723
- if (configAny.syncSession) checkSession();
724
704
  return Promise.resolve(await this._getUser());
725
705
  }
726
706
  const error = new URL(window.location.href).searchParams.get(ERROR);
@@ -838,164 +818,6 @@ const navigate = (url) => {
838
818
  };
839
819
  var navigate_default = navigate;
840
820
 
841
- //#endregion
842
- //#region src/utils/SessionManagementHelper.ts
843
- /**
844
- * Factory that creates an OIDC Session Management helper using an RP iframe and polling.
845
- * Appends a hidden RP iframe to the document and returns the helper interface.
846
- *
847
- * @param signOut - Returns the sign-out URL for the current session.
848
- * @param setSessionState - Stores a new session state from a prompt-none response.
849
- * @returns A `SessionManagementHelperInterface` instance.
850
- */
851
- const createSessionManagementHelper = async (signOut, setSessionState) => {
852
- let _clientID;
853
- let _checkSessionEndpoint;
854
- let _sessionState;
855
- let _interval;
856
- let _redirectURL;
857
- let _sessionRefreshInterval;
858
- let _sessionRefreshIntervalTimeout;
859
- let _checkSessionIntervalTimeout;
860
- let _getSignInUrl;
861
- const initialize = (clientId, checkSessionEndpoint, getSessionState, interval, sessionRefreshInterval, redirectURL, getSignInUrl) => {
862
- _clientID = clientId;
863
- _checkSessionEndpoint = checkSessionEndpoint;
864
- _sessionState = getSessionState;
865
- _interval = interval;
866
- _redirectURL = redirectURL;
867
- _sessionRefreshInterval = sessionRefreshInterval;
868
- _getSignInUrl = getSignInUrl;
869
- if (_interval > -1) initiateCheckSession();
870
- if (_sessionRefreshInterval > -1) _sessionRefreshIntervalTimeout = setInterval(() => {
871
- sendPromptNoneRequest();
872
- }, _sessionRefreshInterval * 1e3);
873
- };
874
- const initiateCheckSession = async () => {
875
- if (!_checkSessionEndpoint || !_clientID || !_redirectURL) return;
876
- async function checkSession() {
877
- const sessionState = await _sessionState();
878
- if (Boolean(_clientID) && Boolean(sessionState)) {
879
- const message = `${_clientID} ${sessionState}`;
880
- (document.getElementById(RP_IFRAME)?.contentDocument?.getElementById(OP_IFRAME)).contentWindow?.postMessage(message, _checkSessionEndpoint);
881
- }
882
- }
883
- const opIframe = document.getElementById(RP_IFRAME)?.contentDocument?.getElementById(OP_IFRAME);
884
- opIframe.src = _checkSessionEndpoint + "?client_id=" + _clientID + "&redirect_uri=" + _redirectURL;
885
- _checkSessionIntervalTimeout = setInterval(checkSession, _interval * 1e3);
886
- listenToResponseFromOPIFrame();
887
- };
888
- const reset = () => {
889
- clearInterval(_checkSessionIntervalTimeout);
890
- clearInterval(_sessionRefreshIntervalTimeout);
891
- };
892
- const listenToResponseFromOPIFrame = () => {
893
- async function receiveMessage(e) {
894
- const targetOrigin = _checkSessionEndpoint;
895
- if (!targetOrigin || targetOrigin?.indexOf(e.origin) < 0 || e?.data?.type === SET_SESSION_STATE_FROM_IFRAME) return;
896
- if (e.data === "unchanged") {} else if (e.data === "error") window.location.href = await signOut();
897
- else if (e.data === "changed") sendPromptNoneRequest();
898
- }
899
- window?.addEventListener("message", receiveMessage, false);
900
- };
901
- const sendPromptNoneRequest = async () => {
902
- const promptNoneIFrame = document.getElementById(RP_IFRAME)?.contentDocument?.getElementById(PROMPT_NONE_IFRAME);
903
- if (SPAUtils_default.canSendPromptNoneRequest()) {
904
- SPAUtils_default.setPromptNoneRequestSent(true);
905
- const receiveMessageListener = (e) => {
906
- if (e?.data?.type === SET_SESSION_STATE_FROM_IFRAME) {
907
- setSessionState(e?.data?.data ?? "");
908
- window?.removeEventListener("message", receiveMessageListener);
909
- }
910
- };
911
- window?.addEventListener("message", receiveMessageListener);
912
- promptNoneIFrame.src = await _getSignInUrl({
913
- prompt: "none",
914
- response_mode: "query",
915
- state: STATE
916
- });
917
- }
918
- };
919
- const receivePromptNoneResponse = async (setSessionStateFn) => {
920
- const state = new URL(window.location.href).searchParams.get(STATE_QUERY);
921
- const sessionState = new URL(window.location.href).searchParams.get(__thunderid_javascript.OIDCRequestConstants.Params.SESSION_STATE);
922
- const parent = window.parent.parent;
923
- if (state !== null && (state.includes(STATE) || state.includes(SILENT_SIGN_IN_STATE))) {
924
- const code$1 = new URL(window.location.href).searchParams.get("code");
925
- if (code$1 !== null && code$1.length !== 0) {
926
- if (state.includes(SILENT_SIGN_IN_STATE)) {
927
- const message = {
928
- data: {
929
- code: code$1,
930
- sessionState: sessionState ?? "",
931
- state
932
- },
933
- type: CHECK_SESSION_SIGNED_IN
934
- };
935
- sessionStorage.setItem(INITIALIZED_SILENT_SIGN_IN, "false");
936
- parent.postMessage(message, parent.origin);
937
- SPAUtils_default.setPromptNoneRequestSent(false);
938
- window.location.href = "about:blank";
939
- await SPAUtils_default.waitTillPageRedirect();
940
- return true;
941
- }
942
- const newSessionState = new URL(window.location.href).searchParams.get("session_state");
943
- setSessionStateFn && await setSessionStateFn(newSessionState);
944
- SPAUtils_default.setPromptNoneRequestSent(false);
945
- window.location.href = "about:blank";
946
- await SPAUtils_default.waitTillPageRedirect();
947
- return true;
948
- } else {
949
- if (state.includes(SILENT_SIGN_IN_STATE)) {
950
- const message = { type: CHECK_SESSION_SIGNED_OUT };
951
- window.parent.parent.postMessage(message, parent.origin);
952
- SPAUtils_default.setPromptNoneRequestSent(false);
953
- window.location.href = "about:blank";
954
- await SPAUtils_default.waitTillPageRedirect();
955
- return true;
956
- }
957
- SPAUtils_default.setPromptNoneRequestSent(false);
958
- const signOutURL = await signOut();
959
- parent.location.href = signOutURL;
960
- window.location.href = "about:blank";
961
- await SPAUtils_default.waitTillPageRedirect();
962
- return true;
963
- }
964
- }
965
- return false;
966
- };
967
- let rpIFrame = document.createElement("iframe");
968
- rpIFrame.setAttribute("id", RP_IFRAME);
969
- rpIFrame.style.display = "none";
970
- let rpIframeLoaded = false;
971
- rpIFrame.onload = () => {
972
- rpIFrame = document.getElementById(RP_IFRAME);
973
- const rpDoc = rpIFrame?.contentDocument;
974
- const opIFrame = rpDoc?.createElement("iframe");
975
- if (opIFrame) {
976
- opIFrame.setAttribute("id", OP_IFRAME);
977
- opIFrame.style.display = "none";
978
- }
979
- const promptNoneIFrame = rpDoc?.createElement("iframe");
980
- if (promptNoneIFrame) {
981
- promptNoneIFrame.setAttribute("id", PROMPT_NONE_IFRAME);
982
- promptNoneIFrame.style.display = "none";
983
- }
984
- opIFrame && rpIFrame?.contentDocument?.body?.appendChild(opIFrame);
985
- promptNoneIFrame && rpIFrame?.contentDocument?.body?.appendChild(promptNoneIFrame);
986
- rpIframeLoaded = true;
987
- };
988
- document?.body?.appendChild(rpIFrame);
989
- const sleep = () => new Promise((resolve) => setTimeout(resolve, 1));
990
- while (!rpIframeLoaded) await sleep();
991
- return {
992
- initialize,
993
- receivePromptNoneResponse,
994
- reset
995
- };
996
- };
997
- var SessionManagementHelper_default = createSessionManagementHelper;
998
-
999
821
  //#endregion
1000
822
  //#region ../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js
1001
823
  var require_base64_js = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js": ((exports) => {
@@ -2598,10 +2420,7 @@ var SPAHelper_default = SPAHelper;
2598
2420
  const logger$2 = (0, __thunderid_javascript.createPackageComponentLogger)("@thunderid/browser", "ThunderIDBrowserClient");
2599
2421
  const BROWSER_DEFAULT_CONFIG = {
2600
2422
  autoLogoutOnTokenRefreshError: false,
2601
- checkSessionInterval: 3,
2602
- periodicTokenRefresh: false,
2603
- sessionRefreshInterval: 300,
2604
- syncSession: false
2423
+ periodicTokenRefresh: false
2605
2424
  };
2606
2425
  const initiateStore = (storage) => {
2607
2426
  switch (storage) {
@@ -2616,7 +2435,6 @@ var ThunderIDBrowserClient = class ThunderIDBrowserClient extends __thunderid_ja
2616
2435
  _browserInstanceId = 0;
2617
2436
  _httpClient;
2618
2437
  _spaHelper;
2619
- _sessionManagementHelper;
2620
2438
  _authHelper;
2621
2439
  _storage = BrowserStorage_default.SessionStorage;
2622
2440
  _getSignOutURLFromSessionStorage = false;
@@ -2655,7 +2473,6 @@ var ThunderIDBrowserClient = class ThunderIDBrowserClient extends __thunderid_ja
2655
2473
  await this._authHelper?.attachTokenToRequestConfig(request);
2656
2474
  };
2657
2475
  this._httpClient = FetchHttpClient_default.getInstance(this._browserInstanceId, true, attachToken);
2658
- this._sessionManagementHelper = await SessionManagementHelper_default(async () => this.getSignOutUrl(), (sessionState) => sm.setSessionDataParameter(__thunderid_javascript.OIDCRequestConstants.Params.SESSION_STATE, sessionState));
2659
2476
  this._authHelper = new AuthenticationHelper_default(sm, this._spaHelper, this._browserInstanceId, {
2660
2477
  exchangeToken: (cfg) => super.exchangeToken(cfg),
2661
2478
  getAccessToken: (sessionId) => this.getAccessToken(sessionId),
@@ -2696,30 +2513,27 @@ var ThunderIDBrowserClient = class ThunderIDBrowserClient extends __thunderid_ja
2696
2513
  isLoading() {
2697
2514
  return false;
2698
2515
  }
2699
- async signIn(config, authorizationCode, sessionState, state, tokenRequestConfig) {
2516
+ async signIn(config, authorizationCode, state, tokenRequestConfig) {
2700
2517
  await this.isInitialized();
2701
2518
  if (!SPAUtils_default.canContinueSignIn(Boolean(config?.callOnlyOnRedirect), authorizationCode)) return;
2702
2519
  delete config?.callOnlyOnRedirect;
2703
- const user = await this._signInInternal(config, authorizationCode, sessionState, state, tokenRequestConfig);
2520
+ const user = await this._signInInternal(config, authorizationCode, state, tokenRequestConfig);
2704
2521
  if (user && this._onSignInCallback) this._onSignInCallback(user);
2705
2522
  return user;
2706
2523
  }
2707
- async _signInInternal(signInConfig, authorizationCode, sessionState, state, tokenRequestConfig) {
2524
+ async _signInInternal(signInConfig, authorizationCode, state, tokenRequestConfig) {
2708
2525
  const sm = this.getStorageManager();
2709
2526
  const config = await sm.getConfigData();
2710
- const basicUserInfo = await this._authHelper.handleSignIn(() => this._shouldStopAuthn(), () => this._checkSession());
2527
+ const basicUserInfo = await this._authHelper.handleSignIn();
2711
2528
  if (basicUserInfo) return basicUserInfo;
2712
2529
  let resolvedAuthorizationCode;
2713
- let resolvedSessionState;
2714
2530
  let resolvedState;
2715
2531
  let resolvedTokenRequestConfig = { params: {} };
2716
2532
  if (config?.responseMode === "form_post" && authorizationCode) {
2717
2533
  resolvedAuthorizationCode = authorizationCode;
2718
- resolvedSessionState = sessionState ?? "";
2719
2534
  resolvedState = state ?? "";
2720
2535
  } else {
2721
2536
  resolvedAuthorizationCode = new URL(window.location.href).searchParams.get(__thunderid_javascript.OIDCRequestConstants.Params.AUTHORIZATION_CODE) ?? "";
2722
- resolvedSessionState = new URL(window.location.href).searchParams.get(__thunderid_javascript.OIDCRequestConstants.Params.SESSION_STATE) ?? "";
2723
2537
  resolvedState = new URL(window.location.href).searchParams.get(__thunderid_javascript.OIDCRequestConstants.Params.STATE) ?? "";
2724
2538
  SPAUtils_default.removeAuthorizationCode();
2725
2539
  }
@@ -2727,7 +2541,13 @@ var ThunderIDBrowserClient = class ThunderIDBrowserClient extends __thunderid_ja
2727
2541
  sm.setSessionStatus("true");
2728
2542
  const storedTokenRequestConfig = await sm.getTemporaryDataParameter(TOKEN_REQUEST_CONFIG_KEY);
2729
2543
  if (storedTokenRequestConfig && typeof storedTokenRequestConfig === "string") resolvedTokenRequestConfig = JSON.parse(storedTokenRequestConfig);
2730
- return this._exchangeCodeForTokens(resolvedAuthorizationCode, resolvedSessionState, resolvedState, resolvedTokenRequestConfig);
2544
+ return this._exchangeCodeForTokens(resolvedAuthorizationCode, resolvedState, resolvedTokenRequestConfig);
2545
+ }
2546
+ if ((config?.session)?.silentSignIn?.beforeRedirect && window.self === window.top && !signInConfig?.["prompt"]) try {
2547
+ const silentUser = await this._signInSilentlyInternal(signInConfig, tokenRequestConfig);
2548
+ if (silentUser && typeof silentUser === "object") return silentUser;
2549
+ } catch (error) {
2550
+ logger$2.debug("Checking for an existing session failed; continuing with the sign-in redirect.", error);
2731
2551
  }
2732
2552
  return this.getSignInUrl(signInConfig).then(async (url) => {
2733
2553
  if (this._storage === BrowserStorage_default.BrowserMemory && config.enablePKCE) {
@@ -2741,37 +2561,39 @@ var ThunderIDBrowserClient = class ThunderIDBrowserClient extends __thunderid_ja
2741
2561
  allowedScopes: "",
2742
2562
  displayName: "",
2743
2563
  email: "",
2744
- sessionState: "",
2745
2564
  sub: "",
2746
2565
  tenantDomain: "",
2747
2566
  username: ""
2748
2567
  };
2749
2568
  });
2750
2569
  }
2751
- async _exchangeCodeForTokens(authorizationCode, sessionState, state, tokenRequestConfig) {
2570
+ async _exchangeCodeForTokens(authorizationCode, state, tokenRequestConfig) {
2752
2571
  const config = await this.getStorageManager().getConfigData();
2753
- if (this._storage === BrowserStorage_default.BrowserMemory && config.enablePKCE && sessionState) {
2754
- const pkceKey = (0, __thunderid_javascript.extractPkceStorageKeyFromState)(sessionState);
2572
+ if (this._storage === BrowserStorage_default.BrowserMemory && config.enablePKCE && state) {
2573
+ const pkceKey = (0, __thunderid_javascript.extractPkceStorageKeyFromState)(state);
2755
2574
  const pkce = SPAUtils_default.getPKCE(pkceKey);
2756
2575
  await this.setPKCECode(pkce, pkceKey);
2757
2576
  }
2758
- await this.requestAccessToken(authorizationCode, sessionState ?? "", state ?? "", void 0, tokenRequestConfig);
2577
+ await this.requestAccessToken(authorizationCode, state ?? "", void 0, tokenRequestConfig);
2759
2578
  try {
2760
2579
  const signOutUrl = await this.getSignOutUrl();
2761
2580
  SPAUtils_default.setSignOutURL(signOutUrl, config.clientId, this._browserInstanceId);
2762
2581
  } catch {}
2763
2582
  await this._spaHelper.clearRefreshTokenTimeout();
2764
2583
  await this._spaHelper.refreshAccessTokenAutomatically(() => this.refreshAccessToken());
2765
- if (config.syncSession) this._checkSession();
2766
2584
  return this.getUser();
2767
2585
  }
2768
2586
  async signInSilently(additionalParams, tokenRequestConfig) {
2769
2587
  await this.isInitialized();
2770
2588
  if (SPAUtils_default.wasSignInCalled()) return;
2771
- const response = await this._authHelper.signInSilently((params) => this._constructSilentSignInUrl(params), (code$1, ss, s, trc) => this._exchangeCodeForTokens(code$1, ss, s, trc), this._sessionManagementHelper, additionalParams, tokenRequestConfig);
2589
+ const response = await this._signInSilentlyInternal(additionalParams, tokenRequestConfig);
2772
2590
  if (this._onSignInCallback && response) this._onSignInCallback(response);
2773
2591
  return response;
2774
2592
  }
2593
+ async _signInSilentlyInternal(additionalParams, tokenRequestConfig) {
2594
+ const { session } = await this.getStorageManager().getConfigData();
2595
+ return this._authHelper.signInSilently((params) => this._constructSilentSignInUrl(params), (code$1, s, trc) => this._exchangeCodeForTokens(code$1, s, trc), additionalParams, tokenRequestConfig, session?.silentSignIn?.timeout);
2596
+ }
2775
2597
  async signOut(_options, sessionIdOrAfterSignOut, afterSignOutParam) {
2776
2598
  let afterSignOut;
2777
2599
  let sessionId;
@@ -2867,7 +2689,6 @@ var ThunderIDBrowserClient = class ThunderIDBrowserClient extends __thunderid_ja
2867
2689
  await this._validateMethod();
2868
2690
  const timer = await this._spaHelper.getRefreshTimeoutTimer();
2869
2691
  await super.revokeAccessToken(userId);
2870
- this._sessionManagementHelper?.reset();
2871
2692
  await this._spaHelper.clearRefreshTokenTimeout(timer);
2872
2693
  this._onEndUserSession && await this._onEndUserSession(true);
2873
2694
  return true;
@@ -2881,17 +2702,7 @@ var ThunderIDBrowserClient = class ThunderIDBrowserClient extends __thunderid_ja
2881
2702
  }
2882
2703
  async reInitialize(config) {
2883
2704
  await this.isInitialized();
2884
- const existingConfig = await this.getStorageManager().getConfigData();
2885
- const isCheckSessionIframeDifferent = !(existingConfig?.endpoints?.checkSessionIframe && config?.endpoints?.checkSessionIframe && existingConfig.endpoints.checkSessionIframe === config.endpoints.checkSessionIframe);
2886
- const result = await super.reInitialize(config);
2887
- if ({
2888
- ...existingConfig,
2889
- ...config
2890
- }.syncSession && isCheckSessionIframeDifferent) {
2891
- this._sessionManagementHelper?.reset();
2892
- this._checkSession();
2893
- }
2894
- return result;
2705
+ return super.reInitialize(config);
2895
2706
  }
2896
2707
  async startAutoRefreshToken() {
2897
2708
  await this.isInitialized();
@@ -2954,18 +2765,6 @@ var ThunderIDBrowserClient = class ThunderIDBrowserClient extends __thunderid_ja
2954
2765
  default: throw new __thunderid_javascript.ThunderIDAuthException("SPA-AUTH_CLIENT-ON-IV01", "Invalid hook.", `Unknown hook: "${hook}"`);
2955
2766
  }
2956
2767
  }
2957
- async _checkSession() {
2958
- const oidcEndpoints = await this.getOpenIDProviderEndpoints();
2959
- const sm = this.getStorageManager();
2960
- const config = await sm.getConfigData();
2961
- this._authHelper.initializeSessionManger(config, oidcEndpoints, async () => (await sm.getSessionData())?.session_state ?? "", async (params) => this.getSignInUrl(params), this._sessionManagementHelper);
2962
- }
2963
- async _shouldStopAuthn() {
2964
- const sm = this.getStorageManager();
2965
- return this._sessionManagementHelper.receivePromptNoneResponse(async (sessionState) => {
2966
- await sm.setSessionDataParameter(__thunderid_javascript.OIDCRequestConstants.Params.SESSION_STATE, sessionState ?? "");
2967
- });
2968
- }
2969
2768
  _enableRetrievingSignOutURLFromSession(config) {
2970
2769
  if (config.preventSignOutURLUpdate) this._getSignOutURLFromSessionStorage = true;
2971
2770
  }
@@ -3014,10 +2813,10 @@ var Hooks_default = Hooks;
3014
2813
  //#endregion
3015
2814
  //#region src/utils/hasAuthParamsInUrl.ts
3016
2815
  /**
3017
- * Utility to check if `code` and `session_state` are available in the URL as search params.
2816
+ * Utility to check if `code` is available in the URL as a search param.
3018
2817
  *
3019
2818
  * @param params - The URL search params to check. Defaults to `window.location.search`.
3020
- * @return `true` if the URL contains `code` and `session_state` search params, otherwise `false`.
2819
+ * @return `true` if the URL contains a `code` search param, otherwise `false`.
3021
2820
  */
3022
2821
  const hasAuthParamsInUrl = (params = window.location.search) => {
3023
2822
  return /[?&]code=[^&]+/.test(params);
@@ -3953,27 +3752,21 @@ exports.AVATAR_URI_SCHEME = AVATAR_URI_SCHEME;
3953
3752
  exports.AuthenticationHelper = AuthenticationHelper_default;
3954
3753
  exports.BrowserHooks = Hooks;
3955
3754
  exports.BrowserStorage = BrowserStorage_default;
3956
- exports.CHECK_SESSION_SIGNED_IN = CHECK_SESSION_SIGNED_IN;
3957
- exports.CHECK_SESSION_SIGNED_OUT = CHECK_SESSION_SIGNED_OUT;
3958
3755
  exports.CUSTOM_GRANT_CONFIG = CUSTOM_GRANT_CONFIG;
3959
3756
  exports.ERROR = ERROR;
3960
3757
  exports.ERROR_DESCRIPTION = ERROR_DESCRIPTION;
3961
3758
  exports.FetchHttpClient = FetchHttpClient_default;
3962
3759
  exports.Hooks = Hooks_default;
3963
- exports.INITIALIZED_SILENT_SIGN_IN = INITIALIZED_SILENT_SIGN_IN;
3964
3760
  exports.LocalStore = LocalStore_default;
3965
3761
  exports.MemoryStore = MemoryStore_default;
3966
- exports.OP_IFRAME = OP_IFRAME;
3967
- exports.PROMPT_NONE_IFRAME = PROMPT_NONE_IFRAME;
3968
- exports.PROMPT_NONE_REQUEST_SENT = PROMPT_NONE_REQUEST_SENT;
3969
3762
  exports.REFRESH_ACCESS_TOKEN_ERR0R = REFRESH_ACCESS_TOKEN_ERR0R;
3970
- exports.RP_IFRAME = RP_IFRAME;
3971
- exports.SET_SESSION_STATE_FROM_IFRAME = SET_SESSION_STATE_FROM_IFRAME;
3763
+ exports.SILENT_SIGN_IN_SIGNED_IN = SILENT_SIGN_IN_SIGNED_IN;
3764
+ exports.SILENT_SIGN_IN_SIGNED_OUT = SILENT_SIGN_IN_SIGNED_OUT;
3972
3765
  exports.SILENT_SIGN_IN_STATE = SILENT_SIGN_IN_STATE;
3766
+ exports.SILENT_SIGN_IN_TIMEOUT = SILENT_SIGN_IN_TIMEOUT;
3973
3767
  exports.SPACryptoUtils = SPACryptoUtils_default;
3974
3768
  exports.SPAHelper = SPAHelper_default;
3975
3769
  exports.SPAUtils = SPAUtils_default;
3976
- exports.STATE = STATE;
3977
3770
  exports.STATE_QUERY = STATE_QUERY;
3978
3771
  exports.SessionStore = SessionStore_default;
3979
3772
  exports.TOKEN_REQUEST_CONFIG_KEY = TOKEN_REQUEST_CONFIG_KEY;
@@ -3982,7 +3775,6 @@ exports.buildAvatarSpec = buildAvatarSpec_default;
3982
3775
  exports.createClassObserver = createClassObserver;
3983
3776
  exports.createHttpClientFetcher = createHttpClientFetcher_default;
3984
3777
  exports.createMediaQueryListener = createMediaQueryListener;
3985
- exports.createSessionManagementHelper = SessionManagementHelper_default;
3986
3778
  exports.deriveAvatarContent = deriveAvatarContent;
3987
3779
  exports.detectThemeMode = detectThemeMode;
3988
3780
  exports.extractAvatarParamsFromUri = extractAvatarParamsFromUri_default;