@cosmotech/core 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -42500,7 +42500,7 @@ var AuthDev = {
42500
42500
  acquireTokensByRequest
42501
42501
  };
42502
42502
 
42503
- /*! @azure/msal-common v15.14.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1";
43182
+ const version$1 = "15.16.1";
43183
43183
 
43184
- /*! @azure/msal-common v15.14.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
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.1 2026-01-17 */
44379
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44341
44380
 
44342
44381
  /*
44343
44382
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44366,6 +44405,27 @@ const rawMetdataJSON = {
44366
44405
  authorization_endpoint: "https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/authorize",
44367
44406
  end_session_endpoint: "https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/logout",
44368
44407
  },
44408
+ "login.sovcloud-identity.fr": {
44409
+ token_endpoint: "https://login.sovcloud-identity.fr/{tenantid}/oauth2/v2.0/token",
44410
+ jwks_uri: "https://login.sovcloud-identity.fr/{tenantid}/discovery/v2.0/keys",
44411
+ issuer: "https://login.sovcloud-identity.fr/{tenantid}/v2.0",
44412
+ authorization_endpoint: "https://login.sovcloud-identity.fr/{tenantid}/oauth2/v2.0/authorize",
44413
+ end_session_endpoint: "https://login.sovcloud-identity.fr/{tenantid}/oauth2/v2.0/logout",
44414
+ },
44415
+ "login.sovcloud-identity.de": {
44416
+ token_endpoint: "https://login.sovcloud-identity.de/{tenantid}/oauth2/v2.0/token",
44417
+ jwks_uri: "https://login.sovcloud-identity.de/{tenantid}/discovery/v2.0/keys",
44418
+ issuer: "https://login.sovcloud-identity.de/{tenantid}/v2.0",
44419
+ authorization_endpoint: "https://login.sovcloud-identity.de/{tenantid}/oauth2/v2.0/authorize",
44420
+ end_session_endpoint: "https://login.sovcloud-identity.de/{tenantid}/oauth2/v2.0/logout",
44421
+ },
44422
+ "login.sovcloud-identity.sg": {
44423
+ token_endpoint: "https://login.sovcloud-identity.sg/common/oauth2/v2.0/token",
44424
+ jwks_uri: "https://login.sovcloud-identity.sg/common/discovery/v2.0/keys",
44425
+ issuer: "https://login.sovcloud-identity.sg/{tenantid}/v2.0",
44426
+ authorization_endpoint: "https://login.sovcloud-identity.sg/common/oauth2/v2.0/authorize",
44427
+ end_session_endpoint: "https://login.sovcloud-identity.sg/common/oauth2/v2.0/logout",
44428
+ },
44369
44429
  },
44370
44430
  instanceDiscoveryMetadata: {
44371
44431
  metadata: [
@@ -44405,6 +44465,21 @@ const rawMetdataJSON = {
44405
44465
  preferred_cache: "login-us.microsoftonline.com",
44406
44466
  aliases: ["login-us.microsoftonline.com"],
44407
44467
  },
44468
+ {
44469
+ preferred_network: "login.sovcloud-identity.fr",
44470
+ preferred_cache: "login.sovcloud-identity.fr",
44471
+ aliases: ["login.sovcloud-identity.fr"],
44472
+ },
44473
+ {
44474
+ preferred_network: "login.sovcloud-identity.de",
44475
+ preferred_cache: "login.sovcloud-identity.de",
44476
+ aliases: ["login.sovcloud-identity.de"],
44477
+ },
44478
+ {
44479
+ preferred_network: "login.sovcloud-identity.sg",
44480
+ preferred_cache: "login.sovcloud-identity.sg",
44481
+ aliases: ["login.sovcloud-identity.sg"],
44482
+ },
44408
44483
  ],
44409
44484
  },
44410
44485
  };
@@ -44476,7 +44551,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
44476
44551
  return null;
44477
44552
  }
44478
44553
 
44479
- /*! @azure/msal-common v15.14.1 2026-01-17 */
44554
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44480
44555
  /*
44481
44556
  * Copyright (c) Microsoft Corporation. All rights reserved.
44482
44557
  * Licensed under the MIT License.
@@ -44484,7 +44559,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
44484
44559
  const cacheQuotaExceeded = "cache_quota_exceeded";
44485
44560
  const cacheErrorUnknown = "cache_error_unknown";
44486
44561
 
44487
- /*! @azure/msal-common v15.14.1 2026-01-17 */
44562
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44488
44563
 
44489
44564
  /*
44490
44565
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -44529,7 +44604,7 @@ function createCacheError(e) {
44529
44604
  }
44530
44605
  }
44531
44606
 
44532
- /*! @azure/msal-common v15.14.1 2026-01-17 */
44607
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
44533
44608
 
44534
44609
  /*
44535
44610
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -45639,7 +45714,7 @@ class DefaultStorageClass extends CacheManager {
45639
45714
  }
45640
45715
  }
45641
45716
 
45642
- /*! @azure/msal-common v15.14.1 2026-01-17 */
45717
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
45643
45718
  /*
45644
45719
  * Copyright (c) Microsoft Corporation. All rights reserved.
45645
45720
  * Licensed under the MIT License.
@@ -45901,6 +45976,11 @@ const PerformanceEvents = {
45901
45976
  LoadIdToken: "loadIdToken",
45902
45977
  LoadAccessToken: "loadAccessToken",
45903
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",
45904
45984
  };
45905
45985
  /**
45906
45986
  * State of the performance event.
@@ -45911,7 +45991,7 @@ const PerformanceEvents = {
45911
45991
  const PerformanceEventStatus = {
45912
45992
  InProgress: 1};
45913
45993
 
45914
- /*! @azure/msal-common v15.14.1 2026-01-17 */
45994
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
45915
45995
 
