@cosmotech/core 3.0.1 → 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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2";
43184
+ const version$1 = "15.16.1";
43185
43185
 
43186
- /*! @azure/msal-common v15.14.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
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.2 2026-02-10 */
44381
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44343
44382
 
44344
44383
  /*
44345
44384
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44514,7 +44553,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
44514
44553
  return null;
44515
44554
  }
44516
44555
 
44517
- /*! @azure/msal-common v15.14.2 2026-02-10 */
44556
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44518
44557
  /*
44519
44558
  * Copyright (c) Microsoft Corporation. All rights reserved.
44520
44559
  * Licensed under the MIT License.
@@ -44522,7 +44561,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
44522
44561
  const cacheQuotaExceeded = "cache_quota_exceeded";
44523
44562
  const cacheErrorUnknown = "cache_error_unknown";
44524
44563
 
44525
- /*! @azure/msal-common v15.14.2 2026-02-10 */
44564
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44526
44565
 
44527
44566
  /*
44528
44567
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44567,7 +44606,7 @@ function createCacheError(e) {
44567
44606
  }
44568
44607
  }
44569
44608
 
44570
- /*! @azure/msal-common v15.14.2 2026-02-10 */
44609
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44571
44610
 
44572
44611
  /*
44573
44612
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -45677,7 +45716,7 @@ class DefaultStorageClass extends CacheManager {
45677
45716
  }
45678
45717
  }
45679
45718
 
45680
- /*! @azure/msal-common v15.14.2 2026-02-10 */
45719
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
45681
45720
  /*
45682
45721
  * Copyright (c) Microsoft Corporation. All rights reserved.
45683
45722
  * Licensed under the MIT License.
@@ -45939,6 +45978,11 @@ const PerformanceEvents = {
45939
45978
  LoadIdToken: "loadIdToken",
45940
45979
  LoadAccessToken: "loadAccessToken",
45941
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",
45942
45986
  };
45943
45987
  /**
45944
45988
  * State of the performance event.
@@ -45949,7 +45993,7 @@ const PerformanceEvents = {
45949
45993
  const PerformanceEventStatus = {
45950
45994
  InProgress: 1};
45951
45995
 
45952
- /*! @azure/msal-common v15.14.2 2026-02-10 */
45996
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
45953
45997
 
45954
45998
  /*
45955
45999
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46028,7 +46072,7 @@ class StubPerformanceClient {
46028
46072
  }
46029
46073
  }
46030
46074
 
46031
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46075
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46032
46076
 
46033
46077
  /*
46034
46078
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46128,7 +46172,7 @@ function isOidcProtocolMode(config) {
46128
46172
  return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
46129
46173
  }
46130
46174
 
46131
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46175
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46132
46176
  /*
46133
46177
  * Copyright (c) Microsoft Corporation. All rights reserved.
46134
46178
  * Licensed under the MIT License.
@@ -46138,7 +46182,7 @@ const CcsCredentialType = {
46138
46182
  UPN: "UPN",
46139
46183
  };
46140
46184
 
46141
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46185
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46142
46186
  /*
46143
46187
  * Copyright (c) Microsoft Corporation. All rights reserved.
46144
46188
  * Licensed under the MIT License.
@@ -46188,7 +46232,7 @@ const INSTANCE_AWARE = "instance_aware";
46188
46232
  const EAR_JWK = "ear_jwk";
46189
46233
  const EAR_JWE_CRYPTO = "ear_jwe_crypto";
46190
46234
 
46191
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46235
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46192
46236
 
46193
46237
  /*
46194
46238
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46568,7 +46612,7 @@ function addPostBodyParameters(parameters, bodyParameters) {
46568
46612
  });
46569
46613
  }
46570
46614
 
46571
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46615
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46572
46616
  /*
46573
46617
  * Copyright (c) Microsoft Corporation. All rights reserved.
46574
46618
  * Licensed under the MIT License.
@@ -46580,7 +46624,7 @@ function isOpenIdConfigResponse(response) {
46580
46624
  response.hasOwnProperty("jwks_uri"));
46581
46625
  }
46582
46626
 
46583
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46627
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46584
46628
  /*
46585
46629
  * Copyright (c) Microsoft Corporation. All rights reserved.
46586
46630
  * Licensed under the MIT License.
@@ -46590,7 +46634,7 @@ function isCloudInstanceDiscoveryResponse(response) {
46590
46634
  response.hasOwnProperty("metadata"));
46591
46635
  }
46592
46636
 
46593
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46637
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46594
46638
  /*
46595
46639
  * Copyright (c) Microsoft Corporation. All rights reserved.
46596
46640
  * Licensed under the MIT License.
@@ -46600,7 +46644,7 @@ function isCloudInstanceDiscoveryErrorResponse(response) {
46600
46644
  response.hasOwnProperty("error_description"));
46601
46645
  }
46602
46646
 
46603
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46647
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46604
46648
  /*
46605
46649
  * Copyright (c) Microsoft Corporation. All rights reserved.
46606
46650
  * Licensed under the MIT License.
@@ -46696,7 +46740,7 @@ const invokeAsync = (callback, eventName, logger, telemetryClient, correlationId
46696
46740
  };
46697
46741
  };
46698
46742
 
46699
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46743
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46700
46744
 
46701
46745
  /*
46702
46746
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46802,7 +46846,7 @@ RegionDiscovery.IMDS_OPTIONS = {
46802
46846
  },
46803
46847
  };
46804
46848
 
46805
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46849
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46806
46850
  /*
46807
46851
  * Copyright (c) Microsoft Corporation. All rights reserved.
46808
46852
  * Licensed under the MIT License.
@@ -46867,7 +46911,7 @@ function wasClockTurnedBack(cachedAt) {
46867
46911
  return cachedAtSec > nowSeconds();
46868
46912
  }
46869
46913
 
46870
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46914
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46871
46915
 
46872
46916
  /*
46873
46917
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47129,7 +47173,7 @@ function isAuthorityMetadataExpired(metadata) {
47129
47173
  return metadata.expiresAt <= nowSeconds();
47130
47174
  }
47131
47175
 
47132
- /*! @azure/msal-common v15.14.2 2026-02-10 */
47176
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47133
47177
 
