@azure/msal-common 4.2.1 → 4.5.1

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 (190) hide show
  1. package/CHANGELOG.json +212 -1
  2. package/LICENSE +21 -21
  3. package/README.md +61 -58
  4. package/changelog.md +402 -344
  5. package/dist/_virtual/_tslib.js +90 -0
  6. package/dist/_virtual/_tslib.js.map +1 -0
  7. package/dist/account/AuthToken.js +43 -0
  8. package/dist/account/AuthToken.js.map +1 -0
  9. package/dist/account/CcsCredential.d.ts +9 -0
  10. package/dist/account/CcsCredential.d.ts.map +1 -0
  11. package/dist/account/CcsCredential.js +14 -0
  12. package/dist/account/CcsCredential.js.map +1 -0
  13. package/dist/account/ClientInfo.d.ts +6 -1
  14. package/dist/account/ClientInfo.d.ts.map +1 -1
  15. package/dist/account/ClientInfo.js +44 -0
  16. package/dist/account/ClientInfo.js.map +1 -0
  17. package/dist/account/TokenClaims.d.ts +1 -0
  18. package/dist/account/TokenClaims.d.ts.map +1 -1
  19. package/dist/authority/Authority.d.ts +25 -0
  20. package/dist/authority/Authority.d.ts.map +1 -1
  21. package/dist/authority/Authority.js +574 -0
  22. package/dist/authority/Authority.js.map +1 -0
  23. package/dist/authority/AuthorityFactory.js +69 -0
  24. package/dist/authority/AuthorityFactory.js.map +1 -0
  25. package/dist/authority/AuthorityOptions.d.ts +2 -0
  26. package/dist/authority/AuthorityOptions.d.ts.map +1 -1
  27. package/dist/authority/AuthorityType.js +17 -0
  28. package/dist/authority/AuthorityType.js.map +1 -0
  29. package/dist/authority/AzureRegion.d.ts +2 -0
  30. package/dist/authority/AzureRegion.d.ts.map +1 -0
  31. package/dist/authority/AzureRegionConfiguration.d.ts +6 -0
  32. package/dist/authority/AzureRegionConfiguration.d.ts.map +1 -0
  33. package/dist/authority/CloudInstanceDiscoveryResponse.js +13 -0
  34. package/dist/authority/CloudInstanceDiscoveryResponse.js.map +1 -0
  35. package/dist/authority/OpenIdConfigResponse.js +15 -0
  36. package/dist/authority/OpenIdConfigResponse.js.map +1 -0
  37. package/dist/authority/ProtocolMode.js +17 -0
  38. package/dist/authority/ProtocolMode.js.map +1 -0
  39. package/dist/authority/RegionDiscovery.d.ts +31 -0
  40. package/dist/authority/RegionDiscovery.d.ts.map +1 -0
  41. package/dist/authority/RegionDiscovery.js +119 -0
  42. package/dist/authority/RegionDiscovery.js.map +1 -0
  43. package/dist/authority/RegionDiscoveryMetadata.d.ts +7 -0
  44. package/dist/authority/RegionDiscoveryMetadata.d.ts.map +1 -0
  45. package/dist/cache/CacheManager.js +713 -0
  46. package/dist/cache/CacheManager.js.map +1 -0
  47. package/dist/cache/entities/AccessTokenEntity.js +111 -0
  48. package/dist/cache/entities/AccessTokenEntity.js.map +1 -0
  49. package/dist/cache/entities/AccountEntity.d.ts +5 -5
  50. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  51. package/dist/cache/entities/AccountEntity.js +242 -0
  52. package/dist/cache/entities/AccountEntity.js.map +1 -0
  53. package/dist/cache/entities/AppMetadataEntity.js +74 -0
  54. package/dist/cache/entities/AppMetadataEntity.js.map +1 -0
  55. package/dist/cache/entities/AuthorityMetadataEntity.js +81 -0
  56. package/dist/cache/entities/AuthorityMetadataEntity.js.map +1 -0
  57. package/dist/cache/entities/CacheRecord.js +19 -0
  58. package/dist/cache/entities/CacheRecord.js.map +1 -0
  59. package/dist/cache/entities/CredentialEntity.js +142 -0
  60. package/dist/cache/entities/CredentialEntity.js.map +1 -0
  61. package/dist/cache/entities/IdTokenEntity.js +71 -0
  62. package/dist/cache/entities/IdTokenEntity.js.map +1 -0
  63. package/dist/cache/entities/RefreshTokenEntity.js +73 -0
  64. package/dist/cache/entities/RefreshTokenEntity.js.map +1 -0
  65. package/dist/cache/entities/ServerTelemetryEntity.js +35 -0
  66. package/dist/cache/entities/ServerTelemetryEntity.js.map +1 -0
  67. package/dist/cache/entities/ThrottlingEntity.js +32 -0
  68. package/dist/cache/entities/ThrottlingEntity.js.map +1 -0
  69. package/dist/cache/persistence/TokenCacheContext.js +39 -0
  70. package/dist/cache/persistence/TokenCacheContext.js.map +1 -0
  71. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  72. package/dist/client/AuthorizationCodeClient.js +388 -0
  73. package/dist/client/AuthorizationCodeClient.js.map +1 -0
  74. package/dist/client/BaseClient.d.ts +2 -1
  75. package/dist/client/BaseClient.d.ts.map +1 -1
  76. package/dist/client/BaseClient.js +101 -0
  77. package/dist/client/BaseClient.js.map +1 -0
  78. package/dist/client/ClientCredentialClient.d.ts.map +1 -1
  79. package/dist/client/ClientCredentialClient.js +169 -0
  80. package/dist/client/ClientCredentialClient.js.map +1 -0
  81. package/dist/client/DeviceCodeClient.d.ts +6 -0
  82. package/dist/client/DeviceCodeClient.d.ts.map +1 -1
  83. package/dist/client/DeviceCodeClient.js +212 -0
  84. package/dist/client/DeviceCodeClient.js.map +1 -0
  85. package/dist/client/OnBehalfOfClient.d.ts.map +1 -1
  86. package/dist/client/OnBehalfOfClient.js +209 -0
  87. package/dist/client/OnBehalfOfClient.js.map +1 -0
  88. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  89. package/dist/client/RefreshTokenClient.js +212 -0
  90. package/dist/client/RefreshTokenClient.js.map +1 -0
  91. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  92. package/dist/client/SilentFlowClient.js +132 -0
  93. package/dist/client/SilentFlowClient.js.map +1 -0
  94. package/dist/client/UsernamePasswordClient.d.ts.map +1 -1
  95. package/dist/client/UsernamePasswordClient.js +112 -0
  96. package/dist/client/UsernamePasswordClient.js.map +1 -0
  97. package/dist/config/ClientConfiguration.d.ts +3 -0
  98. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  99. package/dist/config/ClientConfiguration.js +91 -0
  100. package/dist/config/ClientConfiguration.js.map +1 -0
  101. package/dist/crypto/ICrypto.js +53 -0
  102. package/dist/crypto/ICrypto.js.map +1 -0
  103. package/dist/crypto/PopTokenGenerator.js +72 -0
  104. package/dist/crypto/PopTokenGenerator.js.map +1 -0
  105. package/dist/error/AuthError.js +46 -0
  106. package/dist/error/AuthError.js.map +1 -0
  107. package/dist/error/ClientAuthError.d.ts +13 -6
  108. package/dist/error/ClientAuthError.d.ts.map +1 -1
  109. package/dist/error/ClientAuthError.js +456 -0
  110. package/dist/error/ClientAuthError.js.map +1 -0
  111. package/dist/error/ClientConfigurationError.d.ts +1 -6
  112. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  113. package/dist/error/ClientConfigurationError.js +210 -0
  114. package/dist/error/ClientConfigurationError.js.map +1 -0
  115. package/dist/error/InteractionRequiredAuthError.js +48 -0
  116. package/dist/error/InteractionRequiredAuthError.js.map +1 -0
  117. package/dist/error/ServerError.js +25 -0
  118. package/dist/error/ServerError.js.map +1 -0
  119. package/dist/index.cjs.js +7045 -0
  120. package/dist/index.cjs.js.map +1 -0
  121. package/dist/index.d.ts +4 -0
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +43 -6479
  124. package/dist/index.js.map +1 -0
  125. package/dist/logger/Logger.d.ts +12 -3
  126. package/dist/logger/Logger.d.ts.map +1 -1
  127. package/dist/logger/Logger.js +183 -0
  128. package/dist/logger/Logger.js.map +1 -0
  129. package/dist/network/INetworkModule.d.ts +1 -1
  130. package/dist/network/INetworkModule.d.ts.map +1 -1
  131. package/dist/network/INetworkModule.js +21 -0
  132. package/dist/network/INetworkModule.js.map +1 -0
  133. package/dist/network/NetworkManager.js +56 -0
  134. package/dist/network/NetworkManager.js.map +1 -0
  135. package/dist/network/ThrottlingUtils.d.ts.map +1 -1
  136. package/dist/network/ThrottlingUtils.js +95 -0
  137. package/dist/network/ThrottlingUtils.js.map +1 -0
  138. package/dist/packageMetadata.d.ts +1 -1
  139. package/dist/packageMetadata.js +8 -0
  140. package/dist/packageMetadata.js.map +1 -0
  141. package/dist/request/CommonAuthorizationCodeRequest.d.ts +3 -0
  142. package/dist/request/CommonAuthorizationCodeRequest.d.ts.map +1 -1
  143. package/dist/request/CommonAuthorizationUrlRequest.d.ts +1 -0
  144. package/dist/request/CommonAuthorizationUrlRequest.d.ts.map +1 -1
  145. package/dist/request/CommonClientCredentialRequest.d.ts +7 -4
  146. package/dist/request/CommonClientCredentialRequest.d.ts.map +1 -1
  147. package/dist/request/CommonRefreshTokenRequest.d.ts +2 -0
  148. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  149. package/dist/request/RequestParameterBuilder.d.ts +11 -0
  150. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  151. package/dist/request/RequestParameterBuilder.js +340 -0
  152. package/dist/request/RequestParameterBuilder.js.map +1 -0
  153. package/dist/request/RequestValidator.d.ts.map +1 -1
  154. package/dist/request/RequestValidator.js +92 -0
  155. package/dist/request/RequestValidator.js.map +1 -0
  156. package/dist/request/ScopeSet.js +192 -0
  157. package/dist/request/ScopeSet.js.map +1 -0
  158. package/dist/response/AuthenticationResult.d.ts +1 -1
  159. package/dist/response/AuthenticationResult.d.ts.map +1 -1
  160. package/dist/response/AuthorizationCodePayload.d.ts +1 -0
  161. package/dist/response/AuthorizationCodePayload.d.ts.map +1 -1
  162. package/dist/response/IMDSBadResponse.d.ts +5 -0
  163. package/dist/response/IMDSBadResponse.d.ts.map +1 -0
  164. package/dist/response/ResponseHandler.d.ts.map +1 -1
  165. package/dist/response/ResponseHandler.js +281 -0
  166. package/dist/response/ResponseHandler.js.map +1 -0
  167. package/dist/telemetry/server/ServerTelemetryManager.d.ts +23 -1
  168. package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
  169. package/dist/telemetry/server/ServerTelemetryManager.js +168 -0
  170. package/dist/telemetry/server/ServerTelemetryManager.js.map +1 -0
  171. package/dist/url/UrlString.d.ts +10 -0
  172. package/dist/url/UrlString.d.ts.map +1 -1
  173. package/dist/url/UrlString.js +223 -0
  174. package/dist/url/UrlString.js.map +1 -0
  175. package/dist/utils/Constants.d.ts +47 -4
  176. package/dist/utils/Constants.d.ts.map +1 -1
  177. package/dist/utils/Constants.js +362 -0
  178. package/dist/utils/Constants.js.map +1 -0
  179. package/dist/utils/ProtocolUtils.js +77 -0
  180. package/dist/utils/ProtocolUtils.js.map +1 -0
  181. package/dist/utils/StringUtils.d.ts +5 -0
  182. package/dist/utils/StringUtils.d.ts.map +1 -1
  183. package/dist/utils/StringUtils.js +128 -0
  184. package/dist/utils/StringUtils.js.map +1 -0
  185. package/dist/utils/TimeUtils.d.ts +13 -0
  186. package/dist/utils/TimeUtils.d.ts.map +1 -1
  187. package/dist/utils/TimeUtils.js +53 -0
  188. package/dist/utils/TimeUtils.js.map +1 -0
  189. package/package.json +10 -19
  190. package/dist/index.es.js +0 -6472
