@cosmotech/core 3.0.0 → 3.0.2

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/index.cjs.js CHANGED
@@ -42502,7 +42502,7 @@ var AuthDev = {
42502
42502
  acquireTokensByRequest
42503
42503
  };
42504
42504
 
42505
- /*! @azure/msal-common v15.14.1 2026-01-17 */
42505
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42506
42506
  /*
42507
42507
  * Copyright (c) Microsoft Corporation. All rights reserved.
42508
42508
  * Licensed under the MIT License.
@@ -42776,7 +42776,7 @@ const JsonWebTokenTypes = {
42776
42776
  // Token renewal offset default in seconds
42777
42777
  const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
42778
42778
 
42779
- /*! @azure/msal-common v15.14.1 2026-01-17 */
42779
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42780
42780
  /*
42781
42781
  * Copyright (c) Microsoft Corporation. All rights reserved.
42782
42782
  * Licensed under the MIT License.
@@ -42787,7 +42787,7 @@ const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
42787
42787
  const unexpectedError = "unexpected_error";
42788
42788
  const postRequestFailed$1 = "post_request_failed";
42789
42789
 
42790
- /*! @azure/msal-common v15.14.1 2026-01-17 */
42790
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42791
42791
 
42792
42792
  /*
42793
42793
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -42822,7 +42822,7 @@ function createAuthError(code, additionalMessage) {
42822
42822
  : AuthErrorMessages[code]);
42823
42823
  }
42824
42824
 
42825
- /*! @azure/msal-common v15.14.1 2026-01-17 */
42825
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42826
42826
  /*
42827
42827
  * Copyright (c) Microsoft Corporation. All rights reserved.
42828
42828
  * Licensed under the MIT License.
@@ -42873,7 +42873,7 @@ const methodNotImplemented = "method_not_implemented";
42873
42873
  const nestedAppAuthBridgeDisabled = "nested_app_auth_bridge_disabled";
42874
42874
  const platformBrokerError = "platform_broker_error";
42875
42875
 
42876
- /*! @azure/msal-common v15.14.1 2026-01-17 */
42876
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42877
42877
 
42878
42878
  /*
42879
42879
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -42948,7 +42948,7 @@ function createClientAuthError(errorCode, additionalMessage) {
42948
42948
  return new ClientAuthError(errorCode, additionalMessage);
42949
42949
  }
42950
42950
 
42951
- /*! @azure/msal-common v15.14.1 2026-01-17 */
42951
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42952
42952
 
42953
42953
  /*
42954
42954
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -42987,7 +42987,7 @@ const DEFAULT_CRYPTO_IMPLEMENTATION = {
42987
42987
  },
42988
42988
  };
42989
42989
 
42990
- /*! @azure/msal-common v15.14.1 2026-01-17 */
42990
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42991
42991
 
42992
42992
  /*
42993
42993
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -43178,12 +43178,12 @@ class Logger {
43178
43178
  }
43179
43179
  }
43180
43180
 
43181
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43181
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43182
43182
  /* eslint-disable header/header */
43183
43183
  const name$2 = "@azure/msal-common";
43184
- const version$1 = "15.14.1";
43184
+ const version$1 = "15.16.1";
43185
43185
 
43186
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43186
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43187
43187
  /*
43188
43188
  * Copyright (c) Microsoft Corporation. All rights reserved.
43189
43189
  * Licensed under the MIT License.
@@ -43192,7 +43192,7 @@ const AzureCloudInstance = {
43192
43192
  // AzureCloudInstance is not specified.
43193
43193
  None: "none"};
43194
43194
 
43195
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43195
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43196
43196
  /*
43197
43197
  * Copyright (c) Microsoft Corporation. All rights reserved.
43198
43198
  * Licensed under the MIT License.
@@ -43222,7 +43222,7 @@ const invalidRequestMethodForEAR = "invalid_request_method_for_EAR";
43222
43222
  const invalidAuthorizePostBodyParameters = "invalid_authorize_post_body_parameters";
43223
43223
  const invalidPlatformBrokerConfiguration = "invalid_platform_broker_configuration";
43224
43224
 
43225
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43225
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43226
43226
 
43227
43227
  /*
43228
43228
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -43268,7 +43268,7 @@ function createClientConfigurationError(errorCode) {
43268
43268
  return new ClientConfigurationError(errorCode);
43269
43269
  }
43270
43270
 
43271
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43271
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43272
43272
  /*
43273
43273
  * Copyright (c) Microsoft Corporation. All rights reserved.
43274
43274
  * Licensed under the MIT License.
@@ -43363,9 +43363,48 @@ class StringUtils {
43363
43363
  .replace(/\?/g, "\\?"));
43364
43364
  return regex.test(input);
43365
43365
  }
43366
+ /**
43367
+ * Tests if a given string matches a given pattern using stricter, anchored matching semantics.
43368
+ *
43369
+ * Differences from `matchPattern` (legacy):
43370
+ * - All regex metacharacters (including `.`) in the pattern are treated as literals,
43371
+ * so `example.com` matches only `example.com` and not `exampleXcom`.
43372
+ * - The generated regex is anchored with `^` and `$` so partial/substring matches
43373
+ * are not allowed.
43374
+ * - `*` is the only supported wildcard. Its behaviour depends on the URL component:
43375
+ * - `host` component: `*` matches any sequence of characters that does NOT include
43376
+ * a dot (`.`), keeping wildcards within a single DNS label boundary.
43377
+ * - All other components: `*` matches any sequence of characters (including `/`).
43378
+ *
43379
+ * @param pattern - The `protectedResourceMap` key pattern to match against. `*` is a
43380
+ * multi-character wildcard; all other characters are treated as literals.
43381
+ * @param input - The URL component value (e.g. host, pathname) extracted from the
43382
+ * outgoing request URL to test against the pattern.
43383
+ * @param options - Optional. Provide `component` to enable component-aware wildcard
43384
+ * semantics. Accepted values: `"host"`, `"path"`, `"protocol"`, `"search"`,
43385
+ * `"hash"`. Defaults to path-style (permissive) matching when omitted.
43386
+ * @returns `true` if the full input string matches the pattern; `false` otherwise.
43387
+ */
43388
+ static matchPatternStrict(pattern, input, options) {
43389
+ const component = options?.component;
43390
+ // Step 1: Escape all regex special characters so literals are matched literally.
43391
+ let regexBody = pattern.replace(/[.+^${}()|[\]\\*?]/g, "\\$&");
43392
+ // Step 2: Replace the escaped '*' with its component-aware regex equivalent.
43393
+ if (component === "host") {
43394
+ regexBody = regexBody.replace(/\\\*/g, "[^.]*");
43395
+ }
43396
+ else {
43397
+ // PATH, PROTOCOL, SEARCH, HASH, or unspecified: '*' matches any characters.
43398
+ regexBody = regexBody.replace(/\\\*/g, ".*");
43399
+ }
43400
+ // Step 3: Anchor for full-string matching.
43401
+ // eslint-disable-next-line security/detect-non-literal-regexp
43402
+ const regex = new RegExp(`^${regexBody}$`);
43403
+ return regex.test(input);
43404
+ }
43366
43405
  }
43367
43406
 
43368
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43407
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43369
43408
 
43370
43409
  /*
43371
43410
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -43560,7 +43599,7 @@ class ScopeSet {
43560
43599
  }
43561
43600
  }
43562
43601
 
43563
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43602
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43564
43603
 
43565
43604
  /*
43566
43605
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -43600,7 +43639,7 @@ function buildClientInfoFromHomeAccountId(homeAccountId) {
43600
43639
  };
43601
43640
  }
43602
43641
 
43603
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43642
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43604
43643
  /*
43605
43644
  * Copyright (c) Microsoft Corporation. All rights reserved.
43606
43645
  * Licensed under the MIT License.
@@ -43682,7 +43721,7 @@ function updateAccountTenantProfileData(baseAccountInfo, tenantProfile, idTokenC
43682
43721
  return updatedAccountInfo;
43683
43722
  }
43684
43723
 
43685
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43724
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43686
43725
  /*
43687
43726
  * Copyright (c) Microsoft Corporation. All rights reserved.
43688
43727
  * Licensed under the MIT License.
@@ -43697,7 +43736,7 @@ const AuthorityType = {
43697
43736
  Ciam: 3,
43698
43737
  };
43699
43738
 
43700
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43739
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43701
43740
  /*
43702
43741
  * Copyright (c) Microsoft Corporation. All rights reserved.
43703
43742
  * Licensed under the MIT License.
@@ -43719,7 +43758,7 @@ function getTenantIdFromIdTokenClaims(idTokenClaims) {
43719
43758
  return null;
43720
43759
  }
43721
43760
 
43722
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43761
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43723
43762
  /*
43724
43763
  * Copyright (c) Microsoft Corporation. All rights reserved.
43725
43764
  * Licensed under the MIT License.
@@ -43743,7 +43782,7 @@ const ProtocolMode = {
43743
43782
  EAR: "EAR",
43744
43783
  };
43745
43784
 
43746
- /*! @azure/msal-common v15.14.1 2026-01-17 */
43785
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43747
43786
 
