@azure/msal-browser 2.24.0 → 2.25.0

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.
Files changed (104) hide show
  1. package/README.md +1 -1
  2. package/dist/_virtual/_tslib.js +1 -1
  3. package/dist/app/ClientApplication.js +2 -2
  4. package/dist/app/ClientApplication.js.map +1 -1
  5. package/dist/app/IPublicClientApplication.js +1 -1
  6. package/dist/app/PublicClientApplication.js +1 -1
  7. package/dist/broker/nativeBroker/NativeMessageHandler.js +1 -1
  8. package/dist/broker/nativeBroker/NativeRequest.d.ts +3 -3
  9. package/dist/broker/nativeBroker/NativeRequest.d.ts.map +1 -1
  10. package/dist/cache/AsyncMemoryStorage.js +1 -1
  11. package/dist/cache/BrowserCacheManager.js +1 -1
  12. package/dist/cache/BrowserStorage.js +1 -1
  13. package/dist/cache/DatabaseStorage.js +1 -1
  14. package/dist/cache/MemoryStorage.js +1 -1
  15. package/dist/cache/TokenCache.d.ts +1 -0
  16. package/dist/cache/TokenCache.d.ts.map +1 -1
  17. package/dist/cache/TokenCache.js +2 -2
  18. package/dist/cache/TokenCache.js.map +1 -1
  19. package/dist/config/Configuration.js +1 -1
  20. package/dist/crypto/BrowserCrypto.js +1 -1
  21. package/dist/crypto/CryptoOps.d.ts.map +1 -1
  22. package/dist/crypto/CryptoOps.js +7 -10
  23. package/dist/crypto/CryptoOps.js.map +1 -1
  24. package/dist/crypto/GuidGenerator.js +1 -1
  25. package/dist/crypto/PkceGenerator.js +1 -1
  26. package/dist/crypto/SignedHttpRequest.js +1 -1
  27. package/dist/encode/Base64Decode.js +1 -1
  28. package/dist/encode/Base64Encode.js +1 -1
  29. package/dist/error/BrowserAuthError.js +3 -3
  30. package/dist/error/BrowserAuthError.js.map +1 -1
  31. package/dist/error/BrowserConfigurationAuthError.js +1 -1
  32. package/dist/error/NativeAuthError.d.ts +2 -1
  33. package/dist/error/NativeAuthError.d.ts.map +1 -1
  34. package/dist/error/NativeAuthError.js +3 -2
  35. package/dist/error/NativeAuthError.js.map +1 -1
  36. package/dist/event/EventHandler.js +1 -1
  37. package/dist/event/EventMessage.js +1 -1
  38. package/dist/event/EventType.js +1 -1
  39. package/dist/index.cjs.js +535 -435
  40. package/dist/index.cjs.js.map +1 -1
  41. package/dist/index.js +1 -1
  42. package/dist/interaction_client/BaseInteractionClient.js +1 -1
  43. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js +1 -1
  44. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  45. package/dist/interaction_client/NativeInteractionClient.js +20 -17
  46. package/dist/interaction_client/NativeInteractionClient.js.map +1 -1
  47. package/dist/interaction_client/PopupClient.d.ts +75 -2
  48. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  49. package/dist/interaction_client/PopupClient.js +281 -41
  50. package/dist/interaction_client/PopupClient.js.map +1 -1
  51. package/dist/interaction_client/RedirectClient.js +1 -1
  52. package/dist/interaction_client/SilentAuthCodeClient.js +1 -1
  53. package/dist/interaction_client/SilentCacheClient.js +1 -1
  54. package/dist/interaction_client/SilentIframeClient.js +1 -1
  55. package/dist/interaction_client/SilentRefreshClient.js +1 -1
  56. package/dist/interaction_client/StandardInteractionClient.js +1 -1
  57. package/dist/interaction_handler/InteractionHandler.d.ts +3 -8
  58. package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
  59. package/dist/interaction_handler/InteractionHandler.js +5 -5
  60. package/dist/interaction_handler/InteractionHandler.js.map +1 -1
  61. package/dist/interaction_handler/RedirectHandler.d.ts +1 -1
  62. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  63. package/dist/interaction_handler/RedirectHandler.js +12 -12
  64. package/dist/interaction_handler/RedirectHandler.js.map +1 -1
  65. package/dist/interaction_handler/SilentHandler.d.ts +1 -1
  66. package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
  67. package/dist/interaction_handler/SilentHandler.js +5 -5
  68. package/dist/interaction_handler/SilentHandler.js.map +1 -1
  69. package/dist/internals.d.ts +0 -1
  70. package/dist/internals.d.ts.map +1 -1
  71. package/dist/internals.js +1 -2
  72. package/dist/internals.js.map +1 -1
  73. package/dist/navigation/NavigationClient.js +1 -1
  74. package/dist/network/FetchClient.js +1 -1
  75. package/dist/network/XhrClient.js +1 -1
  76. package/dist/packageMetadata.d.ts +1 -1
  77. package/dist/packageMetadata.js +2 -2
  78. package/dist/packageMetadata.js.map +1 -1
  79. package/dist/request/EndSessionPopupRequest.d.ts +1 -1
  80. package/dist/request/EndSessionPopupRequest.d.ts.map +1 -1
  81. package/dist/request/PopupRequest.d.ts +1 -1
  82. package/dist/request/PopupRequest.d.ts.map +1 -1
  83. package/dist/request/PopupWindowAttributes.d.ts +16 -0
  84. package/dist/request/PopupWindowAttributes.d.ts.map +1 -0
  85. package/dist/request/SsoSilentRequest.d.ts +1 -1
  86. package/dist/telemetry/BrowserPerformanceClient.js +1 -1
  87. package/dist/telemetry/BrowserPerformanceMeasurement.js +1 -1
  88. package/dist/utils/BrowserConstants.js +1 -1
  89. package/dist/utils/BrowserProtocolUtils.js +1 -1
  90. package/dist/utils/BrowserStringUtils.js +1 -1
  91. package/dist/utils/BrowserUtils.js +1 -1
  92. package/dist/utils/MathUtils.js +1 -1
  93. package/lib/msal-browser.js +535 -435
  94. package/lib/msal-browser.js.map +1 -1
  95. package/lib/msal-browser.min.js +40 -40
  96. package/package.json +2 -2
  97. package/dist/interaction_handler/PopupHandler.d.ts +0 -29
  98. package/dist/interaction_handler/PopupHandler.d.ts.map +0 -1
  99. package/dist/interaction_handler/PopupHandler.js +0 -69
  100. package/dist/interaction_handler/PopupHandler.js.map +0 -1
  101. package/dist/utils/PopupUtils.d.ts +0 -73
  102. package/dist/utils/PopupUtils.d.ts.map +0 -1
  103. package/dist/utils/PopupUtils.js +0 -185
  104. package/dist/utils/PopupUtils.js.map +0 -1
@@ -1,14 +1,13 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator } from '../_virtual/_tslib.js';
4
- import { PerformanceEvents } from '@azure/msal-common';
4
+ import { PerformanceEvents, JoseHeader } from '@azure/msal-common';
5
5
  import { GuidGenerator } from './GuidGenerator.js';
6
6
  import { Base64Encode } from '../encode/Base64Encode.js';
7
7
  import { Base64Decode } from '../encode/Base64Decode.js';
8
8
  import { PkceGenerator } from './PkceGenerator.js';
9
9
  import { BrowserCrypto } from './BrowserCrypto.js';
10
10
  import { BrowserStringUtils } from '../utils/BrowserStringUtils.js';
