@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.esm.js CHANGED
@@ -42500,7 +42500,7 @@ var AuthDev = {
42500
42500
  acquireTokensByRequest
42501
42501
  };
42502
42502
 
42503
- /*! @azure/msal-common v15.14.2 2026-02-10 */
42503
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42504
42504
  /*
42505
42505
  * Copyright (c) Microsoft Corporation. All rights reserved.
42506
42506
  * Licensed under the MIT License.
@@ -42774,7 +42774,7 @@ const JsonWebTokenTypes = {
42774
42774
  // Token renewal offset default in seconds
42775
42775
  const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
42776
42776
 
42777
- /*! @azure/msal-common v15.14.2 2026-02-10 */
42777
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42778
42778
  /*
42779
42779
  * Copyright (c) Microsoft Corporation. All rights reserved.
42780
42780
  * Licensed under the MIT License.
@@ -42785,7 +42785,7 @@ const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
42785
42785
  const unexpectedError = "unexpected_error";
42786
42786
  const postRequestFailed$1 = "post_request_failed";
42787
42787
 
42788
- /*! @azure/msal-common v15.14.2 2026-02-10 */
42788
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42789
42789
 
42790
42790
  /*
42791
42791
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -42820,7 +42820,7 @@ function createAuthError(code, additionalMessage) {
42820
42820
  : AuthErrorMessages[code]);
42821
42821
  }
42822
42822
 
42823
- /*! @azure/msal-common v15.14.2 2026-02-10 */
42823
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42824
42824
  /*
42825
42825
  * Copyright (c) Microsoft Corporation. All rights reserved.
42826
42826
  * Licensed under the MIT License.
@@ -42871,7 +42871,7 @@ const methodNotImplemented = "method_not_implemented";
42871
42871
  const nestedAppAuthBridgeDisabled = "nested_app_auth_bridge_disabled";
42872
42872
  const platformBrokerError = "platform_broker_error";
42873
42873
 
42874
- /*! @azure/msal-common v15.14.2 2026-02-10 */
42874
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42875
42875
 
42876
42876
  /*
42877
42877
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -42946,7 +42946,7 @@ function createClientAuthError(errorCode, additionalMessage) {
42946
42946
  return new ClientAuthError(errorCode, additionalMessage);
42947
42947
  }
42948
42948
 
42949
- /*! @azure/msal-common v15.14.2 2026-02-10 */
42949
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42950
42950
 
42951
42951
  /*
42952
42952
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -42985,7 +42985,7 @@ const DEFAULT_CRYPTO_IMPLEMENTATION = {
42985
42985
  },
42986
42986
  };
42987
42987
 
42988
- /*! @azure/msal-common v15.14.2 2026-02-10 */
42988
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
42989
42989
 
42990
42990
  /*
42991
42991
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -43176,12 +43176,12 @@ class Logger {
43176
43176
  }
43177
43177
  }
43178
43178
 
43179
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43179
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43180
43180
  /* eslint-disable header/header */
43181
43181
  const name$2 = "@azure/msal-common";
43182
- const version$1 = "15.14.2";
43182
+ const version$1 = "15.16.1";
43183
43183
 
43184
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43184
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43185
43185
  /*
43186
43186
  * Copyright (c) Microsoft Corporation. All rights reserved.
43187
43187
  * Licensed under the MIT License.
@@ -43190,7 +43190,7 @@ const AzureCloudInstance = {
43190
43190
  // AzureCloudInstance is not specified.
43191
43191
  None: "none"};
43192
43192
 
43193
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43193
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43194
43194
  /*
43195
43195
  * Copyright (c) Microsoft Corporation. All rights reserved.
43196
43196
  * Licensed under the MIT License.
@@ -43220,7 +43220,7 @@ const invalidRequestMethodForEAR = "invalid_request_method_for_EAR";
43220
43220
  const invalidAuthorizePostBodyParameters = "invalid_authorize_post_body_parameters";
43221
43221
  const invalidPlatformBrokerConfiguration = "invalid_platform_broker_configuration";
43222
43222
 
43223
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43223
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43224
43224
 
43225
43225
  /*
43226
43226
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -43266,7 +43266,7 @@ function createClientConfigurationError(errorCode) {
43266
43266
  return new ClientConfigurationError(errorCode);
43267
43267
  }
43268
43268
 
43269
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43269
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43270
43270
  /*
43271
43271
  * Copyright (c) Microsoft Corporation. All rights reserved.
43272
43272
  * Licensed under the MIT License.
@@ -43361,9 +43361,48 @@ class StringUtils {
43361
43361
  .replace(/\?/g, "\\?"));
43362
43362
  return regex.test(input);
43363
43363
  }
43364
+ /**
43365
+ * Tests if a given string matches a given pattern using stricter, anchored matching semantics.
43366
+ *
43367
+ * Differences from `matchPattern` (legacy):
43368
+ * - All regex metacharacters (including `.`) in the pattern are treated as literals,
43369
+ * so `example.com` matches only `example.com` and not `exampleXcom`.
43370
+ * - The generated regex is anchored with `^` and `$` so partial/substring matches
43371
+ * are not allowed.
43372
+ * - `*` is the only supported wildcard. Its behaviour depends on the URL component:
43373
+ * - `host` component: `*` matches any sequence of characters that does NOT include
43374
+ * a dot (`.`), keeping wildcards within a single DNS label boundary.
43375
+ * - All other components: `*` matches any sequence of characters (including `/`).
43376
+ *
43377
+ * @param pattern - The `protectedResourceMap` key pattern to match against. `*` is a
43378
+ * multi-character wildcard; all other characters are treated as literals.
43379
+ * @param input - The URL component value (e.g. host, pathname) extracted from the
43380
+ * outgoing request URL to test against the pattern.
43381
+ * @param options - Optional. Provide `component` to enable component-aware wildcard
43382
+ * semantics. Accepted values: `"host"`, `"path"`, `"protocol"`, `"search"`,
43383
+ * `"hash"`. Defaults to path-style (permissive) matching when omitted.
43384
+ * @returns `true` if the full input string matches the pattern; `false` otherwise.
43385
+ */
43386
+ static matchPatternStrict(pattern, input, options) {
43387
+ const component = options?.component;
43388
+ // Step 1: Escape all regex special characters so literals are matched literally.
43389
+ let regexBody = pattern.replace(/[.+^${}()|[\]\\*?]/g, "\\$&");
43390
+ // Step 2: Replace the escaped '*' with its component-aware regex equivalent.
43391
+ if (component === "host") {
43392
+ regexBody = regexBody.replace(/\\\*/g, "[^.]*");
43393
+ }
43394
+ else {
43395
+ // PATH, PROTOCOL, SEARCH, HASH, or unspecified: '*' matches any characters.
43396
+ regexBody = regexBody.replace(/\\\*/g, ".*");
43397
+ }
43398
+ // Step 3: Anchor for full-string matching.
43399
+ // eslint-disable-next-line security/detect-non-literal-regexp
43400
+ const regex = new RegExp(`^${regexBody}$`);
43401
+ return regex.test(input);
43402
+ }
43364
43403
  }
43365
43404
 
43366
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43405
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43367
43406
 
43368
43407
  /*
43369
43408
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -43558,7 +43597,7 @@ class ScopeSet {
43558
43597
  }
43559
43598
  }
43560
43599
 
43561
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43600
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43562
43601
 
43563
43602
  /*
43564
43603
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -43598,7 +43637,7 @@ function buildClientInfoFromHomeAccountId(homeAccountId) {
43598
43637
  };
43599
43638
  }
43600
43639
 
43601
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43640
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43602
43641
  /*
43603
43642
  * Copyright (c) Microsoft Corporation. All rights reserved.
43604
43643
  * Licensed under the MIT License.
@@ -43680,7 +43719,7 @@ function updateAccountTenantProfileData(baseAccountInfo, tenantProfile, idTokenC
43680
43719
  return updatedAccountInfo;
43681
43720
  }
43682
43721
 
43683
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43722
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43684
43723
  /*
43685
43724
  * Copyright (c) Microsoft Corporation. All rights reserved.
43686
43725
  * Licensed under the MIT License.
@@ -43695,7 +43734,7 @@ const AuthorityType = {
43695
43734
  Ciam: 3,
43696
43735
  };
43697
43736
 
43698
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43737
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43699
43738
  /*
43700
43739
  * Copyright (c) Microsoft Corporation. All rights reserved.
43701
43740
  * Licensed under the MIT License.
@@ -43717,7 +43756,7 @@ function getTenantIdFromIdTokenClaims(idTokenClaims) {
43717
43756
  return null;
43718
43757
  }
43719
43758
 
43720
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43759
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43721
43760
  /*
43722
43761
  * Copyright (c) Microsoft Corporation. All rights reserved.
43723
43762
  * Licensed under the MIT License.
@@ -43741,7 +43780,7 @@ const ProtocolMode = {
43741
43780
  EAR: "EAR",
43742
43781
  };
43743
43782
 
43744
- /*! @azure/msal-common v15.14.2 2026-02-10 */
43783
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43745
43784
 