@@ -0,0 +1,362 @@
1
+ /*! @azure/msal-common v4.5.1 2021-08-02 */
2
+ 'use strict';
3
+ import { __spreadArrays } from '../_virtual/_tslib.js';
4
+
5
+ /*
6
+ * Copyright (c) Microsoft Corporation. All rights reserved.
7
+ * Licensed under the MIT License.
8
+ */
9
+ var Constants = {
10
+ LIBRARY_NAME: "MSAL.JS",
11
+ SKU: "msal.js.common",
12
+ // Prefix for all library cache entries
13
+ CACHE_PREFIX: "msal",
14
+ // default authority
15
+ DEFAULT_AUTHORITY: "https://login.microsoftonline.com/common/",
16
+ DEFAULT_AUTHORITY_HOST: "login.microsoftonline.com",
17
+ // ADFS String
18
+ ADFS: "adfs",
19
+ // Default AAD Instance Discovery Endpoint
20
+ AAD_INSTANCE_DISCOVERY_ENDPT: "https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=",
21
+ // Resource delimiter - used for certain cache entries
22
+ RESOURCE_DELIM: "|",
23
+ // Placeholder for non-existent account ids/objects
24
+ NO_ACCOUNT: "NO_ACCOUNT",
25
+ // Claims
26
+ CLAIMS: "claims",
27
+ // Consumer UTID
28
+ CONSUMER_UTID: "9188040d-6c67-4c5b-b112-36a304b66dad",
29
+ // Default scopes
30
+ OPENID_SCOPE: "openid",
31
+ PROFILE_SCOPE: "profile",
32
+ OFFLINE_ACCESS_SCOPE: "offline_access",
33
+ EMAIL_SCOPE: "email",
34
+ // Default response type for authorization code flow
35
+ CODE_RESPONSE_TYPE: "code",
36
+ CODE_GRANT_TYPE: "authorization_code",
37
+ RT_GRANT_TYPE: "refresh_token",
38
+ FRAGMENT_RESPONSE_MODE: "fragment",
39
+ S256_CODE_CHALLENGE_METHOD: "S256",
40
+ URL_FORM_CONTENT_TYPE: "application/x-www-form-urlencoded;charset=utf-8",
41
+ AUTHORIZATION_PENDING: "authorization_pending",
42
+ NOT_DEFINED: "not_defined",
43
+ EMPTY_STRING: "",
44
+ FORWARD_SLASH: "/",
45
+ IMDS_ENDPOINT: "http://169.254.169.254/metadata/instance/compute/location",
46
+ IMDS_VERSION: "2020-06-01",
47
+ IMDS_TIMEOUT: 2000,
48
+ AZURE_REGION_AUTO_DISCOVER_FLAG: "TryAutoDetect",
49
+ 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
+ };
52
+ var OIDC_DEFAULT_SCOPES = [
53
+ Constants.OPENID_SCOPE,
54
+ Constants.PROFILE_SCOPE,
55
+ Constants.OFFLINE_ACCESS_SCOPE
56
+ ];
57
+ var OIDC_SCOPES = __spreadArrays(OIDC_DEFAULT_SCOPES, [
58
+ Constants.EMAIL_SCOPE
59
+ ]);
60
+ /**
61
+ * Request header names
62
+ */
63
+ var HeaderNames;
64
+ (function (HeaderNames) {
65
+ HeaderNames["CONTENT_TYPE"] = "Content-Type";
66
+ HeaderNames["RETRY_AFTER"] = "Retry-After";
67
+ HeaderNames["CCS_HEADER"] = "X-AnchorMailbox";
68
+ })(HeaderNames || (HeaderNames = {}));
69
+ /**
70
+ * Persistent cache keys MSAL which stay while user is logged in.
71
+ */
72
+ var PersistentCacheKeys;
73
+ (function (PersistentCacheKeys) {
74
+ PersistentCacheKeys["ID_TOKEN"] = "idtoken";
75
+ PersistentCacheKeys["CLIENT_INFO"] = "client.info";
76
+ PersistentCacheKeys["ADAL_ID_TOKEN"] = "adal.idtoken";
77
+ PersistentCacheKeys["ERROR"] = "error";
78
+ PersistentCacheKeys["ERROR_DESC"] = "error.description";
79
+ PersistentCacheKeys["ACTIVE_ACCOUNT"] = "active-account";
80
+ })(PersistentCacheKeys || (PersistentCacheKeys = {}));
81
+ /**
82
+ * String constants related to AAD Authority
83
+ */
84
+ var AADAuthorityConstants;
85
+ (function (AADAuthorityConstants) {
86
+ AADAuthorityConstants["COMMON"] = "common";
87
+ AADAuthorityConstants["ORGANIZATIONS"] = "organizations";
88
+ AADAuthorityConstants["CONSUMERS"] = "consumers";
89
+ })(AADAuthorityConstants || (AADAuthorityConstants = {}));
90
+ /**
91
+ * Keys in the hashParams sent by AAD Server
92
+ */
93
+ var AADServerParamKeys;
94
+ (function (AADServerParamKeys) {
95
+ AADServerParamKeys["CLIENT_ID"] = "client_id";
96
+ AADServerParamKeys["REDIRECT_URI"] = "redirect_uri";
97
+ AADServerParamKeys["RESPONSE_TYPE"] = "response_type";
98
+ AADServerParamKeys["RESPONSE_MODE"] = "response_mode";
99
+ AADServerParamKeys["GRANT_TYPE"] = "grant_type";
100
+ AADServerParamKeys["CLAIMS"] = "claims";
101
+ AADServerParamKeys["SCOPE"] = "scope";
102
+ AADServerParamKeys["ERROR"] = "error";
103
+ AADServerParamKeys["ERROR_DESCRIPTION"] = "error_description";
104
+ AADServerParamKeys["ACCESS_TOKEN"] = "access_token";
105
+ AADServerParamKeys["ID_TOKEN"] = "id_token";
106
+ AADServerParamKeys["REFRESH_TOKEN"] = "refresh_token";
107
+ AADServerParamKeys["EXPIRES_IN"] = "expires_in";
108
+ AADServerParamKeys["STATE"] = "state";
109
+ AADServerParamKeys["NONCE"] = "nonce";
110
+ AADServerParamKeys["PROMPT"] = "prompt";
111
+ AADServerParamKeys["SESSION_STATE"] = "session_state";
112
+ AADServerParamKeys["CLIENT_INFO"] = "client_info";
113
+ AADServerParamKeys["CODE"] = "code";
114
+ AADServerParamKeys["CODE_CHALLENGE"] = "code_challenge";
115
+ AADServerParamKeys["CODE_CHALLENGE_METHOD"] = "code_challenge_method";
116
+ AADServerParamKeys["CODE_VERIFIER"] = "code_verifier";
117
+ AADServerParamKeys["CLIENT_REQUEST_ID"] = "client-request-id";
118
+ AADServerParamKeys["X_CLIENT_SKU"] = "x-client-SKU";
119
+ AADServerParamKeys["X_CLIENT_VER"] = "x-client-VER";
120
+ AADServerParamKeys["X_CLIENT_OS"] = "x-client-OS";
121
+ AADServerParamKeys["X_CLIENT_CPU"] = "x-client-CPU";
122
+ AADServerParamKeys["X_CLIENT_CURR_TELEM"] = "x-client-current-telemetry";
123
+ AADServerParamKeys["X_CLIENT_LAST_TELEM"] = "x-client-last-telemetry";
124
+ AADServerParamKeys["X_MS_LIB_CAPABILITY"] = "x-ms-lib-capability";
125
+ AADServerParamKeys["POST_LOGOUT_URI"] = "post_logout_redirect_uri";
126
+ AADServerParamKeys["ID_TOKEN_HINT"] = "id_token_hint";
127
+ AADServerParamKeys["DEVICE_CODE"] = "device_code";
128
+ AADServerParamKeys["CLIENT_SECRET"] = "client_secret";
129
+ AADServerParamKeys["CLIENT_ASSERTION"] = "client_assertion";
130
+ AADServerParamKeys["CLIENT_ASSERTION_TYPE"] = "client_assertion_type";
131
+ AADServerParamKeys["TOKEN_TYPE"] = "token_type";
132
+ AADServerParamKeys["REQ_CNF"] = "req_cnf";
133
+ AADServerParamKeys["OBO_ASSERTION"] = "assertion";
134
+ AADServerParamKeys["REQUESTED_TOKEN_USE"] = "requested_token_use";
135
+ AADServerParamKeys["ON_BEHALF_OF"] = "on_behalf_of";
136
+ AADServerParamKeys["FOCI"] = "foci";
137
+ AADServerParamKeys["CCS_HEADER"] = "X-AnchorMailbox";
138
+ })(AADServerParamKeys || (AADServerParamKeys = {}));
139
+ /**
140
+ * Claims request keys
141
+ */
142
+ var ClaimsRequestKeys;
143
+ (function (ClaimsRequestKeys) {
144
+ ClaimsRequestKeys["ACCESS_TOKEN"] = "access_token";
145
+ ClaimsRequestKeys["XMS_CC"] = "xms_cc";
146
+ })(ClaimsRequestKeys || (ClaimsRequestKeys = {}));
147
+ /**
148
+ * we considered making this "enum" in the request instead of string, however it looks like the allowed list of
149
+ * prompt values kept changing over past couple of years. There are some undocumented prompt values for some
150
+ * internal partners too, hence the choice of generic "string" type instead of the "enum"
151
+ */
152
+ var PromptValue = {
153
+ LOGIN: "login",
154
+ SELECT_ACCOUNT: "select_account",
155
+ CONSENT: "consent",
156
+ NONE: "none",
157
+ CREATE: "create"
158
+ };
159
+ /**
160
+ * SSO Types - generated to populate hints
161
+ */
162
+ var SSOTypes;
163
+ (function (SSOTypes) {
164
+ SSOTypes["ACCOUNT"] = "account";
165
+ SSOTypes["SID"] = "sid";
166
+ SSOTypes["LOGIN_HINT"] = "login_hint";
167
+ SSOTypes["ID_TOKEN"] = "id_token";
168
+ SSOTypes["DOMAIN_HINT"] = "domain_hint";
169
+ SSOTypes["ORGANIZATIONS"] = "organizations";
170
+ SSOTypes["CONSUMERS"] = "consumers";
171
+ SSOTypes["ACCOUNT_ID"] = "accountIdentifier";
172
+ SSOTypes["HOMEACCOUNT_ID"] = "homeAccountIdentifier";
173
+ })(SSOTypes || (SSOTypes = {}));
174
+ /**
175
+ * allowed values for codeVerifier
176
+ */
177
+ var CodeChallengeMethodValues = {
178
+ PLAIN: "plain",
179
+ S256: "S256"
180
+ };
181
+ /**
182
+ * allowed values for response_mode
183
+ */
184
+ var ResponseMode;
185
+ (function (ResponseMode) {
186
+ ResponseMode["QUERY"] = "query";
187
+ ResponseMode["FRAGMENT"] = "fragment";
188
+ ResponseMode["FORM_POST"] = "form_post";
189
+ })(ResponseMode || (ResponseMode = {}));
190
+ /**
191
+ * allowed grant_type
192
+ */
193
+ var GrantType;
194
+ (function (GrantType) {
195
+ GrantType["IMPLICIT_GRANT"] = "implicit";
196
+ GrantType["AUTHORIZATION_CODE_GRANT"] = "authorization_code";
197
+ GrantType["CLIENT_CREDENTIALS_GRANT"] = "client_credentials";
198
+ GrantType["RESOURCE_OWNER_PASSWORD_GRANT"] = "password";
199
+ GrantType["REFRESH_TOKEN_GRANT"] = "refresh_token";
200
+ GrantType["DEVICE_CODE_GRANT"] = "device_code";
201
+ GrantType["JWT_BEARER"] = "urn:ietf:params:oauth:grant-type:jwt-bearer";
202
+ })(GrantType || (GrantType = {}));
203
+ /**
204
+ * Account types in Cache
205
+ */
206
+ var CacheAccountType;
207
+ (function (CacheAccountType) {
208
+ CacheAccountType["MSSTS_ACCOUNT_TYPE"] = "MSSTS";
209
+ CacheAccountType["ADFS_ACCOUNT_TYPE"] = "ADFS";
210
+ CacheAccountType["MSAV1_ACCOUNT_TYPE"] = "MSA";
211
+ CacheAccountType["GENERIC_ACCOUNT_TYPE"] = "Generic"; // NTLM, Kerberos, FBA, Basic etc
212
+ })(CacheAccountType || (CacheAccountType = {}));
213
+ /**
214
+ * Separators used in cache
215
+ */
216
+ var Separators;
217
+ (function (Separators) {
218
+ Separators["CACHE_KEY_SEPARATOR"] = "-";
219
+ Separators["CLIENT_INFO_SEPARATOR"] = ".";
220
+ })(Separators || (Separators = {}));
221
+ /**
222
+ * Credential Type stored in the cache
223
+ */
224
+ var CredentialType;
225
+ (function (CredentialType) {
226
+ CredentialType["ID_TOKEN"] = "IdToken";
227
+ CredentialType["ACCESS_TOKEN"] = "AccessToken";
228
+ CredentialType["ACCESS_TOKEN_WITH_AUTH_SCHEME"] = "AccessToken_With_AuthScheme";
229
+ CredentialType["REFRESH_TOKEN"] = "RefreshToken";
230
+ })(CredentialType || (CredentialType = {}));
231
+ /**
232
+ * Credential Type stored in the cache
233
+ */
234
+ var CacheSchemaType;
235
+ (function (CacheSchemaType) {
236
+ CacheSchemaType["ACCOUNT"] = "Account";
237
+ CacheSchemaType["CREDENTIAL"] = "Credential";
238
+ CacheSchemaType["ID_TOKEN"] = "IdToken";
239
+ CacheSchemaType["ACCESS_TOKEN"] = "AccessToken";
240
+ CacheSchemaType["REFRESH_TOKEN"] = "RefreshToken";
241
+ CacheSchemaType["APP_METADATA"] = "AppMetadata";
242
+ CacheSchemaType["TEMPORARY"] = "TempCache";
243
+ CacheSchemaType["TELEMETRY"] = "Telemetry";
244
+ CacheSchemaType["UNDEFINED"] = "Undefined";
245
+ CacheSchemaType["THROTTLING"] = "Throttling";
246
+ })(CacheSchemaType || (CacheSchemaType = {}));
247
+ /**
248
+ * Combine all cache types
249
+ */
250
+ var CacheType;
251
+ (function (CacheType) {
252
+ CacheType[CacheType["ADFS"] = 1001] = "ADFS";
253
+ CacheType[CacheType["MSA"] = 1002] = "MSA";
254
+ CacheType[CacheType["MSSTS"] = 1003] = "MSSTS";
255
+ CacheType[CacheType["GENERIC"] = 1004] = "GENERIC";
256
+ CacheType[CacheType["ACCESS_TOKEN"] = 2001] = "ACCESS_TOKEN";
257
+ CacheType[CacheType["REFRESH_TOKEN"] = 2002] = "REFRESH_TOKEN";
258
+ CacheType[CacheType["ID_TOKEN"] = 2003] = "ID_TOKEN";
259
+ CacheType[CacheType["APP_METADATA"] = 3001] = "APP_METADATA";
260
+ CacheType[CacheType["UNDEFINED"] = 9999] = "UNDEFINED";
261
+ })(CacheType || (CacheType = {}));
262
+ /**
263
+ * More Cache related constants
264
+ */
265
+ var APP_METADATA = "appmetadata";
266
+ var CLIENT_INFO = "client_info";
267
+ var THE_FAMILY_ID = "1";
268
+ var AUTHORITY_METADATA_CONSTANTS = {
269
+ CACHE_KEY: "authority-metadata",
270
+ REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours
271
+ };
272
+ var AuthorityMetadataSource;
273
+ (function (AuthorityMetadataSource) {
274
+ AuthorityMetadataSource["CONFIG"] = "config";
275
+ AuthorityMetadataSource["CACHE"] = "cache";
276
+ AuthorityMetadataSource["NETWORK"] = "network";
277
+ })(AuthorityMetadataSource || (AuthorityMetadataSource = {}));
278
+ var SERVER_TELEM_CONSTANTS = {
279
+ SCHEMA_VERSION: 5,
280
+ MAX_CUR_HEADER_BYTES: 80,
281
+ MAX_LAST_HEADER_BYTES: 330,
282
+ MAX_CACHED_ERRORS: 50,
283
+ CACHE_KEY: "server-telemetry",
284
+ CATEGORY_SEPARATOR: "|",
285
+ VALUE_SEPARATOR: ",",
286
+ OVERFLOW_TRUE: "1",
287
+ OVERFLOW_FALSE: "0",
288
+ UNKNOWN_ERROR: "unknown_error"
289
+ };
290
+ /**
291
+ * Type of the authentication request
292
+ */
293
+ var AuthenticationScheme;
294
+ (function (AuthenticationScheme) {
295
+ AuthenticationScheme["POP"] = "pop";
296
+ AuthenticationScheme["BEARER"] = "Bearer";
297
+ })(AuthenticationScheme || (AuthenticationScheme = {}));
298
+ /**
299
+ * Constants related to throttling
300
+ */
301
+ var ThrottlingConstants = {
302
+ // Default time to throttle RequestThumbprint in seconds
303
+ DEFAULT_THROTTLE_TIME_SECONDS: 60,
304
+ // Default maximum time to throttle in seconds, overrides what the server sends back
305
+ DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,
306
+ // Prefix for storing throttling entries
307
+ THROTTLING_PREFIX: "throttling",
308
+ // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling
309
+ X_MS_LIB_CAPABILITY_VALUE: "retry-after, h429"
310
+ };
311
+ var Errors = {
312
+ INVALID_GRANT_ERROR: "invalid_grant",
313
+ CLIENT_MISMATCH_ERROR: "client_mismatch",
314
+ };
315
+ /**
316
+ * Password grant parameters
317
+ */
318
+ var PasswordGrantConstants;
319
+ (function (PasswordGrantConstants) {
320
+ PasswordGrantConstants["username"] = "username";
321
+ PasswordGrantConstants["password"] = "password";
322
+ })(PasswordGrantConstants || (PasswordGrantConstants = {}));
323
+ /**
324
+ * Response codes
325
+ */
326
+ var ResponseCodes;
327
+ (function (ResponseCodes) {
328
+ ResponseCodes[ResponseCodes["httpSuccess"] = 200] = "httpSuccess";
329
+ ResponseCodes[ResponseCodes["httpBadRequest"] = 400] = "httpBadRequest";
330
+ })(ResponseCodes || (ResponseCodes = {}));
331
+ /**
332
+ * Region Discovery Sources
333
+ */
334
+ var RegionDiscoverySources;
335
+ (function (RegionDiscoverySources) {
336
+ RegionDiscoverySources["FAILED_AUTO_DETECTION"] = "1";
337
+ RegionDiscoverySources["INTERNAL_CACHE"] = "2";
338
+ RegionDiscoverySources["ENVIRONMENT_VARIABLE"] = "3";
339
+ RegionDiscoverySources["IMDS"] = "4";
340
+ })(RegionDiscoverySources || (RegionDiscoverySources = {}));
341
+ /**
342
+ * Region Discovery Outcomes
343
+ */
344
+ var RegionDiscoveryOutcomes;
345
+ (function (RegionDiscoveryOutcomes) {
346
+ RegionDiscoveryOutcomes["CONFIGURED_MATCHES_DETECTED"] = "1";
347
+ RegionDiscoveryOutcomes["CONFIGURED_NO_AUTO_DETECTION"] = "2";
348
+ RegionDiscoveryOutcomes["CONFIGURED_NOT_DETECTED"] = "3";
349
+ RegionDiscoveryOutcomes["AUTO_DETECTION_REQUESTED_SUCCESSFUL"] = "4";
350
+ RegionDiscoveryOutcomes["AUTO_DETECTION_REQUESTED_FAILED"] = "5";
351
+ })(RegionDiscoveryOutcomes || (RegionDiscoveryOutcomes = {}));
352
+ var CacheOutcome;
353
+ (function (CacheOutcome) {
354
+ CacheOutcome["NO_CACHE_HIT"] = "0";
355
+ CacheOutcome["FORCE_REFRESH"] = "1";
356
+ CacheOutcome["NO_CACHED_ACCESS_TOKEN"] = "2";
357
+ CacheOutcome["CACHED_ACCESS_TOKEN_EXPIRED"] = "3";
358
+ CacheOutcome["REFRESH_CACHED_ACCESS_TOKEN"] = "4";
359
+ })(CacheOutcome || (CacheOutcome = {}));
360
+
361
+ export { AADAuthorityConstants, AADServerParamKeys, APP_METADATA, AUTHORITY_METADATA_CONSTANTS, AuthenticationScheme, AuthorityMetadataSource, CLIENT_INFO, CacheAccountType, CacheOutcome, CacheSchemaType, CacheType, ClaimsRequestKeys, CodeChallengeMethodValues, Constants, CredentialType, Errors, GrantType, HeaderNames, OIDC_DEFAULT_SCOPES, OIDC_SCOPES, PasswordGrantConstants, PersistentCacheKeys, PromptValue, RegionDiscoveryOutcomes, RegionDiscoverySources, ResponseCodes, ResponseMode, SERVER_TELEM_CONSTANTS, SSOTypes, Separators, THE_FAMILY_ID, ThrottlingConstants };
362
+ //# sourceMappingURL=Constants.js.map
@@ -0,0 +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}\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}\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 POP = \"pop\",\n BEARER = \"Bearer\"\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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"}
@@ -0,0 +1,77 @@
1
+ /*! @azure/msal-common v4.5.1 2021-08-02 */
2
+ 'use strict';
3
+ import { StringUtils } from './StringUtils.js';
4
+ import { Constants } from './Constants.js';
5
+ import { ClientAuthError } from '../error/ClientAuthError.js';
6
+
7
+ /*
8
+ * Copyright (c) Microsoft Corporation. All rights reserved.
9
+ * Licensed under the MIT License.
10
+ */
11
+ /**
12
+ * Class which provides helpers for OAuth 2.0 protocol specific values
13
+ */
14
+ var ProtocolUtils = /** @class */ (function () {
15
+ function ProtocolUtils() {
16
+ }
17
+ /**
18
+ * Appends user state with random guid, or returns random guid.
19
+ * @param userState
20
+ * @param randomGuid
21
+ */
22
+ ProtocolUtils.setRequestState = function (cryptoObj, userState, meta) {
23
+ var libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);
24
+ return !StringUtils.isEmpty(userState) ? "" + libraryState + Constants.RESOURCE_DELIM + userState : libraryState;
25
+ };
26
+ /**
27
+ * Generates the state value used by the common library.
28
+ * @param randomGuid
29
+ * @param cryptoObj
30
+ */
31
+ ProtocolUtils.generateLibraryState = function (cryptoObj, meta) {
32
+ if (!cryptoObj) {
33
+ throw ClientAuthError.createNoCryptoObjectError("generateLibraryState");
34
+ }
35
+ // Create a state object containing a unique id and the timestamp of the request creation
36
+ var stateObj = {
37
+ id: cryptoObj.createNewGuid()
38
+ };
39
+ if (meta) {
40
+ stateObj.meta = meta;
41
+ }
42
+ var stateString = JSON.stringify(stateObj);
43
+ return cryptoObj.base64Encode(stateString);
44
+ };
45
+ /**
46
+ * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.
47
+ * @param state
48
+ * @param cryptoObj
49
+ */
50
+ ProtocolUtils.parseRequestState = function (cryptoObj, state) {
51
+ if (!cryptoObj) {
52
+ throw ClientAuthError.createNoCryptoObjectError("parseRequestState");
53
+ }
54
+ if (StringUtils.isEmpty(state)) {
55
+ throw ClientAuthError.createInvalidStateError(state, "Null, undefined or empty state");
56
+ }
57
+ try {
58
+ // Split the state between library state and user passed state and decode them separately
59
+ var splitState = state.split(Constants.RESOURCE_DELIM);
60
+ var libraryState = splitState[0];
61
+ var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : "";
62
+ var libraryStateString = cryptoObj.base64Decode(libraryState);
63
+ var libraryStateObj = JSON.parse(libraryStateString);
64
+ return {
65
+ userRequestState: !StringUtils.isEmpty(userState) ? userState : "",
66
+ libraryState: libraryStateObj
67
+ };
68
+ }
69
+ catch (e) {
70
+ throw ClientAuthError.createInvalidStateError(state, e);
71
+ }
72
+ };
73
+ return ProtocolUtils;
74
+ }());
75
+
76
+ export { ProtocolUtils };
77
+ //# sourceMappingURL=ProtocolUtils.js.map
@@ -0,0 +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;;;;"}
@@ -15,6 +15,11 @@ export declare class StringUtils {
15
15
  * @param str
16
16
  */
17
17
  static isEmpty(str?: string): boolean;
18
+ /**
19
+ * Check if stringified object is empty
20
+ * @param strObj
21
+ */
22
+ static isEmptyObj(strObj?: string): boolean;
18
23
  static startsWith(str: string, search: string): boolean;
19
24
  static endsWith(str: string, search: string): boolean;
20
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"StringUtils.d.ts","sourceRoot":"","sources":["../../src/utils/StringUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D;;GAEG;AACH,qBAAa,WAAW;IAEpB;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAiB3D;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAIrC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIvD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIrD;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAc/C;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAI1D;;;OAGG;IACH,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAMrE;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAQhD;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAS/D"}
1
+ {"version":3,"file":"StringUtils.d.ts","sourceRoot":"","sources":["../../src/utils/StringUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D;;GAEG;AACH,qBAAa,WAAW;IAEpB;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAiB3D;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAIrC;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAU3C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIvD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIrD;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAc/C;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAI1D;;;OAGG;IACH,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAMrE;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAQhD;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAS/D"}
@@ -0,0 +1,128 @@
1
+ /*! @azure/msal-common v4.5.1 2021-08-02 */
2
+ 'use strict';
3
+ import { ClientAuthError } from '../error/ClientAuthError.js';
4
+
5
+ /*
6
+ * Copyright (c) Microsoft Corporation. All rights reserved.
7
+ * Licensed under the MIT License.
8
+ */
9
+ /**
10
+ * @hidden
11
+ */
12
+ var StringUtils = /** @class */ (function () {
13
+ function StringUtils() {
14
+ }
15
+ /**
16
+ * decode a JWT
17
+ *
18
+ * @param authToken
19
+ */
20
+ StringUtils.decodeAuthToken = function (authToken) {
21
+ if (StringUtils.isEmpty(authToken)) {
22
+ throw ClientAuthError.createTokenNullOrEmptyError(authToken);
23
+ }
24
+ var tokenPartsRegex = /^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/;
25
+ var matches = tokenPartsRegex.exec(authToken);
26
+ if (!matches || matches.length < 4) {
27
+ throw ClientAuthError.createTokenParsingError("Given token is malformed: " + JSON.stringify(authToken));
28
+ }
29
+ var crackedToken = {
30
+ header: matches[1],
31
+ JWSPayload: matches[2],
32
+ JWSSig: matches[3]
33
+ };
34
+ return crackedToken;
35
+ };
36
+ /**
37
+ * Check if a string is empty.
38
+ *
39
+ * @param str
40
+ */
41
+ StringUtils.isEmpty = function (str) {
42
+ return (typeof str === "undefined" || !str || 0 === str.length);
43
+ };
44
+ /**
45
+ * Check if stringified object is empty
46
+ * @param strObj
47
+ */
48
+ StringUtils.isEmptyObj = function (strObj) {
49
+ if (strObj && !StringUtils.isEmpty(strObj)) {
50
+ try {
51
+ var obj = JSON.parse(strObj);
52
+ return Object.keys(obj).length === 0;
53
+ }
54
+ catch (e) { }
55
+ }
56
+ return true;
57
+ };
58
+ StringUtils.startsWith = function (str, search) {
59
+ return str.indexOf(search) === 0;
60
+ };
61
+ StringUtils.endsWith = function (str, search) {
62
+ return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));
63
+ };
64
+ /**
65
+ * Parses string into an object.
66
+ *
67
+ * @param query
68
+ */
69
+ StringUtils.queryStringToObject = function (query) {
70
+ var match; // Regex for replacing addition symbol with a space
71
+ var pl = /\+/g;
72
+ var search = /([^&=]+)=([^&]*)/g;
73
+ var decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); };
74
+ var obj = {};
75
+ match = search.exec(query);
76
+ while (match) {
77
+ obj[decode(match[1])] = decode(match[2]);
78
+ match = search.exec(query);
79
+ }
80
+ return obj;
81
+ };
82
+ /**
83
+ * Trims entries in an array.
84
+ *
85
+ * @param arr
86
+ */
87
+ StringUtils.trimArrayEntries = function (arr) {
88
+ return arr.map(function (entry) { return entry.trim(); });
89
+ };
90
+ /**
91
+ * Removes empty strings from array
92
+ * @param arr
93
+ */
94
+ StringUtils.removeEmptyStringsFromArray = function (arr) {
95
+ return arr.filter(function (entry) {
96
+ return !StringUtils.isEmpty(entry);
97
+ });
98
+ };
99
+ /**
100
+ * Attempts to parse a string into JSON
101
+ * @param str
102
+ */
103
+ StringUtils.jsonParseHelper = function (str) {
104
+ try {
105
+ return JSON.parse(str);
106
+ }
107
+ catch (e) {
108
+ return null;
109
+ }
110
+ };
111
+ /**
112
+ * Tests if a given string matches a given pattern, with support for wildcards and queries.
113
+ * @param pattern Wildcard pattern to string match. Supports "*" for wildcards and "?" for queries
114
+ * @param input String to match against
115
+ */
116
+ StringUtils.matchPattern = function (pattern, input) {
117
+ /**
118
+ * Wildcard support: https://stackoverflow.com/a/3117248/4888559
119
+ * Queries: replaces "?" in string with escaped "\?" for regex test
120
+ */
121
+ var regex = new RegExp(pattern.replace(/\*/g, "[^ ]*").replace(/\?/g, "\\\?"));
122
+ return regex.test(input);
123
+ };
124
+ return StringUtils;
125
+ }());
126
+
127
+ export { StringUtils };
128
+ //# sourceMappingURL=StringUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringUtils.js","sources":["../../src/utils/StringUtils.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { DecodedAuthToken } from \"../account/DecodedAuthToken\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\n\n/**\n * @hidden\n */\nexport class StringUtils {\n\n /**\n * decode a JWT\n *\n * @param authToken\n */\n static decodeAuthToken(authToken: string): DecodedAuthToken {\n if (StringUtils.isEmpty(authToken)) {\n throw ClientAuthError.createTokenNullOrEmptyError(authToken);\n }\n const tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\n const matches = tokenPartsRegex.exec(authToken);\n if (!matches || matches.length < 4) {\n throw ClientAuthError.createTokenParsingError(`Given token is malformed: ${JSON.stringify(authToken)}`);\n }\n const crackedToken: DecodedAuthToken = {\n header: matches[1],\n JWSPayload: matches[2],\n JWSSig: matches[3]\n };\n return crackedToken;\n }\n\n /**\n * Check if a string is empty.\n *\n * @param str\n */\n static isEmpty(str?: string): boolean {\n return (typeof str === \"undefined\" || !str || 0 === str.length);\n }\n\n /**\n * Check if stringified object is empty\n * @param strObj \n */\n static isEmptyObj(strObj?: string): boolean {\n if (strObj && !StringUtils.isEmpty(strObj)) {\n try {\n const obj = JSON.parse(strObj);\n return Object.keys(obj).length === 0;\n } catch (e) {}\n }\n return true;\n }\n\n static startsWith(str: string, search: string): boolean {\n return str.indexOf(search) === 0;\n }\n\n static endsWith(str: string, search: string): boolean {\n return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\n }\n\n /**\n * Parses string into an object.\n *\n * @param query\n */\n static queryStringToObject<T>(query: string): T {\n let match: Array<string> | null; // Regex for replacing addition symbol with a space\n const pl = /\\+/g;\n const search = /([^&=]+)=([^&]*)/g;\n const decode = (s: string): string => decodeURIComponent(s.replace(pl, \" \"));\n const obj: {} = {};\n match = search.exec(query);\n while (match) {\n obj[decode(match[1])] = decode(match[2]);\n match = search.exec(query);\n }\n return obj as T;\n }\n\n /**\n * Trims entries in an array.\n *\n * @param arr\n */\n static trimArrayEntries(arr: Array<string>): Array<string> {\n return arr.map(entry => entry.trim());\n }\n\n /**\n * Removes empty strings from array\n * @param arr\n */\n static removeEmptyStringsFromArray(arr: Array<string>): Array<string> {\n return arr.filter(entry => {\n return !StringUtils.isEmpty(entry);\n });\n }\n\n /**\n * Attempts to parse a string into JSON\n * @param str\n */\n static jsonParseHelper<T>(str: string): T | null {\n try {\n return JSON.parse(str) as T;\n } catch (e) {\n return null;\n }\n }\n\n /**\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\n * @param input String to match against\n */\n static matchPattern(pattern: string, input: string): boolean {\n /**\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\n */\n const regex: RegExp = new RegExp(pattern.replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\"));\n\n return regex.test(input);\n }\n}\n"],"names":[],"mappings":"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"}