43748
43787
  /*
43749
43788
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -43978,7 +44017,7 @@ class AccountEntity {
43978
44017
  }
43979
44018
  }
43980
44019
 
43981
- /*! @azure/msal-common v15.14.1 2026-01-17 */
44020
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43982
44021
 
43983
44022
  /*
43984
44023
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44059,7 +44098,7 @@ function checkMaxAge(authTime, maxAge) {
44059
44098
  }
44060
44099
  }
44061
44100
 
44062
- /*! @azure/msal-common v15.14.1 2026-01-17 */
44101
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44063
44102
 
44064
44103
  /*
44065
44104
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44175,7 +44214,7 @@ function normalizeUrlForComparison(url) {
44175
44214
  }
44176
44215
  }
44177
44216
 
44178
- /*! @azure/msal-common v15.14.1 2026-01-17 */
44217
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44179
44218
 
44180
44219
  /*
44181
44220
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44339,7 +44378,7 @@ class UrlString {
44339
44378
  }
44340
44379
  }
44341
44380
 
44342
- /*! @azure/msal-common v15.14.1 2026-01-17 */
44381
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44343
44382
 
44344
44383
  /*
44345
44384
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44368,6 +44407,27 @@ const rawMetdataJSON = {
44368
44407
  authorization_endpoint: "https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/authorize",
44369
44408
  end_session_endpoint: "https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/logout",
44370
44409
  },
44410
+ "login.sovcloud-identity.fr": {
44411
+ token_endpoint: "https://login.sovcloud-identity.fr/{tenantid}/oauth2/v2.0/token",
44412
+ jwks_uri: "https://login.sovcloud-identity.fr/{tenantid}/discovery/v2.0/keys",
44413
+ issuer: "https://login.sovcloud-identity.fr/{tenantid}/v2.0",
44414
+ authorization_endpoint: "https://login.sovcloud-identity.fr/{tenantid}/oauth2/v2.0/authorize",
44415
+ end_session_endpoint: "https://login.sovcloud-identity.fr/{tenantid}/oauth2/v2.0/logout",
44416
+ },
44417
+ "login.sovcloud-identity.de": {
44418
+ token_endpoint: "https://login.sovcloud-identity.de/{tenantid}/oauth2/v2.0/token",
44419
+ jwks_uri: "https://login.sovcloud-identity.de/{tenantid}/discovery/v2.0/keys",
44420
+ issuer: "https://login.sovcloud-identity.de/{tenantid}/v2.0",
44421
+ authorization_endpoint: "https://login.sovcloud-identity.de/{tenantid}/oauth2/v2.0/authorize",
44422
+ end_session_endpoint: "https://login.sovcloud-identity.de/{tenantid}/oauth2/v2.0/logout",
44423
+ },
44424
+ "login.sovcloud-identity.sg": {
44425
+ token_endpoint: "https://login.sovcloud-identity.sg/common/oauth2/v2.0/token",
44426
+ jwks_uri: "https://login.sovcloud-identity.sg/common/discovery/v2.0/keys",
44427
+ issuer: "https://login.sovcloud-identity.sg/{tenantid}/v2.0",
44428
+ authorization_endpoint: "https://login.sovcloud-identity.sg/common/oauth2/v2.0/authorize",
44429
+ end_session_endpoint: "https://login.sovcloud-identity.sg/common/oauth2/v2.0/logout",
44430
+ },
44371
44431
  },
44372
44432
  instanceDiscoveryMetadata: {
44373
44433
  metadata: [
@@ -44407,6 +44467,21 @@ const rawMetdataJSON = {
44407
44467
  preferred_cache: "login-us.microsoftonline.com",
44408
44468
  aliases: ["login-us.microsoftonline.com"],
44409
44469
  },
44470
+ {
44471
+ preferred_network: "login.sovcloud-identity.fr",
44472
+ preferred_cache: "login.sovcloud-identity.fr",
44473
+ aliases: ["login.sovcloud-identity.fr"],
44474
+ },
44475
+ {
44476
+ preferred_network: "login.sovcloud-identity.de",
44477
+ preferred_cache: "login.sovcloud-identity.de",
44478
+ aliases: ["login.sovcloud-identity.de"],
44479
+ },
44480
+ {
44481
+ preferred_network: "login.sovcloud-identity.sg",
44482
+ preferred_cache: "login.sovcloud-identity.sg",
44483
+ aliases: ["login.sovcloud-identity.sg"],
44484
+ },
44410
44485
  ],
44411
44486
  },
44412
44487
  };
@@ -44478,7 +44553,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
44478
44553
  return null;
44479
44554
  }
44480
44555
 
44481
- /*! @azure/msal-common v15.14.1 2026-01-17 */
44556
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44482
44557
  /*
44483
44558
  * Copyright (c) Microsoft Corporation. All rights reserved.
44484
44559
  * Licensed under the MIT License.
@@ -44486,7 +44561,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
44486
44561
  const cacheQuotaExceeded = "cache_quota_exceeded";
44487
44562
  const cacheErrorUnknown = "cache_error_unknown";
44488
44563
 
44489
- /*! @azure/msal-common v15.14.1 2026-01-17 */
44564
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44490
44565
 
44491
44566
  /*
44492
44567
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44531,7 +44606,7 @@ function createCacheError(e) {
44531
44606
  }
44532
44607
  }
44533
44608
 
44534
- /*! @azure/msal-common v15.14.1 2026-01-17 */
44609
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44535
44610
 
44536
44611
  /*
44537
44612
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -45641,7 +45716,7 @@ class DefaultStorageClass extends CacheManager {
45641
45716
  }
45642
45717
  }
45643
45718
 
45644
- /*! @azure/msal-common v15.14.1 2026-01-17 */
45719
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
45645
45720
  /*
45646
45721
  * Copyright (c) Microsoft Corporation. All rights reserved.
45647
45722
  * Licensed under the MIT License.
@@ -45903,6 +45978,11 @@ const PerformanceEvents = {
45903
45978
  LoadIdToken: "loadIdToken",
45904
45979
  LoadAccessToken: "loadAccessToken",
45905
45980
  LoadRefreshToken: "loadRefreshToken",
45981
+ /**
45982
+ * SSO capability verification call (msal-browser).
45983
+ * Fire-and-forget SSO verification call made after interactive authentication completes.
45984
+ */
45985
+ SsoCapable: "ssoCapable",
45906
45986
  };
45907
45987
  /**
45908
45988
  * State of the performance event.
@@ -45913,7 +45993,7 @@ const PerformanceEvents = {
45913
45993
  const PerformanceEventStatus = {
45914
45994
  InProgress: 1};
45915
45995
 
45916
- /*! @azure/msal-common v15.14.1 2026-01-17 */
45996
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
45917
45997
 
45918
45998
  /*
45919
45999
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -45992,7 +46072,7 @@ class StubPerformanceClient {
45992
46072
  }
45993
46073
  }
45994
46074
 
45995
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46075
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
45996
46076
 
45997
46077
  /*
45998
46078
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46092,7 +46172,7 @@ function isOidcProtocolMode(config) {
46092
46172
  return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
46093
46173
  }
46094
46174
 
46095
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46175
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46096
46176
  /*
46097
46177
  * Copyright (c) Microsoft Corporation. All rights reserved.
46098
46178
  * Licensed under the MIT License.
@@ -46102,7 +46182,7 @@ const CcsCredentialType = {
46102
46182
  UPN: "UPN",
46103
46183
  };
46104
46184
 
46105
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46185
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46106
46186
  /*
46107
46187
  * Copyright (c) Microsoft Corporation. All rights reserved.
46108
46188
  * Licensed under the MIT License.
@@ -46152,7 +46232,7 @@ const INSTANCE_AWARE = "instance_aware";
46152
46232
  const EAR_JWK = "ear_jwk";
46153
46233
  const EAR_JWE_CRYPTO = "ear_jwe_crypto";
46154
46234
 
46155
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46235
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46156
46236
 
46157
46237
  /*
46158
46238
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46532,7 +46612,7 @@ function addPostBodyParameters(parameters, bodyParameters) {
46532
46612
  });
46533
46613
  }
46534
46614
 
46535
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46615
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46536
46616
  /*
46537
46617
  * Copyright (c) Microsoft Corporation. All rights reserved.
46538
46618
  * Licensed under the MIT License.
@@ -46544,7 +46624,7 @@ function isOpenIdConfigResponse(response) {
46544
46624
  response.hasOwnProperty("jwks_uri"));
46545
46625
  }
46546
46626
 
46547
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46627
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46548
46628
  /*
46549
46629
  * Copyright (c) Microsoft Corporation. All rights reserved.
46550
46630
  * Licensed under the MIT License.
@@ -46554,7 +46634,7 @@ function isCloudInstanceDiscoveryResponse(response) {
46554
46634
  response.hasOwnProperty("metadata"));
46555
46635
  }
46556
46636
 
46557
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46637
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46558
46638
  /*
46559
46639
  * Copyright (c) Microsoft Corporation. All rights reserved.
46560
46640
  * Licensed under the MIT License.
@@ -46564,7 +46644,7 @@ function isCloudInstanceDiscoveryErrorResponse(response) {
46564
46644
  response.hasOwnProperty("error_description"));
46565
46645
  }
46566
46646
 
46567
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46647
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46568
46648
  /*
46569
46649
  * Copyright (c) Microsoft Corporation. All rights reserved.
46570
46650
  * Licensed under the MIT License.
@@ -46660,7 +46740,7 @@ const invokeAsync = (callback, eventName, logger, telemetryClient, correlationId
46660
46740
  };
46661
46741
  };
46662
46742
 
46663
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46743
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46664
46744
 
46665
46745
  /*
46666
46746
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46766,7 +46846,7 @@ RegionDiscovery.IMDS_OPTIONS = {
46766
46846
  },
46767
46847
  };
46768
46848
 
46769
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46849
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46770
46850
  /*
46771
46851
  * Copyright (c) Microsoft Corporation. All rights reserved.
46772
46852
  * Licensed under the MIT License.
@@ -46831,7 +46911,7 @@ function wasClockTurnedBack(cachedAt) {
46831
46911
  return cachedAtSec > nowSeconds();
46832
46912
  }
46833
46913
 
46834
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46914
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46835
46915
 
46836
46916
  /*
46837
46917
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47093,7 +47173,7 @@ function isAuthorityMetadataExpired(metadata) {
47093
47173
  return metadata.expiresAt <= nowSeconds();
47094
47174
  }
47095
47175
 
47096
- /*! @azure/msal-common v15.14.1 2026-01-17 */
47176
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47097
47177
 