43746
43785
  /*
43747
43786
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -43976,7 +44015,7 @@ class AccountEntity {
43976
44015
  }
43977
44016
  }
43978
44017
 
43979
- /*! @azure/msal-common v15.14.2 2026-02-10 */
44018
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
43980
44019
 
43981
44020
  /*
43982
44021
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44057,7 +44096,7 @@ function checkMaxAge(authTime, maxAge) {
44057
44096
  }
44058
44097
  }
44059
44098
 
44060
- /*! @azure/msal-common v15.14.2 2026-02-10 */
44099
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44061
44100
 
44062
44101
  /*
44063
44102
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44173,7 +44212,7 @@ function normalizeUrlForComparison(url) {
44173
44212
  }
44174
44213
  }
44175
44214
 
44176
- /*! @azure/msal-common v15.14.2 2026-02-10 */
44215
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44177
44216
 
44178
44217
  /*
44179
44218
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44337,7 +44376,7 @@ class UrlString {
44337
44376
  }
44338
44377
  }
44339
44378
 
44340
- /*! @azure/msal-common v15.14.2 2026-02-10 */
44379
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44341
44380
 
44342
44381
  /*
44343
44382
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44512,7 +44551,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
44512
44551
  return null;
44513
44552
  }
44514
44553
 
44515
- /*! @azure/msal-common v15.14.2 2026-02-10 */
44554
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44516
44555
  /*
44517
44556
  * Copyright (c) Microsoft Corporation. All rights reserved.
44518
44557
  * Licensed under the MIT License.
@@ -44520,7 +44559,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
44520
44559
  const cacheQuotaExceeded = "cache_quota_exceeded";
44521
44560
  const cacheErrorUnknown = "cache_error_unknown";
44522
44561
 
44523
- /*! @azure/msal-common v15.14.2 2026-02-10 */
44562
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44524
44563
 
44525
44564
  /*
44526
44565
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44565,7 +44604,7 @@ function createCacheError(e) {
44565
44604
  }
44566
44605
  }
44567
44606
 
44568
- /*! @azure/msal-common v15.14.2 2026-02-10 */
44607
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44569
44608
 
44570
44609
  /*
44571
44610
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -45675,7 +45714,7 @@ class DefaultStorageClass extends CacheManager {
45675
45714
  }
45676
45715
  }
45677
45716
 
45678
- /*! @azure/msal-common v15.14.2 2026-02-10 */
45717
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
45679
45718
  /*
45680
45719
  * Copyright (c) Microsoft Corporation. All rights reserved.
45681
45720
  * Licensed under the MIT License.
@@ -45937,6 +45976,11 @@ const PerformanceEvents = {
45937
45976
  LoadIdToken: "loadIdToken",
45938
45977
  LoadAccessToken: "loadAccessToken",
45939
45978
  LoadRefreshToken: "loadRefreshToken",
45979
+ /**
45980
+ * SSO capability verification call (msal-browser).
45981
+ * Fire-and-forget SSO verification call made after interactive authentication completes.
45982
+ */
45983
+ SsoCapable: "ssoCapable",
45940
45984
  };
45941
45985
  /**
45942
45986
  * State of the performance event.
@@ -45947,7 +45991,7 @@ const PerformanceEvents = {
45947
45991
  const PerformanceEventStatus = {
45948
45992
  InProgress: 1};
45949
45993
 
45950
- /*! @azure/msal-common v15.14.2 2026-02-10 */
45994
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
45951
45995
 
45952
45996
  /*
45953
45997
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46026,7 +46070,7 @@ class StubPerformanceClient {
46026
46070
  }
46027
46071
  }
46028
46072
 
46029
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46073
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46030
46074
 
46031
46075
  /*
46032
46076
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46126,7 +46170,7 @@ function isOidcProtocolMode(config) {
46126
46170
  return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
46127
46171
  }
46128
46172
 
46129
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46173
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46130
46174
  /*
46131
46175
  * Copyright (c) Microsoft Corporation. All rights reserved.
46132
46176
  * Licensed under the MIT License.
@@ -46136,7 +46180,7 @@ const CcsCredentialType = {
46136
46180
  UPN: "UPN",
46137
46181
  };
46138
46182
 
46139
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46183
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46140
46184
  /*
46141
46185
  * Copyright (c) Microsoft Corporation. All rights reserved.
46142
46186
  * Licensed under the MIT License.
@@ -46186,7 +46230,7 @@ const INSTANCE_AWARE = "instance_aware";
46186
46230
  const EAR_JWK = "ear_jwk";
46187
46231
  const EAR_JWE_CRYPTO = "ear_jwe_crypto";
46188
46232
 
46189
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46233
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46190
46234
 
46191
46235
  /*
46192
46236
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46566,7 +46610,7 @@ function addPostBodyParameters(parameters, bodyParameters) {
46566
46610
  });
46567
46611
  }
46568
46612
 
46569
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46613
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46570
46614
  /*
46571
46615
  * Copyright (c) Microsoft Corporation. All rights reserved.
46572
46616
  * Licensed under the MIT License.
@@ -46578,7 +46622,7 @@ function isOpenIdConfigResponse(response) {
46578
46622
  response.hasOwnProperty("jwks_uri"));
46579
46623
  }
46580
46624
 
46581
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46625
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46582
46626
  /*
46583
46627
  * Copyright (c) Microsoft Corporation. All rights reserved.
46584
46628
  * Licensed under the MIT License.
@@ -46588,7 +46632,7 @@ function isCloudInstanceDiscoveryResponse(response) {
46588
46632
  response.hasOwnProperty("metadata"));
46589
46633
  }
46590
46634
 
46591
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46635
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46592
46636
  /*
46593
46637
  * Copyright (c) Microsoft Corporation. All rights reserved.
46594
46638
  * Licensed under the MIT License.
@@ -46598,7 +46642,7 @@ function isCloudInstanceDiscoveryErrorResponse(response) {
46598
46642
  response.hasOwnProperty("error_description"));
46599
46643
  }
46600
46644
 
46601
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46645
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46602
46646
  /*
46603
46647
  * Copyright (c) Microsoft Corporation. All rights reserved.
46604
46648
  * Licensed under the MIT License.
@@ -46694,7 +46738,7 @@ const invokeAsync = (callback, eventName, logger, telemetryClient, correlationId
46694
46738
  };
46695
46739
  };
46696
46740
 
46697
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46741
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46698
46742
 
46699
46743
  /*
46700
46744
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46800,7 +46844,7 @@ RegionDiscovery.IMDS_OPTIONS = {
46800
46844
  },
46801
46845
  };
46802
46846
 
46803
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46847
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46804
46848
  /*
46805
46849
  * Copyright (c) Microsoft Corporation. All rights reserved.
46806
46850
  * Licensed under the MIT License.
@@ -46865,7 +46909,7 @@ function wasClockTurnedBack(cachedAt) {
46865
46909
  return cachedAtSec > nowSeconds();
46866
46910
  }
46867
46911
 
46868
- /*! @azure/msal-common v15.14.2 2026-02-10 */
46912
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46869
46913
 
46870
46914
  /*
46871
46915
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47127,7 +47171,7 @@ function isAuthorityMetadataExpired(metadata) {
47127
47171
  return metadata.expiresAt <= nowSeconds();
47128
47172
  }
47129
47173
 
47130
- /*! @azure/msal-common v15.14.2 2026-02-10 */
47174
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47131
47175
 