45916
45996
  /*
45917
45997
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -45990,7 +46070,7 @@ class StubPerformanceClient {
45990
46070
  }
45991
46071
  }
45992
46072
 
45993
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46073
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
45994
46074
 
45995
46075
  /*
45996
46076
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46090,7 +46170,7 @@ function isOidcProtocolMode(config) {
46090
46170
  return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
46091
46171
  }
46092
46172
 
46093
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46173
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46094
46174
  /*
46095
46175
  * Copyright (c) Microsoft Corporation. All rights reserved.
46096
46176
  * Licensed under the MIT License.
@@ -46100,7 +46180,7 @@ const CcsCredentialType = {
46100
46180
  UPN: "UPN",
46101
46181
  };
46102
46182
 
46103
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46183
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46104
46184
  /*
46105
46185
  * Copyright (c) Microsoft Corporation. All rights reserved.
46106
46186
  * Licensed under the MIT License.
@@ -46150,7 +46230,7 @@ const INSTANCE_AWARE = "instance_aware";
46150
46230
  const EAR_JWK = "ear_jwk";
46151
46231
  const EAR_JWE_CRYPTO = "ear_jwe_crypto";
46152
46232
 
46153
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46233
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46154
46234
 
46155
46235
  /*
46156
46236
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46530,7 +46610,7 @@ function addPostBodyParameters(parameters, bodyParameters) {
46530
46610
  });
46531
46611
  }
46532
46612
 
46533
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46613
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46534
46614
  /*
46535
46615
  * Copyright (c) Microsoft Corporation. All rights reserved.
46536
46616
  * Licensed under the MIT License.
@@ -46542,7 +46622,7 @@ function isOpenIdConfigResponse(response) {
46542
46622
  response.hasOwnProperty("jwks_uri"));
46543
46623
  }
46544
46624
 
46545
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46625
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46546
46626
  /*
46547
46627
  * Copyright (c) Microsoft Corporation. All rights reserved.
46548
46628
  * Licensed under the MIT License.
@@ -46552,7 +46632,7 @@ function isCloudInstanceDiscoveryResponse(response) {
46552
46632
  response.hasOwnProperty("metadata"));
46553
46633
  }
46554
46634
 
46555
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46635
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46556
46636
  /*
46557
46637
  * Copyright (c) Microsoft Corporation. All rights reserved.
46558
46638
  * Licensed under the MIT License.
@@ -46562,7 +46642,7 @@ function isCloudInstanceDiscoveryErrorResponse(response) {
46562
46642
  response.hasOwnProperty("error_description"));
46563
46643
  }
46564
46644
 
46565
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46645
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46566
46646
  /*
46567
46647
  * Copyright (c) Microsoft Corporation. All rights reserved.
46568
46648
  * Licensed under the MIT License.
@@ -46658,7 +46738,7 @@ const invokeAsync = (callback, eventName, logger, telemetryClient, correlationId
46658
46738
  };
46659
46739
  };
46660
46740
 
46661
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46741
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46662
46742
 
46663
46743
  /*
46664
46744
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -46764,7 +46844,7 @@ RegionDiscovery.IMDS_OPTIONS = {
46764
46844
  },
46765
46845
  };
46766
46846
 
46767
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46847
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46768
46848
  /*
46769
46849
  * Copyright (c) Microsoft Corporation. All rights reserved.
46770
46850
  * Licensed under the MIT License.
@@ -46829,7 +46909,7 @@ function wasClockTurnedBack(cachedAt) {
46829
46909
  return cachedAtSec > nowSeconds();
46830
46910
  }
46831
46911
 
46832
- /*! @azure/msal-common v15.14.1 2026-01-17 */
46912
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
46833
46913
 
46834
46914
  /*
46835
46915
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47091,7 +47171,7 @@ function isAuthorityMetadataExpired(metadata) {
47091
47171
  return metadata.expiresAt <= nowSeconds();
47092
47172
  }
47093
47173
 
47094
- /*! @azure/msal-common v15.14.1 2026-01-17 */
47174
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47095
47175
 
47096
47176
  /*
47097
47177
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47930,7 +48010,7 @@ function buildStaticAuthorityOptions(authOptions) {
47930
48010
  };
47931
48011
  }
47932
48012
 
47933
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48013
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47934
48014
 
47935
48015
  /*
47936
48016
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47961,7 +48041,7 @@ async function createDiscoveredInstance(authorityUri, networkClient, cacheManage
47961
48041
  }
47962
48042
  }
47963
48043
 
47964
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48044
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47965
48045
 
47966
48046
  /*
47967
48047
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -47980,7 +48060,7 @@ class ServerError extends AuthError {
47980
48060
  }
47981
48061
  }
47982
48062
 
47983
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48063
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
47984
48064
  /*
47985
48065
  * Copyright (c) Microsoft Corporation. All rights reserved.
47986
48066
  * Licensed under the MIT License.
@@ -48001,7 +48081,7 @@ function getRequestThumbprint(clientId, request, homeAccountId) {
48001
48081
  };
48002
48082
  }
48003
48083
 
48004
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48084
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48005
48085
 
48006
48086
  /*
48007
48087
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48088,7 +48168,7 @@ class ThrottlingUtils {
48088
48168
  }
48089
48169
  }
48090
48170
 
48091
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48171
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48092
48172
 
48093
48173
  /*
48094
48174
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48119,7 +48199,7 @@ function createNetworkError(error, httpStatus, responseHeaders, additionalError)
48119
48199
  return new NetworkError(error, httpStatus, responseHeaders);
48120
48200
  }
48121
48201
 
48122
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48202
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48123
48203
 
48124
48204
  /*
48125
48205
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48267,23 +48347,58 @@ class BaseClient {
48267
48347
  }
48268
48348
  }
48269
48349
 
48270
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48350
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48271
48351
  /*
48272
48352
  * Copyright (c) Microsoft Corporation. All rights reserved.
48273
48353
  * Licensed under the MIT License.
48274
48354
  */
48275
- // Codes defined by MSAL
48355
+ /**
48356
+ * MSAL-defined interaction required error code indicating no tokens are found in cache.
48357
+ * @public
48358
+ */
48276
48359
  const noTokensFound = "no_tokens_found";
48360
+ /**
48361
+ * MSAL-defined error code indicating a native account is unavailable on the platform.
48362
+ * @public
48363
+ */
48277
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
+ */
48278
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
+ */
48279
48374
  const uxNotAllowed = "ux_not_allowed";
48280
- // Codes potentially returned by server
48375
+ /**
48376
+ * Server-originated error code indicating interaction is required to complete the request.
48377
+ * @public
48378
+ */
48281
48379
  const interactionRequired = "interaction_required";