47098
47178
  /*
47099
47179
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47932,7 +48012,7 @@ function buildStaticAuthorityOptions(authOptions) {
47932
48012
  };
47933
48013
  }
47934
48014
 
47935
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48015
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47936
48016
 
47937
48017
  /*
47938
48018
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47963,7 +48043,7 @@ async function createDiscoveredInstance(authorityUri, networkClient, cacheManage
47963
48043
  }
47964
48044
  }
47965
48045
 
47966
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48046
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47967
48047
 
47968
48048
  /*
47969
48049
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47982,7 +48062,7 @@ class ServerError extends AuthError {
47982
48062
  }
47983
48063
  }
47984
48064
 
47985
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48065
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47986
48066
  /*
47987
48067
  * Copyright (c) Microsoft Corporation. All rights reserved.
47988
48068
  * Licensed under the MIT License.
@@ -48003,7 +48083,7 @@ function getRequestThumbprint(clientId, request, homeAccountId) {
48003
48083
  };
48004
48084
  }
48005
48085
 
48006
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48086
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48007
48087
 
48008
48088
  /*
48009
48089
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48090,7 +48170,7 @@ class ThrottlingUtils {
48090
48170
  }
48091
48171
  }
48092
48172
 
48093
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48173
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48094
48174
 
48095
48175
  /*
48096
48176
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48121,7 +48201,7 @@ function createNetworkError(error, httpStatus, responseHeaders, additionalError)
48121
48201
  return new NetworkError(error, httpStatus, responseHeaders);
48122
48202
  }
48123
48203
 
48124
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48204
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48125
48205
 
48126
48206
  /*
48127
48207
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48269,23 +48349,58 @@ class BaseClient {
48269
48349
  }
48270
48350
  }
48271
48351
 
48272
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48352
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48273
48353
  /*
48274
48354
  * Copyright (c) Microsoft Corporation. All rights reserved.
48275
48355
  * Licensed under the MIT License.
48276
48356
  */
48277
- // Codes defined by MSAL
48357
+ /**
48358
+ * MSAL-defined interaction required error code indicating no tokens are found in cache.
48359
+ * @public
48360
+ */
48278
48361
  const noTokensFound = "no_tokens_found";
48362
+ /**
48363
+ * MSAL-defined error code indicating a native account is unavailable on the platform.
48364
+ * @public
48365
+ */
48279
48366
  const nativeAccountUnavailable = "native_account_unavailable";
48367
+ /**
48368
+ * MSAL-defined error code indicating the refresh token has expired and user interaction is needed.
48369
+ * @public
48370
+ */
48280
48371
  const refreshTokenExpired = "refresh_token_expired";
48372
+ /**
48373
+ * MSAL-defined error code indicating UI/UX is not allowed (e.g., blocked by policy), requiring alternate interaction.
48374
+ * @public
48375
+ */
48281
48376
  const uxNotAllowed = "ux_not_allowed";
48282
- // Codes potentially returned by server
48377
+ /**
48378
+ * Server-originated error code indicating interaction is required to complete the request.
48379
+ * @public
48380
+ */
48283
48381
  const interactionRequired = "interaction_required";
48382
+ /**
48383
+ * Server-originated error code indicating user consent is required.
48384
+ * @public
48385
+ */
48284
48386
  const consentRequired = "consent_required";
48387
+ /**
48388
+ * Server-originated error code indicating user login is required.
48389
+ * @public
48390
+ */
48285
48391
  const loginRequired = "login_required";
48286
- const badToken = "bad_token";
48392
+ /**
48393
+ * Server-originated error code indicating the token is invalid or corrupted.
48394
+ * @public
48395
+ */
48396
+ const badToken = "bad_token";
48397
+ /**
48398
+ * Server-originated error code indicating the user was interrupted and must reattempt the flow.
48399
+ * @public
48400
+ */
48401
+ const interruptedUser = "interrupted_user";
48287
48402
 
48288
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48403
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48289
48404
 