47132
47176
  /*
47133
47177
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47966,7 +48010,7 @@ function buildStaticAuthorityOptions(authOptions) {
47966
48010
  };
47967
48011
  }
47968
48012
 
47969
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48013
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47970
48014
 
47971
48015
  /*
47972
48016
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47997,7 +48041,7 @@ async function createDiscoveredInstance(authorityUri, networkClient, cacheManage
47997
48041
  }
47998
48042
  }
47999
48043
 
48000
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48044
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48001
48045
 
48002
48046
  /*
48003
48047
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48016,7 +48060,7 @@ class ServerError extends AuthError {
48016
48060
  }
48017
48061
  }
48018
48062
 
48019
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48063
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48020
48064
  /*
48021
48065
  * Copyright (c) Microsoft Corporation. All rights reserved.
48022
48066
  * Licensed under the MIT License.
@@ -48037,7 +48081,7 @@ function getRequestThumbprint(clientId, request, homeAccountId) {
48037
48081
  };
48038
48082
  }
48039
48083
 
48040
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48084
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48041
48085
 
48042
48086
  /*
48043
48087
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48124,7 +48168,7 @@ class ThrottlingUtils {
48124
48168
  }
48125
48169
  }
48126
48170
 
48127
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48171
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48128
48172
 
48129
48173
  /*
48130
48174
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48155,7 +48199,7 @@ function createNetworkError(error, httpStatus, responseHeaders, additionalError)
48155
48199
  return new NetworkError(error, httpStatus, responseHeaders);
48156
48200
  }
48157
48201
 
48158
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48202
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48159
48203
 
48160
48204
  /*
48161
48205
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48303,23 +48347,58 @@ class BaseClient {
48303
48347
  }
48304
48348
  }
48305
48349
 
48306
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48350
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48307
48351
  /*
48308
48352
  * Copyright (c) Microsoft Corporation. All rights reserved.
48309
48353
  * Licensed under the MIT License.
48310
48354
  */
48311
- // Codes defined by MSAL
48355
+ /**
48356
+ * MSAL-defined interaction required error code indicating no tokens are found in cache.
48357
+ * @public
48358
+ */
48312
48359
  const noTokensFound = "no_tokens_found";
48360
+ /**
48361
+ * MSAL-defined error code indicating a native account is unavailable on the platform.
48362
+ * @public
48363
+ */
48313
48364
  const nativeAccountUnavailable = "native_account_unavailable";
48365
+ /**
48366
+ * MSAL-defined error code indicating the refresh token has expired and user interaction is needed.
48367
+ * @public
48368
+ */
48314
48369
  const refreshTokenExpired = "refresh_token_expired";
48370
+ /**
48371
+ * MSAL-defined error code indicating UI/UX is not allowed (e.g., blocked by policy), requiring alternate interaction.
48372
+ * @public
48373
+ */
48315
48374
  const uxNotAllowed = "ux_not_allowed";
48316
- // Codes potentially returned by server
48375
+ /**
48376
+ * Server-originated error code indicating interaction is required to complete the request.
48377
+ * @public
48378
+ */
48317
48379
  const interactionRequired = "interaction_required";
48380
+ /**
48381
+ * Server-originated error code indicating user consent is required.
48382
+ * @public
48383
+ */
48318
48384
  const consentRequired = "consent_required";
48385
+ /**
48386
+ * Server-originated error code indicating user login is required.
48387
+ * @public
48388
+ */
48319
48389
  const loginRequired = "login_required";
48320
- const badToken = "bad_token";
48390
+ /**
48391
+ * Server-originated error code indicating the token is invalid or corrupted.
48392
+ * @public
48393
+ */
48394
+ const badToken = "bad_token";
48395
+ /**
48396
+ * Server-originated error code indicating the user was interrupted and must reattempt the flow.
48397
+ * @public
48398
+ */
48399
+ const interruptedUser = "interrupted_user";
48321
48400
 
48322
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48401
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48323
48402
 
48324
48403
  /*
48325
48404
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48334,6 +48413,7 @@ const InteractionRequiredServerErrorMessage = [
48334
48413
  loginRequired,
48335
48414
  badToken,
48336
48415
  uxNotAllowed,
48416
+ interruptedUser,
48337
48417
  ];
48338
48418
  const InteractionRequiredAuthSubErrorMessage = [
48339
48419
  "message_only",
@@ -48342,6 +48422,7 @@ const InteractionRequiredAuthSubErrorMessage = [
48342
48422
  "user_password_expired",
48343
48423
  "consent_required",
48344
48424
  "bad_token",
48425
+ "interrupted_user",
48345
48426
  ];
48346
48427
  const InteractionRequiredAuthErrorMessages = {
48347
48428
  [noTokensFound]: "No refresh token found in the cache. Please sign-in.",
@@ -48349,6 +48430,7 @@ const InteractionRequiredAuthErrorMessages = {
48349
48430
  [refreshTokenExpired]: "Refresh token has expired.",
48350
48431
  [badToken]: "Identity provider returned bad_token due to an expired or invalid refresh token. Please invoke an interactive API to resolve.",
48351
48432
  [uxNotAllowed]: "`canShowUI` flag in Edge was set to false. User interaction required on web page. Please invoke an interactive API to resolve.",
48433
+ [interruptedUser]: "The user could not be authenticated due to an interrupted state. Please invoke an interactive API to resolve.",
48352
48434
  };
48353
48435
  /**
48354
48436
  * Error thrown when user interaction is required.
@@ -48391,7 +48473,7 @@ function createInteractionRequiredAuthError(errorCode) {
48391
48473
  return new InteractionRequiredAuthError(errorCode, InteractionRequiredAuthErrorMessages[errorCode]);
48392
48474
  }
48393
48475
 
48394
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48476
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48395
48477
 
48396
48478
  /*
48397
48479
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48463,7 +48545,7 @@ class ProtocolUtils {
48463
48545
  }
48464
48546
  }
48465
48547
 
48466
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48548
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48467
48549
 
48468
48550
  /*
48469
48551
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48545,7 +48627,7 @@ class PopTokenGenerator {
48545
48627
  }
48546
48628
  }
48547
48629
 
48548
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48630
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48549
48631
  /*
48550
48632
  * Copyright (c) Microsoft Corporation. All rights reserved.
48551
48633
  * Licensed under the MIT License.
@@ -48572,7 +48654,7 @@ class PopTokenGenerator {
48572
48654
  }
48573
48655
  }
48574
48656
 
48575
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48657
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48576
48658
 
48577
48659
  /*
48578
48660
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48911,7 +48993,7 @@ function buildAccountToCache(cacheStorage, authority, homeAccountId, base64Decod
48911
48993
  return baseAccount;
48912
48994
  }
48913
48995
 
48914
- /*! @azure/msal-common v15.14.2 2026-02-10 */
48996
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48915
48997
  /*
48916
48998
  * Copyright (c) Microsoft Corporation. All rights reserved.
48917
48999
  * Licensed under the MIT License.
@@ -48929,7 +49011,7 @@ async function getClientAssertion(clientAssertion, clientId, tokenEndpoint) {
48929
49011
  }
48930
49012
  }
48931
49013
 
48932
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49014
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48933
49015
 
48934
49016
  /*
48935
49017
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49078,11 +49160,6 @@ class AuthorizationCodeClient extends BaseClient {
49078
49160
  throw createClientConfigurationError(missingSshJwk);
49079
49161
  }
49080
49162
  }
49081
- if (!StringUtils.isEmptyObj(request.claims) ||
49082
- (this.config.authOptions.clientCapabilities &&
49083
- this.config.authOptions.clientCapabilities.length > 0)) {
49084
- addClaims(parameters, request.claims, this.config.authOptions.clientCapabilities);
49085
- }
49086
49163
  let ccsCred = undefined;
49087
49164
  if (request.clientInfo) {
49088
49165
  try {
@@ -49132,6 +49209,15 @@ class AuthorizationCodeClient extends BaseClient {
49132
49209
  });
49133
49210
  }
49134
49211
  instrumentBrokerParams(parameters, request.correlationId, this.performanceClient);
49212
+ // ignore config claims if skipBrokerClaims is set to true and this is a brokered authentication flow
49213
+ const configClaims = request.skipBrokerClaims &&
49214
+ parameters.has(BROKER_CLIENT_ID)
49215
+ ? undefined
49216
+ : this.config.authOptions.clientCapabilities;
49217
+ if (!StringUtils.isEmptyObj(request.claims) ||
49218
+ (configClaims && configClaims.length > 0)) {
49219
+ addClaims(parameters, request.claims, configClaims);
49220
+ }
49135
49221
  return mapToQueryString(parameters);
49136
49222
  }
49137
49223
  /**
@@ -49165,7 +49251,7 @@ class AuthorizationCodeClient extends BaseClient {
49165
49251
  }
49166
49252
  }
49167
49253
 
49168
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49254
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49169
49255
 
49170
49256
  /*
49171
49257
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49343,11 +49429,6 @@ class RefreshTokenClient extends BaseClient {
49343
49429
  throw createClientConfigurationError(missingSshJwk);
49344
49430
  }
49345
49431
  }
49346
- if (!StringUtils.isEmptyObj(request.claims) ||
49347
- (this.config.authOptions.clientCapabilities &&
49348
- this.config.authOptions.clientCapabilities.length > 0)) {
49349
- addClaims(parameters, request.claims, this.config.authOptions.clientCapabilities);
49350
- }
49351
49432
  if (this.config.systemOptions.preventCorsPreflight &&
49352
49433
  request.ccsCredential) {
49353
49434
  switch (request.ccsCredential.type) {
@@ -49373,11 +49454,20 @@ class RefreshTokenClient extends BaseClient {
49373
49454
  addExtraQueryParameters(parameters, request.tokenBodyParameters);
49374
49455
  }
49375
49456
  instrumentBrokerParams(parameters, request.correlationId, this.performanceClient);
49457
+ // ignore config claims if skipBrokerClaims is set to true and this is a brokered authentication flow
49458
+ const configClaims = request.skipBrokerClaims &&
49459
+ parameters.has(BROKER_CLIENT_ID)
49460
+ ? undefined
49461
+ : this.config.authOptions.clientCapabilities;
49462
+ if (!StringUtils.isEmptyObj(request.claims) ||
49463
+ (configClaims && configClaims.length > 0)) {
49464
+ addClaims(parameters, request.claims, configClaims);
49465
+ }
49376
49466
  return mapToQueryString(parameters);
49377
49467
  }
49378
49468
  }
49379
49469
 
49380
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49470
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49381
49471
 
49382
49472
  /*
49383
49473
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49475,7 +49565,7 @@ class SilentFlowClient extends BaseClient {
49475
49565
  }
49476
49566
  }
49477
49567
 
49478
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49568
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49479
49569
 
49480
49570
  /*
49481
49571
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49490,7 +49580,7 @@ const StubbedNetworkModule = {
49490
49580
  },
49491
49581
  };
49492
49582
 
49493
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49583
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49494
49584
 
49495
49585
  /*
49496
49586
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49611,14 +49701,17 @@ function getStandardAuthorizeRequestParameters(authOptions, request, logger, per
49611
49701
  if (request.state) {
49612
49702
  addState(parameters, request.state);
49613
49703
  }
49614
- if (request.claims ||
49615
- (authOptions.clientCapabilities &&
49616
- authOptions.clientCapabilities.length > 0)) {
49617
- addClaims(parameters, request.claims, authOptions.clientCapabilities);
49618
- }
49619
49704
  if (request.embeddedClientId) {
49620
49705
  addBrokerParameters(parameters, authOptions.clientId, authOptions.redirectUri);
49621
49706
  }
49707
+ // ignore config claims if skipBrokerClaims is set to true and this is a brokered authentication flow
49708
+ const configClaims = request.skipBrokerClaims &&
49709
+ parameters.has(BROKER_CLIENT_ID)
49710
+ ? undefined
49711
+ : authOptions.clientCapabilities;
49712
+ if (request.claims || (configClaims && configClaims.length > 0)) {
49713
+ addClaims(parameters, request.claims, configClaims);
49714
+ }
49622
49715
  // If extraQueryParameters includes instance_aware its value will be added when extraQueryParameters are added
49623
49716
  if (authOptions.instanceAware &&
49624
49717
  (!request.extraQueryParameters ||
@@ -49714,7 +49807,7 @@ function extractLoginHint(account) {
49714
49807
  return account.loginHint || account.idTokenClaims?.login_hint || null;
49715
49808
  }
49716
49809
 
49717
- /*! @azure/msal-common v15.14.2 2026-02-10 */
49810
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49718
49811
 