47134
47178
  /*
47135
47179
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47968,7 +48012,7 @@ function buildStaticAuthorityOptions(authOptions) {
47968
48012
  };
47969
48013
  }
47970
48014
 
47971
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48015
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47972
48016
 
47973
48017
  /*
47974
48018
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47999,7 +48043,7 @@ async function createDiscoveredInstance(authorityUri, networkClient, cacheManage
47999
48043
  }
48000
48044
  }
48001
48045
 
48002
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48046
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48003
48047
 
48004
48048
  /*
48005
48049
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48018,7 +48062,7 @@ class ServerError extends AuthError {
48018
48062
  }
48019
48063
  }
48020
48064
 
48021
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48065
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48022
48066
  /*
48023
48067
  * Copyright (c) Microsoft Corporation. All rights reserved.
48024
48068
  * Licensed under the MIT License.
@@ -48039,7 +48083,7 @@ function getRequestThumbprint(clientId, request, homeAccountId) {
48039
48083
  };
48040
48084
  }
48041
48085
 
48042
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48086
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48043
48087
 
48044
48088
  /*
48045
48089
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48126,7 +48170,7 @@ class ThrottlingUtils {
48126
48170
  }
48127
48171
  }
48128
48172
 
48129
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48173
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48130
48174
 
48131
48175
  /*
48132
48176
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48157,7 +48201,7 @@ function createNetworkError(error, httpStatus, responseHeaders, additionalError)
48157
48201
  return new NetworkError(error, httpStatus, responseHeaders);
48158
48202
  }
48159
48203
 
48160
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48204
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48161
48205
 
48162
48206
  /*
48163
48207
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48305,23 +48349,58 @@ class BaseClient {
48305
48349
  }
48306
48350
  }
48307
48351
 
48308
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48352
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48309
48353
  /*
48310
48354
  * Copyright (c) Microsoft Corporation. All rights reserved.
48311
48355
  * Licensed under the MIT License.
48312
48356
  */
48313
- // Codes defined by MSAL
48357
+ /**
48358
+ * MSAL-defined interaction required error code indicating no tokens are found in cache.
48359
+ * @public
48360
+ */
48314
48361
  const noTokensFound = "no_tokens_found";
48362
+ /**
48363
+ * MSAL-defined error code indicating a native account is unavailable on the platform.
48364
+ * @public
48365
+ */
48315
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
+ */
48316
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
+ */
48317
48376
  const uxNotAllowed = "ux_not_allowed";
48318
- // Codes potentially returned by server
48377
+ /**
48378
+ * Server-originated error code indicating interaction is required to complete the request.
48379
+ * @public
48380
+ */
48319
48381
  const interactionRequired = "interaction_required";
48382
+ /**
48383
+ * Server-originated error code indicating user consent is required.
48384
+ * @public
48385
+ */
48320
48386
  const consentRequired = "consent_required";
48387
+ /**
48388
+ * Server-originated error code indicating user login is required.
48389
+ * @public
48390
+ */
48321
48391
  const loginRequired = "login_required";
48322
- 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";
48323
48402
 
48324
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48403
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48325
48404
 