48290
48405
  /*
48291
48406
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48300,6 +48415,7 @@ const InteractionRequiredServerErrorMessage = [
48300
48415
  loginRequired,
48301
48416
  badToken,
48302
48417
  uxNotAllowed,
48418
+ interruptedUser,
48303
48419
  ];
48304
48420
  const InteractionRequiredAuthSubErrorMessage = [
48305
48421
  "message_only",
@@ -48308,6 +48424,7 @@ const InteractionRequiredAuthSubErrorMessage = [
48308
48424
  "user_password_expired",
48309
48425
  "consent_required",
48310
48426
  "bad_token",
48427
+ "interrupted_user",
48311
48428
  ];
48312
48429
  const InteractionRequiredAuthErrorMessages = {
48313
48430
  [noTokensFound]: "No refresh token found in the cache. Please sign-in.",
@@ -48315,6 +48432,7 @@ const InteractionRequiredAuthErrorMessages = {
48315
48432
  [refreshTokenExpired]: "Refresh token has expired.",
48316
48433
  [badToken]: "Identity provider returned bad_token due to an expired or invalid refresh token. Please invoke an interactive API to resolve.",
48317
48434
  [uxNotAllowed]: "`canShowUI` flag in Edge was set to false. User interaction required on web page. Please invoke an interactive API to resolve.",
48435
+ [interruptedUser]: "The user could not be authenticated due to an interrupted state. Please invoke an interactive API to resolve.",
48318
48436
  };
48319
48437
  /**
48320
48438
  * Error thrown when user interaction is required.
@@ -48357,7 +48475,7 @@ function createInteractionRequiredAuthError(errorCode) {
48357
48475
  return new InteractionRequiredAuthError(errorCode, InteractionRequiredAuthErrorMessages[errorCode]);
48358
48476
  }
48359
48477
 
48360
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48478
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48361
48479
 
48362
48480
  /*
48363
48481
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48429,7 +48547,7 @@ class ProtocolUtils {
48429
48547
  }
48430
48548
  }
48431
48549
 
48432
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48550
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48433
48551
 
48434
48552
  /*
48435
48553
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48511,7 +48629,7 @@ class PopTokenGenerator {
48511
48629
  }
48512
48630
  }
48513
48631
 
48514
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48632
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48515
48633
  /*
48516
48634
  * Copyright (c) Microsoft Corporation. All rights reserved.
48517
48635
  * Licensed under the MIT License.
@@ -48538,7 +48656,7 @@ class PopTokenGenerator {
48538
48656
  }
48539
48657
  }
48540
48658
 
48541
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48659
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48542
48660
 
48543
48661
  /*
48544
48662
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48877,7 +48995,7 @@ function buildAccountToCache(cacheStorage, authority, homeAccountId, base64Decod
48877
48995
  return baseAccount;
48878
48996
  }
48879
48997
 
48880
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48998
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48881
48999
  /*
48882
49000
  * Copyright (c) Microsoft Corporation. All rights reserved.
48883
49001
  * Licensed under the MIT License.
@@ -48895,7 +49013,7 @@ async function getClientAssertion(clientAssertion, clientId, tokenEndpoint) {
48895
49013
  }
48896
49014
  }
48897
49015
 
48898
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49016
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48899
49017
 
48900
49018
  /*
48901
49019
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49044,11 +49162,6 @@ class AuthorizationCodeClient extends BaseClient {
49044
49162
  throw createClientConfigurationError(missingSshJwk);
49045
49163
  }
49046
49164
  }
49047
- if (!StringUtils.isEmptyObj(request.claims) ||
49048
- (this.config.authOptions.clientCapabilities &&
49049
- this.config.authOptions.clientCapabilities.length > 0)) {
49050
- addClaims(parameters, request.claims, this.config.authOptions.clientCapabilities);
49051
- }
49052
49165
  let ccsCred = undefined;
49053
49166
  if (request.clientInfo) {
49054
49167
  try {
@@ -49098,6 +49211,15 @@ class AuthorizationCodeClient extends BaseClient {
49098
49211
  });
49099
49212
  }
49100
49213
  instrumentBrokerParams(parameters, request.correlationId, this.performanceClient);
49214
+ // ignore config claims if skipBrokerClaims is set to true and this is a brokered authentication flow
49215
+ const configClaims = request.skipBrokerClaims &&
49216
+ parameters.has(BROKER_CLIENT_ID)
49217
+ ? undefined
49218
+ : this.config.authOptions.clientCapabilities;
49219
+ if (!StringUtils.isEmptyObj(request.claims) ||
49220
+ (configClaims && configClaims.length > 0)) {
49221
+ addClaims(parameters, request.claims, configClaims);
49222
+ }
49101
49223
  return mapToQueryString(parameters);
49102
49224
  }
49103
49225
  /**
@@ -49131,7 +49253,7 @@ class AuthorizationCodeClient extends BaseClient {
49131
49253
  }
49132
49254
  }
49133
49255
 
49134
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49256
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49135
49257
 
49136
49258
  /*
49137
49259
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49309,11 +49431,6 @@ class RefreshTokenClient extends BaseClient {
49309
49431
  throw createClientConfigurationError(missingSshJwk);
49310
49432
  }
49311
49433
  }
49312
- if (!StringUtils.isEmptyObj(request.claims) ||
49313
- (this.config.authOptions.clientCapabilities &&
49314
- this.config.authOptions.clientCapabilities.length > 0)) {
49315
- addClaims(parameters, request.claims, this.config.authOptions.clientCapabilities);
49316
- }
49317
49434
  if (this.config.systemOptions.preventCorsPreflight &&
49318
49435
  request.ccsCredential) {
49319
49436
  switch (request.ccsCredential.type) {
@@ -49339,11 +49456,20 @@ class RefreshTokenClient extends BaseClient {
49339
49456
  addExtraQueryParameters(parameters, request.tokenBodyParameters);
49340
49457
  }
49341
49458
  instrumentBrokerParams(parameters, request.correlationId, this.performanceClient);
49459
+ // ignore config claims if skipBrokerClaims is set to true and this is a brokered authentication flow
49460
+ const configClaims = request.skipBrokerClaims &&
49461
+ parameters.has(BROKER_CLIENT_ID)
49462
+ ? undefined
49463
+ : this.config.authOptions.clientCapabilities;
49464
+ if (!StringUtils.isEmptyObj(request.claims) ||
49465
+ (configClaims && configClaims.length > 0)) {
49466
+ addClaims(parameters, request.claims, configClaims);
49467
+ }
49342
49468
  return mapToQueryString(parameters);
49343
49469
  }
49344
49470
  }
49345
49471
 
49346
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49472
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49347
49473
 
49348
49474
  /*
49349
49475
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49441,7 +49567,7 @@ class SilentFlowClient extends BaseClient {
49441
49567
  }
49442
49568
  }
49443
49569
 
49444
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49570
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49445
49571
 
49446
49572
  /*
49447
49573
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49456,7 +49582,7 @@ const StubbedNetworkModule = {
49456
49582
  },
49457
49583
  };
49458
49584
 
49459
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49585
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49460
49586
 
49461
49587
  /*
49462
49588
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49577,14 +49703,17 @@ function getStandardAuthorizeRequestParameters(authOptions, request, logger, per
49577
49703
  if (request.state) {
49578
49704
  addState(parameters, request.state);
49579
49705
  }
49580
- if (request.claims ||
49581
- (authOptions.clientCapabilities &&
49582
- authOptions.clientCapabilities.length > 0)) {
49583
- addClaims(parameters, request.claims, authOptions.clientCapabilities);
49584
- }
49585
49706
  if (request.embeddedClientId) {
49586
49707
  addBrokerParameters(parameters, authOptions.clientId, authOptions.redirectUri);
49587
49708
  }
49709
+ // ignore config claims if skipBrokerClaims is set to true and this is a brokered authentication flow
49710
+ const configClaims = request.skipBrokerClaims &&
49711
+ parameters.has(BROKER_CLIENT_ID)
49712
+ ? undefined
49713
+ : authOptions.clientCapabilities;
49714
+ if (request.claims || (configClaims && configClaims.length > 0)) {
49715
+ addClaims(parameters, request.claims, configClaims);
49716
+ }
49588
49717
  // If extraQueryParameters includes instance_aware its value will be added when extraQueryParameters are added
49589
49718
  if (authOptions.instanceAware &&
49590
49719
  (!request.extraQueryParameters ||
@@ -49680,7 +49809,7 @@ function extractLoginHint(account) {
49680
49809
  return account.loginHint || account.idTokenClaims?.login_hint || null;
49681
49810
  }
49682
49811
 
49683
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49812
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49684
49813
 
49685
49814
  /*
49686
49815
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49943,7 +50072,7 @@ class ServerTelemetryManager {
49943
50072
  }
49944
50073
  }
49945
50074
 
49946
- /*! @azure/msal-common v15.14.1 2026-01-17 */
50075
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49947
50076
  /*
49948
50077
  * Copyright (c) Microsoft Corporation. All rights reserved.
49949
50078
  * Licensed under the MIT License.
@@ -49951,7 +50080,7 @@ class ServerTelemetryManager {
49951
50080
  const missingKidError = "missing_kid_error";
49952
50081
  const missingAlgError = "missing_alg_error";
49953
50082
 
49954
- /*! @azure/msal-common v15.14.1 2026-01-17 */
50083
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49955
50084
 
49956
50085
  /*
49957
50086
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49976,7 +50105,7 @@ function createJoseHeaderError(code) {
49976
50105
  return new JoseHeaderError(code, JoseHeaderErrorMessages[code]);
49977
50106
  }
49978
50107
 
49979
- /*! @azure/msal-common v15.14.1 2026-01-17 */
50108
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49980
50109
 
49981
50110
  /*
49982
50111
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50016,7 +50145,7 @@ class JoseHeader {
50016
50145
  }
50017
50146
  }
50018
50147
 
50019
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50148
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50020
50149
  /*
50021
50150
  * Copyright (c) Microsoft Corporation. All rights reserved.
50022
50151
  * Licensed under the MIT License.
@@ -50073,7 +50202,7 @@ const failedToParseHeaders = "failed_to_parse_headers";
50073
50202
  const failedToDecryptEarResponse = "failed_to_decrypt_ear_response";
50074
50203
  const timedOut = "timed_out";
50075
50204
 
50076
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50205
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50077
50206
 
50078
50207
  /*
50079
50208
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50150,7 +50279,7 @@ function createBrowserAuthError(errorCode, subError) {
50150
50279
  return new BrowserAuthError(errorCode, subError);
50151
50280
  }
50152
50281
 
50153
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50282
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50154
50283
 
50155
50284
  /*
50156
50285
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50339,7 +50468,7 @@ const iFrameRenewalPolicies = [
50339
50468
  CacheLookupPolicy.RefreshTokenAndNetwork,
50340
50469
  ];
50341
50470
 
50342
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50471
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50343
50472
  /*
50344
50473
  * Copyright (c) Microsoft Corporation. All rights reserved.
50345
50474
  * Licensed under the MIT License.
@@ -50384,7 +50513,7 @@ function base64EncArr(aBytes) {
50384
50513
  return btoa(binString);
50385
50514
  }
50386
50515
 
50387
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50516
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50388
50517
 
50389
50518
  /*
50390
50519
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50423,7 +50552,7 @@ function base64DecToArr(base64String) {
50423
50552
  return Uint8Array.from(binString, (m) => m.codePointAt(0) || 0);
50424
50553
  }
50425
50554
 
50426
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50555
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50427
50556
 
50428
50557
  /*
50429
50558
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50722,7 +50851,7 @@ async function hashString(plainText) {
50722
50851
  return urlEncodeArr(hashBytes);
50723
50852
  }
50724
50853
 
50725
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50854
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50726
50855
  /*
50727
50856
  * Copyright (c) Microsoft Corporation. All rights reserved.
50728
50857
  * Licensed under the MIT License.
@@ -50731,7 +50860,7 @@ const storageNotSupported = "storage_not_supported";
50731
50860
  const stubbedPublicClientApplicationCalled = "stubbed_public_client_application_called";
50732
50861
  const inMemRedirectUnavailable = "in_mem_redirect_unavailable";
50733
50862
 
50734
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50863
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50735
50864
 
50736
50865
  /*
50737
50866
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50771,7 +50900,7 @@ function createBrowserConfigurationAuthError(errorCode) {
50771
50900
  return new BrowserConfigurationAuthError(errorCode, BrowserConfigurationAuthErrorMessages[errorCode]);
50772
50901
  }
50773
50902
 
50774
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50903
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50775
50904
 
50776
50905
  /*
50777
50906
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50933,7 +51062,7 @@ function createGuid() {
50933
51062
  return createNewGuid();
50934
51063
  }
50935
51064
 
50936
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51065
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50937
51066
 
50938
51067
  /*
50939
51068
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50976,7 +51105,7 @@ class NavigationClient {
50976
51105
  }
50977
51106
  }
50978
51107
 
50979
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51108
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50980
51109
 
50981
51110
  /*
50982
51111
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51097,7 +51226,7 @@ function getHeaderDict(headers) {
51097
51226
  }
51098
51227
  }
51099
51228
 
51100
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51229
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51101
51230
 
51102
51231
  /*
51103
51232
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51146,6 +51275,7 @@ function buildConfiguration({ auth: userInputAuth, cache: userInputCache, system
51146
51275
  supportsNestedAppAuth: false,
51147
51276
  instanceAware: false,
51148
51277
  encodeExtraQueryParams: false,
51278
+ verifySSO: false,
51149
51279
  };
51150
51280
  // Default cache options for browser
51151
51281
  const DEFAULT_CACHE_OPTIONS = {
@@ -51232,12 +51362,12 @@ function buildConfiguration({ auth: userInputAuth, cache: userInputCache, system
51232
51362
  return overlayedConfig;
51233
51363
  }
51234
51364
 
51235
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51365
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51236
51366
  /* eslint-disable header/header */