49719
49812
  /*
49720
49813
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49977,7 +50070,7 @@ class ServerTelemetryManager {
49977
50070
  }
49978
50071
  }
49979
50072
 
49980
- /*! @azure/msal-common v15.14.2 2026-02-10 */
50073
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49981
50074
  /*
49982
50075
  * Copyright (c) Microsoft Corporation. All rights reserved.
49983
50076
  * Licensed under the MIT License.
@@ -49985,7 +50078,7 @@ class ServerTelemetryManager {
49985
50078
  const missingKidError = "missing_kid_error";
49986
50079
  const missingAlgError = "missing_alg_error";
49987
50080
 
49988
- /*! @azure/msal-common v15.14.2 2026-02-10 */
50081
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49989
50082
 
49990
50083
  /*
49991
50084
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50010,7 +50103,7 @@ function createJoseHeaderError(code) {
50010
50103
  return new JoseHeaderError(code, JoseHeaderErrorMessages[code]);
50011
50104
  }
50012
50105
 
50013
- /*! @azure/msal-common v15.14.2 2026-02-10 */
50106
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
50014
50107
 
50015
50108
  /*
50016
50109
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50050,7 +50143,7 @@ class JoseHeader {
50050
50143
  }
50051
50144
  }
50052
50145
 
50053
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50146
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50054
50147
  /*
50055
50148
  * Copyright (c) Microsoft Corporation. All rights reserved.
50056
50149
  * Licensed under the MIT License.
@@ -50107,7 +50200,7 @@ const failedToParseHeaders = "failed_to_parse_headers";
50107
50200
  const failedToDecryptEarResponse = "failed_to_decrypt_ear_response";
50108
50201
  const timedOut = "timed_out";
50109
50202
 
50110
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50203
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50111
50204
 
50112
50205
  /*
50113
50206
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50184,7 +50277,7 @@ function createBrowserAuthError(errorCode, subError) {
50184
50277
  return new BrowserAuthError(errorCode, subError);
50185
50278
  }
50186
50279
 
50187
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50280
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50188
50281
 
50189
50282
  /*
50190
50283
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50373,7 +50466,7 @@ const iFrameRenewalPolicies = [
50373
50466
  CacheLookupPolicy.RefreshTokenAndNetwork,
50374
50467
  ];
50375
50468
 
50376
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50469
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50377
50470
  /*
50378
50471
  * Copyright (c) Microsoft Corporation. All rights reserved.
50379
50472
  * Licensed under the MIT License.
@@ -50418,7 +50511,7 @@ function base64EncArr(aBytes) {
50418
50511
  return btoa(binString);
50419
50512
  }
50420
50513
 
50421
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50514
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50422
50515
 
50423
50516
  /*
50424
50517
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50457,7 +50550,7 @@ function base64DecToArr(base64String) {
50457
50550
  return Uint8Array.from(binString, (m) => m.codePointAt(0) || 0);
50458
50551
  }
50459
50552
 
50460
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50553
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50461
50554
 
50462
50555
  /*
50463
50556
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50756,7 +50849,7 @@ async function hashString(plainText) {
50756
50849
  return urlEncodeArr(hashBytes);
50757
50850
  }
50758
50851
 
50759
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50852
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50760
50853
  /*
50761
50854
  * Copyright (c) Microsoft Corporation. All rights reserved.
50762
50855
  * Licensed under the MIT License.
@@ -50765,7 +50858,7 @@ const storageNotSupported = "storage_not_supported";
50765
50858
  const stubbedPublicClientApplicationCalled = "stubbed_public_client_application_called";
50766
50859
  const inMemRedirectUnavailable = "in_mem_redirect_unavailable";
50767
50860
 
50768
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50861
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50769
50862
 
50770
50863
  /*
50771
50864
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50805,7 +50898,7 @@ function createBrowserConfigurationAuthError(errorCode) {
50805
50898
  return new BrowserConfigurationAuthError(errorCode, BrowserConfigurationAuthErrorMessages[errorCode]);
50806
50899
  }
50807
50900
 
50808
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
50901
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50809
50902
 
50810
50903
  /*
50811
50904
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50967,7 +51060,7 @@ function createGuid() {
50967
51060
  return createNewGuid();
50968
51061
  }
50969
51062
 
50970
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51063
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50971
51064
 
50972
51065
  /*
50973
51066
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51010,7 +51103,7 @@ class NavigationClient {
51010
51103
  }
51011
51104
  }
51012
51105
 
51013
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51106
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51014
51107
 
51015
51108
  /*
51016
51109
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51131,7 +51224,7 @@ function getHeaderDict(headers) {
51131
51224
  }
51132
51225
  }
51133
51226
 
51134
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51227
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51135
51228
 
51136
51229
  /*
51137
51230
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51180,6 +51273,7 @@ function buildConfiguration({ auth: userInputAuth, cache: userInputCache, system
51180
51273
  supportsNestedAppAuth: false,
51181
51274
  instanceAware: false,
51182
51275
  encodeExtraQueryParams: false,
51276
+ verifySSO: false,
51183
51277
  };
51184
51278
  // Default cache options for browser
51185
51279
  const DEFAULT_CACHE_OPTIONS = {
@@ -51266,12 +51360,12 @@ function buildConfiguration({ auth: userInputAuth, cache: userInputCache, system
51266
51360
  return overlayedConfig;
51267
51361
  }
51268
51362
 
51269
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51363
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51270
51364
  /* eslint-disable header/header */