48326
48405
  /*
48327
48406
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48336,6 +48415,7 @@ const InteractionRequiredServerErrorMessage = [
48336
48415
  loginRequired,
48337
48416
  badToken,
48338
48417
  uxNotAllowed,
48418
+ interruptedUser,
48339
48419
  ];
48340
48420
  const InteractionRequiredAuthSubErrorMessage = [
48341
48421
  "message_only",
@@ -48344,6 +48424,7 @@ const InteractionRequiredAuthSubErrorMessage = [
48344
48424
  "user_password_expired",
48345
48425
  "consent_required",
48346
48426
  "bad_token",
48427
+ "interrupted_user",
48347
48428
  ];
48348
48429
  const InteractionRequiredAuthErrorMessages = {
48349
48430
  [noTokensFound]: "No refresh token found in the cache. Please sign-in.",
@@ -48351,6 +48432,7 @@ const InteractionRequiredAuthErrorMessages = {
48351
48432
  [refreshTokenExpired]: "Refresh token has expired.",
48352
48433
  [badToken]: "Identity provider returned bad_token due to an expired or invalid refresh token. Please invoke an interactive API to resolve.",
48353
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.",
48354
48436
  };
48355
48437
  /**
48356
48438
  * Error thrown when user interaction is required.
@@ -48393,7 +48475,7 @@ function createInteractionRequiredAuthError(errorCode) {
48393
48475
  return new InteractionRequiredAuthError(errorCode, InteractionRequiredAuthErrorMessages[errorCode]);
48394
48476
  }
48395
48477
 
48396
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48478
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48397
48479
 
48398
48480
  /*
48399
48481
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48465,7 +48547,7 @@ class ProtocolUtils {
48465
48547
  }
48466
48548
  }
48467
48549
 
48468
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48550
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48469
48551
 
48470
48552
  /*
48471
48553
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48547,7 +48629,7 @@ class PopTokenGenerator {
48547
48629
  }
48548
48630
  }
48549
48631
 
48550
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48632
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48551
48633
  /*
48552
48634
  * Copyright (c) Microsoft Corporation. All rights reserved.
48553
48635
  * Licensed under the MIT License.
@@ -48574,7 +48656,7 @@ class PopTokenGenerator {
48574
48656
  }
48575
48657
  }
48576
48658
 
48577
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48659
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48578
48660
 
48579
48661
  /*
48580
48662
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48913,7 +48995,7 @@ function buildAccountToCache(cacheStorage, authority, homeAccountId, base64Decod
48913
48995
  return baseAccount;
48914
48996
  }
48915
48997
 
48916
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48998
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48917
48999
  /*
48918
49000
  * Copyright (c) Microsoft Corporation. All rights reserved.
48919
49001
  * Licensed under the MIT License.
@@ -48931,7 +49013,7 @@ async function getClientAssertion(clientAssertion, clientId, tokenEndpoint) {
48931
49013
  }
48932
49014
  }
48933
49015
 
48934
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49016
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48935
49017
 
48936
49018
  /*
48937
49019
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49080,11 +49162,6 @@ class AuthorizationCodeClient extends BaseClient {
49080
49162
  throw createClientConfigurationError(missingSshJwk);
49081
49163
  }
49082
49164
  }
49083
- if (!StringUtils.isEmptyObj(request.claims) ||
49084
- (this.config.authOptions.clientCapabilities &&
49085
- this.config.authOptions.clientCapabilities.length > 0)) {
49086
- addClaims(parameters, request.claims, this.config.authOptions.clientCapabilities);
49087
- }
49088
49165
  let ccsCred = undefined;
49089
49166
  if (request.clientInfo) {
49090
49167
  try {
@@ -49134,6 +49211,15 @@ class AuthorizationCodeClient extends BaseClient {
49134
49211
  });
49135
49212
  }
49136
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
+ }
49137
49223
  return mapToQueryString(parameters);
49138
49224
  }
49139
49225
  /**
@@ -49167,7 +49253,7 @@ class AuthorizationCodeClient extends BaseClient {
49167
49253
  }
49168
49254
  }
49169
49255
 
49170
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49256
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49171
49257
 
49172
49258
  /*
49173
49259
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49345,11 +49431,6 @@ class RefreshTokenClient extends BaseClient {
49345
49431
  throw createClientConfigurationError(missingSshJwk);
49346
49432
  }
49347
49433
  }
49348
- if (!StringUtils.isEmptyObj(request.claims) ||
49349
- (this.config.authOptions.clientCapabilities &&
49350
- this.config.authOptions.clientCapabilities.length > 0)) {
49351
- addClaims(parameters, request.claims, this.config.authOptions.clientCapabilities);
49352
- }
49353
49434
  if (this.config.systemOptions.preventCorsPreflight &&
49354
49435
  request.ccsCredential) {
49355
49436
  switch (request.ccsCredential.type) {
@@ -49375,11 +49456,20 @@ class RefreshTokenClient extends BaseClient {
49375
49456
  addExtraQueryParameters(parameters, request.tokenBodyParameters);
49376
49457
  }
49377
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
+ }
49378
49468
  return mapToQueryString(parameters);
49379
49469
  }
49380
49470
  }
49381
49471
 
49382
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49472
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49383
49473
 
49384
49474
  /*
49385
49475
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49477,7 +49567,7 @@ class SilentFlowClient extends BaseClient {
49477
49567
  }
49478
49568
  }
49479
49569
 
49480
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49570
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49481
49571
 
49482
49572
  /*
49483
49573
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49492,7 +49582,7 @@ const StubbedNetworkModule = {
49492
49582
  },
49493
49583
  };
49494
49584
 
49495
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49585
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49496
49586
 
49497
49587
  /*
49498
49588
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49613,14 +49703,17 @@ function getStandardAuthorizeRequestParameters(authOptions, request, logger, per
49613
49703
  if (request.state) {
49614
49704
  addState(parameters, request.state);
49615
49705
  }
49616
- if (request.claims ||
49617
- (authOptions.clientCapabilities &&
49618
- authOptions.clientCapabilities.length > 0)) {
49619
- addClaims(parameters, request.claims, authOptions.clientCapabilities);
49620
- }
49621
49706
  if (request.embeddedClientId) {
49622
49707
  addBrokerParameters(parameters, authOptions.clientId, authOptions.redirectUri);
49623
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
+ }
49624
49717
  // If extraQueryParameters includes instance_aware its value will be added when extraQueryParameters are added
49625
49718
  if (authOptions.instanceAware &&
49626
49719
  (!request.extraQueryParameters ||
@@ -49716,7 +49809,7 @@ function extractLoginHint(account) {
49716
49809
  return account.loginHint || account.idTokenClaims?.login_hint || null;
49717
49810
  }
49718
49811
 
49719
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49812
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49720
49813
 
49721
49814
  /*
49722
49815
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49979,7 +50072,7 @@ class ServerTelemetryManager {
49979
50072
  }
49980
50073
  }
49981
50074
 
49982
- /*! @azure/msal-common v15.14.2 2026-02-10 */
50075
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49983
50076
  /*
49984
50077
  * Copyright (c) Microsoft Corporation. All rights reserved.
49985
50078
  * Licensed under the MIT License.
@@ -49987,7 +50080,7 @@ class ServerTelemetryManager {
49987
50080
  const missingKidError = "missing_kid_error";
49988
50081
  const missingAlgError = "missing_alg_error";
49989
50082
 
49990
- /*! @azure/msal-common v15.14.2 2026-02-10 */
50083
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49991
50084
 