48380
+ /**
48381
+ * Server-originated error code indicating user consent is required.
48382
+ * @public
48383
+ */
48282
48384
  const consentRequired = "consent_required";
48385
+ /**
48386
+ * Server-originated error code indicating user login is required.
48387
+ * @public
48388
+ */
48283
48389
  const loginRequired = "login_required";
48284
- 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";
48285
48400
 
48286
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48401
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48287
48402
 
48288
48403
  /*
48289
48404
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48298,6 +48413,7 @@ const InteractionRequiredServerErrorMessage = [
48298
48413
  loginRequired,
48299
48414
  badToken,
48300
48415
  uxNotAllowed,
48416
+ interruptedUser,
48301
48417
  ];
48302
48418
  const InteractionRequiredAuthSubErrorMessage = [
48303
48419
  "message_only",
@@ -48306,6 +48422,7 @@ const InteractionRequiredAuthSubErrorMessage = [
48306
48422
  "user_password_expired",
48307
48423
  "consent_required",
48308
48424
  "bad_token",
48425
+ "interrupted_user",
48309
48426
  ];
48310
48427
  const InteractionRequiredAuthErrorMessages = {
48311
48428
  [noTokensFound]: "No refresh token found in the cache. Please sign-in.",
@@ -48313,6 +48430,7 @@ const InteractionRequiredAuthErrorMessages = {
48313
48430
  [refreshTokenExpired]: "Refresh token has expired.",
48314
48431
  [badToken]: "Identity provider returned bad_token due to an expired or invalid refresh token. Please invoke an interactive API to resolve.",
48315
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.",
48316
48434
  };
48317
48435
  /**
48318
48436
  * Error thrown when user interaction is required.
@@ -48355,7 +48473,7 @@ function createInteractionRequiredAuthError(errorCode) {
48355
48473
  return new InteractionRequiredAuthError(errorCode, InteractionRequiredAuthErrorMessages[errorCode]);
48356
48474
  }
48357
48475
 
48358
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48476
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48359
48477
 
48360
48478
  /*
48361
48479
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48427,7 +48545,7 @@ class ProtocolUtils {
48427
48545
  }
48428
48546
  }
48429
48547
 
48430
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48548
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48431
48549
 
48432
48550
  /*
48433
48551
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48509,7 +48627,7 @@ class PopTokenGenerator {
48509
48627
  }
48510
48628
  }
48511
48629
 
48512
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48630
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48513
48631
  /*
48514
48632
  * Copyright (c) Microsoft Corporation. All rights reserved.
48515
48633
  * Licensed under the MIT License.
@@ -48536,7 +48654,7 @@ class PopTokenGenerator {
48536
48654
  }
48537
48655
  }
48538
48656
 
48539
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48657
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48540
48658
 
48541
48659
  /*
48542
48660
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -48875,7 +48993,7 @@ function buildAccountToCache(cacheStorage, authority, homeAccountId, base64Decod
48875
48993
  return baseAccount;
48876
48994
  }
48877
48995
 
48878
- /*! @azure/msal-common v15.14.1 2026-01-17 */
48996
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48879
48997
  /*
48880
48998
  * Copyright (c) Microsoft Corporation. All rights reserved.
48881
48999
  * Licensed under the MIT License.
@@ -48893,7 +49011,7 @@ async function getClientAssertion(clientAssertion, clientId, tokenEndpoint) {
48893
49011
  }
48894
49012
  }
48895
49013
 
48896
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49014
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
48897
49015
 
48898
49016
  /*
48899
49017
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49042,11 +49160,6 @@ class AuthorizationCodeClient extends BaseClient {
49042
49160
  throw createClientConfigurationError(missingSshJwk);
49043
49161
  }
49044
49162
  }
49045
- if (!StringUtils.isEmptyObj(request.claims) ||
49046
- (this.config.authOptions.clientCapabilities &&
49047
- this.config.authOptions.clientCapabilities.length > 0)) {
49048
- addClaims(parameters, request.claims, this.config.authOptions.clientCapabilities);
49049
- }
49050
49163
  let ccsCred = undefined;
49051
49164
  if (request.clientInfo) {
49052
49165
  try {
@@ -49096,6 +49209,15 @@ class AuthorizationCodeClient extends BaseClient {
49096
49209
  });
49097
49210
  }
49098
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
+ }
49099
49221
  return mapToQueryString(parameters);
49100
49222
  }
49101
49223
  /**
@@ -49129,7 +49251,7 @@ class AuthorizationCodeClient extends BaseClient {
49129
49251
  }
49130
49252
  }
49131
49253
 
49132
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49254
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49133
49255
 
49134
49256
  /*
49135
49257
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49307,11 +49429,6 @@ class RefreshTokenClient extends BaseClient {
49307
49429
  throw createClientConfigurationError(missingSshJwk);
49308
49430
  }
49309
49431
  }
49310
- if (!StringUtils.isEmptyObj(request.claims) ||
49311
- (this.config.authOptions.clientCapabilities &&
49312
- this.config.authOptions.clientCapabilities.length > 0)) {
49313
- addClaims(parameters, request.claims, this.config.authOptions.clientCapabilities);
49314
- }
49315
49432
  if (this.config.systemOptions.preventCorsPreflight &&
49316
49433
  request.ccsCredential) {
49317
49434
  switch (request.ccsCredential.type) {
@@ -49337,11 +49454,20 @@ class RefreshTokenClient extends BaseClient {
49337
49454
  addExtraQueryParameters(parameters, request.tokenBodyParameters);
49338
49455
  }
49339
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
+ }
49340
49466
  return mapToQueryString(parameters);
49341
49467
  }
49342
49468
  }
49343
49469
 
49344
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49470
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49345
49471
 
49346
49472
  /*
49347
49473
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49439,7 +49565,7 @@ class SilentFlowClient extends BaseClient {
49439
49565
  }
49440
49566
  }
49441
49567
 
49442
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49568
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49443
49569
 
49444
49570
  /*
49445
49571
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49454,7 +49580,7 @@ const StubbedNetworkModule = {
49454
49580
  },
49455
49581
  };
49456
49582
 
49457
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49583
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49458
49584
 
49459
49585
  /*
49460
49586
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49575,14 +49701,17 @@ function getStandardAuthorizeRequestParameters(authOptions, request, logger, per
49575
49701
  if (request.state) {
49576
49702
  addState(parameters, request.state);
49577
49703
  }
49578
- if (request.claims ||
49579
- (authOptions.clientCapabilities &&
49580
- authOptions.clientCapabilities.length > 0)) {
49581
- addClaims(parameters, request.claims, authOptions.clientCapabilities);
49582
- }
49583
49704
  if (request.embeddedClientId) {
49584
49705
  addBrokerParameters(parameters, authOptions.clientId, authOptions.redirectUri);
49585
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
+ }
49586
49715
  // If extraQueryParameters includes instance_aware its value will be added when extraQueryParameters are added
49587
49716
  if (authOptions.instanceAware &&
49588
49717
  (!request.extraQueryParameters ||
@@ -49678,7 +49807,7 @@ function extractLoginHint(account) {
49678
49807
  return account.loginHint || account.idTokenClaims?.login_hint || null;
49679
49808
  }
49680
49809
 
49681
- /*! @azure/msal-common v15.14.1 2026-01-17 */
49810
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49682
49811
 