11
- import { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';
12
11
  import { BrowserAuthError } from '../error/BrowserAuthError.js';
13
12
  import { AsyncMemoryStorage } from '../cache/AsyncMemoryStorage.js';
14
13
 
@@ -187,7 +186,7 @@ var CryptoOps = /** @class */ (function () {
187
186
  CryptoOps.prototype.signJwt = function (payload, kid, correlationId) {
188
187
  var _a;
189
188
  return __awaiter(this, void 0, void 0, function () {
190
- var signJwtMeasurement, cachedKeyPair, publicKeyJwk, publicKeyJwkString, header, encodedHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature, signedJwt;
189
+ var signJwtMeasurement, cachedKeyPair, publicKeyJwk, publicKeyJwkString, encodedKeyIdThumbprint, shrHeader, encodedShrHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature, signedJwt;
191
190
  return __generator(this, function (_b) {
192
191
  switch (_b.label) {
193
192
  case 0:
@@ -202,17 +201,15 @@ var CryptoOps = /** @class */ (function () {
202
201
  case 2:
203
202
  publicKeyJwk = _b.sent();
204
203
  publicKeyJwkString = BrowserCrypto.getJwkString(publicKeyJwk);
205
- header = {
206
- alg: publicKeyJwk.alg,
207
- type: KEY_FORMAT_JWK
208
- };
209
- encodedHeader = this.b64Encode.urlEncode(JSON.stringify(header));
204
+ encodedKeyIdThumbprint = this.b64Encode.urlEncode(JSON.stringify({ kid: kid }));
205
+ shrHeader = JoseHeader.getShrHeaderString({ kid: encodedKeyIdThumbprint, alg: publicKeyJwk.alg });
206
+ encodedShrHeader = this.b64Encode.urlEncode(shrHeader);
210
207
  // Generate payload
211
208
  payload.cnf = {
212
209
  jwk: JSON.parse(publicKeyJwkString)
213
210
  };
214
211
  encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));
215
- tokenString = encodedHeader + "." + encodedPayload;
212
+ tokenString = encodedShrHeader + "." + encodedPayload;
216
213
  tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);
217
214
  return [4 /*yield*/, this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer)];
218
215
  case 3:
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoOps.js","sources":["../../src/crypto/CryptoOps.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ICrypto, IPerformanceClient, Logger, PerformanceEvents, PkceCodes, SignedHttpRequest, SignedHttpRequestParameters } from \"@azure/msal-common\";\nimport { GuidGenerator } from \"./GuidGenerator\";\nimport { Base64Encode } from \"../encode/Base64Encode\";\nimport { Base64Decode } from \"../encode/Base64Decode\";\nimport { PkceGenerator } from \"./PkceGenerator\";\nimport { BrowserCrypto } from \"./BrowserCrypto\";\nimport { BrowserStringUtils } from \"../utils/BrowserStringUtils\";\nimport { KEY_FORMAT_JWK } from \"../utils/BrowserConstants\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { AsyncMemoryStorage } from \"../cache/AsyncMemoryStorage\";\n\nexport type CachedKeyPair = {\n publicKey: CryptoKey,\n privateKey: CryptoKey,\n requestMethod?: string,\n requestUri?: string\n};\n\n/**\n * MSAL CryptoKeyStore DB Version 2\n */\nexport type CryptoKeyStore = {\n asymmetricKeys: AsyncMemoryStorage<CachedKeyPair>;\n symmetricKeys: AsyncMemoryStorage<CryptoKey>;\n};\n\nexport enum CryptoKeyStoreNames {\n asymmetricKeys = \"asymmetricKeys\",\n symmetricKeys = \"symmetricKeys\"\n}\n\n/**\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and \n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\n */\nexport class CryptoOps implements ICrypto {\n\n private browserCrypto: BrowserCrypto;\n private guidGenerator: GuidGenerator;\n private b64Encode: Base64Encode;\n private b64Decode: Base64Decode;\n private pkceGenerator: PkceGenerator;\n private logger: Logger;\n\n /**\n * CryptoOps can be used in contexts outside a PCA instance,\n * meaning there won't be a performance manager available.\n */\n private performanceClient: IPerformanceClient | undefined;\n\n private static POP_KEY_USAGES: Array<KeyUsage> = [\"sign\", \"verify\"];\n private static EXTRACTABLE: boolean = true;\n private cache: CryptoKeyStore;\n\n constructor(logger: Logger, performanceClient?: IPerformanceClient) {\n this.logger = logger;\n // Browser crypto needs to be validated first before any other classes can be set.\n this.browserCrypto = new BrowserCrypto(this.logger);\n this.b64Encode = new Base64Encode();\n this.b64Decode = new Base64Decode();\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\n this.pkceGenerator = new PkceGenerator(this.browserCrypto);\n this.cache = {\n asymmetricKeys: new AsyncMemoryStorage<CachedKeyPair>(this.logger, CryptoKeyStoreNames.asymmetricKeys),\n symmetricKeys: new AsyncMemoryStorage<CryptoKey>(this.logger, CryptoKeyStoreNames.symmetricKeys)\n };\n this.performanceClient = performanceClient;\n }\n\n /**\n * Creates a new random GUID - used to populate state and nonce.\n * @returns string (GUID)\n */\n createNewGuid(): string {\n return this.guidGenerator.generateGuid();\n }\n\n /**\n * Encodes input string to base64.\n * @param input \n */\n base64Encode(input: string): string {\n return this.b64Encode.encode(input);\n } \n \n /**\n * Decodes input string from base64.\n * @param input \n */\n base64Decode(input: string): string {\n return this.b64Decode.decode(input);\n }\n\n /**\n * Generates PKCE codes used in Authorization Code Flow.\n */\n async generatePkceCodes(): Promise<PkceCodes> {\n return this.pkceGenerator.generateCodes();\n }\n\n /**\n * Generates a keypair, stores it and returns a thumbprint\n * @param request\n */\n async getPublicKeyThumbprint(request: SignedHttpRequestParameters): Promise<string> {\n const publicKeyThumbMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.CryptoOptsGetPublicKeyThumbprint, request.correlationId);\n\n // Generate Keypair\n const keyPair: CryptoKeyPair = await this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES);\n\n // Generate Thumbprint for Public Key\n const publicKeyJwk: JsonWebKey = await this.browserCrypto.exportJwk(keyPair.publicKey);\n \n const pubKeyThumprintObj: JsonWebKey = {\n e: publicKeyJwk.e,\n kty: publicKeyJwk.kty,\n n: publicKeyJwk.n\n };\n\n const publicJwkString: string = BrowserCrypto.getJwkString(pubKeyThumprintObj);\n const publicJwkHash = await this.hashString(publicJwkString);\n\n // Generate Thumbprint for Private Key\n const privateKeyJwk: JsonWebKey = await this.browserCrypto.exportJwk(keyPair.privateKey);\n // Re-import private key to make it unextractable\n const unextractablePrivateKey: CryptoKey = await this.browserCrypto.importJwk(privateKeyJwk, false, [\"sign\"]);\n\n // Store Keypair data in keystore\n await this.cache.asymmetricKeys.setItem(\n publicJwkHash, \n {\n privateKey: unextractablePrivateKey,\n publicKey: keyPair.publicKey,\n requestMethod: request.resourceRequestMethod,\n requestUri: request.resourceRequestUri\n }\n );\n\n if (publicKeyThumbMeasurement) {\n publicKeyThumbMeasurement.endMeasurement({\n success: true\n });\n }\n\n return publicJwkHash;\n }\n\n /**\n * Removes cryptographic keypair from key store matching the keyId passed in\n * @param kid \n */\n async removeTokenBindingKey(kid: string): Promise<boolean> {\n await this.cache.asymmetricKeys.removeItem(kid);\n const keyFound = await this.cache.asymmetricKeys.containsKey(kid);\n return !keyFound;\n }\n\n /**\n * Removes all cryptographic keys from IndexedDB storage\n */\n async clearKeystore(): Promise<boolean> {\n try {\n this.logger.verbose(\"Deleting in-memory and persistent asymmetric key stores\");\n await this.cache.asymmetricKeys.clear();\n this.logger.verbose(\"Successfully deleted asymmetric key stores\");\n this.logger.verbose(\"Deleting in-memory and persistent symmetric key stores\");\n await this.cache.symmetricKeys.clear();\n this.logger.verbose(\"Successfully deleted symmetric key stores\");\n return true;\n } catch (e) {\n if (e instanceof Error) {\n this.logger.error(`Clearing keystore failed with error: ${e.message}`);\n } else {\n this.logger.error(\"Clearing keystore failed with unknown error\");\n }\n \n return false;\n }\n }\n\n /**\n * Signs the given object as a jwt payload with private key retrieved by given kid.\n * @param payload \n * @param kid \n */\n async signJwt(payload: SignedHttpRequest, kid: string, correlationId?: string): Promise<string> {\n const signJwtMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.CryptoOptsSignJwt, correlationId);\n const cachedKeyPair = await this.cache.asymmetricKeys.getItem(kid);\n \n if (!cachedKeyPair) {\n throw BrowserAuthError.createSigningKeyNotFoundInStorageError(kid);\n }\n\n // Get public key as JWK\n const publicKeyJwk = await this.browserCrypto.exportJwk(cachedKeyPair.publicKey);\n const publicKeyJwkString = BrowserCrypto.getJwkString(publicKeyJwk);\n\n // Generate header\n const header = {\n alg: publicKeyJwk.alg,\n type: KEY_FORMAT_JWK\n };\n const encodedHeader = this.b64Encode.urlEncode(JSON.stringify(header));\n\n // Generate payload\n payload.cnf = {\n jwk: JSON.parse(publicKeyJwkString)\n };\n const encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));\n\n // Form token string\n const tokenString = `${encodedHeader}.${encodedPayload}`;\n\n // Sign token\n const tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);\n const signatureBuffer = await this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer);\n const encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));\n\n const signedJwt = `${tokenString}.${encodedSignature}`;\n\n if (signJwtMeasurement) {\n signJwtMeasurement.endMeasurement({\n success: true\n });\n }\n\n return signedJwt;\n }\n\n /**\n * Returns the SHA-256 hash of an input string\n * @param plainText\n */\n async hashString(plainText: string): Promise<string> {\n const hashBuffer: ArrayBuffer = await this.browserCrypto.sha256Digest(plainText);\n const hashBytes = new Uint8Array(hashBuffer);\n return this.b64Encode.urlEncodeArr(hashBytes);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoOps.js","sources":["../../src/crypto/CryptoOps.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ICrypto, IPerformanceClient, JoseHeader, Logger, PerformanceEvents, PkceCodes, SignedHttpRequest, SignedHttpRequestParameters } from \"@azure/msal-common\";\nimport { GuidGenerator } from \"./GuidGenerator\";\nimport { Base64Encode } from \"../encode/Base64Encode\";\nimport { Base64Decode } from \"../encode/Base64Decode\";\nimport { PkceGenerator } from \"./PkceGenerator\";\nimport { BrowserCrypto } from \"./BrowserCrypto\";\nimport { BrowserStringUtils } from \"../utils/BrowserStringUtils\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { AsyncMemoryStorage } from \"../cache/AsyncMemoryStorage\";\n\nexport type CachedKeyPair = {\n publicKey: CryptoKey,\n privateKey: CryptoKey,\n requestMethod?: string,\n requestUri?: string\n};\n\n/**\n * MSAL CryptoKeyStore DB Version 2\n */\nexport type CryptoKeyStore = {\n asymmetricKeys: AsyncMemoryStorage<CachedKeyPair>;\n symmetricKeys: AsyncMemoryStorage<CryptoKey>;\n};\n\nexport enum CryptoKeyStoreNames {\n asymmetricKeys = \"asymmetricKeys\",\n symmetricKeys = \"symmetricKeys\"\n}\n\n/**\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and \n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\n */\nexport class CryptoOps implements ICrypto {\n\n private browserCrypto: BrowserCrypto;\n private guidGenerator: GuidGenerator;\n private b64Encode: Base64Encode;\n private b64Decode: Base64Decode;\n private pkceGenerator: PkceGenerator;\n private logger: Logger;\n\n /**\n * CryptoOps can be used in contexts outside a PCA instance,\n * meaning there won't be a performance manager available.\n */\n private performanceClient: IPerformanceClient | undefined;\n\n private static POP_KEY_USAGES: Array<KeyUsage> = [\"sign\", \"verify\"];\n private static EXTRACTABLE: boolean = true;\n private cache: CryptoKeyStore;\n\n constructor(logger: Logger, performanceClient?: IPerformanceClient) {\n this.logger = logger;\n // Browser crypto needs to be validated first before any other classes can be set.\n this.browserCrypto = new BrowserCrypto(this.logger);\n this.b64Encode = new Base64Encode();\n this.b64Decode = new Base64Decode();\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\n this.pkceGenerator = new PkceGenerator(this.browserCrypto);\n this.cache = {\n asymmetricKeys: new AsyncMemoryStorage<CachedKeyPair>(this.logger, CryptoKeyStoreNames.asymmetricKeys),\n symmetricKeys: new AsyncMemoryStorage<CryptoKey>(this.logger, CryptoKeyStoreNames.symmetricKeys)\n };\n this.performanceClient = performanceClient;\n }\n\n /**\n * Creates a new random GUID - used to populate state and nonce.\n * @returns string (GUID)\n */\n createNewGuid(): string {\n return this.guidGenerator.generateGuid();\n }\n\n /**\n * Encodes input string to base64.\n * @param input \n */\n base64Encode(input: string): string {\n return this.b64Encode.encode(input);\n } \n \n /**\n * Decodes input string from base64.\n * @param input \n */\n base64Decode(input: string): string {\n return this.b64Decode.decode(input);\n }\n\n /**\n * Generates PKCE codes used in Authorization Code Flow.\n */\n async generatePkceCodes(): Promise<PkceCodes> {\n return this.pkceGenerator.generateCodes();\n }\n\n /**\n * Generates a keypair, stores it and returns a thumbprint\n * @param request\n */\n async getPublicKeyThumbprint(request: SignedHttpRequestParameters): Promise<string> {\n const publicKeyThumbMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.CryptoOptsGetPublicKeyThumbprint, request.correlationId);\n\n // Generate Keypair\n const keyPair: CryptoKeyPair = await this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES);\n\n // Generate Thumbprint for Public Key\n const publicKeyJwk: JsonWebKey = await this.browserCrypto.exportJwk(keyPair.publicKey);\n \n const pubKeyThumprintObj: JsonWebKey = {\n e: publicKeyJwk.e,\n kty: publicKeyJwk.kty,\n n: publicKeyJwk.n\n };\n\n const publicJwkString: string = BrowserCrypto.getJwkString(pubKeyThumprintObj);\n const publicJwkHash = await this.hashString(publicJwkString);\n\n // Generate Thumbprint for Private Key\n const privateKeyJwk: JsonWebKey = await this.browserCrypto.exportJwk(keyPair.privateKey);\n // Re-import private key to make it unextractable\n const unextractablePrivateKey: CryptoKey = await this.browserCrypto.importJwk(privateKeyJwk, false, [\"sign\"]);\n\n // Store Keypair data in keystore\n await this.cache.asymmetricKeys.setItem(\n publicJwkHash, \n {\n privateKey: unextractablePrivateKey,\n publicKey: keyPair.publicKey,\n requestMethod: request.resourceRequestMethod,\n requestUri: request.resourceRequestUri\n }\n );\n\n if (publicKeyThumbMeasurement) {\n publicKeyThumbMeasurement.endMeasurement({\n success: true\n });\n }\n\n return publicJwkHash;\n }\n\n /**\n * Removes cryptographic keypair from key store matching the keyId passed in\n * @param kid \n */\n async removeTokenBindingKey(kid: string): Promise<boolean> {\n await this.cache.asymmetricKeys.removeItem(kid);\n const keyFound = await this.cache.asymmetricKeys.containsKey(kid);\n return !keyFound;\n }\n\n /**\n * Removes all cryptographic keys from IndexedDB storage\n */\n async clearKeystore(): Promise<boolean> {\n try {\n this.logger.verbose(\"Deleting in-memory and persistent asymmetric key stores\");\n await this.cache.asymmetricKeys.clear();\n this.logger.verbose(\"Successfully deleted asymmetric key stores\");\n this.logger.verbose(\"Deleting in-memory and persistent symmetric key stores\");\n await this.cache.symmetricKeys.clear();\n this.logger.verbose(\"Successfully deleted symmetric key stores\");\n return true;\n } catch (e) {\n if (e instanceof Error) {\n this.logger.error(`Clearing keystore failed with error: ${e.message}`);\n } else {\n this.logger.error(\"Clearing keystore failed with unknown error\");\n }\n \n return false;\n }\n }\n\n /**\n * Signs the given object as a jwt payload with private key retrieved by given kid.\n * @param payload \n * @param kid \n */\n async signJwt(payload: SignedHttpRequest, kid: string, correlationId?: string): Promise<string> {\n const signJwtMeasurement = this.performanceClient?.startMeasurement(PerformanceEvents.CryptoOptsSignJwt, correlationId);\n const cachedKeyPair = await this.cache.asymmetricKeys.getItem(kid);\n \n if (!cachedKeyPair) {\n throw BrowserAuthError.createSigningKeyNotFoundInStorageError(kid);\n }\n\n // Get public key as JWK\n const publicKeyJwk = await this.browserCrypto.exportJwk(cachedKeyPair.publicKey);\n const publicKeyJwkString = BrowserCrypto.getJwkString(publicKeyJwk);\n \n // Base64URL encode public key thumbprint with keyId only: BASE64URL({ kid: \"FULL_PUBLIC_KEY_HASH\" })\n const encodedKeyIdThumbprint = this.b64Encode.urlEncode(JSON.stringify({ kid: kid }));\n\n // Generate header\n const shrHeader = JoseHeader.getShrHeaderString({ kid: encodedKeyIdThumbprint, alg: publicKeyJwk.alg });\n const encodedShrHeader = this.b64Encode.urlEncode(shrHeader);\n\n // Generate payload\n payload.cnf = {\n jwk: JSON.parse(publicKeyJwkString)\n };\n const encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));\n\n // Form token string\n const tokenString = `${encodedShrHeader}.${encodedPayload}`;\n\n // Sign token\n const tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);\n const signatureBuffer = await this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer);\n const encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));\n\n const signedJwt = `${tokenString}.${encodedSignature}`;\n\n if (signJwtMeasurement) {\n signJwtMeasurement.endMeasurement({\n success: true\n });\n }\n\n return signedJwt;\n }\n\n /**\n * Returns the SHA-256 hash of an input string\n * @param plainText\n */\n async hashString(plainText: string): Promise<string> {\n const hashBuffer: ArrayBuffer = await this.browserCrypto.sha256Digest(plainText);\n const hashBytes = new Uint8Array(hashBuffer);\n return this.b64Encode.urlEncodeArr(hashBytes);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  import { Constants } from '@azure/msal-common';
4
4
  import { MathUtils } from '../utils/MathUtils.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { BrowserAuthError } from '../error/BrowserAuthError.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator } from '../_virtual/_tslib.js';
4
4
  import { CryptoOps } from './CryptoOps.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  import { Constants } from '@azure/msal-common';
4
4
  import { BrowserStringUtils } from '../utils/BrowserStringUtils.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  import { Constants } from '@azure/msal-common';
4
4
  import { BrowserStringUtils } from '../utils/BrowserStringUtils.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  import { __extends } from '../_virtual/_tslib.js';
4
4
  import { StringUtils, AuthError } from '@azure/msal-common';
@@ -29,7 +29,7 @@ var BrowserAuthErrorMessage = {
29
29
  },
30
30
  hashEmptyError: {
31
31
  code: "hash_empty_error",
32
- desc: "Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash."
32
+ desc: "Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. For more visit: aka.ms/msaljs/browser-errors."
33
33
  },
34
34
  hashDoesNotContainStateError: {
35
35
  code: "no_state_in_hash",
@@ -37,7 +37,7 @@ var BrowserAuthErrorMessage = {
37
37
  },
38
38
  hashDoesNotContainKnownPropertiesError: {
39
39
  code: "hash_does_not_contain_known_properties",
40
- desc: "Hash does not contain known properites. Please verify that your redirectUri is not changing the hash."
40
+ desc: "Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. For more visit: aka.ms/msaljs/browser-errors."
41
41
  },
42
42
  unableToParseStateError: {
43
43
  code: "unable_to_parse_state",
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserAuthError.js","sources":["../../src/error/BrowserAuthError.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError, StringUtils } from \"@azure/msal-common\";\n\n/**\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const BrowserAuthErrorMessage = {\n pkceNotGenerated: {\n code: \"pkce_not_created\",\n desc: \"The PKCE code challenge and verifier could not be generated.\"\n },\n cryptoDoesNotExist: {\n code: \"crypto_nonexistent\",\n desc: \"The crypto object or function is not available.\"\n },\n httpMethodNotImplementedError: {\n code: \"http_method_not_implemented\",\n desc: \"The HTTP method given has not been implemented in this library.\"\n },\n emptyNavigateUriError: {\n code: \"empty_navigate_uri\",\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\n },\n hashEmptyError: {\n code: \"hash_empty_error\",\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash.\"\n },\n hashDoesNotContainStateError: {\n code: \"no_state_in_hash\",\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\n },\n hashDoesNotContainKnownPropertiesError: {\n code: \"hash_does_not_contain_known_properties\",\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash.\"\n },\n unableToParseStateError: {\n code: \"unable_to_parse_state\",\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\n },\n stateInteractionTypeMismatchError: {\n code: \"state_interaction_type_mismatch\",\n desc: \"Hash contains state but the interaction type does not match the caller.\"\n },\n interactionInProgress: {\n code: \"interaction_in_progress\",\n desc: \"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n popupWindowError: {\n code: \"popup_window_error\",\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\n },\n emptyWindowError: {\n code: \"empty_window_error\",\n desc: \"window.open returned null or undefined window object.\"\n },\n userCancelledError: {\n code: \"user_cancelled\",\n desc: \"User cancelled the flow.\"\n },\n monitorPopupTimeoutError: {\n code: \"monitor_window_timeout\",\n desc: \"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n monitorIframeTimeoutError: {\n code: \"monitor_window_timeout\",\n desc: \"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n redirectInIframeError: {\n code: \"redirect_in_iframe\",\n desc: \"Code flow is not supported inside an iframe. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\n },\n blockTokenRequestsInHiddenIframeError: {\n code: \"block_iframe_reload\",\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\n },\n blockAcquireTokenInPopupsError: {\n code: \"block_nested_popups\",\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\n },\n iframeClosedPrematurelyError: {\n code: \"iframe_closed_prematurely\",\n desc: \"The iframe being monitored was closed prematurely.\"\n },\n silentLogoutUnsupportedError: {\n code: \"silent_logout_unsupported\",\n desc: \"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.\"\n },\n noAccountError: {\n code: \"no_account_error\",\n desc: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\"\n },\n silentPromptValueError: {\n code: \"silent_prompt_value_error\",\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none'.\"\n },\n noTokenRequestCacheError: {\n code: \"no_token_request_cache_error\",\n desc: \"No token request found in cache.\"\n },\n unableToParseTokenRequestCacheError: {\n code: \"unable_to_parse_token_request_cache_error\",\n desc: \"The cached token request could not be parsed.\"\n },\n noCachedAuthorityError: {\n code: \"no_cached_authority_error\",\n desc: \"No cached authority found.\"\n },\n authRequestNotSet: {\n code: \"auth_request_not_set_error\",\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\n },\n invalidCacheType: {\n code: \"invalid_cache_type\",\n desc: \"Invalid cache type\"\n },\n notInBrowserEnvironment: {\n code: \"non_browser_environment\",\n desc: \"Login and token requests are not supported in non-browser environments.\"\n },\n databaseNotOpen: {\n code: \"database_not_open\",\n desc: \"Database is not open!\"\n },\n noNetworkConnectivity: {\n code: \"no_network_connectivity\",\n desc: \"No network connectivity. Check your internet connection.\"\n },\n postRequestFailed: {\n code: \"post_request_failed\",\n desc: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\"\n },\n getRequestFailed: {\n code: \"get_request_failed\",\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\n },\n failedToParseNetworkResponse: {\n code: \"failed_to_parse_response\",\n desc: \"Failed to parse network response. Check network trace.\"\n },\n unableToLoadTokenError: {\n code: \"unable_to_load_token\",\n desc: \"Error loading token to cache.\"\n },\n signingKeyNotFoundInStorage: {\n code: \"crypto_key_not_found\",\n desc: \"Cryptographic Key or Keypair not found in browser storage.\"\n },\n authCodeRequired: {\n code: \"auth_code_required\",\n desc: \"An authorization code must be provided (as the `code` property on the request) to this flow.\"\n },\n authCodeOrNativeAccountRequired: {\n code: \"auth_code_or_nativeAccountId_required\",\n desc: \"An authorization code or nativeAccountId must be provided to this flow.\"\n },\n databaseUnavailable: {\n code: \"database_unavailable\",\n desc: \"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.\"\n },\n unableToAcquireTokenFromNativePlatform: {\n code: \"unable_to_acquire_token_from_native_platform\",\n desc: \"Unable to acquire token from native platform. For a list of possible reasons visit aka.ms/msaljs/browser-errors.\"\n },\n nativeHandshakeTimeout: {\n code: \"native_handshake_timeout\",\n desc: \"Timed out while attempting to establish connection to browser extension\"\n },\n nativeExtensionNotInstalled: {\n code: \"native_extension_not_installed\",\n desc: \"Native extension is not installed. If you think this is a mistake call the initialize function.\"\n },\n nativeConnectionNotEstablished: {\n code: \"native_connection_not_established\",\n desc: \"Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). For more please visit aka.ms/msaljs/browser-errors.\"\n },\n nativeBrokerCalledBeforeInitialize: {\n code: \"native_broker_called_before_initialize\",\n desc: \"You must call and await the initialize function before attempting to call any other MSAL API when native brokering is enabled. For more please visit aka.ms/msaljs/browser-errors.\"\n },\n nativePromptNotSupported: {\n code: \"native_prompt_not_supported\",\n desc: \"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.\"\n }\n};\n\n/**\n * Browser library error class thrown by the MSAL.js library for SPAs\n */\nexport class BrowserAuthError extends AuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n\n Object.setPrototypeOf(this, BrowserAuthError.prototype);\n this.name = \"BrowserAuthError\";\n }\n\n /**\n * Creates an error thrown when PKCE is not implemented.\n * @param errDetail\n */\n static createPkceNotGeneratedError(errDetail: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code,\n `${BrowserAuthErrorMessage.pkceNotGenerated.desc} Detail:${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the crypto object is unavailable.\n * @param errDetail\n */\n static createCryptoNotAvailableError(errDetail: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code,\n `${BrowserAuthErrorMessage.cryptoDoesNotExist.desc} Detail:${errDetail}`);\n }\n\n /**\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\n * @param method\n */\n static createHttpMethodNotImplementedError(method: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code,\n `${BrowserAuthErrorMessage.httpMethodNotImplementedError.desc} Given Method: ${method}`);\n }\n\n /**\n * Creates an error thrown when the navigation URI is empty.\n */\n static createEmptyNavigationUriError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n * @param hashValue\n */\n static createEmptyHashError(hashValue: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, `${BrowserAuthErrorMessage.hashEmptyError.desc} Given Url: ${hashValue}`);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n */\n static createHashDoesNotContainStateError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value does not contain known properties\n */\n static createHashDoesNotContainKnownPropertiesError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n */\n static createUnableToParseStateError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\n }\n\n /**\n * Creates an error thrown when the state value in the hash does not match the interaction type of the API attempting to consume it.\n */\n static createStateInteractionTypeMismatchError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\n */\n static createInteractionInProgressError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\n }\n\n /**\n * Creates an error thrown when the popup window could not be opened.\n * @param errDetail\n */\n static createPopupWindowError(errDetail?: string): BrowserAuthError {\n let errorMessage = BrowserAuthErrorMessage.popupWindowError.desc;\n errorMessage = !StringUtils.isEmpty(errDetail) ? `${errorMessage} Details: ${errDetail}` : errorMessage;\n return new BrowserAuthError(BrowserAuthErrorMessage.popupWindowError.code, errorMessage);\n }\n\n /**\n * Creates an error thrown when window.open returns an empty window object.\n * @param errDetail\n */\n static createEmptyWindowCreatedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\n }\n\n /**\n * Creates an error thrown when the user closes a popup.\n */\n static createUserCancelledError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code,\n BrowserAuthErrorMessage.userCancelledError.desc);\n }\n\n /**\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\n */\n static createMonitorPopupTimeoutError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code,\n BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\n }\n\n /**\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\n */\n static createMonitorIframeTimeoutError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code,\n BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\n }\n\n /**\n * Creates an error thrown when navigateWindow is called inside an iframe.\n * @param windowParentCheck\n */\n static createRedirectInIframeError(windowParentCheck: boolean): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code,\n `${BrowserAuthErrorMessage.redirectInIframeError.desc} (window.parent !== window) => ${windowParentCheck}`);\n }\n\n /**\n * Creates an error thrown when an auth reload is done inside an iframe.\n */\n static createBlockReloadInHiddenIframeError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code,\n BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\n }\n\n /**\n * Creates an error thrown when a popup attempts to call an acquireToken API\n * @returns\n */\n static createBlockAcquireTokenInPopupsError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code,\n BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\n }\n\n /**\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\n */\n static createIframeClosedPrematurelyError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\n }\n\n /**\n * Creates an error thrown when the logout API is called on any of the silent interaction clients\n */\n static createSilentLogoutUnsupportedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.silentLogoutUnsupportedError.code, BrowserAuthErrorMessage.silentLogoutUnsupportedError.desc);\n }\n\n /**\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\n */\n static createNoAccountError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\n }\n\n /**\n * Creates an error thrown when a given prompt value is invalid for silent requests.\n */\n static createSilentPromptValueError(givenPrompt: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, `${BrowserAuthErrorMessage.silentPromptValueError.desc} Given value: ${givenPrompt}`);\n }\n\n /**\n * Creates an error thrown when the cached token request could not be retrieved from the cache\n */\n static createUnableToParseTokenRequestCacheError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code,\n BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\n }\n\n /**\n * Creates an error thrown when the token request could not be retrieved from the cache\n */\n static createNoTokenRequestCacheError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code,\n BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\n }\n\n /**\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\n */\n static createAuthRequestNotSetError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code,\n BrowserAuthErrorMessage.authRequestNotSet.desc);\n }\n\n /**\n * Creates an error thrown when the authority could not be retrieved from the cache\n */\n static createNoCachedAuthorityError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code,\n BrowserAuthErrorMessage.noCachedAuthorityError.desc);\n }\n\n /**\n * Creates an error thrown if cache type is invalid.\n */\n static createInvalidCacheTypeError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, `${BrowserAuthErrorMessage.invalidCacheType.desc}`);\n }\n\n /**\n * Create an error thrown when login and token requests are made from a non-browser environment\n */\n static createNonBrowserEnvironmentError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\n }\n\n /**\n * Create an error thrown when indexDB database is not open\n */\n static createDatabaseNotOpenError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\n }\n\n /**\n * Create an error thrown when token fetch fails due to no internet\n */\n static createNoNetworkConnectivityError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\n }\n\n /**\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\n */\n static createPostRequestFailedError(errorDesc: string, endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, `${BrowserAuthErrorMessage.postRequestFailed.desc} | Network client threw: ${errorDesc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Create an error thrown when get request fails due to reasons other than internet connectivity\n */\n static createGetRequestFailedError(errorDesc: string, endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, `${BrowserAuthErrorMessage.getRequestFailed.desc} | Network client threw: ${errorDesc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Create an error thrown when network client fails to parse network response\n */\n static createFailedToParseNetworkResponseError(endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, `${BrowserAuthErrorMessage.failedToParseNetworkResponse.desc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Create an error thrown when the necessary information is not available to sideload tokens\n */\n static createUnableToLoadTokenError(errorDetail: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToLoadTokenError.code, `${BrowserAuthErrorMessage.unableToLoadTokenError.desc} | ${errorDetail}`);\n }\n\n /**\n * Create an error thrown when the queried cryptographic key is not found in IndexedDB\n */\n static createSigningKeyNotFoundInStorageError(keyId: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code, `${BrowserAuthErrorMessage.signingKeyNotFoundInStorage.desc} | No match found for KeyId: ${keyId}`);\n }\n\n /**\n * Create an error when an authorization code is required but not provided\n */\n static createAuthCodeRequiredError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeRequired.code, BrowserAuthErrorMessage.authCodeRequired.desc);\n }\n\n /**\n * Create an error when an authorization code or native account ID is required but not provided\n */\n static createAuthCodeOrNativeAccountIdRequiredError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.code, BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.desc);\n }\n\n /**\n * Create an error when IndexedDB is unavailable\n */\n static createDatabaseUnavailableError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseUnavailable.code, BrowserAuthErrorMessage.databaseUnavailable.desc);\n }\n\n /**\n * Create an error when native token acquisition is not possible\n */\n static createUnableToAcquireTokenFromNativePlatformError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.code, BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.desc);\n }\n\n /**\n * Create an error thrown when Handshake with browser extension times out\n */\n static createNativeHandshakeTimeoutError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeHandshakeTimeout.code, BrowserAuthErrorMessage.nativeHandshakeTimeout.desc);\n }\n\n /**\n * Create an error thrown when browser extension is not installed\n */\n static createNativeExtensionNotInstalledError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeExtensionNotInstalled.code, BrowserAuthErrorMessage.nativeExtensionNotInstalled.desc);\n }\n\n /**\n * Create an error when native connection has not been established\n * @returns\n */\n static createNativeConnectionNotEstablishedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeConnectionNotEstablished.code, BrowserAuthErrorMessage.nativeConnectionNotEstablished.desc);\n }\n\n /**\n * Create an error thrown when the initialize function hasn't been called\n */\n static createNativeBrokerCalledBeforeInitialize(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.code, BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.desc);\n }\n\n /**\n * Create an error thrown when requesting a token directly from the native platform with an unsupported prompt parameter e.g. select_account, login or create\n * These requests must go through eSTS to ensure eSTS is aware of the new account\n */\n static createNativePromptParameterNotSupportedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativePromptNotSupported.code, BrowserAuthErrorMessage.nativePromptNotSupported.desc);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrowserAuthError.js","sources":["../../src/error/BrowserAuthError.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError, StringUtils } from \"@azure/msal-common\";\n\n/**\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const BrowserAuthErrorMessage = {\n pkceNotGenerated: {\n code: \"pkce_not_created\",\n desc: \"The PKCE code challenge and verifier could not be generated.\"\n },\n cryptoDoesNotExist: {\n code: \"crypto_nonexistent\",\n desc: \"The crypto object or function is not available.\"\n },\n httpMethodNotImplementedError: {\n code: \"http_method_not_implemented\",\n desc: \"The HTTP method given has not been implemented in this library.\"\n },\n emptyNavigateUriError: {\n code: \"empty_navigate_uri\",\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\n },\n hashEmptyError: {\n code: \"hash_empty_error\",\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n hashDoesNotContainStateError: {\n code: \"no_state_in_hash\",\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\n },\n hashDoesNotContainKnownPropertiesError: {\n code: \"hash_does_not_contain_known_properties\",\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n unableToParseStateError: {\n code: \"unable_to_parse_state\",\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\n },\n stateInteractionTypeMismatchError: {\n code: \"state_interaction_type_mismatch\",\n desc: \"Hash contains state but the interaction type does not match the caller.\"\n },\n interactionInProgress: {\n code: \"interaction_in_progress\",\n desc: \"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n popupWindowError: {\n code: \"popup_window_error\",\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\n },\n emptyWindowError: {\n code: \"empty_window_error\",\n desc: \"window.open returned null or undefined window object.\"\n },\n userCancelledError: {\n code: \"user_cancelled\",\n desc: \"User cancelled the flow.\"\n },\n monitorPopupTimeoutError: {\n code: \"monitor_window_timeout\",\n desc: \"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n monitorIframeTimeoutError: {\n code: \"monitor_window_timeout\",\n desc: \"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\n },\n redirectInIframeError: {\n code: \"redirect_in_iframe\",\n desc: \"Code flow is not supported inside an iframe. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\n },\n blockTokenRequestsInHiddenIframeError: {\n code: \"block_iframe_reload\",\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\n },\n blockAcquireTokenInPopupsError: {\n code: \"block_nested_popups\",\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\n },\n iframeClosedPrematurelyError: {\n code: \"iframe_closed_prematurely\",\n desc: \"The iframe being monitored was closed prematurely.\"\n },\n silentLogoutUnsupportedError: {\n code: \"silent_logout_unsupported\",\n desc: \"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.\"\n },\n noAccountError: {\n code: \"no_account_error\",\n desc: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\"\n },\n silentPromptValueError: {\n code: \"silent_prompt_value_error\",\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none'.\"\n },\n noTokenRequestCacheError: {\n code: \"no_token_request_cache_error\",\n desc: \"No token request found in cache.\"\n },\n unableToParseTokenRequestCacheError: {\n code: \"unable_to_parse_token_request_cache_error\",\n desc: \"The cached token request could not be parsed.\"\n },\n noCachedAuthorityError: {\n code: \"no_cached_authority_error\",\n desc: \"No cached authority found.\"\n },\n authRequestNotSet: {\n code: \"auth_request_not_set_error\",\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\n },\n invalidCacheType: {\n code: \"invalid_cache_type\",\n desc: \"Invalid cache type\"\n },\n notInBrowserEnvironment: {\n code: \"non_browser_environment\",\n desc: \"Login and token requests are not supported in non-browser environments.\"\n },\n databaseNotOpen: {\n code: \"database_not_open\",\n desc: \"Database is not open!\"\n },\n noNetworkConnectivity: {\n code: \"no_network_connectivity\",\n desc: \"No network connectivity. Check your internet connection.\"\n },\n postRequestFailed: {\n code: \"post_request_failed\",\n desc: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\"\n },\n getRequestFailed: {\n code: \"get_request_failed\",\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\n },\n failedToParseNetworkResponse: {\n code: \"failed_to_parse_response\",\n desc: \"Failed to parse network response. Check network trace.\"\n },\n unableToLoadTokenError: {\n code: \"unable_to_load_token\",\n desc: \"Error loading token to cache.\"\n },\n signingKeyNotFoundInStorage: {\n code: \"crypto_key_not_found\",\n desc: \"Cryptographic Key or Keypair not found in browser storage.\"\n },\n authCodeRequired: {\n code: \"auth_code_required\",\n desc: \"An authorization code must be provided (as the `code` property on the request) to this flow.\"\n },\n authCodeOrNativeAccountRequired: {\n code: \"auth_code_or_nativeAccountId_required\",\n desc: \"An authorization code or nativeAccountId must be provided to this flow.\"\n },\n databaseUnavailable: {\n code: \"database_unavailable\",\n desc: \"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.\"\n },\n unableToAcquireTokenFromNativePlatform: {\n code: \"unable_to_acquire_token_from_native_platform\",\n desc: \"Unable to acquire token from native platform. For a list of possible reasons visit aka.ms/msaljs/browser-errors.\"\n },\n nativeHandshakeTimeout: {\n code: \"native_handshake_timeout\",\n desc: \"Timed out while attempting to establish connection to browser extension\"\n },\n nativeExtensionNotInstalled: {\n code: \"native_extension_not_installed\",\n desc: \"Native extension is not installed. If you think this is a mistake call the initialize function.\"\n },\n nativeConnectionNotEstablished: {\n code: \"native_connection_not_established\",\n desc: \"Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). For more please visit aka.ms/msaljs/browser-errors.\"\n },\n nativeBrokerCalledBeforeInitialize: {\n code: \"native_broker_called_before_initialize\",\n desc: \"You must call and await the initialize function before attempting to call any other MSAL API when native brokering is enabled. For more please visit aka.ms/msaljs/browser-errors.\"\n },\n nativePromptNotSupported: {\n code: \"native_prompt_not_supported\",\n desc: \"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.\"\n }\n};\n\n/**\n * Browser library error class thrown by the MSAL.js library for SPAs\n */\nexport class BrowserAuthError extends AuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n\n Object.setPrototypeOf(this, BrowserAuthError.prototype);\n this.name = \"BrowserAuthError\";\n }\n\n /**\n * Creates an error thrown when PKCE is not implemented.\n * @param errDetail\n */\n static createPkceNotGeneratedError(errDetail: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code,\n `${BrowserAuthErrorMessage.pkceNotGenerated.desc} Detail:${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the crypto object is unavailable.\n * @param errDetail\n */\n static createCryptoNotAvailableError(errDetail: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code,\n `${BrowserAuthErrorMessage.cryptoDoesNotExist.desc} Detail:${errDetail}`);\n }\n\n /**\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\n * @param method\n */\n static createHttpMethodNotImplementedError(method: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code,\n `${BrowserAuthErrorMessage.httpMethodNotImplementedError.desc} Given Method: ${method}`);\n }\n\n /**\n * Creates an error thrown when the navigation URI is empty.\n */\n static createEmptyNavigationUriError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n * @param hashValue\n */\n static createEmptyHashError(hashValue: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, `${BrowserAuthErrorMessage.hashEmptyError.desc} Given Url: ${hashValue}`);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n */\n static createHashDoesNotContainStateError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value does not contain known properties\n */\n static createHashDoesNotContainKnownPropertiesError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\n }\n\n /**\n * Creates an error thrown when the hash string value is unexpectedly empty.\n */\n static createUnableToParseStateError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\n }\n\n /**\n * Creates an error thrown when the state value in the hash does not match the interaction type of the API attempting to consume it.\n */\n static createStateInteractionTypeMismatchError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\n */\n static createInteractionInProgressError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\n }\n\n /**\n * Creates an error thrown when the popup window could not be opened.\n * @param errDetail\n */\n static createPopupWindowError(errDetail?: string): BrowserAuthError {\n let errorMessage = BrowserAuthErrorMessage.popupWindowError.desc;\n errorMessage = !StringUtils.isEmpty(errDetail) ? `${errorMessage} Details: ${errDetail}` : errorMessage;\n return new BrowserAuthError(BrowserAuthErrorMessage.popupWindowError.code, errorMessage);\n }\n\n /**\n * Creates an error thrown when window.open returns an empty window object.\n * @param errDetail\n */\n static createEmptyWindowCreatedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\n }\n\n /**\n * Creates an error thrown when the user closes a popup.\n */\n static createUserCancelledError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code,\n BrowserAuthErrorMessage.userCancelledError.desc);\n }\n\n /**\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\n */\n static createMonitorPopupTimeoutError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code,\n BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\n }\n\n /**\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\n */\n static createMonitorIframeTimeoutError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code,\n BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\n }\n\n /**\n * Creates an error thrown when navigateWindow is called inside an iframe.\n * @param windowParentCheck\n */\n static createRedirectInIframeError(windowParentCheck: boolean): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code,\n `${BrowserAuthErrorMessage.redirectInIframeError.desc} (window.parent !== window) => ${windowParentCheck}`);\n }\n\n /**\n * Creates an error thrown when an auth reload is done inside an iframe.\n */\n static createBlockReloadInHiddenIframeError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code,\n BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\n }\n\n /**\n * Creates an error thrown when a popup attempts to call an acquireToken API\n * @returns\n */\n static createBlockAcquireTokenInPopupsError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code,\n BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\n }\n\n /**\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\n */\n static createIframeClosedPrematurelyError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\n }\n\n /**\n * Creates an error thrown when the logout API is called on any of the silent interaction clients\n */\n static createSilentLogoutUnsupportedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.silentLogoutUnsupportedError.code, BrowserAuthErrorMessage.silentLogoutUnsupportedError.desc);\n }\n\n /**\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\n */\n static createNoAccountError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\n }\n\n /**\n * Creates an error thrown when a given prompt value is invalid for silent requests.\n */\n static createSilentPromptValueError(givenPrompt: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, `${BrowserAuthErrorMessage.silentPromptValueError.desc} Given value: ${givenPrompt}`);\n }\n\n /**\n * Creates an error thrown when the cached token request could not be retrieved from the cache\n */\n static createUnableToParseTokenRequestCacheError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code,\n BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\n }\n\n /**\n * Creates an error thrown when the token request could not be retrieved from the cache\n */\n static createNoTokenRequestCacheError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code,\n BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\n }\n\n /**\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\n */\n static createAuthRequestNotSetError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code,\n BrowserAuthErrorMessage.authRequestNotSet.desc);\n }\n\n /**\n * Creates an error thrown when the authority could not be retrieved from the cache\n */\n static createNoCachedAuthorityError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code,\n BrowserAuthErrorMessage.noCachedAuthorityError.desc);\n }\n\n /**\n * Creates an error thrown if cache type is invalid.\n */\n static createInvalidCacheTypeError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, `${BrowserAuthErrorMessage.invalidCacheType.desc}`);\n }\n\n /**\n * Create an error thrown when login and token requests are made from a non-browser environment\n */\n static createNonBrowserEnvironmentError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\n }\n\n /**\n * Create an error thrown when indexDB database is not open\n */\n static createDatabaseNotOpenError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\n }\n\n /**\n * Create an error thrown when token fetch fails due to no internet\n */\n static createNoNetworkConnectivityError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\n }\n\n /**\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\n */\n static createPostRequestFailedError(errorDesc: string, endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, `${BrowserAuthErrorMessage.postRequestFailed.desc} | Network client threw: ${errorDesc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Create an error thrown when get request fails due to reasons other than internet connectivity\n */\n static createGetRequestFailedError(errorDesc: string, endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, `${BrowserAuthErrorMessage.getRequestFailed.desc} | Network client threw: ${errorDesc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Create an error thrown when network client fails to parse network response\n */\n static createFailedToParseNetworkResponseError(endpoint: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, `${BrowserAuthErrorMessage.failedToParseNetworkResponse.desc} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Create an error thrown when the necessary information is not available to sideload tokens\n */\n static createUnableToLoadTokenError(errorDetail: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToLoadTokenError.code, `${BrowserAuthErrorMessage.unableToLoadTokenError.desc} | ${errorDetail}`);\n }\n\n /**\n * Create an error thrown when the queried cryptographic key is not found in IndexedDB\n */\n static createSigningKeyNotFoundInStorageError(keyId: string): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code, `${BrowserAuthErrorMessage.signingKeyNotFoundInStorage.desc} | No match found for KeyId: ${keyId}`);\n }\n\n /**\n * Create an error when an authorization code is required but not provided\n */\n static createAuthCodeRequiredError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeRequired.code, BrowserAuthErrorMessage.authCodeRequired.desc);\n }\n\n /**\n * Create an error when an authorization code or native account ID is required but not provided\n */\n static createAuthCodeOrNativeAccountIdRequiredError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.code, BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.desc);\n }\n\n /**\n * Create an error when IndexedDB is unavailable\n */\n static createDatabaseUnavailableError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseUnavailable.code, BrowserAuthErrorMessage.databaseUnavailable.desc);\n }\n\n /**\n * Create an error when native token acquisition is not possible\n */\n static createUnableToAcquireTokenFromNativePlatformError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.code, BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.desc);\n }\n\n /**\n * Create an error thrown when Handshake with browser extension times out\n */\n static createNativeHandshakeTimeoutError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeHandshakeTimeout.code, BrowserAuthErrorMessage.nativeHandshakeTimeout.desc);\n }\n\n /**\n * Create an error thrown when browser extension is not installed\n */\n static createNativeExtensionNotInstalledError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeExtensionNotInstalled.code, BrowserAuthErrorMessage.nativeExtensionNotInstalled.desc);\n }\n\n /**\n * Create an error when native connection has not been established\n * @returns\n */\n static createNativeConnectionNotEstablishedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeConnectionNotEstablished.code, BrowserAuthErrorMessage.nativeConnectionNotEstablished.desc);\n }\n\n /**\n * Create an error thrown when the initialize function hasn't been called\n */\n static createNativeBrokerCalledBeforeInitialize(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.code, BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.desc);\n }\n\n /**\n * Create an error thrown when requesting a token directly from the native platform with an unsupported prompt parameter e.g. select_account, login or create\n * These requests must go through eSTS to ensure eSTS is aware of the new account\n */\n static createNativePromptParameterNotSupportedError(): BrowserAuthError {\n return new BrowserAuthError(BrowserAuthErrorMessage.nativePromptNotSupported.code, BrowserAuthErrorMessage.nativePromptNotSupported.desc);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  import { __extends } from '../_virtual/_tslib.js';
4
4
  import { AuthError } from '@azure/msal-common';
@@ -11,7 +11,8 @@ export declare enum NativeStatusCode {
11
11
  USER_CANCEL = "USER_CANCEL",
12
12
  NO_NETWORK = "NO_NETWORK",
13
13
  TRANSIENT_ERROR = "TRANSIENT_ERROR",
14
- PERSISTENT_ERROR = "PERSISTENT_ERROR"
14
+ PERSISTENT_ERROR = "PERSISTENT_ERROR",
15
+ DISABLED = "DISABLED"
15
16
  }
16
17
  export declare const NativeAuthErrorMessage: {
17
18
  extensionError: {
@@ -1 +1 @@
1
- {"version":3,"file":"NativeAuthError.d.ts","sourceRoot":"","sources":["../../src/error/NativeAuthError.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAgC,MAAM,oBAAoB,CAAC;AAG7E,oBAAY,OAAO,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,oBAAY,gBAAgB;IACxB,yBAAyB,8BAA8B;IACvD,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;CACxC;AAED,eAAO,MAAM,sBAAsB;;;;;;;;CAQlC,CAAC;AAEF,qBAAa,eAAgB,SAAQ,SAAS;IAC1C,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;gBAEb,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO;IAQjE;;OAEG;IACH,OAAO,IAAI,OAAO;IAalB;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS;IAe/E;;;OAGG;IACH,MAAM,CAAC,qBAAqB,IAAI,eAAe;CAGlD"}
1
+ {"version":3,"file":"NativeAuthError.d.ts","sourceRoot":"","sources":["../../src/error/NativeAuthError.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAgC,MAAM,oBAAoB,CAAC;AAG7E,oBAAY,OAAO,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,oBAAY,gBAAgB;IACxB,yBAAyB,8BAA8B;IACvD,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,QAAQ,aAAa;CACxB;AAED,eAAO,MAAM,sBAAsB;;;;;;;;CAQlC,CAAC;AAEF,qBAAa,eAAgB,SAAQ,SAAS;IAC1C,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;gBAEb,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO;IAQjE;;OAEG;IACH,OAAO,IAAI,OAAO;IAalB;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS;IAe/E;;;OAGG;IACH,MAAM,CAAC,qBAAqB,IAAI,eAAe;CAGlD"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  import { __extends } from '../_virtual/_tslib.js';
4
4
  import { InteractionRequiredAuthError, AuthError } from '@azure/msal-common';
@@ -15,6 +15,7 @@ var NativeStatusCode;
15
15
  NativeStatusCode["NO_NETWORK"] = "NO_NETWORK";
16
16
  NativeStatusCode["TRANSIENT_ERROR"] = "TRANSIENT_ERROR";
17
17
  NativeStatusCode["PERSISTENT_ERROR"] = "PERSISTENT_ERROR";
18
+ NativeStatusCode["DISABLED"] = "DISABLED";
18
19
  })(NativeStatusCode || (NativeStatusCode = {}));
19
20
  var NativeAuthErrorMessage = {
20
21
  extensionError: {
@@ -38,7 +39,7 @@ var NativeAuthError = /** @class */ (function (_super) {
38
39
  * These errors should result in a fallback to the 'standard' browser based auth flow.
39
40
  */
40
41
  NativeAuthError.prototype.isFatal = function () {
41
- if (this.ext && this.ext.status && this.ext.status === NativeStatusCode.PERSISTENT_ERROR) {
42
+ if (this.ext && this.ext.status && (this.ext.status === NativeStatusCode.PERSISTENT_ERROR || this.ext.status === NativeStatusCode.DISABLED)) {
42
43
  return true;
43
44
  }
44
45
  switch (this.errorCode) {
@@ -1 +1 @@
1
- {"version":3,"file":"NativeAuthError.js","sources":["../../src/error/NativeAuthError.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError, InteractionRequiredAuthError } from \"@azure/msal-common\";\nimport { BrowserAuthError } from \"./BrowserAuthError\";\n\nexport type OSError = {\n error: number;\n protocol_error: string;\n properties: object;\n status: string;\n retryable?: boolean;\n};\n\nexport enum NativeStatusCode {\n USER_INTERACTION_REQUIRED = \"USER_INTERACTION_REQUIRED\",\n USER_CANCEL = \"USER_CANCEL\",\n NO_NETWORK = \"NO_NETWORK\",\n TRANSIENT_ERROR = \"TRANSIENT_ERROR\",\n PERSISTENT_ERROR = \"PERSISTENT_ERROR\", \n}\n\nexport const NativeAuthErrorMessage = {\n extensionError: {\n code: \"ContentError\"\n },\n userSwitch: {\n code: \"user_switch\",\n desc: \"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again.\"\n }\n};\n\nexport class NativeAuthError extends AuthError {\n ext: OSError | undefined;\n\n constructor(errorCode: string, description: string, ext?: OSError) {\n super(errorCode, description);\n\n Object.setPrototypeOf(this, NativeAuthError.prototype);\n this.name = \"NativeAuthError\";\n this.ext = ext;\n }\n\n /**\n * These errors should result in a fallback to the 'standard' browser based auth flow.\n */\n isFatal(): boolean {\n if (this.ext && this.ext.status && this.ext.status === NativeStatusCode.PERSISTENT_ERROR) {\n return true;\n }\n \n switch (this.errorCode) {\n case NativeAuthErrorMessage.extensionError.code:\n return true;\n default:\n return false;\n }\n }\n\n /**\n * Create the appropriate error object based on the WAM status code.\n * @param code \n * @param description \n * @param ext \n * @returns \n */\n static createError(code: string, description: string, ext?: OSError): AuthError {\n if (ext && ext.status) {\n switch (ext.status) {\n case NativeStatusCode.USER_INTERACTION_REQUIRED:\n return new InteractionRequiredAuthError(code, description);\n case NativeStatusCode.USER_CANCEL:\n return BrowserAuthError.createUserCancelledError();\n case NativeStatusCode.NO_NETWORK:\n return BrowserAuthError.createNoNetworkConnectivityError();\n }\n }\n\n return new NativeAuthError(code, description, ext);\n }\n\n /**\n * Creates user switch error when the user chooses a different account in the native broker prompt\n * @returns \n */\n static createUserSwitchError(): NativeAuthError {\n return new NativeAuthError(NativeAuthErrorMessage.userSwitch.code, NativeAuthErrorMessage.userSwitch.desc);\n }\n}\n"],"names":[],"mappings":";;;;;;AAAA;;;;IAgBY;AAAZ,WAAY,gBAAgB;IACxB,2EAAuD,CAAA;IACvD,+CAA2B,CAAA;IAC3B,6CAAyB,CAAA;IACzB,uDAAmC,CAAA;IACnC,yDAAqC,CAAA;AACzC,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B;IAEY,sBAAsB,GAAG;IAClC,cAAc,EAAE;QACZ,IAAI,EAAE,cAAc;KACvB;IACD,UAAU,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,oKAAoK;KAC7K;EACH;;IAEmC,mCAAS;IAG1C,yBAAY,SAAiB,EAAE,WAAmB,EAAE,GAAa;QAAjE,YACI,kBAAM,SAAS,EAAE,WAAW,CAAC,SAKhC;QAHG,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;QACvD,KAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,KAAI,CAAC,GAAG,GAAG,GAAG,CAAC;;KAClB;;;;IAKD,iCAAO,GAAP;QACI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,gBAAgB,CAAC,gBAAgB,EAAE;YACtF,OAAO,IAAI,CAAC;SACf;QAED,QAAQ,IAAI,CAAC,SAAS;YAClB,KAAK,sBAAsB,CAAC,cAAc,CAAC,IAAI;gBAC3C,OAAO,IAAI,CAAC;YAChB;gBACI,OAAO,KAAK,CAAC;SACpB;KACJ;;;;;;;;IASM,2BAAW,GAAlB,UAAmB,IAAY,EAAE,WAAmB,EAAE,GAAa;QAC/D,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE;YACnB,QAAQ,GAAG,CAAC,MAAM;gBACd,KAAK,gBAAgB,CAAC,yBAAyB;oBAC3C,OAAO,IAAI,4BAA4B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC/D,KAAK,gBAAgB,CAAC,WAAW;oBAC7B,OAAO,gBAAgB,CAAC,wBAAwB,EAAE,CAAC;gBACvD,KAAK,gBAAgB,CAAC,UAAU;oBAC5B,OAAO,gBAAgB,CAAC,gCAAgC,EAAE,CAAC;aAClE;SACJ;QAED,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;KACtD;;;;;IAMM,qCAAqB,GAA5B;QACI,OAAO,IAAI,eAAe,CAAC,sBAAsB,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC9G;IACL,sBAAC;AAAD,CAxDA,CAAqC,SAAS;;;;"}
1
+ {"version":3,"file":"NativeAuthError.js","sources":["../../src/error/NativeAuthError.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError, InteractionRequiredAuthError } from \"@azure/msal-common\";\nimport { BrowserAuthError } from \"./BrowserAuthError\";\n\nexport type OSError = {\n error: number;\n protocol_error: string;\n properties: object;\n status: string;\n retryable?: boolean;\n};\n\nexport enum NativeStatusCode {\n USER_INTERACTION_REQUIRED = \"USER_INTERACTION_REQUIRED\",\n USER_CANCEL = \"USER_CANCEL\",\n NO_NETWORK = \"NO_NETWORK\",\n TRANSIENT_ERROR = \"TRANSIENT_ERROR\",\n PERSISTENT_ERROR = \"PERSISTENT_ERROR\", \n DISABLED = \"DISABLED\"\n}\n\nexport const NativeAuthErrorMessage = {\n extensionError: {\n code: \"ContentError\"\n },\n userSwitch: {\n code: \"user_switch\",\n desc: \"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again.\"\n }\n};\n\nexport class NativeAuthError extends AuthError {\n ext: OSError | undefined;\n\n constructor(errorCode: string, description: string, ext?: OSError) {\n super(errorCode, description);\n\n Object.setPrototypeOf(this, NativeAuthError.prototype);\n this.name = \"NativeAuthError\";\n this.ext = ext;\n }\n\n /**\n * These errors should result in a fallback to the 'standard' browser based auth flow.\n */\n isFatal(): boolean {\n if (this.ext && this.ext.status && (this.ext.status === NativeStatusCode.PERSISTENT_ERROR || this.ext.status === NativeStatusCode.DISABLED)) {\n return true;\n }\n \n switch (this.errorCode) {\n case NativeAuthErrorMessage.extensionError.code:\n return true;\n default:\n return false;\n }\n }\n\n /**\n * Create the appropriate error object based on the WAM status code.\n * @param code \n * @param description \n * @param ext \n * @returns \n */\n static createError(code: string, description: string, ext?: OSError): AuthError {\n if (ext && ext.status) {\n switch (ext.status) {\n case NativeStatusCode.USER_INTERACTION_REQUIRED:\n return new InteractionRequiredAuthError(code, description);\n case NativeStatusCode.USER_CANCEL:\n return BrowserAuthError.createUserCancelledError();\n case NativeStatusCode.NO_NETWORK:\n return BrowserAuthError.createNoNetworkConnectivityError();\n }\n }\n\n return new NativeAuthError(code, description, ext);\n }\n\n /**\n * Creates user switch error when the user chooses a different account in the native broker prompt\n * @returns \n */\n static createUserSwitchError(): NativeAuthError {\n return new NativeAuthError(NativeAuthErrorMessage.userSwitch.code, NativeAuthErrorMessage.userSwitch.desc);\n }\n}\n"],"names":[],"mappings":";;;;;;AAAA;;;;IAgBY;AAAZ,WAAY,gBAAgB;IACxB,2EAAuD,CAAA;IACvD,+CAA2B,CAAA;IAC3B,6CAAyB,CAAA;IACzB,uDAAmC,CAAA;IACnC,yDAAqC,CAAA;IACrC,yCAAqB,CAAA;AACzB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;IAEY,sBAAsB,GAAG;IAClC,cAAc,EAAE;QACZ,IAAI,EAAE,cAAc;KACvB;IACD,UAAU,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,oKAAoK;KAC7K;EACH;;IAEmC,mCAAS;IAG1C,yBAAY,SAAiB,EAAE,WAAmB,EAAE,GAAa;QAAjE,YACI,kBAAM,SAAS,EAAE,WAAW,CAAC,SAKhC;QAHG,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;QACvD,KAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,KAAI,CAAC,GAAG,GAAG,GAAG,CAAC;;KAClB;;;;IAKD,iCAAO,GAAP;QACI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,gBAAgB,CAAC,gBAAgB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,gBAAgB,CAAC,QAAQ,CAAC,EAAE;YACzI,OAAO,IAAI,CAAC;SACf;QAED,QAAQ,IAAI,CAAC,SAAS;YAClB,KAAK,sBAAsB,CAAC,cAAc,CAAC,IAAI;gBAC3C,OAAO,IAAI,CAAC;YAChB;gBACI,OAAO,KAAK,CAAC;SACpB;KACJ;;;;;;;;IASM,2BAAW,GAAlB,UAAmB,IAAY,EAAE,WAAmB,EAAE,GAAa;QAC/D,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE;YACnB,QAAQ,GAAG,CAAC,MAAM;gBACd,KAAK,gBAAgB,CAAC,yBAAyB;oBAC3C,OAAO,IAAI,4BAA4B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC/D,KAAK,gBAAgB,CAAC,WAAW;oBAC7B,OAAO,gBAAgB,CAAC,wBAAwB,EAAE,CAAC;gBACvD,KAAK,gBAAgB,CAAC,UAAU;oBAC5B,OAAO,gBAAgB,CAAC,gCAAgC,EAAE,CAAC;aAClE;SACJ;QAED,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;KACtD;;;;;IAMM,qCAAqB,GAA5B;QACI,OAAO,IAAI,eAAe,CAAC,sBAAsB,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC9G;IACL,sBAAC;AAAD,CAxDA,CAAqC,SAAS;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  import { AccountEntity, CacheManager } from '@azure/msal-common';
4
4
  import { EventType } from './EventType.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  import { EventType } from './EventType.js';
4
4
  import { InteractionType, InteractionStatus } from '../utils/BrowserConstants.js';
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
1
+ /*! @azure/msal-browser v2.25.0 2022-06-06 */
2
2
  'use strict';
3
3
  /*
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.