49992
50085
  /*
49993
50086
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50012,7 +50105,7 @@ function createJoseHeaderError(code) {
50012
50105
  return new JoseHeaderError(code, JoseHeaderErrorMessages[code]);
50013
50106
  }
50014
50107
 
50015
- /*! @azure/msal-common v15.14.2 2026-02-10 */
50108
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
50016
50109
 
50017
50110
  /*
50018
50111
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50052,7 +50145,7 @@ class JoseHeader {
50052
50145
  }
50053
50146
  }
50054
50147
 
50055
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50148
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50056
50149
  /*
50057
50150
  * Copyright (c) Microsoft Corporation. All rights reserved.
50058
50151
  * Licensed under the MIT License.
@@ -50109,7 +50202,7 @@ const failedToParseHeaders = "failed_to_parse_headers";
50109
50202
  const failedToDecryptEarResponse = "failed_to_decrypt_ear_response";
50110
50203
  const timedOut = "timed_out";
50111
50204
 
50112
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50205
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50113
50206
 
50114
50207
  /*
50115
50208
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50186,7 +50279,7 @@ function createBrowserAuthError(errorCode, subError) {
50186
50279
  return new BrowserAuthError(errorCode, subError);
50187
50280
  }
50188
50281
 
50189
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50282
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50190
50283
 
50191
50284
  /*
50192
50285
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50375,7 +50468,7 @@ const iFrameRenewalPolicies = [
50375
50468
  CacheLookupPolicy.RefreshTokenAndNetwork,
50376
50469
  ];
50377
50470
 
50378
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50471
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50379
50472
  /*
50380
50473
  * Copyright (c) Microsoft Corporation. All rights reserved.
50381
50474
  * Licensed under the MIT License.
@@ -50420,7 +50513,7 @@ function base64EncArr(aBytes) {
50420
50513
  return btoa(binString);
50421
50514
  }
50422
50515
 
50423
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50516
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50424
50517
 
50425
50518
  /*
50426
50519
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50459,7 +50552,7 @@ function base64DecToArr(base64String) {
50459
50552
  return Uint8Array.from(binString, (m) => m.codePointAt(0) || 0);
50460
50553
  }
50461
50554
 
50462
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50555
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50463
50556
 
50464
50557
  /*
50465
50558
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50758,7 +50851,7 @@ async function hashString(plainText) {
50758
50851
  return urlEncodeArr(hashBytes);
50759
50852
  }
50760
50853
 
50761
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50854
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50762
50855
  /*
50763
50856
  * Copyright (c) Microsoft Corporation. All rights reserved.
50764
50857
  * Licensed under the MIT License.
@@ -50767,7 +50860,7 @@ const storageNotSupported = "storage_not_supported";
50767
50860
  const stubbedPublicClientApplicationCalled = "stubbed_public_client_application_called";
50768
50861
  const inMemRedirectUnavailable = "in_mem_redirect_unavailable";
50769
50862
 
50770
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50863
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50771
50864
 
50772
50865
  /*
50773
50866
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50807,7 +50900,7 @@ function createBrowserConfigurationAuthError(errorCode) {
50807
50900
  return new BrowserConfigurationAuthError(errorCode, BrowserConfigurationAuthErrorMessages[errorCode]);
50808
50901
  }
50809
50902
 
50810
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50903
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50811
50904
 
50812
50905
  /*
50813
50906
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50969,7 +51062,7 @@ function createGuid() {
50969
51062
  return createNewGuid();
50970
51063
  }
50971
51064
 
50972
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51065
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50973
51066
 
50974
51067
  /*
50975
51068
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51012,7 +51105,7 @@ class NavigationClient {
51012
51105
  }
51013
51106
  }
51014
51107
 
51015
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51108
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51016
51109
 
51017
51110
  /*
51018
51111
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51133,7 +51226,7 @@ function getHeaderDict(headers) {
51133
51226
  }
51134
51227
  }
51135
51228
 
51136
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51229
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51137
51230
 
51138
51231
  /*
51139
51232
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51182,6 +51275,7 @@ function buildConfiguration({ auth: userInputAuth, cache: userInputCache, system
51182
51275
  supportsNestedAppAuth: false,
51183
51276
  instanceAware: false,
51184
51277
  encodeExtraQueryParams: false,
51278
+ verifySSO: false,
51185
51279
  };
51186
51280
  // Default cache options for browser
51187
51281
  const DEFAULT_CACHE_OPTIONS = {
@@ -51268,12 +51362,12 @@ function buildConfiguration({ auth: userInputAuth, cache: userInputCache, system
51268
51362
  return overlayedConfig;
51269
51363
  }
51270
51364
 
51271
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51365
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51272
51366
  /* eslint-disable header/header */
51273
51367
  const name$1 = "@azure/msal-browser";
51274
- const version = "4.28.2";
51368
+ const version = "4.29.1";
51275
51369
 
51276
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51370
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51277
51371
  /*
51278
51372
  * Copyright (c) Microsoft Corporation. All rights reserved.
51279
51373
  * Licensed under the MIT License.
@@ -51301,7 +51395,7 @@ function getTokenKeysCacheKey(clientId, schema = CREDENTIAL_SCHEMA_VERSION) {
51301
51395
  return `${PREFIX}.${schema}.${TOKEN_KEYS}.${clientId}`;
51302
51396
  }
51303
51397
 
51304
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51398
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51305
51399
 
51306
51400
  /*
51307
51401
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51398,7 +51492,7 @@ class BaseOperatingContext {
51398
51492
  }
51399
51493
  }
51400
51494
 
51401
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51495
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51402
51496
 
51403
51497
  /*
51404
51498
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51444,7 +51538,7 @@ StandardOperatingContext.MODULE_NAME = "";
51444
51538
  */