51271
51365
  const name$1 = "@azure/msal-browser";
51272
- const version = "4.28.2";
51366
+ const version = "4.29.1";
51273
51367
 
51274
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51368
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51275
51369
  /*
51276
51370
  * Copyright (c) Microsoft Corporation. All rights reserved.
51277
51371
  * Licensed under the MIT License.
@@ -51299,7 +51393,7 @@ function getTokenKeysCacheKey(clientId, schema = CREDENTIAL_SCHEMA_VERSION) {
51299
51393
  return `${PREFIX}.${schema}.${TOKEN_KEYS}.${clientId}`;
51300
51394
  }
51301
51395
 
51302
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51396
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51303
51397
 
51304
51398
  /*
51305
51399
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51396,7 +51490,7 @@ class BaseOperatingContext {
51396
51490
  }
51397
51491
  }
51398
51492
 
51399
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51493
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51400
51494
 
51401
51495
  /*
51402
51496
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51442,7 +51536,7 @@ StandardOperatingContext.MODULE_NAME = "";
51442
51536
  */
51443
51537
  StandardOperatingContext.ID = "StandardOperatingContext";
51444
51538
 
51445
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51539
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51446
51540
 
51447
51541
  /*
51448
51542
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51645,7 +51739,7 @@ class DatabaseStorage {
51645
51739
  }
51646
51740
  }
51647
51741
 
51648
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51742
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51649
51743
  /*
51650
51744
  * Copyright (c) Microsoft Corporation. All rights reserved.
51651
51745
  * Licensed under the MIT License.
@@ -51691,7 +51785,7 @@ class MemoryStorage {
51691
51785
  }
51692
51786
  }
51693
51787
 
51694
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51788
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51695
51789
 
51696
51790
  /*
51697
51791
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51825,7 +51919,7 @@ class AsyncMemoryStorage {
51825
51919
  }
51826
51920
  }
51827
51921
 
51828
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
51922
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51829
51923
 
51830
51924
  /*
51831
51925
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52006,7 +52100,7 @@ function getSortedObjectString(obj) {
52006
52100
  return JSON.stringify(obj, Object.keys(obj).sort());
52007
52101
  }
52008
52102
 
52009
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52103
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52010
52104
 
52011
52105
  /*
52012
52106
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52084,7 +52178,7 @@ function getCookieExpirationTime(cookieLifeDays) {
52084
52178
  return expr.toUTCString();
52085
52179
  }
52086
52180
 
52087
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52181
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52088
52182
 
52089
52183
  /*
52090
52184
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52126,7 +52220,7 @@ function getTokenKeys(clientId, storage, schemaVersion) {
52126
52220
  };
52127
52221
  }
52128
52222
 
52129
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52223
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52130
52224
  /*
52131
52225
  * Copyright (c) Microsoft Corporation. All rights reserved.
52132
52226
  * Licensed under the MIT License.
@@ -52137,7 +52231,7 @@ function isEncrypted(data) {
52137
52231
  data.hasOwnProperty("data"));
52138
52232
  }
52139
52233
 
52140
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52234
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52141
52235
 
52142
52236
  /*
52143
52237
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52427,7 +52521,7 @@ class LocalStorage {
52427
52521
  }
52428
52522
  }
52429
52523
 
52430
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52524
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52431
52525
 
52432
52526
  /*
52433
52527
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52469,7 +52563,7 @@ class SessionStorage {
52469
52563
  }
52470
52564
  }
52471
52565
 
52472
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52566
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52473
52567
  /*
52474
52568
  * Copyright (c) Microsoft Corporation. All rights reserved.
52475
52569
  * Licensed under the MIT License.
@@ -52504,7 +52598,7 @@ const EventType = {
52504
52598
  BROKER_CONNECTION_ESTABLISHED: "msal:brokerConnectionEstablished",
52505
52599
  };
52506
52600
 
52507
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52601
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52508
52602
  /*
52509
52603
  * Copyright (c) Microsoft Corporation. All rights reserved.
52510
52604
  * Licensed under the MIT License.
@@ -52521,7 +52615,7 @@ function removeElementFromArray(array, element) {
52521
52615
  }
52522
52616
  }
52523
52617
 
52524
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
52618
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52525
52619
 
52526
52620
  /*
52527
52621
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -53936,7 +54030,7 @@ const DEFAULT_BROWSER_CACHE_MANAGER = (clientId, logger, performanceClient, even
53936
54030
  return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger, performanceClient, eventHandler);
53937
54031
  };
53938
54032
 
53939
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54033
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
53940
54034
  /*
53941
54035
  * Copyright (c) Microsoft Corporation. All rights reserved.
53942
54036
  * Licensed under the MIT License.
@@ -54061,7 +54155,7 @@ function getActiveAccount(browserStorage, correlationId) {
54061
54155
  return browserStorage.getActiveAccount(correlationId);
54062
54156
  }
54063
54157
 
54064
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54158
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54065
54159
 
54066
54160
  /*
54067
54161
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54167,7 +54261,7 @@ class EventHandler {
54167
54261
  }
54168
54262
  }
54169
54263
 
54170
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54264
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54171
54265
 
54172
54266
  /*
54173
54267
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54283,7 +54377,7 @@ class BaseInteractionClient {
54283
54377
  }
54284
54378
  }
54285
54379
 
54286
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54380
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54287
54381
 
54288
54382
  /*
54289
54383
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54368,7 +54462,7 @@ function validateRequestMethod(interactionRequest, protocolMode) {
54368
54462
  return httpMethod;
54369
54463
  }
54370
54464
 
54371
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54465
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54372
54466
 
54373
54467
  /*
54374
54468
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54540,6 +54634,10 @@ class StandardInteractionClient extends BaseInteractionClient {
54540
54634
  async initializeAuthorizationRequest(request, interactionType) {
54541
54635
  this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.correlationId);
54542
54636
  const redirectUri = this.getRedirectUri(request.redirectUri);
54637
+ if (new URL(redirectUri).origin !== new URL(window.location.href).origin) {
54638
+ 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);
54639
+ this.performanceClient.addFields({ isRedirectUriCrossOrigin: true }, this.correlationId);
54640
+ }
54543
54641
  const browserState = {
54544
54642
  interactionType: interactionType,
54545
54643
  };
@@ -54572,7 +54670,7 @@ class StandardInteractionClient extends BaseInteractionClient {
54572
54670
  }
54573
54671
  }
54574
54672
 
54575
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54673
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54576
54674
 
54577
54675
  /*
54578
54676
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54596,7 +54694,7 @@ function extractBrowserRequestState(browserCrypto, state) {
54596
54694
  }
54597
54695
  }
54598
54696
 
54599
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54697
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54600
54698
 
54601
54699
  /*
54602
54700
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54635,7 +54733,7 @@ function validateInteractionType(response, browserCrypto, interactionType) {
54635
54733
  }
54636
54734
  }
54637
54735
 
54638
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54736
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54639
54737
 
54640
54738
  /*
54641
54739
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54731,7 +54829,7 @@ class InteractionHandler {
54731
54829
  }
54732
54830
  }
54733
54831
 
54734
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54832
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54735
54833
  /*
54736
54834
  * Copyright (c) Microsoft Corporation. All rights reserved.
54737
54835
  * Licensed under the MIT License.
@@ -54740,7 +54838,7 @@ const contentError = "ContentError";
54740
54838
  const pageException = "PageException";
54741
54839
  const userSwitch = "user_switch";
54742
54840
 
54743
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54841
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54744
54842
  /*
54745
54843
  * Copyright (c) Microsoft Corporation. All rights reserved.
54746
54844
  * Licensed under the MIT License.
@@ -54753,7 +54851,7 @@ const DISABLED = "DISABLED";
54753
54851
  const ACCOUNT_UNAVAILABLE = "ACCOUNT_UNAVAILABLE";
54754
54852
  const UX_NOT_ALLOWED = "UX_NOT_ALLOWED";
54755
54853
 
54756
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54854
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54757
54855
 
54758
54856
  /*
54759
54857
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54818,7 +54916,7 @@ function createNativeAuthError(code, description, ext) {
54818
54916
  return new NativeAuthError(code, NativeAuthErrorMessages[code] || description, ext);
54819
54917
  }
54820
54918
 
54821
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54919
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54822
54920
 
54823
54921
  /*
54824
54922
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54868,7 +54966,7 @@ class SilentCacheClient extends StandardInteractionClient {
54868
54966
  }
54869
54967
  }
54870
54968
 
54871
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
54969
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54872
54970
 
54873
54971
  /*
54874
54972
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55495,7 +55593,7 @@ class PlatformAuthInteractionClient extends BaseInteractionClient {
55495
55593
  }
55496
55594
  }
55497
55595
 
55498
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
55596
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55499
55597
 
55500
55598
  /*
55501
55599
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55724,7 +55822,7 @@ async function handleResponseEAR(request, response, apiId, config, authority, br
55724
55822
  return (await invokeAsync(responseHandler.handleServerTokenResponse.bind(responseHandler), PerformanceEvents.HandleServerTokenResponse, logger, performanceClient, request.correlationId)(decryptedData, authority, nowSeconds(), request, apiId, additionalData, undefined, undefined, undefined, undefined));
55725
55823
  }
55726
55824
 
55727
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
55825
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55728
55826
 
55729
55827
  /*
55730
55828
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55781,7 +55879,7 @@ async function generateCodeChallengeFromVerifier(pkceCodeVerifier, performanceCl
55781
55879
  }
55782
55880
  }
55783
55881
 
55784
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
55882
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55785
55883
 
55786
55884
  /*
55787
55885
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56046,7 +56144,7 @@ class PlatformAuthExtensionHandler {
56046
56144
  }
56047
56145
  }
56048
56146
 
56049
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
56147
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56050
56148
 
56051
56149
  /*
56052
56150
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56172,18 +56270,32 @@ class PlatformAuthDOMHandler {
56172
56270
  return nativeResponse;
56173
56271
  }
56174
56272
  getDOMExtraParams(extraParameters) {
56175
- const stringifiedParams = Object.entries(extraParameters).reduce((record, [key, value]) => {
56176
- record[key] = String(value);
56177
- return record;
56178
- }, {});
56179
- const validExtraParams = {
56180
- ...stringifiedParams,
56181
- };
56182
- return validExtraParams;
56273
+ try {
56274
+ const stringifiedProperties = {};
56275
+ for (const [key, value] of Object.entries(extraParameters)) {
56276
+ if (!value) {
56277
+ continue;
56278
+ }
56279
+ if (typeof value === "object") {
56280
+ stringifiedProperties[key] = JSON.stringify(value);
56281
+ }
56282
+ else {
56283
+ stringifiedProperties[key] = String(value);
56284
+ }
56285
+ }
56286
+ return stringifiedProperties;
56287
+ }
56288
+ catch (e) {
56289
+ this.logger.error(this.platformAuthType + " - Error stringifying extra parameters");
56290
+ this.logger.errorPii(this.platformAuthType +
56291
+ " - Error stringifying extra parameters: " +
56292
+ e);
56293
+ return {};
56294
+ }
56183
56295
  }
56184
56296
  }
56185
56297
 
56186
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
56298
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56187
56299
  async function getPlatformAuthProvider(logger, performanceClient, correlationId, nativeBrokerHandshakeTimeout, enablePlatformBrokerDOMSupport) {
56188
56300
  logger.trace("getPlatformAuthProvider called", correlationId);
56189
56301
  logger.trace("Has client allowed platform auth via DOM API: " +
@@ -56248,7 +56360,7 @@ function isPlatformAuthAllowed(config, logger, platformAuthProvider, authenticat
56248
56360
  return true;
56249
56361
  }
56250
56362
 
56251
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
56363
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56252
56364
 
56253
56365
  /*
56254
56366
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56745,7 +56857,7 @@ class PopupClient extends StandardInteractionClient {
56745
56857
  }
56746
56858
  }
56747
56859
 
56748
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
56860
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56749
56861
 
56750
56862
  /*
56751
56863
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57185,7 +57297,7 @@ class RedirectClient extends StandardInteractionClient {
57185
57297
  }
57186
57298
  }
57187
57299
 
57188
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57300
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57189
57301
 
57190
57302
  /*
57191
57303
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57233,6 +57345,12 @@ async function initiateEarRequest(config, authority, request, logger, performanc
57233
57345
  */