49683
49812
  /*
49684
49813
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49941,7 +50070,7 @@ class ServerTelemetryManager {
49941
50070
  }
49942
50071
  }
49943
50072
 
49944
- /*! @azure/msal-common v15.14.1 2026-01-17 */
50073
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49945
50074
  /*
49946
50075
  * Copyright (c) Microsoft Corporation. All rights reserved.
49947
50076
  * Licensed under the MIT License.
@@ -49949,7 +50078,7 @@ class ServerTelemetryManager {
49949
50078
  const missingKidError = "missing_kid_error";
49950
50079
  const missingAlgError = "missing_alg_error";
49951
50080
 
49952
- /*! @azure/msal-common v15.14.1 2026-01-17 */
50081
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49953
50082
 
49954
50083
  /*
49955
50084
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -49974,7 +50103,7 @@ function createJoseHeaderError(code) {
49974
50103
  return new JoseHeaderError(code, JoseHeaderErrorMessages[code]);
49975
50104
  }
49976
50105
 
49977
- /*! @azure/msal-common v15.14.1 2026-01-17 */
50106
+ /*! @azure/msal-common v15.16.1 2026-03-13 */
49978
50107
 
49979
50108
  /*
49980
50109
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50014,7 +50143,7 @@ class JoseHeader {
50014
50143
  }
50015
50144
  }
50016
50145
 
50017
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50146
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50018
50147
  /*
50019
50148
  * Copyright (c) Microsoft Corporation. All rights reserved.
50020
50149
  * Licensed under the MIT License.
@@ -50071,7 +50200,7 @@ const failedToParseHeaders = "failed_to_parse_headers";
50071
50200
  const failedToDecryptEarResponse = "failed_to_decrypt_ear_response";
50072
50201
  const timedOut = "timed_out";
50073
50202
 
50074
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50203
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50075
50204
 
50076
50205
  /*
50077
50206
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50148,7 +50277,7 @@ function createBrowserAuthError(errorCode, subError) {
50148
50277
  return new BrowserAuthError(errorCode, subError);
50149
50278
  }
50150
50279
 
50151
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50280
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50152
50281
 
50153
50282
  /*
50154
50283
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50337,7 +50466,7 @@ const iFrameRenewalPolicies = [
50337
50466
  CacheLookupPolicy.RefreshTokenAndNetwork,
50338
50467
  ];
50339
50468
 
50340
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50469
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50341
50470
  /*
50342
50471
  * Copyright (c) Microsoft Corporation. All rights reserved.
50343
50472
  * Licensed under the MIT License.
@@ -50382,7 +50511,7 @@ function base64EncArr(aBytes) {
50382
50511
  return btoa(binString);
50383
50512
  }
50384
50513
 
50385
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50514
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50386
50515
 
50387
50516
  /*
50388
50517
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50421,7 +50550,7 @@ function base64DecToArr(base64String) {
50421
50550
  return Uint8Array.from(binString, (m) => m.codePointAt(0) || 0);
50422
50551
  }
50423
50552
 
50424
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50553
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50425
50554
 
50426
50555
  /*
50427
50556
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50720,7 +50849,7 @@ async function hashString(plainText) {
50720
50849
  return urlEncodeArr(hashBytes);
50721
50850
  }
50722
50851
 
50723
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50852
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50724
50853
  /*
50725
50854
  * Copyright (c) Microsoft Corporation. All rights reserved.
50726
50855
  * Licensed under the MIT License.
@@ -50729,7 +50858,7 @@ const storageNotSupported = "storage_not_supported";
50729
50858
  const stubbedPublicClientApplicationCalled = "stubbed_public_client_application_called";
50730
50859
  const inMemRedirectUnavailable = "in_mem_redirect_unavailable";
50731
50860
 
50732
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50861
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50733
50862
 
50734
50863
  /*
50735
50864
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50769,7 +50898,7 @@ function createBrowserConfigurationAuthError(errorCode) {
50769
50898
  return new BrowserConfigurationAuthError(errorCode, BrowserConfigurationAuthErrorMessages[errorCode]);
50770
50899
  }
50771
50900
 
50772
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
50901
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50773
50902
 
50774
50903
  /*
50775
50904
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50931,7 +51060,7 @@ function createGuid() {
50931
51060
  return createNewGuid();
50932
51061
  }
50933
51062
 
50934
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51063
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50935
51064
 
50936
51065
  /*
50937
51066
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -50974,7 +51103,7 @@ class NavigationClient {
50974
51103
  }
50975
51104
  }
50976
51105
 
50977
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51106
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
50978
51107
 
50979
51108
  /*
50980
51109
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51095,7 +51224,7 @@ function getHeaderDict(headers) {
51095
51224
  }
51096
51225
  }
51097
51226
 
51098
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51227
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51099
51228
 
51100
51229
  /*
51101
51230
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51144,6 +51273,7 @@ function buildConfiguration({ auth: userInputAuth, cache: userInputCache, system
51144
51273
  supportsNestedAppAuth: false,
51145
51274
  instanceAware: false,
51146
51275
  encodeExtraQueryParams: false,
51276
+ verifySSO: false,
51147
51277
  };
51148
51278
  // Default cache options for browser
51149
51279
  const DEFAULT_CACHE_OPTIONS = {
@@ -51230,12 +51360,12 @@ function buildConfiguration({ auth: userInputAuth, cache: userInputCache, system
51230
51360
  return overlayedConfig;
51231
51361
  }
51232
51362
 
51233
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51363
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51234
51364
  /* eslint-disable header/header */
