@azure/msal-common 6.0.0 → 6.3.0-beta.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 (188) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +62 -62
  3. package/dist/_virtual/_tslib.js +1 -1
  4. package/dist/account/AccountInfo.d.ts +6 -1
  5. package/dist/account/AccountInfo.d.ts.map +1 -1
  6. package/dist/account/AuthToken.js +1 -1
  7. package/dist/account/AuthToken.js.map +1 -1
  8. package/dist/account/CcsCredential.js +1 -1
  9. package/dist/account/CcsCredential.js.map +1 -1
  10. package/dist/account/ClientInfo.js +1 -1
  11. package/dist/account/ClientInfo.js.map +1 -1
  12. package/dist/account/TokenClaims.d.ts +30 -0
  13. package/dist/account/TokenClaims.d.ts.map +1 -1
  14. package/dist/authority/Authority.d.ts +9 -1
  15. package/dist/authority/Authority.d.ts.map +1 -1
  16. package/dist/authority/Authority.js +36 -11
  17. package/dist/authority/Authority.js.map +1 -1
  18. package/dist/authority/AuthorityFactory.d.ts +2 -2
  19. package/dist/authority/AuthorityFactory.d.ts.map +1 -1
  20. package/dist/authority/AuthorityFactory.js +5 -5
  21. package/dist/authority/AuthorityFactory.js.map +1 -1
  22. package/dist/authority/AuthorityOptions.d.ts +8 -0
  23. package/dist/authority/AuthorityOptions.d.ts.map +1 -1
  24. package/dist/authority/AuthorityOptions.js +24 -0
  25. package/dist/authority/AuthorityOptions.js.map +1 -0
  26. package/dist/authority/AuthorityType.js +1 -1
  27. package/dist/authority/AuthorityType.js.map +1 -1
  28. package/dist/authority/CloudInstanceDiscoveryResponse.js +1 -1
  29. package/dist/authority/CloudInstanceDiscoveryResponse.js.map +1 -1
  30. package/dist/authority/ImdsOptions.d.ts +7 -0
  31. package/dist/authority/ImdsOptions.d.ts.map +1 -0
  32. package/dist/authority/OpenIdConfigResponse.js +1 -1
  33. package/dist/authority/OpenIdConfigResponse.js.map +1 -1
  34. package/dist/authority/ProtocolMode.js +1 -1
  35. package/dist/authority/ProtocolMode.js.map +1 -1
  36. package/dist/authority/RegionDiscovery.d.ts +3 -6
  37. package/dist/authority/RegionDiscovery.d.ts.map +1 -1
  38. package/dist/authority/RegionDiscovery.js +19 -11
  39. package/dist/authority/RegionDiscovery.js.map +1 -1
  40. package/dist/cache/CacheManager.d.ts +1 -1
  41. package/dist/cache/CacheManager.js +3 -3
  42. package/dist/cache/CacheManager.js.map +1 -1
  43. package/dist/cache/entities/AccessTokenEntity.js +1 -1
  44. package/dist/cache/entities/AccessTokenEntity.js.map +1 -1
  45. package/dist/cache/entities/AccountEntity.d.ts +3 -1
  46. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  47. package/dist/cache/entities/AccountEntity.js +16 -12
  48. package/dist/cache/entities/AccountEntity.js.map +1 -1
  49. package/dist/cache/entities/AppMetadataEntity.js +1 -1
  50. package/dist/cache/entities/AppMetadataEntity.js.map +1 -1
  51. package/dist/cache/entities/AuthorityMetadataEntity.js +1 -1
  52. package/dist/cache/entities/AuthorityMetadataEntity.js.map +1 -1
  53. package/dist/cache/entities/CacheRecord.js +1 -1
  54. package/dist/cache/entities/CacheRecord.js.map +1 -1
  55. package/dist/cache/entities/CredentialEntity.js +5 -5
  56. package/dist/cache/entities/CredentialEntity.js.map +1 -1
  57. package/dist/cache/entities/IdTokenEntity.js +1 -1
  58. package/dist/cache/entities/IdTokenEntity.js.map +1 -1
  59. package/dist/cache/entities/RefreshTokenEntity.js +1 -1
  60. package/dist/cache/entities/RefreshTokenEntity.js.map +1 -1
  61. package/dist/cache/entities/ServerTelemetryEntity.js +1 -1
  62. package/dist/cache/entities/ServerTelemetryEntity.js.map +1 -1
  63. package/dist/cache/entities/ThrottlingEntity.js +1 -1
  64. package/dist/cache/entities/ThrottlingEntity.js.map +1 -1
  65. package/dist/cache/persistence/TokenCacheContext.js +1 -1
  66. package/dist/cache/persistence/TokenCacheContext.js.map +1 -1
  67. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  68. package/dist/client/AuthorizationCodeClient.js +122 -93
  69. package/dist/client/AuthorizationCodeClient.js.map +1 -1
  70. package/dist/client/BaseClient.js +2 -2
  71. package/dist/client/BaseClient.js.map +1 -1
  72. package/dist/client/ClientCredentialClient.d.ts.map +1 -1
  73. package/dist/client/ClientCredentialClient.js +4 -3
  74. package/dist/client/ClientCredentialClient.js.map +1 -1
  75. package/dist/client/DeviceCodeClient.d.ts.map +1 -1
  76. package/dist/client/DeviceCodeClient.js +4 -2
  77. package/dist/client/DeviceCodeClient.js.map +1 -1
  78. package/dist/client/OnBehalfOfClient.js +3 -2
  79. package/dist/client/OnBehalfOfClient.js.map +1 -1
  80. package/dist/client/RefreshTokenClient.js +2 -1
  81. package/dist/client/RefreshTokenClient.js.map +1 -1
  82. package/dist/client/SilentFlowClient.js +1 -1
  83. package/dist/client/SilentFlowClient.js.map +1 -1
  84. package/dist/client/UsernamePasswordClient.d.ts.map +1 -1
  85. package/dist/client/UsernamePasswordClient.js +3 -1
  86. package/dist/client/UsernamePasswordClient.js.map +1 -1
  87. package/dist/config/ClientConfiguration.d.ts +29 -1
  88. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  89. package/dist/config/ClientConfiguration.js +21 -8
  90. package/dist/config/ClientConfiguration.js.map +1 -1
  91. package/dist/crypto/ICrypto.d.ts +4 -2
  92. package/dist/crypto/ICrypto.d.ts.map +1 -1
  93. package/dist/crypto/ICrypto.js +1 -1
  94. package/dist/crypto/ICrypto.js.map +1 -1
  95. package/dist/crypto/IGuidGenerator.d.ts +5 -0
  96. package/dist/crypto/IGuidGenerator.d.ts.map +1 -0
  97. package/dist/crypto/PopTokenGenerator.d.ts +30 -0
  98. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  99. package/dist/crypto/PopTokenGenerator.js +38 -2
  100. package/dist/crypto/PopTokenGenerator.js.map +1 -1
  101. package/dist/error/AuthError.js +3 -3
  102. package/dist/error/AuthError.js.map +1 -1
  103. package/dist/error/ClientAuthError.js +1 -1
  104. package/dist/error/ClientAuthError.js.map +1 -1
  105. package/dist/error/ClientConfigurationError.d.ts +11 -0
  106. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  107. package/dist/error/ClientConfigurationError.js +12 -2
  108. package/dist/error/ClientConfigurationError.js.map +1 -1
  109. package/dist/error/InteractionRequiredAuthError.js +1 -1
  110. package/dist/error/InteractionRequiredAuthError.js.map +1 -1
  111. package/dist/error/ServerError.js +1 -1
  112. package/dist/error/ServerError.js.map +1 -1
  113. package/dist/index.cjs.js +764 -176
  114. package/dist/index.cjs.js.map +1 -1
  115. package/dist/index.d.ts +8 -2
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +5 -1
  118. package/dist/index.js.map +1 -1
  119. package/dist/logger/Logger.js +13 -13
  120. package/dist/logger/Logger.js.map +1 -1
  121. package/dist/network/INetworkModule.d.ts +1 -0
  122. package/dist/network/INetworkModule.d.ts.map +1 -1
  123. package/dist/network/INetworkModule.js +1 -1
  124. package/dist/network/INetworkModule.js.map +1 -1
  125. package/dist/network/NetworkManager.js +1 -1
  126. package/dist/network/NetworkManager.js.map +1 -1
  127. package/dist/network/ThrottlingUtils.js +1 -1
  128. package/dist/network/ThrottlingUtils.js.map +1 -1
  129. package/dist/packageMetadata.d.ts +1 -1
  130. package/dist/packageMetadata.d.ts.map +1 -1
  131. package/dist/packageMetadata.js +2 -2
  132. package/dist/packageMetadata.js.map +1 -1
  133. package/dist/request/AuthenticationHeaderParser.js +3 -3
  134. package/dist/request/AuthenticationHeaderParser.js.map +1 -1
  135. package/dist/request/BaseAuthRequest.d.ts +8 -5
  136. package/dist/request/BaseAuthRequest.d.ts.map +1 -1
  137. package/dist/request/CommonAuthorizationUrlRequest.d.ts +1 -0
  138. package/dist/request/CommonAuthorizationUrlRequest.d.ts.map +1 -1
  139. package/dist/request/CommonEndSessionRequest.d.ts +2 -0
  140. package/dist/request/CommonEndSessionRequest.d.ts.map +1 -1
  141. package/dist/request/RequestParameterBuilder.d.ts +18 -1
  142. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  143. package/dist/request/RequestParameterBuilder.js +37 -3
  144. package/dist/request/RequestParameterBuilder.js.map +1 -1
  145. package/dist/request/RequestValidator.js +1 -1
  146. package/dist/request/RequestValidator.js.map +1 -1
  147. package/dist/request/ScopeSet.js +4 -4
  148. package/dist/request/ScopeSet.js.map +1 -1
  149. package/dist/response/AuthenticationResult.d.ts +1 -0
  150. package/dist/response/AuthenticationResult.d.ts.map +1 -1
  151. package/dist/response/ResponseHandler.d.ts.map +1 -1
  152. package/dist/response/ResponseHandler.js +6 -5
  153. package/dist/response/ResponseHandler.js.map +1 -1
  154. package/dist/response/ServerAuthorizationCodeResponse.d.ts +1 -0
  155. package/dist/response/ServerAuthorizationCodeResponse.d.ts.map +1 -1
  156. package/dist/telemetry/performance/IPerformanceClient.d.ts +22 -0
  157. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -0
  158. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +6 -0
  159. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts.map +1 -0
  160. package/dist/telemetry/performance/PerformanceClient.d.ts +125 -0
  161. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -0
  162. package/dist/telemetry/performance/PerformanceClient.js +275 -0
  163. package/dist/telemetry/performance/PerformanceClient.js.map +1 -0
  164. package/dist/telemetry/performance/PerformanceEvent.d.ts +203 -0
  165. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -0
  166. package/dist/telemetry/performance/PerformanceEvent.js +100 -0
  167. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -0
  168. package/dist/telemetry/performance/StubPerformanceClient.d.ts +13 -0
  169. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -0
  170. package/dist/telemetry/performance/StubPerformanceClient.js +37 -0
  171. package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -0
  172. package/dist/telemetry/server/ServerTelemetryManager.js +4 -4
  173. package/dist/telemetry/server/ServerTelemetryManager.js.map +1 -1
  174. package/dist/url/UrlString.js +2 -2
  175. package/dist/url/UrlString.js.map +1 -1
  176. package/dist/utils/Constants.d.ts +8 -1
  177. package/dist/utils/Constants.d.ts.map +1 -1
  178. package/dist/utils/Constants.js +9 -2
  179. package/dist/utils/Constants.js.map +1 -1
  180. package/dist/utils/ProtocolUtils.js +3 -3
  181. package/dist/utils/ProtocolUtils.js.map +1 -1
  182. package/dist/utils/StringUtils.js +1 -1
  183. package/dist/utils/StringUtils.js.map +1 -1
  184. package/dist/utils/TimeUtils.js +1 -1
  185. package/dist/utils/TimeUtils.js.map +1 -1
  186. package/package.json +74 -76
  187. package/CHANGELOG.json +0 -1282
  188. package/CHANGELOG.md +0 -491