51237
51367
  const name$1 = "@azure/msal-browser";
51238
- const version = "4.28.1";
51368
+ const version = "4.29.1";
51239
51369
 
51240
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51370
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51241
51371
  /*
51242
51372
  * Copyright (c) Microsoft Corporation. All rights reserved.
51243
51373
  * Licensed under the MIT License.
@@ -51265,7 +51395,7 @@ function getTokenKeysCacheKey(clientId, schema = CREDENTIAL_SCHEMA_VERSION) {
51265
51395
  return `${PREFIX}.${schema}.${TOKEN_KEYS}.${clientId}`;
51266
51396
  }
51267
51397
 
51268
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51398
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51269
51399
 
51270
51400
  /*
51271
51401
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51362,7 +51492,7 @@ class BaseOperatingContext {
51362
51492
  }
51363
51493
  }
51364
51494
 
51365
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51495
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51366
51496
 
51367
51497
  /*
51368
51498
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51408,7 +51538,7 @@ StandardOperatingContext.MODULE_NAME = "";
51408
51538
  */
51409
51539
  StandardOperatingContext.ID = "StandardOperatingContext";
51410
51540
 
51411
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51541
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51412
51542
 
51413
51543
  /*
51414
51544
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51611,7 +51741,7 @@ class DatabaseStorage {
51611
51741
  }
51612
51742
  }
51613
51743
 
51614
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51744
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51615
51745
  /*
51616
51746
  * Copyright (c) Microsoft Corporation. All rights reserved.
51617
51747
  * Licensed under the MIT License.
@@ -51657,7 +51787,7 @@ class MemoryStorage {
51657
51787
  }
51658
51788
  }
51659
51789
 
51660
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51790
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51661
51791
 
51662
51792
  /*
51663
51793
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51791,7 +51921,7 @@ class AsyncMemoryStorage {
51791
51921
  }
51792
51922
  }
51793
51923
 
51794
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51924
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51795
51925
 
51796
51926
  /*
51797
51927
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51972,7 +52102,7 @@ function getSortedObjectString(obj) {
51972
52102
  return JSON.stringify(obj, Object.keys(obj).sort());
51973
52103
  }
51974
52104
 
51975
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52105
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51976
52106
 
51977
52107
  /*
51978
52108
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52050,7 +52180,7 @@ function getCookieExpirationTime(cookieLifeDays) {
52050
52180
  return expr.toUTCString();
52051
52181
  }
52052
52182
 
52053
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52183
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52054
52184
 
52055
52185
  /*
52056
52186
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52092,7 +52222,7 @@ function getTokenKeys(clientId, storage, schemaVersion) {
52092
52222
  };
52093
52223
  }
52094
52224
 
52095
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52225
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52096
52226
  /*
52097
52227
  * Copyright (c) Microsoft Corporation. All rights reserved.
52098
52228
  * Licensed under the MIT License.
@@ -52103,7 +52233,7 @@ function isEncrypted(data) {
52103
52233
  data.hasOwnProperty("data"));
52104
52234
  }
52105
52235
 
52106
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52236
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52107
52237
 
52108
52238
  /*
52109
52239
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52393,7 +52523,7 @@ class LocalStorage {
52393
52523
  }
52394
52524
  }
52395
52525
 
52396
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52526
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52397
52527
 
52398
52528
  /*
52399
52529
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52435,7 +52565,7 @@ class SessionStorage {
52435
52565
  }
52436
52566
  }
52437
52567
 
52438
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52568
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52439
52569
  /*
52440
52570
  * Copyright (c) Microsoft Corporation. All rights reserved.
52441
52571
  * Licensed under the MIT License.
@@ -52470,7 +52600,7 @@ const EventType = {
52470
52600
  BROKER_CONNECTION_ESTABLISHED: "msal:brokerConnectionEstablished",
52471
52601
  };
52472
52602
 
52473
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52603
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52474
52604
  /*
52475
52605
  * Copyright (c) Microsoft Corporation. All rights reserved.
52476
52606
  * Licensed under the MIT License.
@@ -52487,7 +52617,7 @@ function removeElementFromArray(array, element) {
52487
52617
  }
52488
52618
  }
52489
52619
 
52490
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52620
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52491
52621
 
52492
52622
  /*
52493
52623
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -53902,7 +54032,7 @@ const DEFAULT_BROWSER_CACHE_MANAGER = (clientId, logger, performanceClient, even
53902
54032
  return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger, performanceClient, eventHandler);
53903
54033
  };
53904
54034
 
53905
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54035
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
53906
54036
  /*
53907
54037
  * Copyright (c) Microsoft Corporation. All rights reserved.
53908
54038
  * Licensed under the MIT License.
@@ -54027,7 +54157,7 @@ function getActiveAccount(browserStorage, correlationId) {
54027
54157
  return browserStorage.getActiveAccount(correlationId);
54028
54158
  }
54029
54159
 
54030
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54160
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54031
54161
 
54032
54162
  /*
54033
54163
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54133,7 +54263,7 @@ class EventHandler {
54133
54263
  }
54134
54264
  }
54135
54265
 
54136
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54266
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54137
54267
 
54138
54268
  /*
54139
54269
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54249,7 +54379,7 @@ class BaseInteractionClient {
54249
54379
  }
54250
54380
  }
54251
54381
 
54252
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54382
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54253
54383
 
54254
54384
  /*
54255
54385
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54334,7 +54464,7 @@ function validateRequestMethod(interactionRequest, protocolMode) {
54334
54464
  return httpMethod;
54335
54465
  }
54336
54466
 
54337
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54467
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54338
54468
 
54339
54469
  /*
54340
54470
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54506,6 +54636,10 @@ class StandardInteractionClient extends BaseInteractionClient {
54506
54636
  async initializeAuthorizationRequest(request, interactionType) {
54507
54637
  this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.correlationId);
54508
54638
  const redirectUri = this.getRedirectUri(request.redirectUri);
54639
+ if (new URL(redirectUri).origin !== new URL(window.location.href).origin) {
54640
+ this.logger.warning("The origin of the redirect URI does not match the origin of the current page. This is likely to cause issues with authentication.", this.correlationId);
54641
+ this.performanceClient.addFields({ isRedirectUriCrossOrigin: true }, this.correlationId);
54642
+ }
54509
54643
  const browserState = {
54510
54644
  interactionType: interactionType,
54511
54645
  };
@@ -54538,7 +54672,7 @@ class StandardInteractionClient extends BaseInteractionClient {
54538
54672
  }
54539
54673
  }
54540
54674
 
54541
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54675
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54542
54676
 
54543
54677
  /*
54544
54678
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54562,7 +54696,7 @@ function extractBrowserRequestState(browserCrypto, state) {
54562
54696
  }
54563
54697
  }
54564
54698
 
54565
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54699
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54566
54700
 
54567
54701
  /*
54568
54702
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54601,7 +54735,7 @@ function validateInteractionType(response, browserCrypto, interactionType) {
54601
54735
  }
54602
54736
  }
54603
54737
 
54604
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54738
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54605
54739
 
54606
54740
  /*
54607
54741
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54697,7 +54831,7 @@ class InteractionHandler {
54697
54831
  }
54698
54832
  }
54699
54833
 
54700
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54834
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54701
54835
  /*
54702
54836
  * Copyright (c) Microsoft Corporation. All rights reserved.
54703
54837
  * Licensed under the MIT License.
@@ -54706,7 +54840,7 @@ const contentError = "ContentError";
54706
54840
  const pageException = "PageException";
54707
54841
  const userSwitch = "user_switch";
54708
54842
 
54709
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54843
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54710
54844
  /*
54711
54845
  * Copyright (c) Microsoft Corporation. All rights reserved.
54712
54846
  * Licensed under the MIT License.
@@ -54719,7 +54853,7 @@ const DISABLED = "DISABLED";
54719
54853
  const ACCOUNT_UNAVAILABLE = "ACCOUNT_UNAVAILABLE";
54720
54854
  const UX_NOT_ALLOWED = "UX_NOT_ALLOWED";
54721
54855
 
54722
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54856
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54723
54857
 
54724
54858
  /*
54725
54859
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54784,7 +54918,7 @@ function createNativeAuthError(code, description, ext) {
54784
54918
  return new NativeAuthError(code, NativeAuthErrorMessages[code] || description, ext);
54785
54919
  }
54786
54920
 
54787
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54921
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54788
54922
 
54789
54923
  /*
54790
54924
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54834,7 +54968,7 @@ class SilentCacheClient extends StandardInteractionClient {
54834
54968
  }
54835
54969
  }
54836
54970
 
54837
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54971
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54838
54972
 
54839
54973
  /*
54840
54974
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55461,7 +55595,7 @@ class PlatformAuthInteractionClient extends BaseInteractionClient {
55461
55595
  }
55462
55596
  }
55463
55597
 
55464
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
55598
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55465
55599
 
55466
55600
  /*
55467
55601
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55546,6 +55680,8 @@ async function getEARForm(frame, config, authority, request, logger, performance
55546
55680
  addCodeChallengeParams(parameters, request.codeChallenge, Constants.S256_CODE_CHALLENGE_METHOD);
55547
55681
  const queryParams = new Map();
55548
55682
  addExtraQueryParameters(queryParams, request.extraQueryParameters || {});
55683
+ // Add correlationId to query params so gateway can propagate it to IDPs
55684
+ addCorrelationId(queryParams, request.correlationId);
55549
55685
  const url = getAuthorizeUrl(authority, queryParams, config.auth.encodeExtraQueryParams, request.extraQueryParameters);
55550
55686
  return createForm(frame, url, parameters);
55551
55687
  }
@@ -55559,6 +55695,8 @@ async function getCodeForm(frame, config, authority, request, logger, performanc
55559
55695
  addPostBodyParameters(parameters, request.authorizePostBodyParameters || {});
55560
55696
  const queryParams = new Map();
55561
55697
  addExtraQueryParameters(queryParams, request.extraQueryParameters || {});
55698
+ // Add correlationId to query params so gateway can propagate it to IDPs
55699
+ addCorrelationId(queryParams, request.correlationId);
55562
55700
  const url = getAuthorizeUrl(authority, queryParams, config.auth.encodeExtraQueryParams, request.extraQueryParameters);
55563
55701
  return createForm(frame, url, parameters);
55564
55702
  }
@@ -55686,7 +55824,7 @@ async function handleResponseEAR(request, response, apiId, config, authority, br
55686
55824
  return (await invokeAsync(responseHandler.handleServerTokenResponse.bind(responseHandler), PerformanceEvents.HandleServerTokenResponse, logger, performanceClient, request.correlationId)(decryptedData, authority, nowSeconds(), request, apiId, additionalData, undefined, undefined, undefined, undefined));
55687
55825
  }
55688
55826
 
55689
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
55827
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55690
55828
 
55691
55829
  /*
55692
55830
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55743,7 +55881,7 @@ async function generateCodeChallengeFromVerifier(pkceCodeVerifier, performanceCl
55743
55881
  }
55744
55882
  }
55745
55883
 
55746
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
55884
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55747
55885
 
55748
55886
  /*
55749
55887
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56008,7 +56146,7 @@ class PlatformAuthExtensionHandler {
56008
56146
  }
56009
56147
  }
56010
56148
 
56011
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
56149
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56012
56150
 
56013
56151
  /*
56014
56152
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56134,18 +56272,32 @@ class PlatformAuthDOMHandler {
56134
56272
  return nativeResponse;
56135
56273
  }
56136
56274
  getDOMExtraParams(extraParameters) {
56137
- const stringifiedParams = Object.entries(extraParameters).reduce((record, [key, value]) => {
56138
- record[key] = String(value);
56139
- return record;
56140
- }, {});
56141
- const validExtraParams = {
56142
- ...stringifiedParams,
56143
- };
56144
- return validExtraParams;
56275
+ try {
56276
+ const stringifiedProperties = {};
56277
+ for (const [key, value] of Object.entries(extraParameters)) {
56278
+ if (!value) {
56279
+ continue;
56280
+ }
56281
+ if (typeof value === "object") {
56282
+ stringifiedProperties[key] = JSON.stringify(value);
56283
+ }
56284
+ else {
56285
+ stringifiedProperties[key] = String(value);
56286
+ }
56287
+ }
56288
+ return stringifiedProperties;
56289
+ }
56290
+ catch (e) {
56291
+ this.logger.error(this.platformAuthType + " - Error stringifying extra parameters");
56292
+ this.logger.errorPii(this.platformAuthType +
56293
+ " - Error stringifying extra parameters: " +
56294
+ e);
56295
+ return {};
56296
+ }
56145
56297
  }
56146
56298
  }
56147
56299
 
56148
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
56300
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56149
56301
  async function getPlatformAuthProvider(logger, performanceClient, correlationId, nativeBrokerHandshakeTimeout, enablePlatformBrokerDOMSupport) {
56150
56302
  logger.trace("getPlatformAuthProvider called", correlationId);
56151
56303
  logger.trace("Has client allowed platform auth via DOM API: " +
@@ -56210,7 +56362,7 @@ function isPlatformAuthAllowed(config, logger, platformAuthProvider, authenticat
56210
56362
  return true;
56211
56363
  }
56212
56364
 
56213
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
56365
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56214
56366
 
56215
56367
  /*
56216
56368
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56707,7 +56859,7 @@ class PopupClient extends StandardInteractionClient {
56707
56859
  }
56708
56860
  }
56709
56861
 
56710
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
56862
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56711
56863
 
56712
56864
  /*
56713
56865
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57147,7 +57299,7 @@ class RedirectClient extends StandardInteractionClient {
57147
57299
  }
57148
57300
  }
57149
57301
 
57150
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57302
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57151
57303
 
57152
57304
  /*
57153
57305
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57195,6 +57347,12 @@ async function initiateEarRequest(config, authority, request, logger, performanc
57195
57347
  */