51235
51365
  const name$1 = "@azure/msal-browser";
51236
- const version = "4.28.1";
51366
+ const version = "4.29.1";
51237
51367
 
51238
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51368
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51239
51369
  /*
51240
51370
  * Copyright (c) Microsoft Corporation. All rights reserved.
51241
51371
  * Licensed under the MIT License.
@@ -51263,7 +51393,7 @@ function getTokenKeysCacheKey(clientId, schema = CREDENTIAL_SCHEMA_VERSION) {
51263
51393
  return `${PREFIX}.${schema}.${TOKEN_KEYS}.${clientId}`;
51264
51394
  }
51265
51395
 
51266
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51396
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51267
51397
 
51268
51398
  /*
51269
51399
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51360,7 +51490,7 @@ class BaseOperatingContext {
51360
51490
  }
51361
51491
  }
51362
51492
 
51363
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51493
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51364
51494
 
51365
51495
  /*
51366
51496
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51406,7 +51536,7 @@ StandardOperatingContext.MODULE_NAME = "";
51406
51536
  */
51407
51537
  StandardOperatingContext.ID = "StandardOperatingContext";
51408
51538
 
51409
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51539
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51410
51540
 
51411
51541
  /*
51412
51542
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51609,7 +51739,7 @@ class DatabaseStorage {
51609
51739
  }
51610
51740
  }
51611
51741
 
51612
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51742
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51613
51743
  /*
51614
51744
  * Copyright (c) Microsoft Corporation. All rights reserved.
51615
51745
  * Licensed under the MIT License.
@@ -51655,7 +51785,7 @@ class MemoryStorage {
51655
51785
  }
51656
51786
  }
51657
51787
 
51658
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51788
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51659
51789
 
51660
51790
  /*
51661
51791
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51789,7 +51919,7 @@ class AsyncMemoryStorage {
51789
51919
  }
51790
51920
  }
51791
51921
 
51792
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
51922
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51793
51923
 
51794
51924
  /*
51795
51925
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -51970,7 +52100,7 @@ function getSortedObjectString(obj) {
51970
52100
  return JSON.stringify(obj, Object.keys(obj).sort());
51971
52101
  }
51972
52102
 
51973
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52103
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
51974
52104
 
51975
52105
  /*
51976
52106
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52048,7 +52178,7 @@ function getCookieExpirationTime(cookieLifeDays) {
52048
52178
  return expr.toUTCString();
52049
52179
  }
52050
52180
 
52051
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52181
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52052
52182
 
52053
52183
  /*
52054
52184
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52090,7 +52220,7 @@ function getTokenKeys(clientId, storage, schemaVersion) {
52090
52220
  };
52091
52221
  }
52092
52222
 
52093
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52223
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52094
52224
  /*
52095
52225
  * Copyright (c) Microsoft Corporation. All rights reserved.
52096
52226
  * Licensed under the MIT License.
@@ -52101,7 +52231,7 @@ function isEncrypted(data) {
52101
52231
  data.hasOwnProperty("data"));
52102
52232
  }
52103
52233
 
52104
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52234
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52105
52235
 
52106
52236
  /*
52107
52237
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52391,7 +52521,7 @@ class LocalStorage {
52391
52521
  }
52392
52522
  }
52393
52523
 
52394
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52524
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52395
52525
 
52396
52526
  /*
52397
52527
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -52433,7 +52563,7 @@ class SessionStorage {
52433
52563
  }
52434
52564
  }
52435
52565
 
52436
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52566
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52437
52567
  /*
52438
52568
  * Copyright (c) Microsoft Corporation. All rights reserved.
52439
52569
  * Licensed under the MIT License.
@@ -52468,7 +52598,7 @@ const EventType = {
52468
52598
  BROKER_CONNECTION_ESTABLISHED: "msal:brokerConnectionEstablished",
52469
52599
  };
52470
52600
 
52471
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52601
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52472
52602
  /*
52473
52603
  * Copyright (c) Microsoft Corporation. All rights reserved.
52474
52604
  * Licensed under the MIT License.
@@ -52485,7 +52615,7 @@ function removeElementFromArray(array, element) {
52485
52615
  }
52486
52616
  }
52487
52617
 
52488
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
52618
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
52489
52619
 
52490
52620
  /*
52491
52621
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -53900,7 +54030,7 @@ const DEFAULT_BROWSER_CACHE_MANAGER = (clientId, logger, performanceClient, even
53900
54030
  return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger, performanceClient, eventHandler);
53901
54031
  };
53902
54032
 
53903
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54033
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
53904
54034
  /*
53905
54035
  * Copyright (c) Microsoft Corporation. All rights reserved.
53906
54036
  * Licensed under the MIT License.
@@ -54025,7 +54155,7 @@ function getActiveAccount(browserStorage, correlationId) {
54025
54155
  return browserStorage.getActiveAccount(correlationId);
54026
54156
  }
54027
54157
 
54028
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54158
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54029
54159
 
54030
54160
  /*
54031
54161
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54131,7 +54261,7 @@ class EventHandler {
54131
54261
  }
54132
54262
  }
54133
54263
 
54134
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54264
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54135
54265
 
54136
54266
  /*
54137
54267
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54247,7 +54377,7 @@ class BaseInteractionClient {
54247
54377
  }
54248
54378
  }
54249
54379
 
54250
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54380
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54251
54381
 
54252
54382
  /*
54253
54383
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54332,7 +54462,7 @@ function validateRequestMethod(interactionRequest, protocolMode) {
54332
54462
  return httpMethod;
54333
54463
  }
54334
54464
 
54335
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54465
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54336
54466
 
54337
54467
  /*
54338
54468
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54504,6 +54634,10 @@ class StandardInteractionClient extends BaseInteractionClient {
54504
54634
  async initializeAuthorizationRequest(request, interactionType) {
54505
54635
  this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.correlationId);
54506
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
+ }
54507
54641
  const browserState = {
54508
54642
  interactionType: interactionType,
54509
54643
  };
@@ -54536,7 +54670,7 @@ class StandardInteractionClient extends BaseInteractionClient {
54536
54670
  }
54537
54671
  }
54538
54672
 
54539
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54673
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54540
54674
 
54541
54675
  /*
54542
54676
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54560,7 +54694,7 @@ function extractBrowserRequestState(browserCrypto, state) {
54560
54694
  }
54561
54695
  }
54562
54696
 
54563
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54697
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54564
54698
 
54565
54699
  /*
54566
54700
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54599,7 +54733,7 @@ function validateInteractionType(response, browserCrypto, interactionType) {
54599
54733
  }
54600
54734
  }
54601
54735
 
54602
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54736
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54603
54737
 
54604
54738
  /*
54605
54739
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54695,7 +54829,7 @@ class InteractionHandler {
54695
54829
  }
54696
54830
  }
54697
54831
 
54698
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54832
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54699
54833
  /*
54700
54834
  * Copyright (c) Microsoft Corporation. All rights reserved.
54701
54835
  * Licensed under the MIT License.
@@ -54704,7 +54838,7 @@ const contentError = "ContentError";
54704
54838
  const pageException = "PageException";
54705
54839
  const userSwitch = "user_switch";
54706
54840
 
54707
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54841
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54708
54842
  /*
54709
54843
  * Copyright (c) Microsoft Corporation. All rights reserved.
54710
54844
  * Licensed under the MIT License.
@@ -54717,7 +54851,7 @@ const DISABLED = "DISABLED";
54717
54851
  const ACCOUNT_UNAVAILABLE = "ACCOUNT_UNAVAILABLE";
54718
54852
  const UX_NOT_ALLOWED = "UX_NOT_ALLOWED";
54719
54853
 
54720
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54854
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54721
54855
 
54722
54856
  /*
54723
54857
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54782,7 +54916,7 @@ function createNativeAuthError(code, description, ext) {
54782
54916
  return new NativeAuthError(code, NativeAuthErrorMessages[code] || description, ext);
54783
54917
  }
54784
54918
 
54785
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54919
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54786
54920
 
54787
54921
  /*
54788
54922
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -54832,7 +54966,7 @@ class SilentCacheClient extends StandardInteractionClient {
54832
54966
  }
54833
54967
  }
54834
54968
 
54835
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
54969
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
54836
54970
 
54837
54971
  /*
54838
54972
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55459,7 +55593,7 @@ class PlatformAuthInteractionClient extends BaseInteractionClient {
55459
55593
  }
55460
55594
  }
55461
55595
 
55462
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
55596
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55463
55597
 
55464
55598
  /*
55465
55599
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55544,6 +55678,8 @@ async function getEARForm(frame, config, authority, request, logger, performance
55544
55678
  addCodeChallengeParams(parameters, request.codeChallenge, Constants.S256_CODE_CHALLENGE_METHOD);
55545
55679
  const queryParams = new Map();
55546
55680
  addExtraQueryParameters(queryParams, request.extraQueryParameters || {});
55681
+ // Add correlationId to query params so gateway can propagate it to IDPs
55682
+ addCorrelationId(queryParams, request.correlationId);
55547
55683
  const url = getAuthorizeUrl(authority, queryParams, config.auth.encodeExtraQueryParams, request.extraQueryParameters);
55548
55684
  return createForm(frame, url, parameters);
55549
55685
  }
@@ -55557,6 +55693,8 @@ async function getCodeForm(frame, config, authority, request, logger, performanc
55557
55693
  addPostBodyParameters(parameters, request.authorizePostBodyParameters || {});
55558
55694
  const queryParams = new Map();
55559
55695
  addExtraQueryParameters(queryParams, request.extraQueryParameters || {});
55696
+ // Add correlationId to query params so gateway can propagate it to IDPs
55697
+ addCorrelationId(queryParams, request.correlationId);
55560
55698
  const url = getAuthorizeUrl(authority, queryParams, config.auth.encodeExtraQueryParams, request.extraQueryParameters);
55561
55699
  return createForm(frame, url, parameters);
55562
55700
  }
@@ -55684,7 +55822,7 @@ async function handleResponseEAR(request, response, apiId, config, authority, br
55684
55822
  return (await invokeAsync(responseHandler.handleServerTokenResponse.bind(responseHandler), PerformanceEvents.HandleServerTokenResponse, logger, performanceClient, request.correlationId)(decryptedData, authority, nowSeconds(), request, apiId, additionalData, undefined, undefined, undefined, undefined));
55685
55823
  }
55686
55824
 
55687
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
55825
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55688
55826
 
55689
55827
  /*
55690
55828
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -55741,7 +55879,7 @@ async function generateCodeChallengeFromVerifier(pkceCodeVerifier, performanceCl
55741
55879
  }
55742
55880
  }
55743
55881
 
55744
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
55882
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
55745
55883
 
55746
55884
  /*
55747
55885
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56006,7 +56144,7 @@ class PlatformAuthExtensionHandler {
56006
56144
  }
56007
56145
  }
56008
56146
 
56009
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
56147
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56010
56148
 
56011
56149
  /*
56012
56150
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56132,18 +56270,32 @@ class PlatformAuthDOMHandler {
56132
56270
  return nativeResponse;
56133
56271
  }
56134
56272
  getDOMExtraParams(extraParameters) {
56135
- const stringifiedParams = Object.entries(extraParameters).reduce((record, [key, value]) => {
56136
- record[key] = String(value);
56137
- return record;
56138
- }, {});
56139
- const validExtraParams = {
56140
- ...stringifiedParams,
56141
- };
56142
- 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
+ }
56143
56295
  }
56144
56296
  }
56145
56297
 
56146
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
56298
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56147
56299
  async function getPlatformAuthProvider(logger, performanceClient, correlationId, nativeBrokerHandshakeTimeout, enablePlatformBrokerDOMSupport) {
56148
56300
  logger.trace("getPlatformAuthProvider called", correlationId);
56149
56301
  logger.trace("Has client allowed platform auth via DOM API: " +
@@ -56208,7 +56360,7 @@ function isPlatformAuthAllowed(config, logger, platformAuthProvider, authenticat
56208
56360
  return true;
56209
56361
  }
56210
56362
 
56211
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
56363
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56212
56364
 
56213
56365
  /*
56214
56366
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -56705,7 +56857,7 @@ class PopupClient extends StandardInteractionClient {
56705
56857
  }
56706
56858
  }
56707
56859
 
56708
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
56860
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
56709
56861
 
56710
56862
  /*
56711
56863
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57145,7 +57297,7 @@ class RedirectClient extends StandardInteractionClient {
57145
57297
  }
57146
57298
  }
57147
57299
 
57148
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57300
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57149
57301
 
57150
57302
  /*
57151
57303
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57193,6 +57345,12 @@ async function initiateEarRequest(config, authority, request, logger, performanc
57193
57345
  */