@@ -0,0 +1,100 @@
1
+ /*! @azure/msal-common v6.3.0-beta.0 2022-04-27 */
2
+ 'use strict';
3
+ /*
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License.
6
+ */
7
+ /**
8
+ * Enumeration of operations that are instrumented by have their performance measured by the PerformanceClient.
9
+ *
10
+ * @export
11
+ * @enum {number}
12
+ */
13
+ var PerformanceEvents;
14
+ (function (PerformanceEvents) {
15
+ /**
16
+ * acquireTokenByCode API (msal-browser and msal-node).
17
+ * Used to acquire tokens by trading an authorization code against the token endpoint.
18
+ */
19
+ PerformanceEvents["AcquireTokenByCode"] = "acquireTokenByCode";
20
+ /**
21
+ * acquireTokenByRefreshToken API (msal-browser and msal-node).
22
+ * Used to renew an access token using a refresh token against the token endpoint.
23
+ */
24
+ PerformanceEvents["AcquireTokenByRefreshToken"] = "acquireTokenByRefreshToken";
25
+ /**
26
+ * acquireTokenSilent API (msal-browser and msal-node).
27
+ * Used to silently acquire a new access token (from the cache or the network).
28
+ */
29
+ PerformanceEvents["AcquireTokenSilent"] = "acquireTokenSilent";
30
+ /**
31
+ * acquireTokenSilentAsync (msal-browser).
32
+ * Internal API for acquireTokenSilent.
33
+ */
34
+ PerformanceEvents["AcquireTokenSilentAsync"] = "acquireTokenSilentAsync";
35
+ /**
36
+ * acquireTokenPopup (msal-browser).
37
+ * Used to acquire a new access token interactively through pop ups
38
+ */
39
+ PerformanceEvents["AcquireTokenPopup"] = "acquireTokenPopup";
40
+ /**
41
+ * getPublicKeyThumbprint API in CryptoOpts class (msal-browser).
42
+ * Used to generate a public/private keypair and generate a public key thumbprint for pop requests.
43
+ */
44
+ PerformanceEvents["CryptoOptsGetPublicKeyThumbprint"] = "cryptoOptsGetPublicKeyThumbprint";
45
+ /**
46
+ * signJwt API in CryptoOpts class (msal-browser).
47
+ * Used to signed a pop token.
48
+ */
49
+ PerformanceEvents["CryptoOptsSignJwt"] = "cryptoOptsSignJwt";
50
+ /**
51
+ * acquireToken API in the SilentCacheClient class (msal-browser).
52
+ * Used to read access tokens from the cache.
53
+ */
54
+ PerformanceEvents["SilentCacheClientAcquireToken"] = "silentCacheClientAcquireToken";
55
+ /**
56
+ * acquireToken API in the SilentIframeClient class (msal-browser).
57
+ * Used to acquire a new set of tokens from the authorize endpoint in a hidden iframe.
58
+ */
59
+ PerformanceEvents["SilentIframeClientAcquireToken"] = "silentIframeClientAcquireToken";
60
+ /**
61
+ * acquireToken API in SilentRereshClient (msal-browser).
62
+ * Used to acquire a new set of tokens from the token endpoint using a refresh token.
63
+ */
64
+ PerformanceEvents["SilentRefreshClientAcquireToken"] = "silentRefreshClientAcquireToken";
65
+ /**
66
+ * ssoSilent API (msal-browser).
67
+ * Used to silently acquire an authorization code and set of tokens using a hidden iframe.
68
+ */
69
+ PerformanceEvents["SsoSilent"] = "ssoSilent";
70
+ /**
71
+ * getDiscoveredAuthority API in StandardInteractionClient class (msal-browser).
72
+ * Used to load authority metadata for a request.
73
+ */
74
+ PerformanceEvents["StandardInteractionClientGetDiscoveredAuthority"] = "standardInteractionClientGetDiscoveredAuthority";
75
+ /**
76
+ * acquireToken APIs in msal-browser.
77
+ * Used to make an /authorize endpoint call with native brokering enabled.
78
+ */
79
+ PerformanceEvents["FetchAccountIdWithNativeBroker"] = "fetchAccountIdWithNativeBroker";
80
+ /**
81
+ * acquireToken API in NativeInteractionClient class (msal-browser).
82
+ * Used to acquire a token from Native component when native brokering is enabled.
83
+ */
84
+ PerformanceEvents["NativeInteractionClientAcquireToken"] = "nativeInteractionClientAcquireToken";
85
+ })(PerformanceEvents || (PerformanceEvents = {}));
86
+ /**
87
+ * State of the performance event.
88
+ *
89
+ * @export
90
+ * @enum {number}
91
+ */
92
+ var PerformanceEventStatus;
93
+ (function (PerformanceEventStatus) {
94
+ PerformanceEventStatus[PerformanceEventStatus["NotStarted"] = 0] = "NotStarted";
95
+ PerformanceEventStatus[PerformanceEventStatus["InProgress"] = 1] = "InProgress";
96
+ PerformanceEventStatus[PerformanceEventStatus["Completed"] = 2] = "Completed";
97
+ })(PerformanceEventStatus || (PerformanceEventStatus = {}));
98
+
99
+ export { PerformanceEventStatus, PerformanceEvents };
100
+ //# sourceMappingURL=PerformanceEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerformanceEvent.js","sources":["../../../src/telemetry/performance/PerformanceEvent.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\n/**\r\n * Enumeration of operations that are instrumented by have their performance measured by the PerformanceClient.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nexport enum PerformanceEvents {\r\n\r\n /**\r\n * acquireTokenByCode API (msal-browser and msal-node).\r\n * Used to acquire tokens by trading an authorization code against the token endpoint.\r\n */\r\n AcquireTokenByCode = \"acquireTokenByCode\",\r\n\r\n /**\r\n * acquireTokenByRefreshToken API (msal-browser and msal-node).\r\n * Used to renew an access token using a refresh token against the token endpoint.\r\n */\r\n AcquireTokenByRefreshToken = \"acquireTokenByRefreshToken\",\r\n\r\n /**\r\n * acquireTokenSilent API (msal-browser and msal-node).\r\n * Used to silently acquire a new access token (from the cache or the network).\r\n */\r\n AcquireTokenSilent = \"acquireTokenSilent\",\r\n\r\n /**\r\n * acquireTokenSilentAsync (msal-browser).\r\n * Internal API for acquireTokenSilent.\r\n */\r\n AcquireTokenSilentAsync = \"acquireTokenSilentAsync\",\r\n\r\n /**\r\n * acquireTokenPopup (msal-browser).\r\n * Used to acquire a new access token interactively through pop ups\r\n */\r\n AcquireTokenPopup = \"acquireTokenPopup\",\r\n\r\n /**\r\n * getPublicKeyThumbprint API in CryptoOpts class (msal-browser).\r\n * Used to generate a public/private keypair and generate a public key thumbprint for pop requests.\r\n */\r\n CryptoOptsGetPublicKeyThumbprint = \"cryptoOptsGetPublicKeyThumbprint\",\r\n\r\n /**\r\n * signJwt API in CryptoOpts class (msal-browser).\r\n * Used to signed a pop token.\r\n */\r\n CryptoOptsSignJwt = \"cryptoOptsSignJwt\",\r\n\r\n /**\r\n * acquireToken API in the SilentCacheClient class (msal-browser).\r\n * Used to read access tokens from the cache.\r\n */\r\n SilentCacheClientAcquireToken = \"silentCacheClientAcquireToken\",\r\n\r\n /**\r\n * acquireToken API in the SilentIframeClient class (msal-browser).\r\n * Used to acquire a new set of tokens from the authorize endpoint in a hidden iframe.\r\n */\r\n SilentIframeClientAcquireToken = \"silentIframeClientAcquireToken\",\r\n\r\n /**\r\n * acquireToken API in SilentRereshClient (msal-browser).\r\n * Used to acquire a new set of tokens from the token endpoint using a refresh token.\r\n */\r\n SilentRefreshClientAcquireToken = \"silentRefreshClientAcquireToken\",\r\n\r\n /**\r\n * ssoSilent API (msal-browser).\r\n * Used to silently acquire an authorization code and set of tokens using a hidden iframe.\r\n */\r\n SsoSilent = \"ssoSilent\",\r\n\r\n /**\r\n * getDiscoveredAuthority API in StandardInteractionClient class (msal-browser).\r\n * Used to load authority metadata for a request.\r\n */\r\n StandardInteractionClientGetDiscoveredAuthority = \"standardInteractionClientGetDiscoveredAuthority\",\r\n\r\n /**\r\n * acquireToken APIs in msal-browser.\r\n * Used to make an /authorize endpoint call with native brokering enabled.\r\n */\r\n FetchAccountIdWithNativeBroker = \"fetchAccountIdWithNativeBroker\",\r\n\r\n /**\r\n * acquireToken API in NativeInteractionClient class (msal-browser).\r\n * Used to acquire a token from Native component when native brokering is enabled.\r\n */\r\n NativeInteractionClientAcquireToken = \"nativeInteractionClientAcquireToken\",\r\n}\r\n\r\n/**\r\n * State of the performance event.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nexport enum PerformanceEventStatus {\r\n NotStarted,\r\n InProgress,\r\n Completed\r\n}\r\n\r\n/**\r\n * Performance measurement taken by the library, including metadata about the request and application.\r\n *\r\n * @export\r\n * @typedef {PerformanceEvent}\r\n */\r\nexport type PerformanceEvent = {\r\n /**\r\n * Unique id for the event\r\n *\r\n * @type {string}\r\n */\r\n eventId: string,\r\n\r\n /**\r\n * State of the perforance measure.\r\n *\r\n * @type {PerformanceEventStatus}\r\n */\r\n status: PerformanceEventStatus,\r\n\r\n /**\r\n * Login authority used for the request\r\n *\r\n * @type {string}\r\n */\r\n authority: string,\r\n\r\n /**\r\n * Client id for the application\r\n *\r\n * @type {string}\r\n */\r\n clientId: string\r\n\r\n /**\r\n * Correlation ID used for the request\r\n *\r\n * @type {string}\r\n */\r\n correlationId: string,\r\n\r\n /**\r\n * End-to-end duration in milliseconds.\r\n * @date 3/22/2022 - 3:40:05 PM\r\n *\r\n * @type {number}\r\n */\r\n durationMs?: number,\r\n\r\n /**\r\n * Visibility of the page when the event completed.\r\n * Read from: https://developer.mozilla.org/docs/Web/API/Page_Visibility_API\r\n *\r\n * @type {?(string | null)}\r\n */\r\n endPageVisibility?: string | null,\r\n\r\n /**\r\n * Whether the result was retrieved from the cache.\r\n *\r\n * @type {(boolean | null)}\r\n */\r\n fromCache?: boolean | null,\r\n\r\n /**\r\n * Event name (usually in the form of classNameFunctionName)\r\n *\r\n * @type {PerformanceEvents}\r\n */\r\n name: PerformanceEvents,\r\n\r\n /**\r\n * Visibility of the page when the event completed.\r\n * Read from: https://developer.mozilla.org/docs/Web/API/Page_Visibility_API\r\n *\r\n * @type {?(string | null)}\r\n */\r\n startPageVisibility?: string | null,\r\n\r\n /**\r\n * Unix millisecond timestamp when the event was initiated.\r\n *\r\n * @type {number}\r\n */\r\n startTimeMs: number,\r\n\r\n /**\r\n * Whether or the operation completed successfully.\r\n *\r\n * @type {(boolean | null)}\r\n */\r\n success?: boolean | null,\r\n\r\n /**\r\n * Name of the library used for the operation.\r\n *\r\n * @type {string}\r\n */\r\n libraryName: string,\r\n\r\n /**\r\n * Version of the library used for the operation.\r\n *\r\n * @type {string}\r\n */\r\n libraryVersion: string,\r\n\r\n /**\r\n * Application name as specified by the app.\r\n *\r\n * @type {?string}\r\n */\r\n appName?: string,\r\n\r\n /**\r\n * Application version as specified by the app.\r\n *\r\n * @type {?string}\r\n */\r\n appVersion?: string,\r\n\r\n /**\r\n * Whether the response is from a native component (e.g., WAM)\r\n *\r\n * @type {?boolean}\r\n */\r\n isNativeBroker?: boolean\r\n};\r\n"],"names":[],"mappings":";;AAAA;;;;AAKA;;;;;;IAMY;AAAZ,WAAY,iBAAiB;;;;;IAMzB,8DAAyC,CAAA;;;;;IAMzC,8EAAyD,CAAA;;;;;IAMzD,8DAAyC,CAAA;;;;;IAMzC,wEAAmD,CAAA;;;;;IAMnD,4DAAuC,CAAA;;;;;IAMvC,0FAAqE,CAAA;;;;;IAMrE,4DAAuC,CAAA;;;;;IAMvC,oFAA+D,CAAA;;;;;IAM/D,sFAAiE,CAAA;;;;;IAMjE,wFAAmE,CAAA;;;;;IAMnE,4CAAuB,CAAA;;;;;IAMvB,wHAAmG,CAAA;;;;;IAMnG,sFAAiE,CAAA;;;;;IAMjE,gGAA2E,CAAA;AAC/E,CAAC,EArFW,iBAAiB,KAAjB,iBAAiB,QAqF5B;AAED;;;;;;IAMY;AAAZ,WAAY,sBAAsB;IAC9B,+EAAU,CAAA;IACV,+EAAU,CAAA;IACV,6EAAS,CAAA;AACb,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB;;;;"}
@@ -0,0 +1,13 @@
1
+ import { IPerformanceClient } from "./IPerformanceClient";
2
+ import { IPerformanceMeasurement } from "./IPerformanceMeasurement";
3
+ import { PerformanceClient } from "./PerformanceClient";
4
+ export declare class StubPerformanceMeasurement implements IPerformanceMeasurement {
5
+ startMeasurement(): void;
6
+ endMeasurement(): void;
7
+ flushMeasurement(): number | null;
8
+ }
9
+ export declare class StubPerformanceClient extends PerformanceClient implements IPerformanceClient {
10
+ generateId(): string;
11
+ startPerformanceMeasuremeant(): IPerformanceMeasurement;
12
+ }
13
+ //# sourceMappingURL=StubPerformanceClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StubPerformanceClient.d.ts","sourceRoot":"","sources":["../../../src/telemetry/performance/StubPerformanceClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,0BAA2B,YAAW,uBAAuB;IAEtE,gBAAgB,IAAI,IAAI;IAExB,cAAc,IAAI,IAAI;IACtB,gBAAgB,IAAI,MAAM,GAAG,IAAI;CAIpC;AAED,qBAAa,qBAAsB,SAAQ,iBAAkB,YAAW,kBAAkB;IACtF,UAAU,IAAI,MAAM;IAIpB,4BAA4B,IAAI,uBAAuB;CAG1D"}
@@ -0,0 +1,37 @@
1
+ /*! @azure/msal-common v6.3.0-beta.0 2022-04-27 */
2
+ 'use strict';
3
+ import { __extends } from '../../_virtual/_tslib.js';
4
+ import { PerformanceClient } from './PerformanceClient.js';
5
+
6
+ /*
7
+ * Copyright (c) Microsoft Corporation. All rights reserved.
8
+ * Licensed under the MIT License.
9
+ */
10
+ var StubPerformanceMeasurement = /** @class */ (function () {
11
+ function StubPerformanceMeasurement() {
12
+ }
13
+ /* eslint-disable-next-line @typescript-eslint/no-empty-function */
14
+ StubPerformanceMeasurement.prototype.startMeasurement = function () { };
15
+ /* eslint-disable-next-line @typescript-eslint/no-empty-function */
16
+ StubPerformanceMeasurement.prototype.endMeasurement = function () { };
17
+ StubPerformanceMeasurement.prototype.flushMeasurement = function () {
18
+ return null;
19
+ };
20
+ return StubPerformanceMeasurement;
21
+ }());
22
+ var StubPerformanceClient = /** @class */ (function (_super) {
23
+ __extends(StubPerformanceClient, _super);
24
+ function StubPerformanceClient() {
25
+ return _super !== null && _super.apply(this, arguments) || this;
26
+ }
27
+ StubPerformanceClient.prototype.generateId = function () {
28
+ return "callback-id";
29
+ };
30
+ StubPerformanceClient.prototype.startPerformanceMeasuremeant = function () {
31
+ return new StubPerformanceMeasurement();
32
+ };
33
+ return StubPerformanceClient;
34
+ }(PerformanceClient));
35
+
36
+ export { StubPerformanceClient, StubPerformanceMeasurement };
37
+ //# sourceMappingURL=StubPerformanceClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StubPerformanceClient.js","sources":["../../../src/telemetry/performance/StubPerformanceClient.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { IPerformanceClient } from \"./IPerformanceClient\";\r\nimport { IPerformanceMeasurement } from \"./IPerformanceMeasurement\";\r\nimport { PerformanceClient } from \"./PerformanceClient\";\r\n\r\nexport class StubPerformanceMeasurement implements IPerformanceMeasurement {\r\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\r\n startMeasurement(): void { }\r\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\r\n endMeasurement(): void { }\r\n flushMeasurement(): number | null {\r\n return null;\r\n }\r\n \r\n}\r\n\r\nexport class StubPerformanceClient extends PerformanceClient implements IPerformanceClient {\r\n generateId(): string {\r\n return \"callback-id\";\r\n }\r\n \r\n startPerformanceMeasuremeant(): IPerformanceMeasurement {\r\n return new StubPerformanceMeasurement();\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;;AAAA;;;;;IASA;KASC;;IAPG,qDAAgB,GAAhB,eAA4B;;IAE5B,mDAAc,GAAd,eAA0B;IAC1B,qDAAgB,GAAhB;QACI,OAAO,IAAI,CAAC;KACf;IAEL,iCAAC;AAAD,CAAC,IAAA;;IAE0C,yCAAiB;IAA5D;;KAQC;IAPG,0CAAU,GAAV;QACI,OAAO,aAAa,CAAC;KACxB;IAED,4DAA4B,GAA5B;QACI,OAAO,IAAI,0BAA0B,EAAE,CAAC;KAC3C;IACL,4BAAC;AAAD,CARA,CAA2C,iBAAiB;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v6.0.0 2022-01-04 */
1
+ /*! @azure/msal-common v6.3.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  import { SERVER_TELEM_CONSTANTS, CacheOutcome, Constants, Separators } from '../../utils/Constants.js';
4
4
  import { ServerTelemetryEntity } from '../../cache/entities/ServerTelemetryEntity.js';
@@ -139,9 +139,9 @@ var ServerTelemetryManager = /** @class */ (function () {
139
139
  */
140
140
  ServerTelemetryManager.prototype.getRegionDiscoveryFields = function () {
141
141
  var regionDiscoveryFields = [];
142
- regionDiscoveryFields.push(this.regionUsed || "");
143
- regionDiscoveryFields.push(this.regionSource || "");
144
- regionDiscoveryFields.push(this.regionOutcome || "");
142
+ regionDiscoveryFields.push(this.regionUsed || Constants.EMPTY_STRING);
143
+ regionDiscoveryFields.push(this.regionSource || Constants.EMPTY_STRING);
144
+ regionDiscoveryFields.push(this.regionOutcome || Constants.EMPTY_STRING);
145
145
  return regionDiscoveryFields.join(",");
146
146
  };
147
147
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ServerTelemetryManager.js","sources":["../../../src/telemetry/server/ServerTelemetryManager.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { SERVER_TELEM_CONSTANTS, Separators, CacheOutcome, Constants, RegionDiscoverySources, RegionDiscoveryOutcomes } from \"../../utils/Constants\";\nimport { CacheManager } from \"../../cache/CacheManager\";\nimport { AuthError } from \"../../error/AuthError\";\nimport { ServerTelemetryRequest } from \"./ServerTelemetryRequest\";\nimport { ServerTelemetryEntity } from \"../../cache/entities/ServerTelemetryEntity\";\nimport { StringUtils } from \"../../utils/StringUtils\";\nimport { RegionDiscoveryMetadata } from \"../../authority/RegionDiscoveryMetadata\";\n\nexport class ServerTelemetryManager {\n private cacheManager: CacheManager;\n private apiId: number;\n private correlationId: string;\n private telemetryCacheKey: string;\n private wrapperSKU: String;\n private wrapperVer: String;\n private regionUsed: string | undefined;\n private regionSource: RegionDiscoverySources | undefined;\n private regionOutcome: RegionDiscoveryOutcomes | undefined;\n private cacheOutcome: CacheOutcome = CacheOutcome.NO_CACHE_HIT;\n\n constructor(telemetryRequest: ServerTelemetryRequest, cacheManager: CacheManager) {\n this.cacheManager = cacheManager;\n this.apiId = telemetryRequest.apiId;\n this.correlationId = telemetryRequest.correlationId;\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\n\n this.telemetryCacheKey = SERVER_TELEM_CONSTANTS.CACHE_KEY + Separators.CACHE_KEY_SEPARATOR + telemetryRequest.clientId;\n }\n\n /**\n * API to add MSER Telemetry to request\n */\n generateCurrentRequestHeaderValue(): string {\n const request = `${this.apiId}${SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR}${this.cacheOutcome}`;\n const platformFields = [this.wrapperSKU, this.wrapperVer].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\n const regionDiscoveryFields = this.getRegionDiscoveryFields();\n const requestWithRegionDiscoveryFields = [request, regionDiscoveryFields].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\n\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, requestWithRegionDiscoveryFields, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\n }\n\n /**\n * API to add MSER Telemetry for the last failed request\n */\n generateLastRequestHeaderValue(): string {\n const lastRequests = this.getLastRequests();\n\n const maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\n const failedRequests = lastRequests.failedRequests.slice(0, 2*maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\n const errors = lastRequests.errors.slice(0, maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\n const errorCount = lastRequests.errors.length;\n\n // Indicate whether this header contains all data or partial data\n const overflow = maxErrors < errorCount ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\n const platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\n\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, lastRequests.cacheHits, failedRequests, errors, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\n }\n\n /**\n * API to cache token failures for MSER data capture\n * @param error\n */\n cacheFailedRequest(error: AuthError): void {\n const lastRequests = this.getLastRequests();\n if (lastRequests.errors.length >= SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\n // Remove a cached error to make room, first in first out\n lastRequests.failedRequests.shift(); // apiId\n lastRequests.failedRequests.shift(); // correlationId\n lastRequests.errors.shift();\n }\n \n lastRequests.failedRequests.push(this.apiId, this.correlationId);\n\n if (!StringUtils.isEmpty(error.subError)) {\n lastRequests.errors.push(error.subError);\n } else if (!StringUtils.isEmpty(error.errorCode)) {\n lastRequests.errors.push(error.errorCode);\n } else if (!!error && error.toString()) {\n lastRequests.errors.push(error.toString());\n } else {\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\n }\n\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\n\n return;\n }\n\n /**\n * Update server telemetry cache entry by incrementing cache hit counter\n */\n incrementCacheHits(): number {\n const lastRequests = this.getLastRequests();\n lastRequests.cacheHits += 1;\n\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\n return lastRequests.cacheHits;\n }\n\n /**\n * Get the server telemetry entity from cache or initialize a new one\n */\n getLastRequests(): ServerTelemetryEntity {\n const initialValue: ServerTelemetryEntity = new ServerTelemetryEntity();\n const lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey) as ServerTelemetryEntity;\n\n return lastRequests || initialValue;\n }\n\n /**\n * Remove server telemetry cache entry\n */\n clearTelemetryCache(): void {\n const lastRequests = this.getLastRequests();\n const numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\n const errorCount = lastRequests.errors.length;\n if (numErrorsFlushed === errorCount) {\n // All errors were sent on last request, clear Telemetry cache\n this.cacheManager.removeItem(this.telemetryCacheKey);\n } else {\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\n const serverTelemEntity = new ServerTelemetryEntity();\n serverTelemEntity.failedRequests = lastRequests.failedRequests.slice(numErrorsFlushed*2); // failedRequests contains 2 items for each error\n serverTelemEntity.errors = lastRequests.errors.slice(numErrorsFlushed);\n\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\n }\n }\n\n /**\n * Returns the maximum number of errors that can be flushed to the server in the next network request\n * @param serverTelemetryEntity\n */\n static maxErrorsToSend(serverTelemetryEntity: ServerTelemetryEntity): number {\n let i;\n let maxErrors = 0;\n let dataSize = 0;\n const errorCount = serverTelemetryEntity.errors.length;\n for (i = 0; i < errorCount; i++) {\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\n const apiId = serverTelemetryEntity.failedRequests[2*i] || Constants.EMPTY_STRING;\n const correlationId = serverTelemetryEntity.failedRequests[2*i + 1] || Constants.EMPTY_STRING;\n const errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\n\n // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\n dataSize += apiId.toString().length + correlationId.toString().length + errorCode.length + 3;\n\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\n // Adding this entry to the header would still keep header size below the limit\n maxErrors += 1;\n } else {\n break;\n }\n }\n\n return maxErrors;\n }\n\n /**\n * Get the region discovery fields\n * \n * @returns string\n */\n getRegionDiscoveryFields(): string {\n const regionDiscoveryFields: string[] = [];\n\n regionDiscoveryFields.push(this.regionUsed || \"\");\n regionDiscoveryFields.push(this.regionSource || \"\");\n regionDiscoveryFields.push(this.regionOutcome || \"\");\n\n return regionDiscoveryFields.join(\",\");\n }\n\n /**\n * Update the region discovery metadata\n * \n * @param regionDiscoveryMetadata\n * @returns void\n */\n updateRegionDiscoveryMetadata(regionDiscoveryMetadata: RegionDiscoveryMetadata): void {\n this.regionUsed = regionDiscoveryMetadata.region_used;\n this.regionSource = regionDiscoveryMetadata.region_source;\n this.regionOutcome = regionDiscoveryMetadata.region_outcome;\n }\n\n /**\n * Set cache outcome \n */\n setCacheOutcome(cacheOutcome: CacheOutcome): void {\n this.cacheOutcome = cacheOutcome;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServerTelemetryManager.js","sources":["../../../src/telemetry/server/ServerTelemetryManager.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { SERVER_TELEM_CONSTANTS, Separators, CacheOutcome, Constants, RegionDiscoverySources, RegionDiscoveryOutcomes } from \"../../utils/Constants\";\r\nimport { CacheManager } from \"../../cache/CacheManager\";\r\nimport { AuthError } from \"../../error/AuthError\";\r\nimport { ServerTelemetryRequest } from \"./ServerTelemetryRequest\";\r\nimport { ServerTelemetryEntity } from \"../../cache/entities/ServerTelemetryEntity\";\r\nimport { StringUtils } from \"../../utils/StringUtils\";\r\nimport { RegionDiscoveryMetadata } from \"../../authority/RegionDiscoveryMetadata\";\r\n\r\nexport class ServerTelemetryManager {\r\n private cacheManager: CacheManager;\r\n private apiId: number;\r\n private correlationId: string;\r\n private telemetryCacheKey: string;\r\n private wrapperSKU: String;\r\n private wrapperVer: String;\r\n private regionUsed: string | undefined;\r\n private regionSource: RegionDiscoverySources | undefined;\r\n private regionOutcome: RegionDiscoveryOutcomes | undefined;\r\n private cacheOutcome: CacheOutcome = CacheOutcome.NO_CACHE_HIT;\r\n\r\n constructor(telemetryRequest: ServerTelemetryRequest, cacheManager: CacheManager) {\r\n this.cacheManager = cacheManager;\r\n this.apiId = telemetryRequest.apiId;\r\n this.correlationId = telemetryRequest.correlationId;\r\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\r\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\r\n\r\n this.telemetryCacheKey = SERVER_TELEM_CONSTANTS.CACHE_KEY + Separators.CACHE_KEY_SEPARATOR + telemetryRequest.clientId;\r\n }\r\n\r\n /**\r\n * API to add MSER Telemetry to request\r\n */\r\n generateCurrentRequestHeaderValue(): string {\r\n const request = `${this.apiId}${SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR}${this.cacheOutcome}`;\r\n const platformFields = [this.wrapperSKU, this.wrapperVer].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n const regionDiscoveryFields = this.getRegionDiscoveryFields();\r\n const requestWithRegionDiscoveryFields = [request, regionDiscoveryFields].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, requestWithRegionDiscoveryFields, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n }\r\n\r\n /**\r\n * API to add MSER Telemetry for the last failed request\r\n */\r\n generateLastRequestHeaderValue(): string {\r\n const lastRequests = this.getLastRequests();\r\n\r\n const maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n const failedRequests = lastRequests.failedRequests.slice(0, 2*maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n const errors = lastRequests.errors.slice(0, maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n const errorCount = lastRequests.errors.length;\r\n\r\n // Indicate whether this header contains all data or partial data\r\n const overflow = maxErrors < errorCount ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\r\n const platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, lastRequests.cacheHits, failedRequests, errors, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n }\r\n\r\n /**\r\n * API to cache token failures for MSER data capture\r\n * @param error\r\n */\r\n cacheFailedRequest(error: AuthError): void {\r\n const lastRequests = this.getLastRequests();\r\n if (lastRequests.errors.length >= SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\r\n // Remove a cached error to make room, first in first out\r\n lastRequests.failedRequests.shift(); // apiId\r\n lastRequests.failedRequests.shift(); // correlationId\r\n lastRequests.errors.shift();\r\n }\r\n \r\n lastRequests.failedRequests.push(this.apiId, this.correlationId);\r\n\r\n if (!StringUtils.isEmpty(error.subError)) {\r\n lastRequests.errors.push(error.subError);\r\n } else if (!StringUtils.isEmpty(error.errorCode)) {\r\n lastRequests.errors.push(error.errorCode);\r\n } else if (!!error && error.toString()) {\r\n lastRequests.errors.push(error.toString());\r\n } else {\r\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\r\n }\r\n\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n\r\n return;\r\n }\r\n\r\n /**\r\n * Update server telemetry cache entry by incrementing cache hit counter\r\n */\r\n incrementCacheHits(): number {\r\n const lastRequests = this.getLastRequests();\r\n lastRequests.cacheHits += 1;\r\n\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return lastRequests.cacheHits;\r\n }\r\n\r\n /**\r\n * Get the server telemetry entity from cache or initialize a new one\r\n */\r\n getLastRequests(): ServerTelemetryEntity {\r\n const initialValue: ServerTelemetryEntity = new ServerTelemetryEntity();\r\n const lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey) as ServerTelemetryEntity;\r\n\r\n return lastRequests || initialValue;\r\n }\r\n\r\n /**\r\n * Remove server telemetry cache entry\r\n */\r\n clearTelemetryCache(): void {\r\n const lastRequests = this.getLastRequests();\r\n const numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n const errorCount = lastRequests.errors.length;\r\n if (numErrorsFlushed === errorCount) {\r\n // All errors were sent on last request, clear Telemetry cache\r\n this.cacheManager.removeItem(this.telemetryCacheKey);\r\n } else {\r\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\r\n const serverTelemEntity = new ServerTelemetryEntity();\r\n serverTelemEntity.failedRequests = lastRequests.failedRequests.slice(numErrorsFlushed*2); // failedRequests contains 2 items for each error\r\n serverTelemEntity.errors = lastRequests.errors.slice(numErrorsFlushed);\r\n\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\r\n }\r\n }\r\n\r\n /**\r\n * Returns the maximum number of errors that can be flushed to the server in the next network request\r\n * @param serverTelemetryEntity\r\n */\r\n static maxErrorsToSend(serverTelemetryEntity: ServerTelemetryEntity): number {\r\n let i;\r\n let maxErrors = 0;\r\n let dataSize = 0;\r\n const errorCount = serverTelemetryEntity.errors.length;\r\n for (i = 0; i < errorCount; i++) {\r\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\r\n const apiId = serverTelemetryEntity.failedRequests[2*i] || Constants.EMPTY_STRING;\r\n const correlationId = serverTelemetryEntity.failedRequests[2*i + 1] || Constants.EMPTY_STRING;\r\n const errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\r\n\r\n // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\r\n dataSize += apiId.toString().length + correlationId.toString().length + errorCode.length + 3;\r\n\r\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\r\n // Adding this entry to the header would still keep header size below the limit\r\n maxErrors += 1;\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n return maxErrors;\r\n }\r\n\r\n /**\r\n * Get the region discovery fields\r\n * \r\n * @returns string\r\n */\r\n getRegionDiscoveryFields(): string {\r\n const regionDiscoveryFields: string[] = [];\r\n\r\n regionDiscoveryFields.push(this.regionUsed || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionSource || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionOutcome || Constants.EMPTY_STRING);\r\n\r\n return regionDiscoveryFields.join(\",\");\r\n }\r\n\r\n /**\r\n * Update the region discovery metadata\r\n * \r\n * @param regionDiscoveryMetadata\r\n * @returns void\r\n */\r\n updateRegionDiscoveryMetadata(regionDiscoveryMetadata: RegionDiscoveryMetadata): void {\r\n this.regionUsed = regionDiscoveryMetadata.region_used;\r\n this.regionSource = regionDiscoveryMetadata.region_source;\r\n this.regionOutcome = regionDiscoveryMetadata.region_outcome;\r\n }\r\n\r\n /**\r\n * Set cache outcome \r\n */\r\n setCacheOutcome(cacheOutcome: CacheOutcome): void {\r\n this.cacheOutcome = cacheOutcome;\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v6.0.0 2022-01-04 */
1
+ /*! @azure/msal-common v6.3.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  import { ClientConfigurationError } from '../error/ClientConfigurationError.js';
4
4
  import { ClientAuthError } from '../error/ClientAuthError.js';
@@ -164,7 +164,7 @@ var UrlString = /** @class */ (function () {
164
164
  else if (hashIndex1 > -1) {
165
165
  return hashString.substring(hashIndex1 + 1);
166
166
  }
167
- return "";
167
+ return Constants.EMPTY_STRING;
168
168
  };
169
169
  UrlString.constructAuthorityUriFromObject = function (urlObject) {
170
170
  return new UrlString(urlObject.Protocol + "//" + urlObject.HostNameAndPort + "/" + urlObject.PathSegments.join("/"));
@@ -1 +1 @@
1
- {"version":3,"file":"UrlString.js","sources":["../../src/url/UrlString.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ServerAuthorizationCodeResponse } from \"../response/ServerAuthorizationCodeResponse\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { IUri } from \"./IUri\";\nimport { AADAuthorityConstants, Constants } from \"../utils/Constants\";\n\n/**\n * Url object class which can perform various transformations on url strings.\n */\nexport class UrlString {\n\n // internal url string field\n private _urlString: string;\n public get urlString(): string {\n return this._urlString;\n }\n \n constructor(url: string) {\n this._urlString = url;\n if (StringUtils.isEmpty(this._urlString)) {\n // Throws error if url is empty\n throw ClientConfigurationError.createUrlEmptyError();\n }\n\n if (StringUtils.isEmpty(this.getHash())) {\n this._urlString = UrlString.canonicalizeUri(url);\n }\n }\n\n /**\n * Ensure urls are lower case and end with a / character.\n * @param url \n */\n static canonicalizeUri(url: string): string {\n if (url) {\n let lowerCaseUrl = url.toLowerCase();\n\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\n } else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\n }\n\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\n lowerCaseUrl += \"/\";\n }\n\n return lowerCaseUrl;\n }\n\n return url;\n }\n\n /**\n * Throws if urlString passed is not a valid authority URI string.\n */\n validateAsUri(): void {\n // Attempts to parse url for uri components\n let components;\n try {\n components = this.getUrlComponents();\n } catch (e) {\n throw ClientConfigurationError.createUrlParseError(e);\n }\n\n // Throw error if URI or path segments are not parseable.\n if (!components.HostNameAndPort || !components.PathSegments) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\n }\n\n // Throw error if uri is insecure.\n if(!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\n }\n }\n\n /**\n * Given a url and a query string return the url with provided query string appended\n * @param url \n * @param queryString \n */\n static appendQueryString(url: string, queryString: string): string {\n if (StringUtils.isEmpty(queryString)) {\n return url;\n }\n\n return url.indexOf(\"?\") < 0 ? `${url}?${queryString}` : `${url}&${queryString}`;\n }\n\n /**\n * Returns a url with the hash removed\n * @param url \n */\n static removeHashFromUrl(url: string): string {\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\n }\n\n /**\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\n * @param href The url\n * @param tenantId The tenant id to replace\n */\n replaceTenantPath(tenantId: string): UrlString {\n const urlObject = this.getUrlComponents();\n const pathArray = urlObject.PathSegments;\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\n pathArray[0] = tenantId;\n }\n return UrlString.constructAuthorityUriFromObject(urlObject);\n }\n\n /**\n * Returns the anchor part(#) of the URL\n */\n getHash(): string {\n return UrlString.parseHash(this.urlString);\n }\n\n /**\n * Parses out the components from a url string.\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\n */\n getUrlComponents(): IUri {\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\n const regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\n\n // If url string does not match regEx, we throw an error\n const match = this.urlString.match(regEx);\n if (!match) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\n }\n\n // Url component object\n const urlComponents = {\n Protocol: match[1],\n HostNameAndPort: match[4],\n AbsolutePath: match[5],\n QueryString: match[7]\n } as IUri;\n\n let pathSegments = urlComponents.AbsolutePath.split(\"/\");\n pathSegments = pathSegments.filter((val) => val && val.length > 0); // remove empty elements\n urlComponents.PathSegments = pathSegments;\n\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length-1);\n }\n return urlComponents;\n }\n\n static getDomainFromUrl(url: string): string {\n const regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\n\n const match = url.match(regEx);\n\n if (!match) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${url}`);\n }\n\n return match[2];\n }\n\n static getAbsoluteUrl(relativeUrl: string, baseUrl: string): string {\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\n const url = new UrlString(baseUrl);\n const baseComponents = url.getUrlComponents();\n\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\n }\n \n return relativeUrl;\n }\n \n /**\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\n * @param hashString \n */\n static parseHash(hashString: string): string {\n const hashIndex1 = hashString.indexOf(\"#\");\n const hashIndex2 = hashString.indexOf(\"#/\");\n if (hashIndex2 > -1) {\n return hashString.substring(hashIndex2 + 2);\n } else if (hashIndex1 > -1) {\n return hashString.substring(hashIndex1 + 1);\n }\n return \"\";\n }\n\n static constructAuthorityUriFromObject(urlObject: IUri): UrlString {\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\n }\n\n /**\n * Returns URL hash as server auth code response object.\n */\n static getDeserializedHash(hash: string): ServerAuthorizationCodeResponse {\n // Check if given hash is empty\n if (StringUtils.isEmpty(hash)) {\n return {};\n }\n // Strip the # symbol if present\n const parsedHash = UrlString.parseHash(hash);\n // If # symbol was not present, above will return empty string, so give original hash value\n const deserializedHash: ServerAuthorizationCodeResponse = StringUtils.queryStringToObject<ServerAuthorizationCodeResponse>(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\n // Check if deserialization didn't work\n if (!deserializedHash) {\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\n }\n return deserializedHash;\n }\n\n /**\n * Check if the hash of the URL string contains known properties\n */\n static hashContainsKnownProperties(hash: string): boolean {\n if (StringUtils.isEmpty(hash) || hash.indexOf(\"=\") < 0) {\n // Hash doesn't contain key/value pairs\n return false;\n }\n\n const parameters: ServerAuthorizationCodeResponse = UrlString.getDeserializedHash(hash);\n return !!(\n parameters.code ||\n parameters.error_description ||\n parameters.error ||\n parameters.state\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UrlString.js","sources":["../../src/url/UrlString.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { ServerAuthorizationCodeResponse } from \"../response/ServerAuthorizationCodeResponse\";\r\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\r\nimport { ClientAuthError } from \"../error/ClientAuthError\";\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nimport { IUri } from \"./IUri\";\r\nimport { AADAuthorityConstants, Constants } from \"../utils/Constants\";\r\n\r\n/**\r\n * Url object class which can perform various transformations on url strings.\r\n */\r\nexport class UrlString {\r\n\r\n // internal url string field\r\n private _urlString: string;\r\n public get urlString(): string {\r\n return this._urlString;\r\n }\r\n\r\n constructor(url: string) {\r\n this._urlString = url;\r\n if (StringUtils.isEmpty(this._urlString)) {\r\n // Throws error if url is empty\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n\r\n if (StringUtils.isEmpty(this.getHash())) {\r\n this._urlString = UrlString.canonicalizeUri(url);\r\n }\r\n }\r\n\r\n /**\r\n * Ensure urls are lower case and end with a / character.\r\n * @param url\r\n */\r\n static canonicalizeUri(url: string): string {\r\n if (url) {\r\n let lowerCaseUrl = url.toLowerCase();\r\n\r\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\r\n } else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\r\n }\r\n\r\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\r\n lowerCaseUrl += \"/\";\r\n }\r\n\r\n return lowerCaseUrl;\r\n }\r\n\r\n return url;\r\n }\r\n\r\n /**\r\n * Throws if urlString passed is not a valid authority URI string.\r\n */\r\n validateAsUri(): void {\r\n // Attempts to parse url for uri components\r\n let components;\r\n try {\r\n components = this.getUrlComponents();\r\n } catch (e) {\r\n throw ClientConfigurationError.createUrlParseError(e);\r\n }\r\n\r\n // Throw error if URI or path segments are not parseable.\r\n if (!components.HostNameAndPort || !components.PathSegments) {\r\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\r\n }\r\n\r\n // Throw error if uri is insecure.\r\n if(!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\r\n }\r\n }\r\n\r\n /**\r\n * Given a url and a query string return the url with provided query string appended\r\n * @param url\r\n * @param queryString\r\n */\r\n static appendQueryString(url: string, queryString: string): string {\r\n if (StringUtils.isEmpty(queryString)) {\r\n return url;\r\n }\r\n\r\n return url.indexOf(\"?\") < 0 ? `${url}?${queryString}` : `${url}&${queryString}`;\r\n }\r\n\r\n /**\r\n * Returns a url with the hash removed\r\n * @param url\r\n */\r\n static removeHashFromUrl(url: string): string {\r\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\r\n }\r\n\r\n /**\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\r\n replaceTenantPath(tenantId: string): UrlString {\r\n const urlObject = this.getUrlComponents();\r\n const pathArray = urlObject.PathSegments;\r\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\r\n pathArray[0] = tenantId;\r\n }\r\n return UrlString.constructAuthorityUriFromObject(urlObject);\r\n }\r\n\r\n /**\r\n * Returns the anchor part(#) of the URL\r\n */\r\n getHash(): string {\r\n return UrlString.parseHash(this.urlString);\r\n }\r\n\r\n /**\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\r\n getUrlComponents(): IUri {\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n const regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n\r\n // If url string does not match regEx, we throw an error\r\n const match = this.urlString.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\r\n }\r\n\r\n // Url component object\r\n const urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5],\r\n QueryString: match[7]\r\n } as IUri;\r\n\r\n let pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n pathSegments = pathSegments.filter((val) => val && val.length > 0); // remove empty elements\r\n urlComponents.PathSegments = pathSegments;\r\n\r\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\r\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length-1);\r\n }\r\n return urlComponents;\r\n }\r\n\r\n static getDomainFromUrl(url: string): string {\r\n const regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\r\n\r\n const match = url.match(regEx);\r\n\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${url}`);\r\n }\r\n\r\n return match[2];\r\n }\r\n\r\n static getAbsoluteUrl(relativeUrl: string, baseUrl: string): string {\r\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\r\n const url = new UrlString(baseUrl);\r\n const baseComponents = url.getUrlComponents();\r\n\r\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\r\n }\r\n\r\n return relativeUrl;\r\n }\r\n\r\n /**\r\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\r\n * @param hashString\r\n */\r\n static parseHash(hashString: string): string {\r\n const hashIndex1 = hashString.indexOf(\"#\");\r\n const hashIndex2 = hashString.indexOf(\"#/\");\r\n if (hashIndex2 > -1) {\r\n return hashString.substring(hashIndex2 + 2);\r\n } else if (hashIndex1 > -1) {\r\n return hashString.substring(hashIndex1 + 1);\r\n }\r\n return Constants.EMPTY_STRING;\r\n }\r\n\r\n static constructAuthorityUriFromObject(urlObject: IUri): UrlString {\r\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\r\n }\r\n\r\n /**\r\n * Returns URL hash as server auth code response object.\r\n */\r\n static getDeserializedHash(hash: string): ServerAuthorizationCodeResponse {\r\n // Check if given hash is empty\r\n if (StringUtils.isEmpty(hash)) {\r\n return {};\r\n }\r\n // Strip the # symbol if present\r\n const parsedHash = UrlString.parseHash(hash);\r\n // If # symbol was not present, above will return empty string, so give original hash value\r\n const deserializedHash: ServerAuthorizationCodeResponse = StringUtils.queryStringToObject<ServerAuthorizationCodeResponse>(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\r\n // Check if deserialization didn't work\r\n if (!deserializedHash) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\r\n }\r\n return deserializedHash;\r\n }\r\n\r\n /**\r\n * Check if the hash of the URL string contains known properties\r\n */\r\n static hashContainsKnownProperties(hash: string): boolean {\r\n if (StringUtils.isEmpty(hash) || hash.indexOf(\"=\") < 0) {\r\n // Hash doesn't contain key/value pairs\r\n return false;\r\n }\r\n\r\n const parameters: ServerAuthorizationCodeResponse = UrlString.getDeserializedHash(hash);\r\n return !!(\r\n parameters.code ||\r\n parameters.error_description ||\r\n parameters.error ||\r\n parameters.state\r\n );\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare const Constants: {
4
4
  CACHE_PREFIX: string;
5
5
  DEFAULT_AUTHORITY: string;
6
6
  DEFAULT_AUTHORITY_HOST: string;
7
+ DEFAULT_COMMON_TENANT: string;
7
8
  ADFS: string;
8
9
  AAD_INSTANCE_DISCOVERY_ENDPT: string;
9
10
  RESOURCE_DELIM: string;
@@ -30,6 +31,8 @@ export declare const Constants: {
30
31
  AZURE_REGION_AUTO_DISCOVER_FLAG: string;
31
32
  REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: string;
32
33
  KNOWN_PUBLIC_CLOUDS: string[];
34
+ TOKEN_RESPONSE_TYPE: string;
35
+ ID_TOKEN_RESPONSE_TYPE: string;
33
36
  };
34
37
  export declare const OIDC_DEFAULT_SCOPES: string[];
35
38
  export declare const OIDC_SCOPES: string[];
@@ -96,6 +99,8 @@ export declare enum AADServerParamKeys {
96
99
  X_CLIENT_CURR_TELEM = "x-client-current-telemetry",
97
100
  X_CLIENT_LAST_TELEM = "x-client-last-telemetry",
98
101
  X_MS_LIB_CAPABILITY = "x-ms-lib-capability",
102
+ X_APP_NAME = "x-app-name",
103
+ X_APP_VER = "x-app-ver",
99
104
  POST_LOGOUT_URI = "post_logout_redirect_uri",
100
105
  ID_TOKEN_HINT = "id_token_hint",
101
106
  DEVICE_CODE = "device_code",
@@ -109,7 +114,9 @@ export declare enum AADServerParamKeys {
109
114
  ON_BEHALF_OF = "on_behalf_of",
110
115
  FOCI = "foci",
111
116
  CCS_HEADER = "X-AnchorMailbox",
112
- RETURN_SPA_CODE = "return_spa_code"
117
+ RETURN_SPA_CODE = "return_spa_code",
118
+ NATIVE_BROKER = "nativebroker",
119
+ LOGOUT_HINT = "logout_hint"
113
120
  }
114
121
  /**
115
122
  * Claims request keys
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../src/utils/Constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../src/utils/Constants.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v6.0.0 2022-01-04 */
1
+ /*! @azure/msal-common v6.3.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  import { __spreadArrays } from '../_virtual/_tslib.js';
4
4
 
@@ -14,6 +14,7 @@ var Constants = {
14
14
  // default authority
15
15
  DEFAULT_AUTHORITY: "https://login.microsoftonline.com/common/",
16
16
  DEFAULT_AUTHORITY_HOST: "login.microsoftonline.com",
17
+ DEFAULT_COMMON_TENANT: "common",
17
18
  // ADFS String
18
19
  ADFS: "adfs",
19
20
  // Default AAD Instance Discovery Endpoint
@@ -47,7 +48,9 @@ var Constants = {
47
48
  IMDS_TIMEOUT: 2000,
48
49
  AZURE_REGION_AUTO_DISCOVER_FLAG: "TryAutoDetect",
49
50
  REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: "login.microsoft.com",
50
- KNOWN_PUBLIC_CLOUDS: ["login.microsoftonline.com", "login.windows.net", "login.microsoft.com", "sts.windows.net"]
51
+ KNOWN_PUBLIC_CLOUDS: ["login.microsoftonline.com", "login.windows.net", "login.microsoft.com", "sts.windows.net"],
52
+ TOKEN_RESPONSE_TYPE: "token",
53
+ ID_TOKEN_RESPONSE_TYPE: "id_token"
51
54
  };
52
55
  var OIDC_DEFAULT_SCOPES = [
53
56
  Constants.OPENID_SCOPE,
@@ -124,6 +127,8 @@ var AADServerParamKeys;
124
127
  AADServerParamKeys["X_CLIENT_CURR_TELEM"] = "x-client-current-telemetry";
125
128
  AADServerParamKeys["X_CLIENT_LAST_TELEM"] = "x-client-last-telemetry";
126
129
  AADServerParamKeys["X_MS_LIB_CAPABILITY"] = "x-ms-lib-capability";
130
+ AADServerParamKeys["X_APP_NAME"] = "x-app-name";
131
+ AADServerParamKeys["X_APP_VER"] = "x-app-ver";
127
132
  AADServerParamKeys["POST_LOGOUT_URI"] = "post_logout_redirect_uri";
128
133
  AADServerParamKeys["ID_TOKEN_HINT"] = "id_token_hint";
129
134
  AADServerParamKeys["DEVICE_CODE"] = "device_code";
@@ -138,6 +143,8 @@ var AADServerParamKeys;
138
143
  AADServerParamKeys["FOCI"] = "foci";
139
144
  AADServerParamKeys["CCS_HEADER"] = "X-AnchorMailbox";
140
145
  AADServerParamKeys["RETURN_SPA_CODE"] = "return_spa_code";
146
+ AADServerParamKeys["NATIVE_BROKER"] = "nativebroker";
147
+ AADServerParamKeys["LOGOUT_HINT"] = "logout_hint";
141
148
  })(AADServerParamKeys || (AADServerParamKeys = {}));
142
149
  /**
143
150
  * Claims request keys
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.js","sources":["../../src/utils/Constants.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport const Constants = {\n LIBRARY_NAME: \"MSAL.JS\",\n SKU: \"msal.js.common\",\n // Prefix for all library cache entries\n CACHE_PREFIX: \"msal\",\n // default authority\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\n // ADFS String\n ADFS: \"adfs\",\n // Default AAD Instance Discovery Endpoint\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\n // Resource delimiter - used for certain cache entries\n RESOURCE_DELIM: \"|\",\n // Placeholder for non-existent account ids/objects\n NO_ACCOUNT: \"NO_ACCOUNT\",\n // Claims\n CLAIMS: \"claims\",\n // Consumer UTID\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\n // Default scopes\n OPENID_SCOPE: \"openid\",\n PROFILE_SCOPE: \"profile\",\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\n EMAIL_SCOPE: \"email\",\n // Default response type for authorization code flow\n CODE_RESPONSE_TYPE: \"code\",\n CODE_GRANT_TYPE: \"authorization_code\",\n RT_GRANT_TYPE: \"refresh_token\",\n FRAGMENT_RESPONSE_MODE: \"fragment\",\n S256_CODE_CHALLENGE_METHOD: \"S256\",\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\n AUTHORIZATION_PENDING: \"authorization_pending\",\n NOT_DEFINED: \"not_defined\",\n EMPTY_STRING: \"\",\n FORWARD_SLASH: \"/\",\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\n IMDS_VERSION: \"2020-06-01\",\n IMDS_TIMEOUT: 2000,\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"]\n};\n\nexport const OIDC_DEFAULT_SCOPES = [\n Constants.OPENID_SCOPE,\n Constants.PROFILE_SCOPE,\n Constants.OFFLINE_ACCESS_SCOPE\n];\n\nexport const OIDC_SCOPES = [\n ...OIDC_DEFAULT_SCOPES,\n Constants.EMAIL_SCOPE\n];\n\n/**\n * Request header names\n */\nexport enum HeaderNames {\n CONTENT_TYPE = \"Content-Type\",\n RETRY_AFTER = \"Retry-After\",\n CCS_HEADER = \"X-AnchorMailbox\",\n WWWAuthenticate = \"WWW-Authenticate\",\n AuthenticationInfo = \"Authentication-Info\"\n}\n\n/**\n * Persistent cache keys MSAL which stay while user is logged in.\n */\nexport enum PersistentCacheKeys {\n ID_TOKEN = \"idtoken\",\n CLIENT_INFO = \"client.info\",\n ADAL_ID_TOKEN = \"adal.idtoken\",\n ERROR = \"error\",\n ERROR_DESC = \"error.description\",\n ACTIVE_ACCOUNT = \"active-account\"\n}\n\n/**\n * String constants related to AAD Authority\n */\nexport enum AADAuthorityConstants {\n COMMON = \"common\",\n ORGANIZATIONS = \"organizations\",\n CONSUMERS = \"consumers\"\n}\n\n/**\n * Keys in the hashParams sent by AAD Server\n */\nexport enum AADServerParamKeys {\n CLIENT_ID = \"client_id\",\n REDIRECT_URI = \"redirect_uri\",\n RESPONSE_TYPE = \"response_type\",\n RESPONSE_MODE = \"response_mode\",\n GRANT_TYPE = \"grant_type\",\n CLAIMS = \"claims\",\n SCOPE = \"scope\",\n ERROR = \"error\",\n ERROR_DESCRIPTION = \"error_description\",\n ACCESS_TOKEN = \"access_token\",\n ID_TOKEN = \"id_token\",\n REFRESH_TOKEN = \"refresh_token\",\n EXPIRES_IN = \"expires_in\",\n STATE = \"state\",\n NONCE = \"nonce\",\n PROMPT = \"prompt\",\n SESSION_STATE = \"session_state\",\n CLIENT_INFO = \"client_info\",\n CODE = \"code\",\n CODE_CHALLENGE = \"code_challenge\",\n CODE_CHALLENGE_METHOD = \"code_challenge_method\",\n CODE_VERIFIER = \"code_verifier\",\n CLIENT_REQUEST_ID = \"client-request-id\",\n X_CLIENT_SKU = \"x-client-SKU\",\n X_CLIENT_VER = \"x-client-VER\",\n X_CLIENT_OS = \"x-client-OS\",\n X_CLIENT_CPU = \"x-client-CPU\",\n X_CLIENT_CURR_TELEM = \"x-client-current-telemetry\",\n X_CLIENT_LAST_TELEM = \"x-client-last-telemetry\",\n X_MS_LIB_CAPABILITY = \"x-ms-lib-capability\",\n POST_LOGOUT_URI = \"post_logout_redirect_uri\",\n ID_TOKEN_HINT= \"id_token_hint\",\n DEVICE_CODE = \"device_code\",\n CLIENT_SECRET = \"client_secret\",\n CLIENT_ASSERTION = \"client_assertion\",\n CLIENT_ASSERTION_TYPE = \"client_assertion_type\",\n TOKEN_TYPE = \"token_type\",\n REQ_CNF = \"req_cnf\",\n OBO_ASSERTION = \"assertion\",\n REQUESTED_TOKEN_USE = \"requested_token_use\",\n ON_BEHALF_OF = \"on_behalf_of\",\n FOCI = \"foci\",\n CCS_HEADER = \"X-AnchorMailbox\",\n RETURN_SPA_CODE = \"return_spa_code\"\n}\n\n/**\n * Claims request keys\n */\nexport enum ClaimsRequestKeys {\n ACCESS_TOKEN = \"access_token\",\n XMS_CC = \"xms_cc\"\n}\n\n/**\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\n */\nexport const PromptValue = {\n LOGIN: \"login\",\n SELECT_ACCOUNT: \"select_account\",\n CONSENT: \"consent\",\n NONE: \"none\",\n CREATE: \"create\"\n};\n\n/**\n * SSO Types - generated to populate hints\n */\nexport enum SSOTypes {\n ACCOUNT = \"account\",\n SID = \"sid\",\n LOGIN_HINT = \"login_hint\",\n ID_TOKEN = \"id_token\",\n DOMAIN_HINT = \"domain_hint\",\n ORGANIZATIONS = \"organizations\",\n CONSUMERS = \"consumers\",\n ACCOUNT_ID = \"accountIdentifier\",\n HOMEACCOUNT_ID = \"homeAccountIdentifier\"\n}\n\n/**\n * Disallowed extra query parameters.\n */\nexport const BlacklistedEQParams = [\n SSOTypes.SID,\n SSOTypes.LOGIN_HINT\n];\n\n/**\n * allowed values for codeVerifier\n */\nexport const CodeChallengeMethodValues = {\n PLAIN: \"plain\",\n S256: \"S256\"\n};\n\n/**\n * The method used to encode the code verifier for the code challenge parameter. can be one\n * of plain or s256. if excluded, code challenge is assumed to be plaintext. for more\n * information, see the pkce rcf: https://tools.ietf.org/html/rfc7636\n */\nexport const CodeChallengeMethodValuesArray: string[] = [\n CodeChallengeMethodValues.PLAIN,\n CodeChallengeMethodValues.S256\n];\n\n/**\n * allowed values for response_mode\n */\nexport enum ResponseMode {\n QUERY = \"query\",\n FRAGMENT = \"fragment\",\n FORM_POST = \"form_post\"\n}\n\n/**\n * allowed grant_type\n */\nexport enum GrantType {\n IMPLICIT_GRANT = \"implicit\",\n AUTHORIZATION_CODE_GRANT = \"authorization_code\",\n CLIENT_CREDENTIALS_GRANT = \"client_credentials\",\n RESOURCE_OWNER_PASSWORD_GRANT = \"password\",\n REFRESH_TOKEN_GRANT = \"refresh_token\",\n DEVICE_CODE_GRANT = \"device_code\",\n JWT_BEARER = \"urn:ietf:params:oauth:grant-type:jwt-bearer\"\n}\n\n/**\n * Account types in Cache\n */\nexport enum CacheAccountType {\n MSSTS_ACCOUNT_TYPE = \"MSSTS\",\n ADFS_ACCOUNT_TYPE = \"ADFS\",\n MSAV1_ACCOUNT_TYPE = \"MSA\",\n GENERIC_ACCOUNT_TYPE = \"Generic\" // NTLM, Kerberos, FBA, Basic etc\n}\n\n/**\n * Separators used in cache\n */\nexport enum Separators {\n CACHE_KEY_SEPARATOR = \"-\",\n CLIENT_INFO_SEPARATOR = \".\"\n}\n\n/**\n * Credential Type stored in the cache\n */\nexport enum CredentialType {\n ID_TOKEN = \"IdToken\",\n ACCESS_TOKEN = \"AccessToken\",\n ACCESS_TOKEN_WITH_AUTH_SCHEME = \"AccessToken_With_AuthScheme\",\n REFRESH_TOKEN = \"RefreshToken\",\n}\n\n/**\n * Credential Type stored in the cache\n */\nexport enum CacheSchemaType {\n ACCOUNT = \"Account\",\n CREDENTIAL = \"Credential\",\n ID_TOKEN = \"IdToken\",\n ACCESS_TOKEN = \"AccessToken\",\n REFRESH_TOKEN = \"RefreshToken\",\n APP_METADATA = \"AppMetadata\",\n TEMPORARY = \"TempCache\",\n TELEMETRY = \"Telemetry\",\n UNDEFINED = \"Undefined\",\n THROTTLING = \"Throttling\"\n}\n\n/**\n * Combine all cache types\n */\nexport enum CacheType {\n ADFS = 1001,\n MSA = 1002,\n MSSTS = 1003,\n GENERIC = 1004,\n ACCESS_TOKEN = 2001,\n REFRESH_TOKEN = 2002,\n ID_TOKEN = 2003,\n APP_METADATA = 3001,\n UNDEFINED = 9999\n}\n\n/**\n * More Cache related constants\n */\nexport const APP_METADATA = \"appmetadata\";\nexport const CLIENT_INFO = \"client_info\";\nexport const THE_FAMILY_ID = \"1\";\n\nexport const AUTHORITY_METADATA_CONSTANTS = {\n CACHE_KEY: \"authority-metadata\",\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\n};\n\nexport enum AuthorityMetadataSource {\n CONFIG = \"config\",\n CACHE = \"cache\",\n NETWORK = \"network\"\n}\n\nexport const SERVER_TELEM_CONSTANTS = {\n SCHEMA_VERSION: 5,\n MAX_CUR_HEADER_BYTES: 80, // ESTS limit is 100B, set to 80 to provide a 20B buffer\n MAX_LAST_HEADER_BYTES: 330, // ESTS limit is 350B, set to 330 to provide a 20B buffer,\n MAX_CACHED_ERRORS: 50, // Limit the number of errors that can be stored to prevent uncontrolled size gains\n CACHE_KEY: \"server-telemetry\",\n CATEGORY_SEPARATOR: \"|\",\n VALUE_SEPARATOR: \",\",\n OVERFLOW_TRUE: \"1\",\n OVERFLOW_FALSE: \"0\",\n UNKNOWN_ERROR: \"unknown_error\"\n};\n\n/**\n * Type of the authentication request\n */\nexport enum AuthenticationScheme {\n BEARER = \"Bearer\",\n POP = \"pop\",\n SSH = \"ssh-cert\"\n}\n\n/**\n * Constants related to throttling\n */\nexport const ThrottlingConstants = {\n // Default time to throttle RequestThumbprint in seconds\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\n // Default maximum time to throttle in seconds, overrides what the server sends back\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\n // Prefix for storing throttling entries\n THROTTLING_PREFIX: \"throttling\",\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\n};\n\nexport const Errors = {\n INVALID_GRANT_ERROR: \"invalid_grant\",\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\n};\n\n/**\n * Password grant parameters\n */\nexport enum PasswordGrantConstants {\n username = \"username\",\n password = \"password\"\n}\n\n/**\n * Response codes\n */\nexport enum ResponseCodes {\n httpSuccess = 200,\n httpBadRequest = 400\n}\n\n/**\n * Region Discovery Sources\n */\nexport enum RegionDiscoverySources {\n FAILED_AUTO_DETECTION = \"1\",\n INTERNAL_CACHE = \"2\",\n ENVIRONMENT_VARIABLE = \"3\",\n IMDS = \"4\",\n}\n\n/**\n * Region Discovery Outcomes\n */\nexport enum RegionDiscoveryOutcomes {\n CONFIGURED_MATCHES_DETECTED = \"1\",\n CONFIGURED_NO_AUTO_DETECTION = \"2\",\n CONFIGURED_NOT_DETECTED = \"3\",\n AUTO_DETECTION_REQUESTED_SUCCESSFUL = \"4\",\n AUTO_DETECTION_REQUESTED_FAILED = \"5\"\n}\n\nexport enum CacheOutcome {\n NO_CACHE_HIT = \"0\",\n FORCE_REFRESH = \"1\",\n NO_CACHED_ACCESS_TOKEN = \"2\",\n CACHED_ACCESS_TOKEN_EXPIRED = \"3\",\n REFRESH_CACHED_ACCESS_TOKEN = \"4\"\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Constants.js","sources":["../../src/utils/Constants.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nexport const Constants = {\r\n LIBRARY_NAME: \"MSAL.JS\",\r\n SKU: \"msal.js.common\",\r\n // Prefix for all library cache entries\r\n CACHE_PREFIX: \"msal\",\r\n // default authority\r\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\r\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\r\n DEFAULT_COMMON_TENANT: \"common\",\r\n // ADFS String\r\n ADFS: \"adfs\",\r\n // Default AAD Instance Discovery Endpoint\r\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\r\n // Resource delimiter - used for certain cache entries\r\n RESOURCE_DELIM: \"|\",\r\n // Placeholder for non-existent account ids/objects\r\n NO_ACCOUNT: \"NO_ACCOUNT\",\r\n // Claims\r\n CLAIMS: \"claims\",\r\n // Consumer UTID\r\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\r\n // Default scopes\r\n OPENID_SCOPE: \"openid\",\r\n PROFILE_SCOPE: \"profile\",\r\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\r\n EMAIL_SCOPE: \"email\",\r\n // Default response type for authorization code flow\r\n CODE_RESPONSE_TYPE: \"code\",\r\n CODE_GRANT_TYPE: \"authorization_code\",\r\n RT_GRANT_TYPE: \"refresh_token\",\r\n FRAGMENT_RESPONSE_MODE: \"fragment\",\r\n S256_CODE_CHALLENGE_METHOD: \"S256\",\r\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\r\n AUTHORIZATION_PENDING: \"authorization_pending\",\r\n NOT_DEFINED: \"not_defined\",\r\n EMPTY_STRING: \"\",\r\n FORWARD_SLASH: \"/\",\r\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\r\n IMDS_VERSION: \"2020-06-01\",\r\n IMDS_TIMEOUT: 2000,\r\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\r\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\r\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"],\r\n TOKEN_RESPONSE_TYPE: \"token\",\r\n ID_TOKEN_RESPONSE_TYPE: \"id_token\"\r\n};\r\n\r\nexport const OIDC_DEFAULT_SCOPES = [\r\n Constants.OPENID_SCOPE,\r\n Constants.PROFILE_SCOPE,\r\n Constants.OFFLINE_ACCESS_SCOPE\r\n];\r\n\r\nexport const OIDC_SCOPES = [\r\n ...OIDC_DEFAULT_SCOPES,\r\n Constants.EMAIL_SCOPE\r\n];\r\n\r\n/**\r\n * Request header names\r\n */\r\nexport enum HeaderNames {\r\n CONTENT_TYPE = \"Content-Type\",\r\n RETRY_AFTER = \"Retry-After\",\r\n CCS_HEADER = \"X-AnchorMailbox\",\r\n WWWAuthenticate = \"WWW-Authenticate\",\r\n AuthenticationInfo = \"Authentication-Info\"\r\n}\r\n\r\n/**\r\n * Persistent cache keys MSAL which stay while user is logged in.\r\n */\r\nexport enum PersistentCacheKeys {\r\n ID_TOKEN = \"idtoken\",\r\n CLIENT_INFO = \"client.info\",\r\n ADAL_ID_TOKEN = \"adal.idtoken\",\r\n ERROR = \"error\",\r\n ERROR_DESC = \"error.description\",\r\n ACTIVE_ACCOUNT = \"active-account\"\r\n}\r\n\r\n/**\r\n * String constants related to AAD Authority\r\n */\r\nexport enum AADAuthorityConstants {\r\n COMMON = \"common\",\r\n ORGANIZATIONS = \"organizations\",\r\n CONSUMERS = \"consumers\"\r\n}\r\n\r\n/**\r\n * Keys in the hashParams sent by AAD Server\r\n */\r\nexport enum AADServerParamKeys {\r\n CLIENT_ID = \"client_id\",\r\n REDIRECT_URI = \"redirect_uri\",\r\n RESPONSE_TYPE = \"response_type\",\r\n RESPONSE_MODE = \"response_mode\",\r\n GRANT_TYPE = \"grant_type\",\r\n CLAIMS = \"claims\",\r\n SCOPE = \"scope\",\r\n ERROR = \"error\",\r\n ERROR_DESCRIPTION = \"error_description\",\r\n ACCESS_TOKEN = \"access_token\",\r\n ID_TOKEN = \"id_token\",\r\n REFRESH_TOKEN = \"refresh_token\",\r\n EXPIRES_IN = \"expires_in\",\r\n STATE = \"state\",\r\n NONCE = \"nonce\",\r\n PROMPT = \"prompt\",\r\n SESSION_STATE = \"session_state\",\r\n CLIENT_INFO = \"client_info\",\r\n CODE = \"code\",\r\n CODE_CHALLENGE = \"code_challenge\",\r\n CODE_CHALLENGE_METHOD = \"code_challenge_method\",\r\n CODE_VERIFIER = \"code_verifier\",\r\n CLIENT_REQUEST_ID = \"client-request-id\",\r\n X_CLIENT_SKU = \"x-client-SKU\",\r\n X_CLIENT_VER = \"x-client-VER\",\r\n X_CLIENT_OS = \"x-client-OS\",\r\n X_CLIENT_CPU = \"x-client-CPU\",\r\n X_CLIENT_CURR_TELEM = \"x-client-current-telemetry\",\r\n X_CLIENT_LAST_TELEM = \"x-client-last-telemetry\",\r\n X_MS_LIB_CAPABILITY = \"x-ms-lib-capability\",\r\n X_APP_NAME = \"x-app-name\",\r\n X_APP_VER = \"x-app-ver\",\r\n POST_LOGOUT_URI = \"post_logout_redirect_uri\",\r\n ID_TOKEN_HINT= \"id_token_hint\",\r\n DEVICE_CODE = \"device_code\",\r\n CLIENT_SECRET = \"client_secret\",\r\n CLIENT_ASSERTION = \"client_assertion\",\r\n CLIENT_ASSERTION_TYPE = \"client_assertion_type\",\r\n TOKEN_TYPE = \"token_type\",\r\n REQ_CNF = \"req_cnf\",\r\n OBO_ASSERTION = \"assertion\",\r\n REQUESTED_TOKEN_USE = \"requested_token_use\",\r\n ON_BEHALF_OF = \"on_behalf_of\",\r\n FOCI = \"foci\",\r\n CCS_HEADER = \"X-AnchorMailbox\",\r\n RETURN_SPA_CODE = \"return_spa_code\",\r\n NATIVE_BROKER = \"nativebroker\",\r\n LOGOUT_HINT = \"logout_hint\"\r\n}\r\n\r\n/**\r\n * Claims request keys\r\n */\r\nexport enum ClaimsRequestKeys {\r\n ACCESS_TOKEN = \"access_token\",\r\n XMS_CC = \"xms_cc\"\r\n}\r\n\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n */\r\nexport const PromptValue = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\",\r\n CREATE: \"create\"\r\n};\r\n\r\n/**\r\n * SSO Types - generated to populate hints\r\n */\r\nexport enum SSOTypes {\r\n ACCOUNT = \"account\",\r\n SID = \"sid\",\r\n LOGIN_HINT = \"login_hint\",\r\n ID_TOKEN = \"id_token\",\r\n DOMAIN_HINT = \"domain_hint\",\r\n ORGANIZATIONS = \"organizations\",\r\n CONSUMERS = \"consumers\",\r\n ACCOUNT_ID = \"accountIdentifier\",\r\n HOMEACCOUNT_ID = \"homeAccountIdentifier\"\r\n}\r\n\r\n/**\r\n * Disallowed extra query parameters.\r\n */\r\nexport const BlacklistedEQParams = [\r\n SSOTypes.SID,\r\n SSOTypes.LOGIN_HINT\r\n];\r\n\r\n/**\r\n * allowed values for codeVerifier\r\n */\r\nexport const CodeChallengeMethodValues = {\r\n PLAIN: \"plain\",\r\n S256: \"S256\"\r\n};\r\n\r\n/**\r\n * The method used to encode the code verifier for the code challenge parameter. can be one\r\n * of plain or s256. if excluded, code challenge is assumed to be plaintext. for more\r\n * information, see the pkce rcf: https://tools.ietf.org/html/rfc7636\r\n */\r\nexport const CodeChallengeMethodValuesArray: string[] = [\r\n CodeChallengeMethodValues.PLAIN,\r\n CodeChallengeMethodValues.S256\r\n];\r\n\r\n/**\r\n * allowed values for response_mode\r\n */\r\nexport enum ResponseMode {\r\n QUERY = \"query\",\r\n FRAGMENT = \"fragment\",\r\n FORM_POST = \"form_post\"\r\n}\r\n\r\n/**\r\n * allowed grant_type\r\n */\r\nexport enum GrantType {\r\n IMPLICIT_GRANT = \"implicit\",\r\n AUTHORIZATION_CODE_GRANT = \"authorization_code\",\r\n CLIENT_CREDENTIALS_GRANT = \"client_credentials\",\r\n RESOURCE_OWNER_PASSWORD_GRANT = \"password\",\r\n REFRESH_TOKEN_GRANT = \"refresh_token\",\r\n DEVICE_CODE_GRANT = \"device_code\",\r\n JWT_BEARER = \"urn:ietf:params:oauth:grant-type:jwt-bearer\"\r\n}\r\n\r\n/**\r\n * Account types in Cache\r\n */\r\nexport enum CacheAccountType {\r\n MSSTS_ACCOUNT_TYPE = \"MSSTS\",\r\n ADFS_ACCOUNT_TYPE = \"ADFS\",\r\n MSAV1_ACCOUNT_TYPE = \"MSA\",\r\n GENERIC_ACCOUNT_TYPE = \"Generic\" // NTLM, Kerberos, FBA, Basic etc\r\n}\r\n\r\n/**\r\n * Separators used in cache\r\n */\r\nexport enum Separators {\r\n CACHE_KEY_SEPARATOR = \"-\",\r\n CLIENT_INFO_SEPARATOR = \".\"\r\n}\r\n\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nexport enum CredentialType {\r\n ID_TOKEN = \"IdToken\",\r\n ACCESS_TOKEN = \"AccessToken\",\r\n ACCESS_TOKEN_WITH_AUTH_SCHEME = \"AccessToken_With_AuthScheme\",\r\n REFRESH_TOKEN = \"RefreshToken\",\r\n}\r\n\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nexport enum CacheSchemaType {\r\n ACCOUNT = \"Account\",\r\n CREDENTIAL = \"Credential\",\r\n ID_TOKEN = \"IdToken\",\r\n ACCESS_TOKEN = \"AccessToken\",\r\n REFRESH_TOKEN = \"RefreshToken\",\r\n APP_METADATA = \"AppMetadata\",\r\n TEMPORARY = \"TempCache\",\r\n TELEMETRY = \"Telemetry\",\r\n UNDEFINED = \"Undefined\",\r\n THROTTLING = \"Throttling\"\r\n}\r\n\r\n/**\r\n * Combine all cache types\r\n */\r\nexport enum CacheType {\r\n ADFS = 1001,\r\n MSA = 1002,\r\n MSSTS = 1003,\r\n GENERIC = 1004,\r\n ACCESS_TOKEN = 2001,\r\n REFRESH_TOKEN = 2002,\r\n ID_TOKEN = 2003,\r\n APP_METADATA = 3001,\r\n UNDEFINED = 9999\r\n}\r\n\r\n/**\r\n * More Cache related constants\r\n */\r\nexport const APP_METADATA = \"appmetadata\";\r\nexport const CLIENT_INFO = \"client_info\";\r\nexport const THE_FAMILY_ID = \"1\";\r\n\r\nexport const AUTHORITY_METADATA_CONSTANTS = {\r\n CACHE_KEY: \"authority-metadata\",\r\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\r\n};\r\n\r\nexport enum AuthorityMetadataSource {\r\n CONFIG = \"config\",\r\n CACHE = \"cache\",\r\n NETWORK = \"network\"\r\n}\r\n\r\nexport const SERVER_TELEM_CONSTANTS = {\r\n SCHEMA_VERSION: 5,\r\n MAX_CUR_HEADER_BYTES: 80, // ESTS limit is 100B, set to 80 to provide a 20B buffer\r\n MAX_LAST_HEADER_BYTES: 330, // ESTS limit is 350B, set to 330 to provide a 20B buffer,\r\n MAX_CACHED_ERRORS: 50, // Limit the number of errors that can be stored to prevent uncontrolled size gains\r\n CACHE_KEY: \"server-telemetry\",\r\n CATEGORY_SEPARATOR: \"|\",\r\n VALUE_SEPARATOR: \",\",\r\n OVERFLOW_TRUE: \"1\",\r\n OVERFLOW_FALSE: \"0\",\r\n UNKNOWN_ERROR: \"unknown_error\"\r\n};\r\n\r\n/**\r\n * Type of the authentication request\r\n */\r\nexport enum AuthenticationScheme {\r\n BEARER = \"Bearer\",\r\n POP = \"pop\",\r\n SSH = \"ssh-cert\"\r\n}\r\n\r\n/**\r\n * Constants related to throttling\r\n */\r\nexport const ThrottlingConstants = {\r\n // Default time to throttle RequestThumbprint in seconds\r\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\r\n // Default maximum time to throttle in seconds, overrides what the server sends back\r\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\r\n // Prefix for storing throttling entries\r\n THROTTLING_PREFIX: \"throttling\",\r\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\r\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\r\n};\r\n\r\nexport const Errors = {\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\r\n};\r\n\r\n/**\r\n * Password grant parameters\r\n */\r\nexport enum PasswordGrantConstants {\r\n username = \"username\",\r\n password = \"password\"\r\n}\r\n\r\n/**\r\n * Response codes\r\n */\r\nexport enum ResponseCodes {\r\n httpSuccess = 200,\r\n httpBadRequest = 400\r\n}\r\n\r\n/**\r\n * Region Discovery Sources\r\n */\r\nexport enum RegionDiscoverySources {\r\n FAILED_AUTO_DETECTION = \"1\",\r\n INTERNAL_CACHE = \"2\",\r\n ENVIRONMENT_VARIABLE = \"3\",\r\n IMDS = \"4\",\r\n}\r\n\r\n/**\r\n * Region Discovery Outcomes\r\n */\r\nexport enum RegionDiscoveryOutcomes {\r\n CONFIGURED_MATCHES_DETECTED = \"1\",\r\n CONFIGURED_NO_AUTO_DETECTION = \"2\",\r\n CONFIGURED_NOT_DETECTED = \"3\",\r\n AUTO_DETECTION_REQUESTED_SUCCESSFUL = \"4\",\r\n AUTO_DETECTION_REQUESTED_FAILED = \"5\"\r\n}\r\n\r\nexport enum CacheOutcome {\r\n NO_CACHE_HIT = \"0\",\r\n FORCE_REFRESH = \"1\",\r\n NO_CACHED_ACCESS_TOKEN = \"2\",\r\n CACHED_ACCESS_TOKEN_EXPIRED = \"3\",\r\n REFRESH_CACHED_ACCESS_TOKEN = \"4\"\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v6.0.0 2022-01-04 */
1
+ /*! @azure/msal-common v6.3.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  import { StringUtils } from './StringUtils.js';
4
4
  import { Constants } from './Constants.js';
@@ -58,11 +58,11 @@ var ProtocolUtils = /** @class */ (function () {
58
58
  // Split the state between library state and user passed state and decode them separately
59
59
  var splitState = state.split(Constants.RESOURCE_DELIM);
60
60
  var libraryState = splitState[0];
61
- var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : "";
61
+ var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : Constants.EMPTY_STRING;
62
62
  var libraryStateString = cryptoObj.base64Decode(libraryState);
63
63
  var libraryStateObj = JSON.parse(libraryStateString);
64
64
  return {
65
- userRequestState: !StringUtils.isEmpty(userState) ? userState : "",
65
+ userRequestState: !StringUtils.isEmpty(userState) ? userState : Constants.EMPTY_STRING,
66
66
  libraryState: libraryStateObj
67
67
  };
68
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProtocolUtils.js","sources":["../../src/utils/ProtocolUtils.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { StringUtils } from \"./StringUtils\";\nimport { Constants } from \"./Constants\";\nimport { ICrypto } from \"../crypto/ICrypto\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\n\n/**\n * Type which defines the object that is stringified, encoded and sent in the state value.\n * Contains the following:\n * - id - unique identifier for this request\n * - ts - timestamp for the time the request was made. Used to ensure that token expiration is not calculated incorrectly.\n * - platformState - string value sent from the platform.\n */\nexport type LibraryStateObject = {\n id: string,\n meta?: Record<string, string>\n};\n\n/**\n * Type which defines the stringified and encoded object sent to the service in the authorize request.\n */\nexport type RequestStateObject = {\n userRequestState: string,\n libraryState: LibraryStateObject\n};\n\n/**\n * Class which provides helpers for OAuth 2.0 protocol specific values\n */\nexport class ProtocolUtils {\n\n /**\n * Appends user state with random guid, or returns random guid.\n * @param userState \n * @param randomGuid \n */\n static setRequestState(cryptoObj: ICrypto, userState?: string, meta?: Record<string, string>): string {\n const libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\n return !StringUtils.isEmpty(userState) ? `${libraryState}${Constants.RESOURCE_DELIM}${userState}` : libraryState;\n }\n\n /**\n * Generates the state value used by the common library.\n * @param randomGuid \n * @param cryptoObj \n */\n static generateLibraryState(cryptoObj: ICrypto, meta?: Record<string, string>): string {\n if (!cryptoObj) {\n throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\n }\n\n // Create a state object containing a unique id and the timestamp of the request creation\n const stateObj: LibraryStateObject = {\n id: cryptoObj.createNewGuid()\n };\n\n if (meta) {\n stateObj.meta = meta;\n }\n\n const stateString = JSON.stringify(stateObj);\n\n return cryptoObj.base64Encode(stateString);\n }\n\n /**\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\n * @param state \n * @param cryptoObj \n */\n static parseRequestState(cryptoObj: ICrypto, state: string): RequestStateObject {\n if (!cryptoObj) {\n throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\n }\n\n if (StringUtils.isEmpty(state)) {\n throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\n }\n\n try {\n // Split the state between library state and user passed state and decode them separately\n const splitState = state.split(Constants.RESOURCE_DELIM);\n const libraryState = splitState[0];\n const userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : \"\";\n const libraryStateString = cryptoObj.base64Decode(libraryState);\n const libraryStateObj = JSON.parse(libraryStateString) as LibraryStateObject;\n return {\n userRequestState: !StringUtils.isEmpty(userState) ? userState : \"\",\n libraryState: libraryStateObj\n };\n } catch(e) {\n throw ClientAuthError.createInvalidStateError(state, e);\n }\n }\n}\n"],"names":[],"mappings":";;;;;;AAAA;;;;AA8BA;;;;IAGA;KAiEC;;;;;;IA1DU,6BAAe,GAAtB,UAAuB,SAAkB,EAAE,SAAkB,EAAE,IAA6B;QACxF,IAAM,YAAY,GAAG,aAAa,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,KAAG,YAAY,GAAG,SAAS,CAAC,cAAc,GAAG,SAAW,GAAG,YAAY,CAAC;KACpH;;;;;;IAOM,kCAAoB,GAA3B,UAA4B,SAAkB,EAAE,IAA6B;QACzE,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,eAAe,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,CAAC;SAC3E;;QAGD,IAAM,QAAQ,GAAuB;YACjC,EAAE,EAAE,SAAS,CAAC,aAAa,EAAE;SAChC,CAAC;QAEF,IAAI,IAAI,EAAE;YACN,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;SACxB;QAED,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE7C,OAAO,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;KAC9C;;;;;;IAOM,+BAAiB,GAAxB,UAAyB,SAAkB,EAAE,KAAa;QACtD,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,eAAe,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;SACxE;QAED,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC5B,MAAM,eAAe,CAAC,uBAAuB,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC;SAC1F;QAED,IAAI;;YAEA,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACzD,IAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,IAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;YAClG,IAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAChE,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAuB,CAAC;YAC7E,OAAO;gBACH,gBAAgB,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,EAAE;gBAClE,YAAY,EAAE,eAAe;aAChC,CAAC;SACL;QAAC,OAAM,CAAC,EAAE;YACP,MAAM,eAAe,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC3D;KACJ;IACL,oBAAC;AAAD,CAAC;;;;"}
1
+ {"version":3,"file":"ProtocolUtils.js","sources":["../../src/utils/ProtocolUtils.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { StringUtils } from \"./StringUtils\";\r\nimport { Constants } from \"./Constants\";\r\nimport { ICrypto } from \"../crypto/ICrypto\";\r\nimport { ClientAuthError } from \"../error/ClientAuthError\";\r\n\r\n/**\r\n * Type which defines the object that is stringified, encoded and sent in the state value.\r\n * Contains the following:\r\n * - id - unique identifier for this request\r\n * - ts - timestamp for the time the request was made. Used to ensure that token expiration is not calculated incorrectly.\r\n * - platformState - string value sent from the platform.\r\n */\r\nexport type LibraryStateObject = {\r\n id: string,\r\n meta?: Record<string, string>\r\n};\r\n\r\n/**\r\n * Type which defines the stringified and encoded object sent to the service in the authorize request.\r\n */\r\nexport type RequestStateObject = {\r\n userRequestState: string,\r\n libraryState: LibraryStateObject\r\n};\r\n\r\n/**\r\n * Class which provides helpers for OAuth 2.0 protocol specific values\r\n */\r\nexport class ProtocolUtils {\r\n\r\n /**\r\n * Appends user state with random guid, or returns random guid.\r\n * @param userState \r\n * @param randomGuid \r\n */\r\n static setRequestState(cryptoObj: ICrypto, userState?: string, meta?: Record<string, string>): string {\r\n const libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\r\n return !StringUtils.isEmpty(userState) ? `${libraryState}${Constants.RESOURCE_DELIM}${userState}` : libraryState;\r\n }\r\n\r\n /**\r\n * Generates the state value used by the common library.\r\n * @param randomGuid \r\n * @param cryptoObj \r\n */\r\n static generateLibraryState(cryptoObj: ICrypto, meta?: Record<string, string>): string {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\r\n }\r\n\r\n // Create a state object containing a unique id and the timestamp of the request creation\r\n const stateObj: LibraryStateObject = {\r\n id: cryptoObj.createNewGuid()\r\n };\r\n\r\n if (meta) {\r\n stateObj.meta = meta;\r\n }\r\n\r\n const stateString = JSON.stringify(stateObj);\r\n\r\n return cryptoObj.base64Encode(stateString);\r\n }\r\n\r\n /**\r\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\r\n * @param state \r\n * @param cryptoObj \r\n */\r\n static parseRequestState(cryptoObj: ICrypto, state: string): RequestStateObject {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\r\n }\r\n\r\n if (StringUtils.isEmpty(state)) {\r\n throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\r\n }\r\n\r\n try {\r\n // Split the state between library state and user passed state and decode them separately\r\n const splitState = state.split(Constants.RESOURCE_DELIM);\r\n const libraryState = splitState[0];\r\n const userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : Constants.EMPTY_STRING;\r\n const libraryStateString = cryptoObj.base64Decode(libraryState);\r\n const libraryStateObj = JSON.parse(libraryStateString) as LibraryStateObject;\r\n return {\r\n userRequestState: !StringUtils.isEmpty(userState) ? userState : Constants.EMPTY_STRING,\r\n libraryState: libraryStateObj\r\n };\r\n } catch(e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;;;AAAA;;;;AA8BA;;;;IAGA;KAiEC;;;;;;IA1DU,6BAAe,GAAtB,UAAuB,SAAkB,EAAE,SAAkB,EAAE,IAA6B;QACxF,IAAM,YAAY,GAAG,aAAa,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,KAAG,YAAY,GAAG,SAAS,CAAC,cAAc,GAAG,SAAW,GAAG,YAAY,CAAC;KACpH;;;;;;IAOM,kCAAoB,GAA3B,UAA4B,SAAkB,EAAE,IAA6B;QACzE,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,eAAe,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,CAAC;SAC3E;;QAGD,IAAM,QAAQ,GAAuB;YACjC,EAAE,EAAE,SAAS,CAAC,aAAa,EAAE;SAChC,CAAC;QAEF,IAAI,IAAI,EAAE;YACN,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;SACxB;QAED,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE7C,OAAO,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;KAC9C;;;;;;IAOM,+BAAiB,GAAxB,UAAyB,SAAkB,EAAE,KAAa;QACtD,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,eAAe,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;SACxE;QAED,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC5B,MAAM,eAAe,CAAC,uBAAuB,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC;SAC1F;QAED,IAAI;;YAEA,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACzD,IAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,IAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC;YACtH,IAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAChE,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAuB,CAAC;YAC7E,OAAO;gBACH,gBAAgB,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC,YAAY;gBACtF,YAAY,EAAE,eAAe;aAChC,CAAC;SACL;QAAC,OAAM,CAAC,EAAE;YACP,MAAM,eAAe,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC3D;KACJ;IACL,oBAAC;AAAD,CAAC;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v6.0.0 2022-01-04 */
1
+ /*! @azure/msal-common v6.3.0-beta.0 2022-04-27 */
2
2
  'use strict';
3
3
  import { ClientAuthError } from '../error/ClientAuthError.js';
4
4