57196
57348
  async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, performanceClient, logger, correlationId, responseType) {
57197
57349
  performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, correlationId);
57350
+ performanceClient.addFields({
57351
+ iframePollIntervalMs: pollIntervalMilliseconds,
57352
+ iframeTimeoutMs: timeout,
57353
+ }, correlationId);
57354
+ let totalTickCount = 0;
57355
+ let crossOriginTickCount = 0;
57198
57356
  return new Promise((resolve, reject) => {
57199
57357
  if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {
57200
57358
  logger.warning(`system.loadFrameTimeout or system.iframeHashTimeout set to lower (${timeout}ms) than the default (${DEFAULT_IFRAME_TIMEOUT_MS}ms). This may result in timeouts.`);
@@ -57208,6 +57366,7 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57208
57366
  reject(createBrowserAuthError(monitorWindowTimeout));
57209
57367
  }, timeout);
57210
57368
  const intervalId = window.setInterval(() => {
57369
+ totalTickCount++;
57211
57370
  let href = "";
57212
57371
  const contentWindow = iframe.contentWindow;
57213
57372
  try {
@@ -57218,7 +57377,9 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57218
57377
  */
57219
57378
  href = contentWindow ? contentWindow.location.href : "";
57220
57379
  }
57221
- catch (e) { }
57380
+ catch (e) {
57381
+ crossOriginTickCount++;
57382
+ }
57222
57383
  if (!href || href === "about:blank") {
57223
57384
  return;
57224
57385
  }
@@ -57236,6 +57397,10 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57236
57397
  resolve(responseString);
57237
57398
  }, pollIntervalMilliseconds);
57238
57399
  }).finally(() => {
57400
+ performanceClient.addFields({
57401
+ iframeTickCount: totalTickCount,
57402
+ crossOriginTickCount: crossOriginTickCount,
57403
+ }, correlationId);
57239
57404
  invoke(removeHiddenIframe, PerformanceEvents.RemoveHiddenIframe, logger, performanceClient, correlationId)(iframe);
57240
57405
  });
57241
57406
  }