57234
57346
  async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, performanceClient, logger, correlationId, responseType) {
57235
57347
  performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, correlationId);
57348
+ performanceClient.addFields({
57349
+ iframePollIntervalMs: pollIntervalMilliseconds,
57350
+ iframeTimeoutMs: timeout,
57351
+ }, correlationId);
57352
+ let totalTickCount = 0;
57353
+ let crossOriginTickCount = 0;
57236
57354
  return new Promise((resolve, reject) => {
57237
57355
  if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {
57238
57356
  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.`);
@@ -57246,6 +57364,7 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57246
57364
  reject(createBrowserAuthError(monitorWindowTimeout));
57247
57365
  }, timeout);
57248
57366
  const intervalId = window.setInterval(() => {
57367
+ totalTickCount++;
57249
57368
  let href = "";
57250
57369
  const contentWindow = iframe.contentWindow;
57251
57370
  try {
@@ -57256,7 +57375,9 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57256
57375
  */
57257
57376
  href = contentWindow ? contentWindow.location.href : "";
57258
57377
  }
57259
- catch (e) { }
57378
+ catch (e) {
57379
+ crossOriginTickCount++;
57380
+ }
57260
57381
  if (!href || href === "about:blank") {
57261
57382
  return;
57262
57383
  }
@@ -57274,6 +57395,10 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57274
57395
  resolve(responseString);
57275
57396
  }, pollIntervalMilliseconds);
57276
57397
  }).finally(() => {
57398
+ performanceClient.addFields({
57399
+ iframeTickCount: totalTickCount,
57400
+ crossOriginTickCount: crossOriginTickCount,
57401
+ }, correlationId);
57277
57402
  invoke(removeHiddenIframe, PerformanceEvents.RemoveHiddenIframe, logger, performanceClient, correlationId)(iframe);
57278
57403
  });
57279
57404
  }
@@ -57341,7 +57466,7 @@ function removeHiddenIframe(iframe) {
57341
57466
  }
57342
57467
  }
57343
57468
 
57344
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57469
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57345
57470
 
57346
57471
  /*
57347
57472
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57463,6 +57588,52 @@ class SilentIframeClient extends StandardInteractionClient {
57463
57588
  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);
57464
57589
  }
57465
57590
  }
57591
+ /**
57592
+ * Verifies SSO capability by making an iframe request to /authorize without exchanging the code for tokens.
57593
+ * This is useful for verifying SSO capability in the background without the overhead of a full token exchange.
57594
+ * @param request - The SSO silent request
57595
+ * @returns true if SSO verification was successful with a valid authorization code, false otherwise
57596
+ */
57597
+ async verifySso(request) {
57598
+ this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);
57599
+ const inputRequest = { ...request };
57600
+ if (!inputRequest.prompt) {
57601
+ inputRequest.prompt = PromptValue.NONE;
57602
+ }
57603
+ // Create silent request
57604
+ const silentRequest = await invokeAsync(this.initializeAuthorizationRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.logger, this.performanceClient, request.correlationId)(inputRequest, InteractionType.Silent);
57605
+ const authClient = await invokeAsync(this.createAuthCodeClient.bind(this), PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.logger, this.performanceClient, request.correlationId)({
57606
+ serverTelemetryManager: this.initializeServerTelemetryManager(this.apiId),
57607
+ requestAuthority: silentRequest.authority,
57608
+ requestAzureCloudOptions: silentRequest.azureCloudOptions,
57609
+ requestExtraQueryParameters: silentRequest.extraQueryParameters,
57610
+ account: silentRequest.account,
57611
+ });
57612
+ const correlationId = silentRequest.correlationId;
57613
+ const pkceCodes = await invokeAsync(generatePkceCodes, PerformanceEvents.GeneratePkceCodes, this.logger, this.performanceClient, correlationId)(this.performanceClient, this.logger, correlationId);
57614
+ const requestWithPkce = {
57615
+ ...silentRequest,
57616
+ codeChallenge: pkceCodes.challenge,
57617
+ };
57618
+ // Create authorize request url
57619
+ const navigateUrl = await invokeAsync(getAuthCodeRequestUrl, PerformanceEvents.GetAuthCodeUrl, this.logger, this.performanceClient, correlationId)(this.config, authClient.authority, requestWithPkce, this.logger, this.performanceClient);
57620
+ // Get the frame handle for the silent request - this triggers the SSO verification
57621
+ const msalFrame = await invokeAsync(initiateCodeRequest, PerformanceEvents.SilentHandlerInitiateAuthRequest, this.logger, this.performanceClient, correlationId)(navigateUrl, this.performanceClient, this.logger, correlationId, this.config.system.navigateFrameWait);
57622
+ const responseType = this.config.auth.OIDCOptions.serverResponseType;
57623
+ // Monitor the iframe for the response
57624
+ 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);
57625
+ // Deserialize the response
57626
+ const serverParams = invoke(deserializeResponse, PerformanceEvents.DeserializeResponse, this.logger, this.performanceClient, correlationId)(responseString, responseType, this.logger);
57627
+ // Validate the response - this checks for errors and validates state
57628
+ validateAuthorizationResponse(serverParams, silentRequest.state);
57629
+ // Verify a valid authorization code is present
57630
+ if (!serverParams.code) {
57631
+ this.logger.warning("SSO verification response did not contain an authorization code", correlationId);
57632
+ return false;
57633
+ }
57634
+ this.logger.verbose("SSO verification completed successfully with valid authorization code - skipped token exchange", correlationId);
57635
+ return true;
57636
+ }
57466
57637
  /**
57467
57638
  * Currently Unsupported
57468
57639
  */
@@ -57502,7 +57673,7 @@ class SilentIframeClient extends StandardInteractionClient {
57502
57673
  }
57503
57674
  }
57504
57675
 
57505
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57676
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57506
57677
 
57507
57678
  /*
57508
57679
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57568,7 +57739,7 @@ class SilentRefreshClient extends StandardInteractionClient {
57568
57739
  }
57569
57740
  }
57570
57741
 
57571
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57742
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57572
57743
 
57573
57744
  /*
57574
57745
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57782,7 +57953,7 @@ class TokenCache {
57782
57953
  }
57783
57954
  }
57784
57955
 
57785
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57956
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57786
57957
 
57787
57958
  /*
57788
57959
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57795,7 +57966,7 @@ class HybridSpaAuthorizationCodeClient extends AuthorizationCodeClient {
57795
57966
  }
57796
57967
  }
57797
57968
 
57798
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57969
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57799
57970
 
57800
57971
  /*
57801
57972
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57861,11 +58032,7 @@ class SilentAuthCodeClient extends StandardInteractionClient {
57861
58032
  }
57862
58033
  }
57863
58034
 
57864
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
57865
- /*
57866
- * Copyright (c) Microsoft Corporation. All rights reserved.
57867
- * Licensed under the MIT License.
57868
- */
58035
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57869
58036
  function collectInstanceStats(currentClientId, performanceEvent, logger) {
57870
58037
  const frameInstances =
57871
58038
  // @ts-ignore
@@ -57881,7 +58048,7 @@ function collectInstanceStats(currentClientId, performanceEvent, logger) {
57881
58048
  });
57882
58049
  }
57883
58050
 
57884
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
58051
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57885
58052
 
57886
58053
  /*
57887
58054
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57961,22 +58128,30 @@ class StandardController {
57961
58128
  this.tokenCache = new TokenCache(this.config, this.browserStorage, this.logger, this.browserCrypto, this.performanceClient);
57962
58129
  this.activeSilentTokenRequests = new Map();
57963
58130
  // Register listener functions
57964
- this.trackPageVisibility = this.trackPageVisibility.bind(this);
57965
- // Register listener functions
57966
- this.trackPageVisibilityWithMeasurement =
57967
- this.trackPageVisibilityWithMeasurement.bind(this);
58131
+ this.trackStateChangeWithMeasurement =
58132
+ this.trackStateChangeWithMeasurement.bind(this);
57968
58133
  }
57969
58134
  static async createController(operatingContext, request) {
57970
58135
  const controller = new StandardController(operatingContext);
57971
58136
  await controller.initialize(request);
57972
58137
  return controller;
57973
58138
  }
57974
- trackPageVisibility(correlationId) {
58139
+ trackStateChange(correlationId, event) {
57975
58140
  if (!correlationId) {
57976
58141
  return;
57977
58142
  }
57978
- this.logger.info("Perf: Visibility change detected");
57979
- this.performanceClient.incrementFields({ visibilityChangeCount: 1 }, correlationId);
58143
+ if (event.type === "visibilitychange") {
58144
+ this.logger.info("Perf: Visibility change detected");
58145
+ this.performanceClient.incrementFields({ visibilityChangeCount: 1 }, correlationId);
58146
+ }
58147
+ else if (event.type === "online") {
58148
+ this.logger.info("Perf: Online status change detected");
58149
+ this.performanceClient.incrementFields({ onlineStatusChangeCount: 1 }, correlationId);
58150
+ }
58151
+ else if (event.type === "offline") {
58152
+ this.logger.info("Perf: Offline status change detected");
58153
+ this.performanceClient.incrementFields({ onlineStatusChangeCount: 1 }, correlationId);
58154
+ }
57980
58155
  }
57981
58156
  /**
57982
58157
  * Initializer function to perform async startup tasks such as connecting to WAM extension
@@ -58124,6 +58299,8 @@ class StandardController {
58124
58299
  rootMeasurement.end({
58125
58300
  success: true,
58126
58301
  }, undefined, result.account);
58302
+ // Fire-and-forget SSO capability verification in background
58303
+ this.verifySsoCapability(result.account, InteractionType.Redirect);
58127
58304
  }
58128
58305
  else {
58129
58306
  /*
@@ -58356,6 +58533,8 @@ class StandardController {
58356
58533
  accessTokenSize: result.accessToken.length,
58357
58534
  idTokenSize: result.idToken.length,
58358
58535
  }, undefined, result.account);
58536
+ // SSO capability verification in background
58537
+ this.verifySsoCapability(result.account, InteractionType.Popup);
58359
58538
  return result;
58360
58539
  })
58361
58540
  .catch((e) => {
@@ -58378,16 +58557,87 @@ class StandardController {
58378
58557
  }
58379
58558
  });
58380
58559
  }
58381
- trackPageVisibilityWithMeasurement() {
58560
+ trackStateChangeWithMeasurement(event) {
58382
58561
  const measurement = this.ssoSilentMeasurement ||
58383
58562
  this.acquireTokenByCodeAsyncMeasurement;
58384
58563
  if (!measurement) {
58385
58564
  return;
58386
58565
  }
58387
- this.logger.info("Perf: Visibility change detected in ", measurement.event.name);
58388
- measurement.increment({
58389
- visibilityChangeCount: 1,
58566
+ if (event.type === "visibilitychange") {
58567
+ this.logger.info("Perf: Visibility change detected in ", measurement.event.name);
58568
+ measurement.increment({
58569
+ visibilityChangeCount: 1,
58570
+ });
58571
+ }
58572
+ else if (event.type === "online") {
58573
+ this.logger.info("Perf: Online status change detected in ", measurement.event.name);
58574
+ measurement.increment({
58575
+ onlineStatusChangeCount: 1,
58576
+ });
58577
+ }
58578
+ else if (event.type === "offline") {
58579
+ this.logger.info("Perf: Offline status change detected in ", measurement.event.name);
58580
+ measurement.increment({
58581
+ onlineStatusChangeCount: 1,
58582
+ });
58583
+ }
58584
+ }
58585
+ addStateChangeListeners(listener) {
58586
+ document.addEventListener("visibilitychange", listener);
58587
+ window.addEventListener("online", listener);
58588
+ window.addEventListener("offline", listener);
58589
+ }
58590
+ removeStateChangeListeners(listener) {
58591
+ document.removeEventListener("visibilitychange", listener);
58592
+ window.removeEventListener("online", listener);
58593
+ window.removeEventListener("offline", listener);
58594
+ }
58595
+ /**
58596
+ * SSO capability verification in the background.
58597
+ * This method makes an iframe request to /authorize to verify SSO capability without calling /token.
58598
+ * This method does not block the caller and tracks telemetry for success/failure.
58599
+ * This method only executes if verifySSO is set to true in the auth configuration.
58600
+ * @param account - The account to use for the SSO verification
58601
+ * @param parentApi - The API ID of the parent operation for logging purposes
58602
+ */
58603
+ verifySsoCapability(account, parentApi) {
58604
+ // Check if SSO capability verification is enabled
58605
+ if (!this.config.auth.verifySSO) {
58606
+ return;
58607
+ }
58608
+ const correlationId = this.browserCrypto.createNewGuid();
58609
+ const ssoCapableMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SsoCapable, correlationId);
58610
+ ssoCapableMeasurement.add({
58611
+ parentApi: parentApi,
58390
58612
  });
58613
+ this.logger.verbose(`SSO capability verification initiated after ${parentApi}`, correlationId);
58614
+ /*
58615
+ * Use setTimeout to ensure this runs in a separate macrotask after the current call stack completes
58616
+ * This ensures the result is returned to the caller before the SSO verification starts and doesn't affect performance
58617
+ */
58618
+ setTimeout(() => {
58619
+ const ssoVerificationRequest = {
58620
+ account: account,
58621
+ correlationId: correlationId,
58622
+ };
58623
+ const silentIframeClient = this.createSilentIframeClient(correlationId);
58624
+ silentIframeClient
58625
+ .verifySso(ssoVerificationRequest)
58626
+ .then((success) => {
58627
+ this.logger.verbose(`SSO capability verification completed after ${parentApi}, success: ${success}`, correlationId);
58628
+ ssoCapableMeasurement.end({
58629
+ fromCache: false,
58630
+ success: success,
58631
+ }, undefined, account);
58632
+ })
58633
+ .catch((error) => {
58634
+ this.logger.warning(`SSO capability verification failed after ${parentApi}: ${error.message}`, correlationId);
58635
+ ssoCapableMeasurement.end({
58636
+ fromCache: false,
58637
+ success: false,
58638
+ }, error, account);
58639
+ });
58640
+ }, 0);
58391
58641
  }
58392
58642
  // #endregion
58393
58643
  // #region Silent Flow
@@ -58421,8 +58671,9 @@ class StandardController {
58421
58671
  preflightCheck(this.initialized, this.ssoSilentMeasurement, request.account);
58422
58672
  this.ssoSilentMeasurement?.increment({
58423
58673
  visibilityChangeCount: 0,
58674
+ onlineStatusChangeCount: 0,
58424
58675
  });
58425
- document.addEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58676
+ this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
58426
58677
  this.logger.verbose("ssoSilent called", correlationId);
58427
58678
  this.eventHandler.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, validRequest);
58428
58679
  let result;
@@ -58466,7 +58717,7 @@ class StandardController {
58466
58717
  throw e;
58467
58718
  })
58468
58719
  .finally(() => {
58469
- document.removeEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58720
+ this.removeStateChangeListeners(this.trackStateChangeWithMeasurement);
58470
58721
  });
58471
58722
  }
58472
58723
  /**
@@ -58578,8 +58829,9 @@ class StandardController {
58578
58829
  this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCodeAsync, request.correlationId);
58579
58830
  this.acquireTokenByCodeAsyncMeasurement?.increment({
58580
58831
  visibilityChangeCount: 0,
58832
+ onlineStatusChangeCount: 0,
58581
58833
  });
58582
- document.addEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58834
+ this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
58583
58835
  const silentAuthCodeClient = this.createSilentAuthCodeClient(request.correlationId);
58584
58836
  const silentTokenResult = await silentAuthCodeClient
58585
58837
  .acquireToken(request)
@@ -58597,7 +58849,7 @@ class StandardController {
58597
58849
  throw tokenRenewalError;
58598
58850
  })
58599
58851
  .finally(() => {
58600
- document.removeEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58852
+ this.removeStateChangeListeners(this.trackStateChangeWithMeasurement);
58601
58853
  });
58602
58854
  return silentTokenResult;
58603
58855
  }
@@ -59142,18 +59394,22 @@ class StandardController {
59142
59394
  * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse}
59143
59395
  */
59144
59396
  async acquireTokenSilentAsync(request, account) {
59145
- const trackPageVisibility = () => this.trackPageVisibility(request.correlationId);
59397
+ const trackStateChange = (event) => this.trackStateChange(request.correlationId, event);
59146
59398
  this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);
59147
59399
  this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);
59148
59400
  if (request.correlationId) {
59149
- this.performanceClient.incrementFields({ visibilityChangeCount: 0 }, request.correlationId);
59401
+ this.performanceClient.incrementFields({ visibilityChangeCount: 0, onlineStatusChangeCount: 0 }, request.correlationId);
59150
59402
  }
59151
- document.addEventListener("visibilitychange", trackPageVisibility);
59403
+ this.addStateChangeListeners(trackStateChange);
59152
59404
  const silentRequest = await invokeAsync(initializeSilentRequest, PerformanceEvents.InitializeSilentRequest, this.logger, this.performanceClient, request.correlationId)(request, account, this.config, this.performanceClient, this.logger);
59153
59405
  const cacheLookupPolicy = request.cacheLookupPolicy || CacheLookupPolicy.Default;
59154
59406
  const result = this.acquireTokenSilentNoIframe(silentRequest, cacheLookupPolicy).catch(async (refreshTokenError) => {
59155
59407
  const shouldTryToResolveSilently = checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheLookupPolicy);
59156
59408
  if (shouldTryToResolveSilently) {
59409
+ const silentRefreshReason = `${refreshTokenError.errorCode}${refreshTokenError.subError
59410
+ ? `|${refreshTokenError.subError}`
59411
+ : ""}`;
59412
+ this.performanceClient.addFields({ silentRefreshReason }, silentRequest.correlationId);
59157
59413
  if (!this.activeIframeRequest) {
59158
59414
  let _resolve;
59159
59415
  // Always set the active request tracker immediately after checking it to prevent races
@@ -59223,7 +59479,7 @@ class StandardController {
59223
59479
  throw tokenRenewalError;
59224
59480
  })
59225
59481
  .finally(() => {
59226
- document.removeEventListener("visibilitychange", trackPageVisibility);
59482
+ this.removeStateChangeListeners(trackStateChange);
59227
59483
  });
59228
59484
  }
59229
59485
  /**
@@ -59334,7 +59590,7 @@ function checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheL
59334
59590
  return isSilentlyResolvable && tryIframeRenewal;
59335
59591
  }
59336
59592
 
59337
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
59593
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
59338
59594
 
59339
59595
  /*
59340
59596
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -59346,7 +59602,7 @@ async function createV3Controller(config, request) {
59346
59602
  return StandardController.createController(standard, request);
59347
59603
  }
59348
59604
 
59349
- /*! @azure/msal-browser v4.28.2 2026-02-10 */
59605
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
59350
59606
 
59351
59607
  /*
59352
59608
  * Copyright (c) Microsoft Corporation. All rights reserved.