51445
51539
  StandardOperatingContext.ID = "StandardOperatingContext";
51446
51540
 
51447
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51541
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51448
51542
 
51449
51543
  /*
51450
51544
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51647,7 +51741,7 @@ class DatabaseStorage {
51647
51741
  }
51648
51742
  }
51649
51743
 
51650
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51744
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51651
51745
  /*
51652
51746
  * Copyright (c) Microsoft Corporation. All rights reserved.
51653
51747
  * Licensed under the MIT License.
@@ -51693,7 +51787,7 @@ class MemoryStorage {
51693
51787
  }
51694
51788
  }
51695
51789
 
51696
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51790
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51697
51791
 
51698
51792
  /*
51699
51793
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51827,7 +51921,7 @@ class AsyncMemoryStorage {
51827
51921
  }
51828
51922
  }
51829
51923
 
51830
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51924
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51831
51925
 
51832
51926
  /*
51833
51927
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52008,7 +52102,7 @@ function getSortedObjectString(obj) {
52008
52102
  return JSON.stringify(obj, Object.keys(obj).sort());
52009
52103
  }
52010
52104
 
52011
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52105
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52012
52106
 
52013
52107
  /*
52014
52108
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52086,7 +52180,7 @@ function getCookieExpirationTime(cookieLifeDays) {
52086
52180
  return expr.toUTCString();
52087
52181
  }
52088
52182
 
52089
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52183
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52090
52184
 
52091
52185
  /*
52092
52186
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52128,7 +52222,7 @@ function getTokenKeys(clientId, storage, schemaVersion) {
52128
52222
  };
52129
52223
  }
52130
52224
 
52131
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52225
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52132
52226
  /*
52133
52227
  * Copyright (c) Microsoft Corporation. All rights reserved.
52134
52228
  * Licensed under the MIT License.
@@ -52139,7 +52233,7 @@ function isEncrypted(data) {
52139
52233
  data.hasOwnProperty("data"));
52140
52234
  }
52141
52235
 
52142
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52236
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52143
52237
 
52144
52238
  /*
52145
52239
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52429,7 +52523,7 @@ class LocalStorage {
52429
52523
  }
52430
52524
  }
52431
52525
 
52432
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52526
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52433
52527
 
52434
52528
  /*
52435
52529
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52471,7 +52565,7 @@ class SessionStorage {
52471
52565
  }
52472
52566
  }
52473
52567
 
52474
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52568
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52475
52569
  /*
52476
52570
  * Copyright (c) Microsoft Corporation. All rights reserved.
52477
52571
  * Licensed under the MIT License.
@@ -52506,7 +52600,7 @@ const EventType = {
52506
52600
  BROKER_CONNECTION_ESTABLISHED: "msal:brokerConnectionEstablished",
52507
52601
  };
52508
52602
 
52509
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52603
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52510
52604
  /*
52511
52605
  * Copyright (c) Microsoft Corporation. All rights reserved.
52512
52606
  * Licensed under the MIT License.
@@ -52523,7 +52617,7 @@ function removeElementFromArray(array, element) {
52523
52617
  }
52524
52618
  }
52525
52619
 
52526
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52620
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52527
52621
 
52528
52622
  /*
52529
52623
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -53938,7 +54032,7 @@ const DEFAULT_BROWSER_CACHE_MANAGER = (clientId, logger, performanceClient, even
53938
54032
  return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger, performanceClient, eventHandler);
53939
54033
  };
53940
54034
 
53941
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54035
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
53942
54036
  /*
53943
54037
  * Copyright (c) Microsoft Corporation. All rights reserved.
53944
54038
  * Licensed under the MIT License.
@@ -54063,7 +54157,7 @@ function getActiveAccount(browserStorage, correlationId) {
54063
54157
  return browserStorage.getActiveAccount(correlationId);
54064
54158
  }
54065
54159
 
54066
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54160
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54067
54161
 
54068
54162
  /*
54069
54163
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54169,7 +54263,7 @@ class EventHandler {
54169
54263
  }
54170
54264
  }
54171
54265
 
54172
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54266
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54173
54267
 
54174
54268
  /*
54175
54269
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54285,7 +54379,7 @@ class BaseInteractionClient {
54285
54379
  }
54286
54380
  }
54287
54381
 
54288
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54382
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54289
54383
 
54290
54384
  /*
54291
54385
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54370,7 +54464,7 @@ function validateRequestMethod(interactionRequest, protocolMode) {
54370
54464
  return httpMethod;
54371
54465
  }
54372
54466
 
54373
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54467
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54374
54468
 
54375
54469
  /*
54376
54470
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54542,6 +54636,10 @@ class StandardInteractionClient extends BaseInteractionClient {
54542
54636
  async initializeAuthorizationRequest(request, interactionType) {
54543
54637
  this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.correlationId);
54544
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
+ }
54545
54643
  const browserState = {
54546
54644
  interactionType: interactionType,
54547
54645
  };
@@ -54574,7 +54672,7 @@ class StandardInteractionClient extends BaseInteractionClient {
54574
54672
  }
54575
54673
  }
54576
54674
 
54577
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54675
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54578
54676
 
54579
54677
  /*
54580
54678
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54598,7 +54696,7 @@ function extractBrowserRequestState(browserCrypto, state) {
54598
54696
  }
54599
54697
  }
54600
54698
 
54601
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54699
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54602
54700
 
54603
54701
  /*
54604
54702
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54637,7 +54735,7 @@ function validateInteractionType(response, browserCrypto, interactionType) {
54637
54735
  }
54638
54736
  }
54639
54737
 
54640
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54738
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54641
54739
 
54642
54740
  /*
54643
54741
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54733,7 +54831,7 @@ class InteractionHandler {
54733
54831
  }
54734
54832
  }
54735
54833
 
54736
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54834
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54737
54835
  /*
54738
54836
  * Copyright (c) Microsoft Corporation. All rights reserved.
54739
54837
  * Licensed under the MIT License.
@@ -54742,7 +54840,7 @@ const contentError = "ContentError";
54742
54840
  const pageException = "PageException";
54743
54841
  const userSwitch = "user_switch";
54744
54842
 
54745
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54843
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54746
54844
  /*
54747
54845
  * Copyright (c) Microsoft Corporation. All rights reserved.
54748
54846
  * Licensed under the MIT License.
@@ -54755,7 +54853,7 @@ const DISABLED = "DISABLED";
54755
54853
  const ACCOUNT_UNAVAILABLE = "ACCOUNT_UNAVAILABLE";
54756
54854
  const UX_NOT_ALLOWED = "UX_NOT_ALLOWED";
54757
54855
 
54758
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54856
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54759
54857
 
54760
54858
  /*
54761
54859
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54820,7 +54918,7 @@ function createNativeAuthError(code, description, ext) {
54820
54918
  return new NativeAuthError(code, NativeAuthErrorMessages[code] || description, ext);
54821
54919
  }
54822
54920
 
54823
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54921
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54824
54922
 
54825
54923
  /*
54826
54924
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54870,7 +54968,7 @@ class SilentCacheClient extends StandardInteractionClient {
54870
54968
  }
54871
54969
  }
54872
54970
 
54873
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54971
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54874
54972
 
54875
54973
  /*
54876
54974
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55497,7 +55595,7 @@ class PlatformAuthInteractionClient extends BaseInteractionClient {
55497
55595
  }
55498
55596
  }
55499
55597
 
55500
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
55598
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55501
55599
 
55502
55600
  /*
55503
55601
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55726,7 +55824,7 @@ async function handleResponseEAR(request, response, apiId, config, authority, br
55726
55824
  return (await invokeAsync(responseHandler.handleServerTokenResponse.bind(responseHandler), PerformanceEvents.HandleServerTokenResponse, logger, performanceClient, request.correlationId)(decryptedData, authority, nowSeconds(), request, apiId, additionalData, undefined, undefined, undefined, undefined));
55727
55825
  }
55728
55826
 
55729
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
55827
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55730
55828
 
55731
55829
  /*
55732
55830
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55783,7 +55881,7 @@ async function generateCodeChallengeFromVerifier(pkceCodeVerifier, performanceCl
55783
55881
  }
55784
55882
  }
55785
55883
 
55786
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
55884
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55787
55885
 
55788
55886
  /*
55789
55887
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56048,7 +56146,7 @@ class PlatformAuthExtensionHandler {
56048
56146
  }
56049
56147
  }
56050
56148
 
56051
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
56149
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56052
56150
 
56053
56151
  /*
56054
56152
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56174,18 +56272,32 @@ class PlatformAuthDOMHandler {
56174
56272
  return nativeResponse;
56175
56273
  }
56176
56274
  getDOMExtraParams(extraParameters) {
56177
- const stringifiedParams = Object.entries(extraParameters).reduce((record, [key, value]) => {
56178
- record[key] = String(value);
56179
- return record;
56180
- }, {});
56181
- const validExtraParams = {
56182
- ...stringifiedParams,
56183
- };
56184
- 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
+ }
56185
56297
  }
56186
56298
  }
56187
56299
 
56188
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
56300
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56189
56301
  async function getPlatformAuthProvider(logger, performanceClient, correlationId, nativeBrokerHandshakeTimeout, enablePlatformBrokerDOMSupport) {
56190
56302
  logger.trace("getPlatformAuthProvider called", correlationId);
56191
56303
  logger.trace("Has client allowed platform auth via DOM API: " +
@@ -56250,7 +56362,7 @@ function isPlatformAuthAllowed(config, logger, platformAuthProvider, authenticat
56250
56362
  return true;
56251
56363
  }
56252
56364
 
56253
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
56365
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56254
56366
 
56255
56367
  /*
56256
56368
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56747,7 +56859,7 @@ class PopupClient extends StandardInteractionClient {
56747
56859
  }
56748
56860
  }
56749
56861
 
56750
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
56862
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56751
56863
 
56752
56864
  /*
56753
56865
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57187,7 +57299,7 @@ class RedirectClient extends StandardInteractionClient {
57187
57299
  }
57188
57300
  }
57189
57301
 
57190
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57302
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57191
57303
 
57192
57304
  /*
57193
57305
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57235,6 +57347,12 @@ async function initiateEarRequest(config, authority, request, logger, performanc
57235
57347
  */