@@ -57303,7 +57468,7 @@ function removeHiddenIframe(iframe) {
57303
57468
  }
57304
57469
  }
57305
57470
 
57306
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57471
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57307
57472
 
57308
57473
  /*
57309
57474
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57425,6 +57590,52 @@ class SilentIframeClient extends StandardInteractionClient {
57425
57590
  return invokeAsync(handleResponseEAR, PerformanceEvents.HandleResponseEar, this.logger, this.performanceClient, correlationId)(silentRequest, serverParams, this.apiId, this.config, discoveredAuthority, this.browserStorage, this.nativeStorage, this.eventHandler, this.logger, this.performanceClient, this.platformAuthProvider);
57426
57591
  }
57427
57592
  }
57593
+ /**
57594
+ * Verifies SSO capability by making an iframe request to /authorize without exchanging the code for tokens.
57595
+ * This is useful for verifying SSO capability in the background without the overhead of a full token exchange.
57596
+ * @param request - The SSO silent request
57597
+ * @returns true if SSO verification was successful with a valid authorization code, false otherwise
57598
+ */
57599
+ async verifySso(request) {
57600
+ this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);
57601
+ const inputRequest = { ...request };
57602
+ if (!inputRequest.prompt) {
57603
+ inputRequest.prompt = PromptValue.NONE;
57604
+ }
57605
+ // Create silent request
57606
+ const silentRequest = await invokeAsync(this.initializeAuthorizationRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.logger, this.performanceClient, request.correlationId)(inputRequest, InteractionType.Silent);
57607
+ const authClient = await invokeAsync(this.createAuthCodeClient.bind(this), PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.logger, this.performanceClient, request.correlationId)({
57608
+ serverTelemetryManager: this.initializeServerTelemetryManager(this.apiId),
57609
+ requestAuthority: silentRequest.authority,
57610
+ requestAzureCloudOptions: silentRequest.azureCloudOptions,
57611
+ requestExtraQueryParameters: silentRequest.extraQueryParameters,
57612
+ account: silentRequest.account,
57613
+ });
57614
+ const correlationId = silentRequest.correlationId;
57615
+ const pkceCodes = await invokeAsync(generatePkceCodes, PerformanceEvents.GeneratePkceCodes, this.logger, this.performanceClient, correlationId)(this.performanceClient, this.logger, correlationId);
57616
+ const requestWithPkce = {
57617
+ ...silentRequest,
57618
+ codeChallenge: pkceCodes.challenge,
57619
+ };
57620
+ // Create authorize request url
57621
+ const navigateUrl = await invokeAsync(getAuthCodeRequestUrl, PerformanceEvents.GetAuthCodeUrl, this.logger, this.performanceClient, correlationId)(this.config, authClient.authority, requestWithPkce, this.logger, this.performanceClient);
57622
+ // Get the frame handle for the silent request - this triggers the SSO verification
57623
+ const msalFrame = await invokeAsync(initiateCodeRequest, PerformanceEvents.SilentHandlerInitiateAuthRequest, this.logger, this.performanceClient, correlationId)(navigateUrl, this.performanceClient, this.logger, correlationId, this.config.system.navigateFrameWait);
57624
+ const responseType = this.config.auth.OIDCOptions.serverResponseType;
57625
+ // Monitor the iframe for the response
57626
+ const responseString = await invokeAsync(monitorIframeForHash, PerformanceEvents.SilentHandlerMonitorIframeForHash, this.logger, this.performanceClient, correlationId)(msalFrame, this.config.system.iframeHashTimeout, this.config.system.pollIntervalMilliseconds, this.performanceClient, this.logger, correlationId, responseType);
57627
+ // Deserialize the response
57628
+ const serverParams = invoke(deserializeResponse, PerformanceEvents.DeserializeResponse, this.logger, this.performanceClient, correlationId)(responseString, responseType, this.logger);
57629
+ // Validate the response - this checks for errors and validates state
57630
+ validateAuthorizationResponse(serverParams, silentRequest.state);
57631
+ // Verify a valid authorization code is present
57632
+ if (!serverParams.code) {
57633
+ this.logger.warning("SSO verification response did not contain an authorization code", correlationId);
57634
+ return false;
57635
+ }
57636
+ this.logger.verbose("SSO verification completed successfully with valid authorization code - skipped token exchange", correlationId);
57637
+ return true;
57638
+ }
57428
57639
  /**
57429
57640
  * Currently Unsupported
57430
57641
  */
@@ -57464,7 +57675,7 @@ class SilentIframeClient extends StandardInteractionClient {
57464
57675
  }
57465
57676
  }
57466
57677
 
57467
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57678
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57468
57679
 
57469
57680
  /*
57470
57681
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57530,7 +57741,7 @@ class SilentRefreshClient extends StandardInteractionClient {
57530
57741
  }
57531
57742
  }
57532
57743
 
57533
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57744
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57534
57745
 
57535
57746
  /*
57536
57747
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57744,7 +57955,7 @@ class TokenCache {
57744
57955
  }
57745
57956
  }
57746
57957
 
57747
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57958
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57748
57959
 
57749
57960
  /*
57750
57961
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57757,7 +57968,7 @@ class HybridSpaAuthorizationCodeClient extends AuthorizationCodeClient {
57757
57968
  }
57758
57969
  }
57759
57970
 
57760
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57971
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57761
57972
 
57762
57973
  /*
57763
57974
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57823,11 +58034,7 @@ class SilentAuthCodeClient extends StandardInteractionClient {
57823
58034
  }
57824
58035
  }
57825
58036
 
57826
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57827
- /*
57828
- * Copyright (c) Microsoft Corporation. All rights reserved.
57829
- * Licensed under the MIT License.
57830
- */
58037
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57831
58038
  function collectInstanceStats(currentClientId, performanceEvent, logger) {
57832
58039
  const frameInstances =
57833
58040
  // @ts-ignore
@@ -57843,7 +58050,7 @@ function collectInstanceStats(currentClientId, performanceEvent, logger) {
57843
58050
  });
57844
58051
  }
57845
58052
 
57846
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
58053
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57847
58054
 
57848
58055
  /*
57849
58056
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57923,22 +58130,30 @@ class StandardController {
57923
58130
  this.tokenCache = new TokenCache(this.config, this.browserStorage, this.logger, this.browserCrypto, this.performanceClient);
57924
58131
  this.activeSilentTokenRequests = new Map();
57925
58132
  // Register listener functions
57926
- this.trackPageVisibility = this.trackPageVisibility.bind(this);
57927
- // Register listener functions
57928
- this.trackPageVisibilityWithMeasurement =
57929
- this.trackPageVisibilityWithMeasurement.bind(this);
58133
+ this.trackStateChangeWithMeasurement =
58134
+ this.trackStateChangeWithMeasurement.bind(this);
57930
58135
  }
57931
58136
  static async createController(operatingContext, request) {
57932
58137
  const controller = new StandardController(operatingContext);
57933
58138
  await controller.initialize(request);
57934
58139
  return controller;
57935
58140
  }
57936
- trackPageVisibility(correlationId) {
58141
+ trackStateChange(correlationId, event) {
57937
58142
  if (!correlationId) {
57938
58143
  return;
57939
58144
  }
57940
- this.logger.info("Perf: Visibility change detected");
57941
- this.performanceClient.incrementFields({ visibilityChangeCount: 1 }, correlationId);
58145
+ if (event.type === "visibilitychange") {
58146
+ this.logger.info("Perf: Visibility change detected");
58147
+ this.performanceClient.incrementFields({ visibilityChangeCount: 1 }, correlationId);
58148
+ }
58149
+ else if (event.type === "online") {
58150
+ this.logger.info("Perf: Online status change detected");
58151
+ this.performanceClient.incrementFields({ onlineStatusChangeCount: 1 }, correlationId);
58152
+ }
58153
+ else if (event.type === "offline") {
58154
+ this.logger.info("Perf: Offline status change detected");
58155
+ this.performanceClient.incrementFields({ onlineStatusChangeCount: 1 }, correlationId);
58156
+ }
57942
58157
  }
57943
58158
  /**
57944
58159
  * Initializer function to perform async startup tasks such as connecting to WAM extension
@@ -58086,6 +58301,8 @@ class StandardController {
58086
58301
  rootMeasurement.end({
58087
58302
  success: true,
58088
58303
  }, undefined, result.account);
58304
+ // Fire-and-forget SSO capability verification in background
58305
+ this.verifySsoCapability(result.account, InteractionType.Redirect);
58089
58306
  }
58090
58307
  else {
58091
58308
  /*
@@ -58318,6 +58535,8 @@ class StandardController {
58318
58535
  accessTokenSize: result.accessToken.length,
58319
58536
  idTokenSize: result.idToken.length,
58320
58537
  }, undefined, result.account);
58538
+ // SSO capability verification in background
58539
+ this.verifySsoCapability(result.account, InteractionType.Popup);
58321
58540
  return result;
58322
58541
  })
58323
58542
  .catch((e) => {
@@ -58340,16 +58559,87 @@ class StandardController {
58340
58559
  }
58341
58560
  });
58342
58561
  }
58343
- trackPageVisibilityWithMeasurement() {
58562
+ trackStateChangeWithMeasurement(event) {
58344
58563
  const measurement = this.ssoSilentMeasurement ||
58345
58564
  this.acquireTokenByCodeAsyncMeasurement;
58346
58565
  if (!measurement) {
58347
58566
  return;
58348
58567
  }
58349
- this.logger.info("Perf: Visibility change detected in ", measurement.event.name);
58350
- measurement.increment({
58351
- visibilityChangeCount: 1,
58568
+ if (event.type === "visibilitychange") {
58569
+ this.logger.info("Perf: Visibility change detected in ", measurement.event.name);
58570
+ measurement.increment({
58571
+ visibilityChangeCount: 1,
58572
+ });
58573
+ }
58574
+ else if (event.type === "online") {
58575
+ this.logger.info("Perf: Online status change detected in ", measurement.event.name);
58576
+ measurement.increment({
58577
+ onlineStatusChangeCount: 1,
58578
+ });
58579
+ }
58580
+ else if (event.type === "offline") {
58581
+ this.logger.info("Perf: Offline status change detected in ", measurement.event.name);
58582
+ measurement.increment({
58583
+ onlineStatusChangeCount: 1,
58584
+ });
58585
+ }
58586
+ }
58587
+ addStateChangeListeners(listener) {
58588
+ document.addEventListener("visibilitychange", listener);
58589
+ window.addEventListener("online", listener);
58590
+ window.addEventListener("offline", listener);
58591
+ }
58592
+ removeStateChangeListeners(listener) {
58593
+ document.removeEventListener("visibilitychange", listener);
58594
+ window.removeEventListener("online", listener);
58595
+ window.removeEventListener("offline", listener);
58596
+ }
58597
+ /**
58598
+ * SSO capability verification in the background.
58599
+ * This method makes an iframe request to /authorize to verify SSO capability without calling /token.
58600
+ * This method does not block the caller and tracks telemetry for success/failure.
58601
+ * This method only executes if verifySSO is set to true in the auth configuration.
58602
+ * @param account - The account to use for the SSO verification
58603
+ * @param parentApi - The API ID of the parent operation for logging purposes
58604
+ */
58605
+ verifySsoCapability(account, parentApi) {
58606
+ // Check if SSO capability verification is enabled
58607
+ if (!this.config.auth.verifySSO) {
58608
+ return;
58609
+ }
58610
+ const correlationId = this.browserCrypto.createNewGuid();
58611
+ const ssoCapableMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SsoCapable, correlationId);
58612
+ ssoCapableMeasurement.add({
58613
+ parentApi: parentApi,
58352
58614
  });