57194
57346
  async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, performanceClient, logger, correlationId, responseType) {
57195
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;
57196
57354
  return new Promise((resolve, reject) => {
57197
57355
  if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {
57198
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.`);
@@ -57206,6 +57364,7 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57206
57364
  reject(createBrowserAuthError(monitorWindowTimeout));
57207
57365
  }, timeout);
57208
57366
  const intervalId = window.setInterval(() => {
57367
+ totalTickCount++;
57209
57368
  let href = "";
57210
57369
  const contentWindow = iframe.contentWindow;
57211
57370
  try {
@@ -57216,7 +57375,9 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57216
57375
  */
57217
57376
  href = contentWindow ? contentWindow.location.href : "";
57218
57377
  }
57219
- catch (e) { }
57378
+ catch (e) {
57379
+ crossOriginTickCount++;
57380
+ }
57220
57381
  if (!href || href === "about:blank") {
57221
57382
  return;
57222
57383
  }
@@ -57234,6 +57395,10 @@ async function monitorIframeForHash(iframe, timeout, pollIntervalMilliseconds, p
57234
57395
  resolve(responseString);
57235
57396
  }, pollIntervalMilliseconds);
57236
57397
  }).finally(() => {
57398
+ performanceClient.addFields({
57399
+ iframeTickCount: totalTickCount,
57400
+ crossOriginTickCount: crossOriginTickCount,
57401
+ }, correlationId);
57237
57402
  invoke(removeHiddenIframe, PerformanceEvents.RemoveHiddenIframe, logger, performanceClient, correlationId)(iframe);
57238
57403
  });
57239
57404
  }
@@ -57301,7 +57466,7 @@ function removeHiddenIframe(iframe) {
57301
57466
  }
57302
57467
  }
57303
57468
 
57304
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57469
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57305
57470
 
57306
57471
  /*
57307
57472
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57423,6 +57588,52 @@ class SilentIframeClient extends StandardInteractionClient {
57423
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);
57424
57589
  }
57425
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
+ }
57426
57637
  /**
57427
57638
  * Currently Unsupported
57428
57639
  */
@@ -57462,7 +57673,7 @@ class SilentIframeClient extends StandardInteractionClient {
57462
57673
  }
57463
57674
  }
57464
57675
 
57465
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57676
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57466
57677
 
57467
57678
  /*
57468
57679
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57528,7 +57739,7 @@ class SilentRefreshClient extends StandardInteractionClient {
57528
57739
  }
57529
57740
  }
57530
57741
 
57531
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57742
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57532
57743
 
57533
57744
  /*
57534
57745
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57742,7 +57953,7 @@ class TokenCache {
57742
57953
  }
57743
57954
  }
57744
57955
 
57745
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57956
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57746
57957
 
57747
57958
  /*
57748
57959
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57755,7 +57966,7 @@ class HybridSpaAuthorizationCodeClient extends AuthorizationCodeClient {
57755
57966
  }
57756
57967
  }
57757
57968
 
57758
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57969
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57759
57970
 
57760
57971
  /*
57761
57972
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57821,11 +58032,7 @@ class SilentAuthCodeClient extends StandardInteractionClient {
57821
58032
  }
57822
58033
  }
57823
58034
 
57824
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
57825
- /*
57826
- * Copyright (c) Microsoft Corporation. All rights reserved.
57827
- * Licensed under the MIT License.
57828
- */
58035
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57829
58036
  function collectInstanceStats(currentClientId, performanceEvent, logger) {
57830
58037
  const frameInstances =
57831
58038
  // @ts-ignore
@@ -57841,7 +58048,7 @@ function collectInstanceStats(currentClientId, performanceEvent, logger) {
57841
58048
  });
57842
58049
  }
57843
58050
 
57844
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
58051
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
57845
58052
 
57846
58053
  /*
57847
58054
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -57921,22 +58128,30 @@ class StandardController {
57921
58128
  this.tokenCache = new TokenCache(this.config, this.browserStorage, this.logger, this.browserCrypto, this.performanceClient);
57922
58129
  this.activeSilentTokenRequests = new Map();
57923
58130
  // Register listener functions
57924
- this.trackPageVisibility = this.trackPageVisibility.bind(this);
57925
- // Register listener functions
57926
- this.trackPageVisibilityWithMeasurement =
57927
- this.trackPageVisibilityWithMeasurement.bind(this);
58131
+ this.trackStateChangeWithMeasurement =
58132
+ this.trackStateChangeWithMeasurement.bind(this);
57928
58133
  }
57929
58134
  static async createController(operatingContext, request) {
57930
58135
  const controller = new StandardController(operatingContext);
57931
58136
  await controller.initialize(request);
57932
58137
  return controller;
57933
58138
  }
57934
- trackPageVisibility(correlationId) {
58139
+ trackStateChange(correlationId, event) {
57935
58140
  if (!correlationId) {
57936
58141
  return;
57937
58142
  }
57938
- this.logger.info("Perf: Visibility change detected");
57939
- 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
+ }
57940
58155
  }
57941
58156
  /**
57942
58157
  * Initializer function to perform async startup tasks such as connecting to WAM extension
@@ -58084,6 +58299,8 @@ class StandardController {
58084
58299
  rootMeasurement.end({
58085
58300
  success: true,
58086
58301
  }, undefined, result.account);
58302
+ // Fire-and-forget SSO capability verification in background
58303
+ this.verifySsoCapability(result.account, InteractionType.Redirect);
58087
58304
  }
58088
58305
  else {
58089
58306
  /*
@@ -58316,6 +58533,8 @@ class StandardController {
58316
58533
  accessTokenSize: result.accessToken.length,
58317
58534
  idTokenSize: result.idToken.length,
58318
58535
  }, undefined, result.account);
58536
+ // SSO capability verification in background
58537
+ this.verifySsoCapability(result.account, InteractionType.Popup);
58319
58538
  return result;
58320
58539
  })
58321
58540
  .catch((e) => {
@@ -58338,16 +58557,87 @@ class StandardController {
58338
58557
  }
58339
58558
  });
58340
58559
  }
58341
- trackPageVisibilityWithMeasurement() {
58560
+ trackStateChangeWithMeasurement(event) {
58342
58561
  const measurement = this.ssoSilentMeasurement ||
58343
58562
  this.acquireTokenByCodeAsyncMeasurement;
58344
58563
  if (!measurement) {
58345
58564
  return;
58346
58565
  }
58347
- this.logger.info("Perf: Visibility change detected in ", measurement.event.name);
58348
- measurement.increment({
58349
- 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,
58350
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);
58351
58641
  }
58352
58642
  // #endregion
58353
58643
  // #region Silent Flow
@@ -58381,8 +58671,9 @@ class StandardController {
58381
58671
  preflightCheck(this.initialized, this.ssoSilentMeasurement, request.account);
58382
58672
  this.ssoSilentMeasurement?.increment({
58383
58673
  visibilityChangeCount: 0,
58674
+ onlineStatusChangeCount: 0,
58384
58675
  });
58385
- document.addEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58676
+ this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
58386
58677
  this.logger.verbose("ssoSilent called", correlationId);
58387
58678
  this.eventHandler.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, validRequest);
58388
58679
  let result;
@@ -58426,7 +58717,7 @@ class StandardController {
58426
58717
  throw e;
58427
58718
  })
58428
58719
  .finally(() => {
58429
- document.removeEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58720
+ this.removeStateChangeListeners(this.trackStateChangeWithMeasurement);
58430
58721
  });
58431
58722
  }
58432
58723
  /**
@@ -58538,8 +58829,9 @@ class StandardController {
58538
58829
  this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCodeAsync, request.correlationId);
58539
58830
  this.acquireTokenByCodeAsyncMeasurement?.increment({
58540
58831
  visibilityChangeCount: 0,
58832
+ onlineStatusChangeCount: 0,
58541
58833
  });
58542
- document.addEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58834
+ this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
58543
58835
  const silentAuthCodeClient = this.createSilentAuthCodeClient(request.correlationId);
58544
58836
  const silentTokenResult = await silentAuthCodeClient
58545
58837
  .acquireToken(request)
@@ -58557,7 +58849,7 @@ class StandardController {
58557
58849
  throw tokenRenewalError;
58558
58850
  })
58559
58851
  .finally(() => {
58560
- document.removeEventListener("visibilitychange", this.trackPageVisibilityWithMeasurement);
58852
+ this.removeStateChangeListeners(this.trackStateChangeWithMeasurement);
58561
58853
  });
58562
58854
  return silentTokenResult;
58563
58855
  }
@@ -59102,18 +59394,22 @@ class StandardController {
59102
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}
59103
59395
  */
59104
59396
  async acquireTokenSilentAsync(request, account) {
59105
- const trackPageVisibility = () => this.trackPageVisibility(request.correlationId);
59397
+ const trackStateChange = (event) => this.trackStateChange(request.correlationId, event);
59106
59398
  this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);
59107
59399
  this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);
59108
59400
  if (request.correlationId) {
59109
- this.performanceClient.incrementFields({ visibilityChangeCount: 0 }, request.correlationId);
59401
+ this.performanceClient.incrementFields({ visibilityChangeCount: 0, onlineStatusChangeCount: 0 }, request.correlationId);
59110
59402
  }
59111
- document.addEventListener("visibilitychange", trackPageVisibility);
59403
+ this.addStateChangeListeners(trackStateChange);
59112
59404
  const silentRequest = await invokeAsync(initializeSilentRequest, PerformanceEvents.InitializeSilentRequest, this.logger, this.performanceClient, request.correlationId)(request, account, this.config, this.performanceClient, this.logger);
59113
59405
  const cacheLookupPolicy = request.cacheLookupPolicy || CacheLookupPolicy.Default;
59114
59406
  const result = this.acquireTokenSilentNoIframe(silentRequest, cacheLookupPolicy).catch(async (refreshTokenError) => {
59115
59407
  const shouldTryToResolveSilently = checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheLookupPolicy);
59116
59408
  if (shouldTryToResolveSilently) {
59409
+ const silentRefreshReason = `${refreshTokenError.errorCode}${refreshTokenError.subError
59410
+ ? `|${refreshTokenError.subError}`
59411
+ : ""}`;
59412
+ this.performanceClient.addFields({ silentRefreshReason }, silentRequest.correlationId);
59117
59413
  if (!this.activeIframeRequest) {
59118
59414
  let _resolve;
59119
59415
  // Always set the active request tracker immediately after checking it to prevent races
@@ -59183,7 +59479,7 @@ class StandardController {
59183
59479
  throw tokenRenewalError;
59184
59480
  })
59185
59481
  .finally(() => {
59186
- document.removeEventListener("visibilitychange", trackPageVisibility);
59482
+ this.removeStateChangeListeners(trackStateChange);
59187
59483
  });
59188
59484
  }
59189
59485
  /**
@@ -59294,7 +59590,7 @@ function checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheL
59294
59590
  return isSilentlyResolvable && tryIframeRenewal;
59295
59591
  }
59296
59592
 
59297
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
59593
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
59298
59594
 
59299
59595
  /*
59300
59596
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -59306,7 +59602,7 @@ async function createV3Controller(config, request) {
59306
59602
  return StandardController.createController(standard, request);
59307
59603
  }
59308
59604
 
59309
- /*! @azure/msal-browser v4.28.1 2026-01-17 */
59605
+ /*! @azure/msal-browser v4.29.1 2026-03-13 */
59310
59606
 
59311
59607
  /*
59312
59608
  * Copyright (c) Microsoft Corporation. All rights reserved.