57236
57348
  async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, performanceClient, logger, correlationId, responseType) {
57237
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;
57238
57356
  return new Promise((resolve, reject) => {
57239
57357
  if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {
57240
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.`);
@@ -57248,6 +57366,7 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57248
57366
  reject(createBrowserAuthError(monitorWindowTimeout));
57249
57367
  }, timeout);
57250
57368
  const intervalId = window.setInterval(() => {
57369
+ totalTickCount++;
57251
57370
  let href = "";
57252
57371
  const contentWindow = iframe.contentWindow;
57253
57372
  try {
@@ -57258,7 +57377,9 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57258
57377
  */
57259
57378
  href = contentWindow ? contentWindow.location.href : "";
57260
57379
  }
57261
- catch (e) { }
57380
+ catch (e) {
57381
+ crossOriginTickCount++;
57382
+ }
57262
57383
  if (!href || href === "about:blank") {
57263
57384
  return;
57264
57385
  }
@@ -57276,6 +57397,10 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57276
57397
  resolve(responseString);
57277
57398
  }, pollIntervalMilliseconds);
57278
57399
  }).finally(() => {
57400
+ performanceClient.addFields({
57401
+ iframeTickCount: totalTickCount,
57402
+ crossOriginTickCount: crossOriginTickCount,
57403
+ }, correlationId);
57279
57404
  invoke(removeHiddenIframe, PerformanceEvents.RemoveHiddenIframe, logger, performanceClient, correlationId)(iframe);
57280
57405
  });
57281
57406
  }
@@ -57343,7 +57468,7 @@ function removeHiddenIframe(iframe) {
57343
57468
  }
57344
57469
  }
57345
57470
 
57346
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57471
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57347
57472
 
57348
57473
  /*
57349
57474
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57465,6 +57590,52 @@ class SilentIframeClient extends StandardInteractionClient {
57465
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);
57466
57591
  }
57467
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
+ }
57468
57639
  /**
57469
57640
  * Currently Unsupported
57470
57641
  */
@@ -57504,7 +57675,7 @@ class SilentIframeClient extends StandardInteractionClient {
57504
57675
  }
57505
57676
  }
57506
57677
 
57507
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57678
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57508
57679
 
57509
57680
  /*
57510
57681
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57570,7 +57741,7 @@ class SilentRefreshClient extends StandardInteractionClient {
57570
57741
  }
57571
57742
  }
57572
57743
 
57573
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57744
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57574
57745
 
57575
57746
  /*
57576
57747
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57784,7 +57955,7 @@ class TokenCache {
57784
57955
  }
57785
57956
  }
57786
57957
 
57787
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57958
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57788
57959
 
57789
57960
  /*
57790
57961
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57797,7 +57968,7 @@ class HybridSpaAuthorizationCodeClient extends AuthorizationCodeClient {
57797
57968
  }
57798
57969
  }
57799
57970
 
57800
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57971
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57801
57972
 
57802
57973
  /*
57803
57974
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57863,11 +58034,7 @@ class SilentAuthCodeClient extends StandardInteractionClient {
57863
58034
  }
57864
58035
  }
57865
58036
 
57866
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57867
- /*
57868
- * Copyright (c) Microsoft Corporation. All rights reserved.
57869
- * Licensed under the MIT License.
57870
- */
58037
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57871
58038
  function collectInstanceStats(currentClientId, performanceEvent, logger) {
57872
58039
  const frameInstances =
57873
58040
  // @ts-ignore
@@ -57883,7 +58050,7 @@ function collectInstanceStats(currentClientId, performanceEvent, logger) {
57883
58050
  });
57884
58051
  }
57885
58052
 
57886
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
58053
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57887
58054
 
57888
58055
  /*
57889
58056
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57963,22 +58130,30 @@ class StandardController {
57963
58130
  this.tokenCache = new TokenCache(this.config, this.browserStorage, this.logger, this.browserCrypto, this.performanceClient);
57964
58131
  this.activeSilentTokenRequests = new Map();
57965
58132
  // Register listener functions
57966
- this.trackPageVisibility = this.trackPageVisibility.bind(this);
57967
- // Register listener functions
57968
- this.trackPageVisibilityWithMeasurement =
57969
- this.trackPageVisibilityWithMeasurement.bind(this);
58133
+ this.trackStateChangeWithMeasurement =
58134
+ this.trackStateChangeWithMeasurement.bind(this);
57970
58135
  }
57971
58136
  static async createController(operatingContext, request) {
57972
58137
  const controller = new StandardController(operatingContext);
57973
58138
  await controller.initialize(request);
57974
58139
  return controller;
57975
58140
  }
57976
- trackPageVisibility(correlationId) {
58141
+ trackStateChange(correlationId, event) {
57977
58142
  if (!correlationId) {
57978
58143
  return;
57979
58144
  }
57980
- this.logger.info("Perf: Visibility change detected");
57981
- 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
+ }
57982
58157
  }
57983
58158
  /**
57984
58159
  * Initializer function to perform async startup tasks such as connecting to WAM extension
@@ -58126,6 +58301,8 @@ class StandardController {
58126
58301
  rootMeasurement.end({
58127
58302
  success: true,
58128
58303
  }, undefined, result.account);
58304
+ // Fire-and-forget SSO capability verification in background
58305
+ this.verifySsoCapability(result.account, InteractionType.Redirect);
58129
58306
  }
58130
58307
  else {
58131
58308
  /*
@@ -58358,6 +58535,8 @@ class StandardController {
58358
58535
  accessTokenSize: result.accessToken.length,
58359
58536
  idTokenSize: result.idToken.length,
58360
58537
  }, undefined, result.account);
58538
+ // SSO capability verification in background
58539
+ this.verifySsoCapability(result.account, InteractionType.Popup);
58361
58540
  return result;
58362
58541
  })
58363
58542
  .catch((e) => {
@@ -58380,16 +58559,87 @@ class StandardController {
58380
58559
  }
58381
58560
  });
58382
58561
  }
58383
- trackPageVisibilityWithMeasurement() {
58562
+ trackStateChangeWithMeasurement(event) {
58384
58563
  const measurement = this.ssoSilentMeasurement ||
58385
58564
  this.acquireTokenByCodeAsyncMeasurement;
58386
58565
  if (!measurement) {
58387
58566
  return;
58388
58567
  }
58389
- this.logger.info("Perf: Visibility change detected in ", measurement.event.name);
58390
- measurement.increment({
58391
- 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,
58392
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);
58393
58643
  }
58394
58644
  // #endregion
58395
58645
  // #region Silent Flow
@@ -58423,8 +58673,9 @@ class StandardController {
58423
58673
  preflightCheck(this.initialized, this.ssoSilentMeasurement, request.account);
58424
58674
  this.ssoSilentMeasurement?.increment({
58425
58675
  visibilityChangeCount: 0,
58676
+ onlineStatusChangeCount: 0,
58426
58677
  });
58427
- document.addEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58678
+ this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
58428
58679
  this.logger.verbose("ssoSilent called", correlationId);
58429
58680
  this.eventHandler.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, validRequest);
58430
58681
  let result;
@@ -58468,7 +58719,7 @@ class StandardController {
58468
58719
  throw e;
58469
58720
  })
58470
58721
  .finally(() => {
58471
- document.removeEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58722
+ this.removeStateChangeListeners(this.trackStateChangeWithMeasurement);
58472
58723
  });
58473
58724
  }
58474
58725
  /**
@@ -58580,8 +58831,9 @@ class StandardController {
58580
58831
  this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCodeAsync, request.correlationId);
58581
58832
  this.acquireTokenByCodeAsyncMeasurement?.increment({
58582
58833
  visibilityChangeCount: 0,
58834
+ onlineStatusChangeCount: 0,
58583
58835
  });
58584
- document.addEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58836
+ this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
58585
58837
  const silentAuthCodeClient = this.createSilentAuthCodeClient(request.correlationId);
58586
58838
  const silentTokenResult = await silentAuthCodeClient
58587
58839
  .acquireToken(request)
@@ -58599,7 +58851,7 @@ class StandardController {
58599
58851
  throw tokenRenewalError;
58600
58852
  })
58601
58853
  .finally(() => {
58602
- document.removeEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58854
+ this.removeStateChangeListeners(this.trackStateChangeWithMeasurement);
58603
58855
  });
58604
58856
  return silentTokenResult;
58605
58857
  }
@@ -59144,18 +59396,22 @@ class StandardController {
59144
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}
59145
59397
  */
59146
59398
  async acquireTokenSilentAsync(request, account) {
59147
- const trackPageVisibility = () => this.trackPageVisibility(request.correlationId);
59399
+ const trackStateChange = (event) => this.trackStateChange(request.correlationId, event);
59148
59400
  this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);
59149
59401
  this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);
59150
59402
  if (request.correlationId) {
59151
- this.performanceClient.incrementFields({ visibilityChangeCount: 0 }, request.correlationId);
59403
+ this.performanceClient.incrementFields({ visibilityChangeCount: 0, onlineStatusChangeCount: 0 }, request.correlationId);
59152
59404
  }
59153
- document.addEventListener("visibilitychange", trackPageVisibility);
59405
+ this.addStateChangeListeners(trackStateChange);
59154
59406
  const silentRequest = await invokeAsync(initializeSilentRequest, PerformanceEvents.InitializeSilentRequest, this.logger, this.performanceClient, request.correlationId)(request, account, this.config, this.performanceClient, this.logger);
59155
59407
  const cacheLookupPolicy = request.cacheLookupPolicy || CacheLookupPolicy.Default;
59156
59408
  const result = this.acquireTokenSilentNoIframe(silentRequest, cacheLookupPolicy).catch(async (refreshTokenError) => {
59157
59409
  const shouldTryToResolveSilently = checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheLookupPolicy);
59158
59410
  if (shouldTryToResolveSilently) {
59411
+ const silentRefreshReason = `${refreshTokenError.errorCode}${refreshTokenError.subError
59412
+ ? `|${refreshTokenError.subError}`
59413
+ : ""}`;
59414
+ this.performanceClient.addFields({ silentRefreshReason }, silentRequest.correlationId);
59159
59415
  if (!this.activeIframeRequest) {
59160
59416
  let _resolve;
59161
59417
  // Always set the active request tracker immediately after checking it to prevent races
@@ -59225,7 +59481,7 @@ class StandardController {
59225
59481
  throw tokenRenewalError;
59226
59482
  })
59227
59483
  .finally(() => {
59228
- document.removeEventListener("visibilitychange", trackPageVisibility);
59484
+ this.removeStateChangeListeners(trackStateChange);
59229
59485
  });
59230
59486
  }
59231
59487
  /**
@@ -59336,7 +59592,7 @@ function checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheL
59336
59592
  return isSilentlyResolvable && tryIframeRenewal;
59337
59593
  }
59338
59594
 
59339
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
59595
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
59340
59596
 
59341
59597
  /*
59342
59598
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -59348,7 +59604,7 @@ async function createV3Controller(config, request) {
59348
59604
  return StandardController.createController(standard, request);
59349
59605
  }
59350
59606
 
59351
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
59607
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
59352
59608
 
59353
59609
  /*
59354
59610
  * Copyright (c) Microsoft Corporation. All rights reserved.