58615
+ this.logger.verbose(`SSO capability verification initiated after ${parentApi}`, correlationId);
58616
+ /*
58617
+ * Use setTimeout to ensure this runs in a separate macrotask after the current call stack completes
58618
+ * This ensures the result is returned to the caller before the SSO verification starts and doesn't affect performance
58619
+ */
58620
+ setTimeout(() => {
58621
+ const ssoVerificationRequest = {
58622
+ account: account,
58623
+ correlationId: correlationId,
58624
+ };
58625
+ const silentIframeClient = this.createSilentIframeClient(correlationId);
58626
+ silentIframeClient
58627
+ .verifySso(ssoVerificationRequest)
58628
+ .then((success) => {
58629
+ this.logger.verbose(`SSO capability verification completed after ${parentApi}, success: ${success}`, correlationId);
58630
+ ssoCapableMeasurement.end({
58631
+ fromCache: false,
58632
+ success: success,
58633
+ }, undefined, account);
58634
+ })
58635
+ .catch((error) => {
58636
+ this.logger.warning(`SSO capability verification failed after ${parentApi}: ${error.message}`, correlationId);
58637
+ ssoCapableMeasurement.end({
58638
+ fromCache: false,
58639
+ success: false,
58640
+ }, error, account);
58641
+ });
58642
+ }, 0);
58353
58643
  }
58354
58644
  // #endregion
58355
58645
  // #region Silent Flow
@@ -58383,8 +58673,9 @@ class StandardController {
58383
58673
  preflightCheck(this.initialized, this.ssoSilentMeasurement, request.account);
58384
58674
  this.ssoSilentMeasurement?.increment({
58385
58675
  visibilityChangeCount: 0,
58676
+ onlineStatusChangeCount: 0,
58386
58677
  });
58387
- document.addEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58678
+ this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
58388
58679
  this.logger.verbose("ssoSilent called", correlationId);
58389
58680
  this.eventHandler.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, validRequest);
58390
58681
  let result;
@@ -58428,7 +58719,7 @@ class StandardController {
58428
58719
  throw e;
58429
58720
  })
58430
58721
  .finally(() => {
58431
- document.removeEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58722
+ this.removeStateChangeListeners(this.trackStateChangeWithMeasurement);
58432
58723
  });
58433
58724
  }
58434
58725
  /**
@@ -58540,8 +58831,9 @@ class StandardController {
58540
58831
  this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCodeAsync, request.correlationId);
58541
58832
  this.acquireTokenByCodeAsyncMeasurement?.increment({
58542
58833
  visibilityChangeCount: 0,
58834
+ onlineStatusChangeCount: 0,
58543
58835
  });
58544
- document.addEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58836
+ this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
58545
58837
  const silentAuthCodeClient = this.createSilentAuthCodeClient(request.correlationId);
58546
58838
  const silentTokenResult = await silentAuthCodeClient
58547
58839
  .acquireToken(request)
@@ -58559,7 +58851,7 @@ class StandardController {
58559
58851
  throw tokenRenewalError;
58560
58852
  })
58561
58853
  .finally(() => {
58562
- document.removeEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58854
+ this.removeStateChangeListeners(this.trackStateChangeWithMeasurement);
58563
58855
  });
58564
58856
  return silentTokenResult;
58565
58857
  }
@@ -59104,18 +59396,22 @@ class StandardController {
59104
59396
  * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse}
59105
59397
  */
59106
59398
  async acquireTokenSilentAsync(request, account) {
59107
- const trackPageVisibility = () => this.trackPageVisibility(request.correlationId);
59399
+ const trackStateChange = (event) => this.trackStateChange(request.correlationId, event);
59108
59400
  this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);
59109
59401
  this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);
59110
59402
  if (request.correlationId) {
59111
- this.performanceClient.incrementFields({ visibilityChangeCount: 0 }, request.correlationId);
59403
+ this.performanceClient.incrementFields({ visibilityChangeCount: 0, onlineStatusChangeCount: 0 }, request.correlationId);
59112
59404
  }
59113
- document.addEventListener("visibilitychange", trackPageVisibility);
59405
+ this.addStateChangeListeners(trackStateChange);
59114
59406
  const silentRequest = await invokeAsync(initializeSilentRequest, PerformanceEvents.InitializeSilentRequest, this.logger, this.performanceClient, request.correlationId)(request, account, this.config, this.performanceClient, this.logger);
59115
59407
  const cacheLookupPolicy = request.cacheLookupPolicy || CacheLookupPolicy.Default;
59116
59408
  const result = this.acquireTokenSilentNoIframe(silentRequest, cacheLookupPolicy).catch(async (refreshTokenError) => {
59117
59409
  const shouldTryToResolveSilently = checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheLookupPolicy);
59118
59410
  if (shouldTryToResolveSilently) {
59411
+ const silentRefreshReason = `${refreshTokenError.errorCode}${refreshTokenError.subError
59412
+ ? `|${refreshTokenError.subError}`
59413
+ : ""}`;
59414
+ this.performanceClient.addFields({ silentRefreshReason }, silentRequest.correlationId);
59119
59415
  if (!this.activeIframeRequest) {
59120
59416
  let _resolve;
59121
59417
  // Always set the active request tracker immediately after checking it to prevent races
@@ -59185,7 +59481,7 @@ class StandardController {
59185
59481
  throw tokenRenewalError;
59186
59482
  })
59187
59483
  .finally(() => {
59188
- document.removeEventListener("visibilitychange", trackPageVisibility);
59484
+ this.removeStateChangeListeners(trackStateChange);
59189
59485
  });
59190
59486
  }
59191
59487
  /**
@@ -59296,7 +59592,7 @@ function checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheL
59296
59592
  return isSilentlyResolvable && tryIframeRenewal;
59297
59593
  }
59298
59594
 
59299
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
59595
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
59300
59596
 
59301
59597
  /*
59302
59598
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -59308,7 +59604,7 @@ async function createV3Controller(config, request) {
59308
59604
  return StandardController.createController(standard, request);
59309
59605
  }
59310
59606
 
59311
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
59607
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
59312
59608
 
59313
59609
  /*
59314
59610
  * Copyright (c) Microsoft Corporation. All rights reserved.