@azure/msal-common 14.1.0-alpha.0 → 14.1.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 (205) hide show
  1. package/dist/account/AccountInfo.d.ts +31 -32
  2. package/dist/account/AccountInfo.d.ts.map +1 -1
  3. package/dist/account/AuthToken.d.ts +17 -17
  4. package/dist/account/AuthToken.mjs +58 -58
  5. package/dist/account/CcsCredential.d.ts +9 -9
  6. package/dist/account/CcsCredential.mjs +8 -8
  7. package/dist/account/ClientCredentials.d.ts +14 -14
  8. package/dist/account/ClientInfo.d.ts +19 -19
  9. package/dist/account/ClientInfo.mjs +37 -37
  10. package/dist/account/TokenClaims.d.ts +65 -65
  11. package/dist/authority/Authority.d.ts +235 -235
  12. package/dist/authority/Authority.mjs +738 -738
  13. package/dist/authority/AuthorityFactory.d.ts +31 -31
  14. package/dist/authority/AuthorityFactory.mjs +47 -47
  15. package/dist/authority/AuthorityMetadata.d.ts +623 -623
  16. package/dist/authority/AuthorityMetadata.mjs +884 -884
  17. package/dist/authority/AuthorityOptions.d.ts +21 -21
  18. package/dist/authority/AuthorityOptions.mjs +18 -18
  19. package/dist/authority/AuthorityType.d.ts +10 -10
  20. package/dist/authority/AuthorityType.mjs +13 -13
  21. package/dist/authority/AzureRegion.d.ts +1 -1
  22. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  23. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  24. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  25. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
  26. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  27. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
  28. package/dist/authority/ImdsOptions.d.ts +5 -5
  29. package/dist/authority/OIDCOptions.d.ts +8 -8
  30. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  31. package/dist/authority/OpenIdConfigResponse.mjs +10 -10
  32. package/dist/authority/ProtocolMode.d.ts +8 -8
  33. package/dist/authority/ProtocolMode.mjs +11 -11
  34. package/dist/authority/RegionDiscovery.d.ts +32 -32
  35. package/dist/authority/RegionDiscovery.mjs +106 -106
  36. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  37. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  38. package/dist/cache/CacheManager.d.ts +464 -446
  39. package/dist/cache/CacheManager.d.ts.map +1 -1
  40. package/dist/cache/CacheManager.mjs +1049 -998
  41. package/dist/cache/CacheManager.mjs.map +1 -1
  42. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  43. package/dist/cache/entities/AccessTokenEntity.mjs +109 -109
  44. package/dist/cache/entities/AccountEntity.d.ts +101 -101
  45. package/dist/cache/entities/AccountEntity.mjs +220 -220
  46. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  47. package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
  48. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
  49. package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
  50. package/dist/cache/entities/CacheRecord.d.ts +14 -14
  51. package/dist/cache/entities/CacheRecord.mjs +14 -14
  52. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  53. package/dist/cache/entities/CredentialEntity.mjs +136 -136
  54. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  55. package/dist/cache/entities/IdTokenEntity.mjs +56 -56
  56. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  57. package/dist/cache/entities/RefreshTokenEntity.mjs +59 -59
  58. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  59. package/dist/cache/entities/ServerTelemetryEntity.mjs +27 -27
  60. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  61. package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
  62. package/dist/cache/interface/ICacheManager.d.ts +166 -166
  63. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  64. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  65. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  66. package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
  67. package/dist/cache/utils/CacheTypes.d.ts +66 -69
  68. package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
  69. package/dist/client/AuthorizationCodeClient.d.ts +73 -73
  70. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  71. package/dist/client/AuthorizationCodeClient.mjs +408 -407
  72. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  73. package/dist/client/BaseClient.d.ts +51 -51
  74. package/dist/client/BaseClient.mjs +98 -98
  75. package/dist/client/RefreshTokenClient.d.ts +35 -35
  76. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  77. package/dist/client/RefreshTokenClient.mjs +187 -179
  78. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  79. package/dist/client/SilentFlowClient.d.ts +26 -26
  80. package/dist/client/SilentFlowClient.mjs +123 -123
  81. package/dist/config/AppTokenProvider.d.ts +38 -38
  82. package/dist/config/ClientConfiguration.d.ts +150 -150
  83. package/dist/config/ClientConfiguration.mjs +97 -97
  84. package/dist/crypto/ICrypto.d.ts +58 -62
  85. package/dist/crypto/ICrypto.d.ts.map +1 -1
  86. package/dist/crypto/ICrypto.mjs +30 -33
  87. package/dist/crypto/ICrypto.mjs.map +1 -1
  88. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  89. package/dist/crypto/JoseHeader.d.ts +22 -22
  90. package/dist/crypto/JoseHeader.mjs +37 -37
  91. package/dist/crypto/PopTokenGenerator.d.ts +60 -60
  92. package/dist/crypto/PopTokenGenerator.mjs +82 -82
  93. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  94. package/dist/error/AuthError.d.ts +44 -44
  95. package/dist/error/AuthError.mjs +46 -46
  96. package/dist/error/AuthErrorCodes.d.ts +5 -5
  97. package/dist/error/AuthErrorCodes.mjs +9 -9
  98. package/dist/error/ClientAuthError.d.ts +232 -232
  99. package/dist/error/ClientAuthError.mjs +244 -244
  100. package/dist/error/ClientAuthErrorCodes.d.ts +43 -43
  101. package/dist/error/ClientAuthErrorCodes.mjs +47 -47
  102. package/dist/error/ClientConfigurationError.d.ts +128 -128
  103. package/dist/error/ClientConfigurationError.mjs +135 -135
  104. package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
  105. package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
  106. package/dist/error/InteractionRequiredAuthError.d.ts +57 -57
  107. package/dist/error/InteractionRequiredAuthError.mjs +76 -76
  108. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +5 -5
  109. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +11 -11
  110. package/dist/error/JoseHeaderError.d.ts +15 -15
  111. package/dist/error/JoseHeaderError.mjs +22 -22
  112. package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
  113. package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
  114. package/dist/error/ServerError.d.ts +7 -7
  115. package/dist/error/ServerError.mjs +14 -14
  116. package/dist/index.cjs +8672 -8608
  117. package/dist/index.cjs.map +1 -1
  118. package/dist/index.d.ts +96 -96
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.mjs +1 -1
  121. package/dist/logger/Logger.d.ts +95 -95
  122. package/dist/logger/Logger.mjs +188 -188
  123. package/dist/network/INetworkModule.d.ts +29 -29
  124. package/dist/network/INetworkModule.mjs +12 -12
  125. package/dist/network/NetworkManager.d.ts +33 -33
  126. package/dist/network/NetworkManager.mjs +34 -34
  127. package/dist/network/RequestThumbprint.d.ts +16 -16
  128. package/dist/network/ThrottlingUtils.d.ts +42 -42
  129. package/dist/network/ThrottlingUtils.mjs +95 -95
  130. package/dist/packageMetadata.d.ts +2 -2
  131. package/dist/packageMetadata.mjs +4 -4
  132. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  133. package/dist/request/AuthenticationHeaderParser.mjs +55 -55
  134. package/dist/request/BaseAuthRequest.d.ts +40 -40
  135. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  136. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  137. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  138. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  139. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  140. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  141. package/dist/request/CommonRefreshTokenRequest.d.ts +22 -19
  142. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  143. package/dist/request/CommonSilentFlowRequest.d.ts +20 -18
  144. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  145. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  146. package/dist/request/NativeRequest.d.ts +19 -19
  147. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  148. package/dist/request/RequestParameterBuilder.d.ts +217 -217
  149. package/dist/request/RequestParameterBuilder.mjs +381 -381
  150. package/dist/request/RequestValidator.d.ts +33 -33
  151. package/dist/request/RequestValidator.mjs +81 -81
  152. package/dist/request/ScopeSet.d.ts +88 -88
  153. package/dist/request/ScopeSet.mjs +197 -197
  154. package/dist/request/StoreInCache.d.ts +8 -8
  155. package/dist/response/AuthenticationResult.d.ts +41 -41
  156. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  157. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  158. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  159. package/dist/response/IMDSBadResponse.d.ts +4 -4
  160. package/dist/response/ResponseHandler.d.ts +67 -67
  161. package/dist/response/ResponseHandler.mjs +311 -311
  162. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  163. package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -46
  164. package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
  165. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  166. package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
  167. package/dist/telemetry/performance/PerformanceClient.mjs +409 -409
  168. package/dist/telemetry/performance/PerformanceEvent.d.ts +441 -433
  169. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  170. package/dist/telemetry/performance/PerformanceEvent.mjs +242 -234
  171. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  172. package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
  173. package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
  174. package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
  175. package/dist/telemetry/server/ServerTelemetryManager.mjs +197 -197
  176. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  177. package/dist/url/IUri.d.ts +12 -12
  178. package/dist/url/UrlString.d.ts +83 -83
  179. package/dist/url/UrlString.mjs +279 -279
  180. package/dist/utils/Constants.d.ts +366 -366
  181. package/dist/utils/Constants.mjs +376 -376
  182. package/dist/utils/FunctionWrappers.d.ts +27 -27
  183. package/dist/utils/FunctionWrappers.d.ts.map +1 -1
  184. package/dist/utils/FunctionWrappers.mjs +84 -85
  185. package/dist/utils/FunctionWrappers.mjs.map +1 -1
  186. package/dist/utils/MsalTypes.d.ts +6 -6
  187. package/dist/utils/ProtocolUtils.d.ts +42 -42
  188. package/dist/utils/ProtocolUtils.mjs +69 -69
  189. package/dist/utils/StringUtils.d.ts +40 -40
  190. package/dist/utils/StringUtils.mjs +95 -95
  191. package/dist/utils/TimeUtils.d.ts +27 -27
  192. package/dist/utils/TimeUtils.mjs +45 -45
  193. package/package.json +1 -1
  194. package/src/account/AccountInfo.ts +0 -1
  195. package/src/cache/CacheManager.ts +96 -18
  196. package/src/cache/utils/CacheTypes.ts +6 -6
  197. package/src/client/AuthorizationCodeClient.ts +3 -1
  198. package/src/client/RefreshTokenClient.ts +19 -2
  199. package/src/crypto/ICrypto.ts +0 -7
  200. package/src/index.ts +1 -0
  201. package/src/packageMetadata.ts +1 -1
  202. package/src/request/CommonRefreshTokenRequest.ts +3 -0
  203. package/src/request/CommonSilentFlowRequest.ts +2 -0
  204. package/src/telemetry/performance/PerformanceEvent.ts +9 -0
  205. package/src/utils/FunctionWrappers.ts +0 -1
@@ -1,447 +1,465 @@
1
- import { AccountFilter, CredentialFilter, ValidCredentialType, AppMetadataFilter, AppMetadataCache, TokenKeys } from "./utils/CacheTypes";
2
- import { CacheRecord } from "./entities/CacheRecord";
3
- import { AccountEntity } from "./entities/AccountEntity";
4
- import { AccessTokenEntity } from "./entities/AccessTokenEntity";
5
- import { IdTokenEntity } from "./entities/IdTokenEntity";
6
- import { RefreshTokenEntity } from "./entities/RefreshTokenEntity";
7
- import { ICacheManager } from "./interface/ICacheManager";
8
- import { AccountInfo } from "../account/AccountInfo";
9
- import { AppMetadataEntity } from "./entities/AppMetadataEntity";
10
- import { ServerTelemetryEntity } from "./entities/ServerTelemetryEntity";
11
- import { ThrottlingEntity } from "./entities/ThrottlingEntity";
12
- import { ICrypto } from "../crypto/ICrypto";
13
- import { AuthorityMetadataEntity } from "./entities/AuthorityMetadataEntity";
14
- import { BaseAuthRequest } from "../request/BaseAuthRequest";
15
- import { Logger } from "../logger/Logger";
16
- import { StoreInCache } from "../request/StoreInCache";
17
- /**
18
- * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.
19
- * @internal
20
- */
21
- export declare abstract class CacheManager implements ICacheManager {
22
- protected clientId: string;
23
- protected cryptoImpl: ICrypto;
24
- private commonLogger;
25
- constructor(clientId: string, cryptoImpl: ICrypto, logger: Logger);
26
- /**
27
- * fetch the account entity from the platform cache
28
- * @param accountKey
29
- */
30
- abstract getAccount(accountKey: string): AccountEntity | null;
31
- /**
32
- * set account entity in the platform cache
33
- * @param account
34
- */
35
- abstract setAccount(account: AccountEntity): void;
36
- /**
37
- * fetch the idToken entity from the platform cache
38
- * @param idTokenKey
39
- */
40
- abstract getIdTokenCredential(idTokenKey: string): IdTokenEntity | null;
41
- /**
42
- * set idToken entity to the platform cache
43
- * @param idToken
44
- */
45
- abstract setIdTokenCredential(idToken: IdTokenEntity): void;
46
- /**
47
- * fetch the idToken entity from the platform cache
48
- * @param accessTokenKey
49
- */
50
- abstract getAccessTokenCredential(accessTokenKey: string): AccessTokenEntity | null;
51
- /**
52
- * set idToken entity to the platform cache
53
- * @param accessToken
54
- */
55
- abstract setAccessTokenCredential(accessToken: AccessTokenEntity): void;
56
- /**
57
- * fetch the idToken entity from the platform cache
58
- * @param refreshTokenKey
59
- */
60
- abstract getRefreshTokenCredential(refreshTokenKey: string): RefreshTokenEntity | null;
61
- /**
62
- * set idToken entity to the platform cache
63
- * @param refreshToken
64
- */
65
- abstract setRefreshTokenCredential(refreshToken: RefreshTokenEntity): void;
66
- /**
67
- * fetch appMetadata entity from the platform cache
68
- * @param appMetadataKey
69
- */
70
- abstract getAppMetadata(appMetadataKey: string): AppMetadataEntity | null;
71
- /**
72
- * set appMetadata entity to the platform cache
73
- * @param appMetadata
74
- */
75
- abstract setAppMetadata(appMetadata: AppMetadataEntity): void;
76
- /**
77
- * fetch server telemetry entity from the platform cache
78
- * @param serverTelemetryKey
79
- */
80
- abstract getServerTelemetry(serverTelemetryKey: string): ServerTelemetryEntity | null;
81
- /**
82
- * set server telemetry entity to the platform cache
83
- * @param serverTelemetryKey
84
- * @param serverTelemetry
85
- */
86
- abstract setServerTelemetry(serverTelemetryKey: string, serverTelemetry: ServerTelemetryEntity): void;
87
- /**
88
- * fetch cloud discovery metadata entity from the platform cache
89
- * @param key
90
- */
91
- abstract getAuthorityMetadata(key: string): AuthorityMetadataEntity | null;
92
- /**
93
- *
94
- */
95
- abstract getAuthorityMetadataKeys(): Array<string>;
96
- /**
97
- * set cloud discovery metadata entity to the platform cache
98
- * @param key
99
- * @param value
100
- */
101
- abstract setAuthorityMetadata(key: string, value: AuthorityMetadataEntity): void;
102
- /**
103
- * fetch throttling entity from the platform cache
104
- * @param throttlingCacheKey
105
- */
106
- abstract getThrottlingCache(throttlingCacheKey: string): ThrottlingEntity | null;
107
- /**
108
- * set throttling entity to the platform cache
109
- * @param throttlingCacheKey
110
- * @param throttlingCache
111
- */
112
- abstract setThrottlingCache(throttlingCacheKey: string, throttlingCache: ThrottlingEntity): void;
113
- /**
114
- * Function to remove an item from cache given its key.
115
- * @param key
116
- */
117
- abstract removeItem(key: string): void;
118
- /**
119
- * Function which returns boolean whether cache contains a specific key.
120
- * @param key
121
- */
122
- abstract containsKey(key: string, type?: string): boolean;
123
- /**
124
- * Function which retrieves all current keys from the cache.
125
- */
126
- abstract getKeys(): string[];
127
- /**
128
- * Function which retrieves all account keys from the cache
129
- */
130
- abstract getAccountKeys(): string[];
131
- /**
132
- * Function which retrieves all token keys from the cache
133
- */
134
- abstract getTokenKeys(): TokenKeys;
135
- /**
136
- * Function which clears cache.
137
- */
138
- abstract clear(): Promise<void>;
139
- /**
140
- * Function which updates an outdated credential cache key
141
- */
142
- abstract updateCredentialCacheKey(currentCacheKey: string, credential: ValidCredentialType): string;
143
- /**
144
- * Returns all accounts in cache
145
- */
146
- getAllAccounts(): AccountInfo[];
147
- /**
148
- * Gets accountInfo object based on provided filters
149
- */
150
- getAccountInfoFilteredBy(accountFilter: AccountFilter): AccountInfo | null;
151
- private getAccountInfoFromEntity;
152
- /**
153
- * saves a cache record
154
- * @param cacheRecord
155
- */
156
- saveCacheRecord(cacheRecord: CacheRecord, storeInCache?: StoreInCache): Promise<void>;
157
- /**
158
- * saves access token credential
159
- * @param credential
160
- */
161
- private saveAccessToken;
162
- /**
163
- * retrieve accounts matching all provided filters; if no filter is set, get all accounts
164
- * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared
165
- * @param homeAccountId
166
- * @param environment
167
- * @param realm
168
- */
169
- getAccountsFilteredBy(accountFilter: AccountFilter): AccountEntity[];
170
- /**
171
- * Returns true if the given key matches our account key schema. Also matches homeAccountId and/or tenantId if provided
172
- * @param key
173
- * @param homeAccountId
174
- * @param tenantId
175
- * @returns
176
- */
177
- isAccountKey(key: string, homeAccountId?: string, tenantId?: string): boolean;
178
- /**
179
- * Returns true if the given key matches our credential key schema.
180
- * @param key
181
- */
182
- isCredentialKey(key: string): boolean;
183
- /**
184
- * Returns whether or not the given credential entity matches the filter
185
- * @param entity
186
- * @param filter
187
- * @returns
188
- */
189
- credentialMatchesFilter(entity: ValidCredentialType, filter: CredentialFilter): boolean;
190
- /**
191
- * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata
192
- * @param filter
193
- */
194
- getAppMetadataFilteredBy(filter: AppMetadataFilter): AppMetadataCache;
195
- /**
196
- * Support function to help match appMetadata
197
- * @param environment
198
- * @param clientId
199
- */
200
- private getAppMetadataFilteredByInternal;
201
- /**
202
- * retrieve authorityMetadata that contains a matching alias
203
- * @param filter
204
- */
205
- getAuthorityMetadataByAlias(host: string): AuthorityMetadataEntity | null;
206
- /**
207
- * Removes all accounts and related tokens from cache.
208
- */
209
- removeAllAccounts(): Promise<void>;
210
- /**
211
- * Removes the account and related tokens for a given account key
212
- * @param account
213
- */
214
- removeAccount(accountKey: string): Promise<void>;
215
- /**
216
- * Removes credentials associated with the provided account
217
- * @param account
218
- */
219
- removeAccountContext(account: AccountEntity): Promise<void>;
220
- /**
221
- * returns a boolean if the given credential is removed
222
- * @param credential
223
- */
224
- removeAccessToken(key: string): Promise<void>;
225
- /**
226
- * Removes all app metadata objects from cache.
227
- */
228
- removeAppMetadata(): boolean;
229
- /**
230
- * Retrieve the cached credentials into a cacherecord
231
- * @param account
232
- * @param clientId
233
- * @param scopes
234
- * @param environment
235
- * @param authScheme
236
- */
237
- readCacheRecord(account: AccountInfo, request: BaseAuthRequest, environment: string): CacheRecord;
238
- /**
239
- * Retrieve AccountEntity from cache
240
- * @param account
241
- */
242
- readAccountFromCache(account: AccountInfo): AccountEntity | null;
243
- /**
244
- * Retrieve IdTokenEntity from cache
245
- * @param clientId
246
- * @param account
247
- * @param inputRealm
248
- */
249
- getIdToken(account: AccountInfo, tokenKeys?: TokenKeys): IdTokenEntity | null;
250
- /**
251
- * Gets all idTokens matching the given filter
252
- * @param filter
253
- * @returns
254
- */
255
- getIdTokensByFilter(filter: CredentialFilter, tokenKeys?: TokenKeys): IdTokenEntity[];
256
- /**
257
- * Validate the cache key against filter before retrieving and parsing cache value
258
- * @param key
259
- * @param filter
260
- * @returns
261
- */
262
- idTokenKeyMatchesFilter(inputKey: string, filter: CredentialFilter): boolean;
263
- /**
264
- * Removes idToken from the cache
265
- * @param key
266
- */
267
- removeIdToken(key: string): void;
268
- /**
269
- * Removes refresh token from the cache
270
- * @param key
271
- */
272
- removeRefreshToken(key: string): void;
273
- /**
274
- * Retrieve AccessTokenEntity from cache
275
- * @param clientId
276
- * @param account
277
- * @param scopes
278
- * @param authScheme
279
- */
280
- getAccessToken(account: AccountInfo, request: BaseAuthRequest, tokenKeys?: TokenKeys): AccessTokenEntity | null;
281
- /**
282
- * Validate the cache key against filter before retrieving and parsing cache value
283
- * @param key
284
- * @param filter
285
- * @param keyMustContainAllScopes
286
- * @returns
287
- */
288
- accessTokenKeyMatchesFilter(inputKey: string, filter: CredentialFilter, keyMustContainAllScopes: boolean): boolean;
289
- /**
290
- * Gets all access tokens matching the filter
291
- * @param filter
292
- * @returns
293
- */
294
- getAccessTokensByFilter(filter: CredentialFilter): AccessTokenEntity[];
295
- /**
296
- * Helper to retrieve the appropriate refresh token from cache
297
- * @param clientId
298
- * @param account
299
- * @param familyRT
300
- */
301
- getRefreshToken(account: AccountInfo, familyRT: boolean, tokenKeys?: TokenKeys): RefreshTokenEntity | null;
302
- /**
303
- * Validate the cache key against filter before retrieving and parsing cache value
304
- * @param key
305
- * @param filter
306
- */
307
- refreshTokenKeyMatchesFilter(inputKey: string, filter: CredentialFilter): boolean;
308
- /**
309
- * Retrieve AppMetadataEntity from cache
310
- */
311
- readAppMetadataFromCache(environment: string): AppMetadataEntity | null;
312
- /**
313
- * Return the family_id value associated with FOCI
314
- * @param environment
315
- * @param clientId
316
- */
317
- isAppMetadataFOCI(environment: string): boolean;
318
- /**
319
- * helper to match account ids
320
- * @param value
321
- * @param homeAccountId
322
- */
323
- private matchHomeAccountId;
324
- /**
325
- * helper to match account ids
326
- * @param entity
327
- * @param localAccountId
328
- * @returns
329
- */
330
- private matchLocalAccountId;
331
- /**
332
- * helper to match usernames
333
- * @param entity
334
- * @param username
335
- * @returns
336
- */
337
- private matchUsername;
338
- /**
339
- * helper to match assertion
340
- * @param value
341
- * @param oboAssertion
342
- */
343
- private matchUserAssertionHash;
344
- /**
345
- * helper to match environment
346
- * @param value
347
- * @param environment
348
- */
349
- private matchEnvironment;
350
- /**
351
- * helper to match credential type
352
- * @param entity
353
- * @param credentialType
354
- */
355
- private matchCredentialType;
356
- /**
357
- * helper to match client ids
358
- * @param entity
359
- * @param clientId
360
- */
361
- private matchClientId;
362
- /**
363
- * helper to match family ids
364
- * @param entity
365
- * @param familyId
366
- */
367
- private matchFamilyId;
368
- /**
369
- * helper to match realm
370
- * @param entity
371
- * @param realm
372
- */
373
- private matchRealm;
374
- /**
375
- * helper to match nativeAccountId
376
- * @param entity
377
- * @param nativeAccountId
378
- * @returns boolean indicating the match result
379
- */
380
- private matchNativeAccountId;
381
- /**
382
- * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.
383
- * @param entity
384
- * @param target
385
- */
386
- private matchTarget;
387
- /**
388
- * Returns true if the credential's tokenType or Authentication Scheme matches the one in the request, false otherwise
389
- * @param entity
390
- * @param tokenType
391
- */
392
- private matchTokenType;
393
- /**
394
- * Returns true if the credential's keyId matches the one in the request, false otherwise
395
- * @param entity
396
- * @param tokenType
397
- */
398
- private matchKeyId;
399
- /**
400
- * returns if a given cache entity is of the type appmetadata
401
- * @param key
402
- */
403
- private isAppMetadata;
404
- /**
405
- * returns if a given cache entity is of the type authoritymetadata
406
- * @param key
407
- */
408
- protected isAuthorityMetadata(key: string): boolean;
409
- /**
410
- * returns cache key used for cloud instance metadata
411
- */
412
- generateAuthorityMetadataCacheKey(authority: string): string;
413
- /**
414
- * Helper to convert serialized data to object
415
- * @param obj
416
- * @param json
417
- */
418
- static toObject<T>(obj: T, json: object): T;
419
- }
420
- /** @internal */
421
- export declare class DefaultStorageClass extends CacheManager {
422
- setAccount(): void;
423
- getAccount(): AccountEntity;
424
- setIdTokenCredential(): void;
425
- getIdTokenCredential(): IdTokenEntity;
426
- setAccessTokenCredential(): void;
427
- getAccessTokenCredential(): AccessTokenEntity;
428
- setRefreshTokenCredential(): void;
429
- getRefreshTokenCredential(): RefreshTokenEntity;
430
- setAppMetadata(): void;
431
- getAppMetadata(): AppMetadataEntity;
432
- setServerTelemetry(): void;
433
- getServerTelemetry(): ServerTelemetryEntity;
434
- setAuthorityMetadata(): void;
435
- getAuthorityMetadata(): AuthorityMetadataEntity | null;
436
- getAuthorityMetadataKeys(): Array<string>;
437
- setThrottlingCache(): void;
438
- getThrottlingCache(): ThrottlingEntity;
439
- removeItem(): boolean;
440
- containsKey(): boolean;
441
- getKeys(): string[];
442
- getAccountKeys(): string[];
443
- getTokenKeys(): TokenKeys;
444
- clear(): Promise<void>;
445
- updateCredentialCacheKey(): string;
446
- }
1
+ import { AccountFilter, CredentialFilter, ValidCredentialType, AppMetadataFilter, AppMetadataCache, TokenKeys } from "./utils/CacheTypes";
2
+ import { CacheRecord } from "./entities/CacheRecord";
3
+ import { AccountEntity } from "./entities/AccountEntity";
4
+ import { AccessTokenEntity } from "./entities/AccessTokenEntity";
5
+ import { IdTokenEntity } from "./entities/IdTokenEntity";
6
+ import { RefreshTokenEntity } from "./entities/RefreshTokenEntity";
7
+ import { ICacheManager } from "./interface/ICacheManager";
8
+ import { AccountInfo } from "../account/AccountInfo";
9
+ import { AppMetadataEntity } from "./entities/AppMetadataEntity";
10
+ import { ServerTelemetryEntity } from "./entities/ServerTelemetryEntity";
11
+ import { ThrottlingEntity } from "./entities/ThrottlingEntity";
12
+ import { ICrypto } from "../crypto/ICrypto";
13
+ import { AuthorityMetadataEntity } from "./entities/AuthorityMetadataEntity";
14
+ import { BaseAuthRequest } from "../request/BaseAuthRequest";
15
+ import { Logger } from "../logger/Logger";
16
+ import { StoreInCache } from "../request/StoreInCache";
17
+ /**
18
+ * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.
19
+ * @internal
20
+ */
21
+ export declare abstract class CacheManager implements ICacheManager {
22
+ protected clientId: string;
23
+ protected cryptoImpl: ICrypto;
24
+ private commonLogger;
25
+ constructor(clientId: string, cryptoImpl: ICrypto, logger: Logger);
26
+ /**
27
+ * fetch the account entity from the platform cache
28
+ * @param accountKey
29
+ */
30
+ abstract getAccount(accountKey: string): AccountEntity | null;
31
+ /**
32
+ * set account entity in the platform cache
33
+ * @param account
34
+ */
35
+ abstract setAccount(account: AccountEntity): void;
36
+ /**
37
+ * fetch the idToken entity from the platform cache
38
+ * @param idTokenKey
39
+ */
40
+ abstract getIdTokenCredential(idTokenKey: string): IdTokenEntity | null;
41
+ /**
42
+ * set idToken entity to the platform cache
43
+ * @param idToken
44
+ */
45
+ abstract setIdTokenCredential(idToken: IdTokenEntity): void;
46
+ /**
47
+ * fetch the idToken entity from the platform cache
48
+ * @param accessTokenKey
49
+ */
50
+ abstract getAccessTokenCredential(accessTokenKey: string): AccessTokenEntity | null;
51
+ /**
52
+ * set idToken entity to the platform cache
53
+ * @param accessToken
54
+ */
55
+ abstract setAccessTokenCredential(accessToken: AccessTokenEntity): void;
56
+ /**
57
+ * fetch the idToken entity from the platform cache
58
+ * @param refreshTokenKey
59
+ */
60
+ abstract getRefreshTokenCredential(refreshTokenKey: string): RefreshTokenEntity | null;
61
+ /**
62
+ * set idToken entity to the platform cache
63
+ * @param refreshToken
64
+ */
65
+ abstract setRefreshTokenCredential(refreshToken: RefreshTokenEntity): void;
66
+ /**
67
+ * fetch appMetadata entity from the platform cache
68
+ * @param appMetadataKey
69
+ */
70
+ abstract getAppMetadata(appMetadataKey: string): AppMetadataEntity | null;
71
+ /**
72
+ * set appMetadata entity to the platform cache
73
+ * @param appMetadata
74
+ */
75
+ abstract setAppMetadata(appMetadata: AppMetadataEntity): void;
76
+ /**
77
+ * fetch server telemetry entity from the platform cache
78
+ * @param serverTelemetryKey
79
+ */
80
+ abstract getServerTelemetry(serverTelemetryKey: string): ServerTelemetryEntity | null;
81
+ /**
82
+ * set server telemetry entity to the platform cache
83
+ * @param serverTelemetryKey
84
+ * @param serverTelemetry
85
+ */
86
+ abstract setServerTelemetry(serverTelemetryKey: string, serverTelemetry: ServerTelemetryEntity): void;
87
+ /**
88
+ * fetch cloud discovery metadata entity from the platform cache
89
+ * @param key
90
+ */
91
+ abstract getAuthorityMetadata(key: string): AuthorityMetadataEntity | null;
92
+ /**
93
+ *
94
+ */
95
+ abstract getAuthorityMetadataKeys(): Array<string>;
96
+ /**
97
+ * set cloud discovery metadata entity to the platform cache
98
+ * @param key
99
+ * @param value
100
+ */
101
+ abstract setAuthorityMetadata(key: string, value: AuthorityMetadataEntity): void;
102
+ /**
103
+ * fetch throttling entity from the platform cache
104
+ * @param throttlingCacheKey
105
+ */
106
+ abstract getThrottlingCache(throttlingCacheKey: string): ThrottlingEntity | null;
107
+ /**
108
+ * set throttling entity to the platform cache
109
+ * @param throttlingCacheKey
110
+ * @param throttlingCache
111
+ */
112
+ abstract setThrottlingCache(throttlingCacheKey: string, throttlingCache: ThrottlingEntity): void;
113
+ /**
114
+ * Function to remove an item from cache given its key.
115
+ * @param key
116
+ */
117
+ abstract removeItem(key: string): void;
118
+ /**
119
+ * Function which returns boolean whether cache contains a specific key.
120
+ * @param key
121
+ */
122
+ abstract containsKey(key: string, type?: string): boolean;
123
+ /**
124
+ * Function which retrieves all current keys from the cache.
125
+ */
126
+ abstract getKeys(): string[];
127
+ /**
128
+ * Function which retrieves all account keys from the cache
129
+ */
130
+ abstract getAccountKeys(): string[];
131
+ /**
132
+ * Function which retrieves all token keys from the cache
133
+ */
134
+ abstract getTokenKeys(): TokenKeys;
135
+ /**
136
+ * Function which clears cache.
137
+ */
138
+ abstract clear(): Promise<void>;
139
+ /**
140
+ * Function which updates an outdated credential cache key
141
+ */
142
+ abstract updateCredentialCacheKey(currentCacheKey: string, credential: ValidCredentialType): string;
143
+ /**
144
+ * Returns all the accounts in the cache that match the optional filter. If no filter is provided, all accounts are returned.
145
+ * @param accountFilter - (Optional) filter to narrow down the accounts returned
146
+ * @returns Array of AccountInfo objects in cache
147
+ */
148
+ getAllAccounts(accountFilter?: AccountFilter): AccountInfo[];
149
+ /**
150
+ * Gets accountInfo object based on provided filters
151
+ */
152
+ getAccountInfoFilteredBy(accountFilter: AccountFilter): AccountInfo | null;
153
+ private getAccountInfoFromEntity;
154
+ /**
155
+ * saves a cache record
156
+ * @param cacheRecord
157
+ */
158
+ saveCacheRecord(cacheRecord: CacheRecord, storeInCache?: StoreInCache): Promise<void>;
159
+ /**
160
+ * saves access token credential
161
+ * @param credential
162
+ */
163
+ private saveAccessToken;
164
+ /**
165
+ * Retrieve accounts matching all provided filters; if no filter is set, get all accounts
166
+ * Not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared
167
+ * @param accountFilter - An object containing Account properties to filter by
168
+ */
169
+ getAccountsFilteredBy(accountFilter: AccountFilter): AccountEntity[];
170
+ /**
171
+ * Returns true if the given key matches our account key schema. Also matches homeAccountId and/or tenantId if provided
172
+ * @param key
173
+ * @param homeAccountId
174
+ * @param tenantId
175
+ * @returns
176
+ */
177
+ isAccountKey(key: string, homeAccountId?: string, tenantId?: string): boolean;
178
+ /**
179
+ * Returns true if the given key matches our credential key schema.
180
+ * @param key
181
+ */
182
+ isCredentialKey(key: string): boolean;
183
+ /**
184
+ * Returns whether or not the given credential entity matches the filter
185
+ * @param entity
186
+ * @param filter
187
+ * @returns
188
+ */
189
+ credentialMatchesFilter(entity: ValidCredentialType, filter: CredentialFilter): boolean;
190
+ /**
191
+ * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata
192
+ * @param filter
193
+ */
194
+ getAppMetadataFilteredBy(filter: AppMetadataFilter): AppMetadataCache;
195
+ /**
196
+ * Support function to help match appMetadata
197
+ * @param environment
198
+ * @param clientId
199
+ */
200
+ private getAppMetadataFilteredByInternal;
201
+ /**
202
+ * retrieve authorityMetadata that contains a matching alias
203
+ * @param filter
204
+ */
205
+ getAuthorityMetadataByAlias(host: string): AuthorityMetadataEntity | null;
206
+ /**
207
+ * Removes all accounts and related tokens from cache.
208
+ */
209
+ removeAllAccounts(): Promise<void>;
210
+ /**
211
+ * Removes the account and related tokens for a given account key
212
+ * @param account
213
+ */
214
+ removeAccount(accountKey: string): Promise<void>;
215
+ /**
216
+ * Removes credentials associated with the provided account
217
+ * @param account
218
+ */
219
+ removeAccountContext(account: AccountEntity): Promise<void>;
220
+ /**
221
+ * returns a boolean if the given credential is removed
222
+ * @param credential
223
+ */
224
+ removeAccessToken(key: string): Promise<void>;
225
+ /**
226
+ * Removes all app metadata objects from cache.
227
+ */
228
+ removeAppMetadata(): boolean;
229
+ /**
230
+ * Retrieve the cached credentials into a cacherecord
231
+ * @param account
232
+ * @param clientId
233
+ * @param scopes
234
+ * @param environment
235
+ * @param authScheme
236
+ */
237
+ readCacheRecord(account: AccountInfo, request: BaseAuthRequest, environment: string): CacheRecord;
238
+ /**
239
+ * Retrieve AccountEntity from cache
240
+ * @param account
241
+ */
242
+ readAccountFromCache(account: AccountInfo): AccountEntity | null;
243
+ /**
244
+ * Retrieve IdTokenEntity from cache
245
+ * @param clientId
246
+ * @param account
247
+ * @param inputRealm
248
+ */
249
+ getIdToken(account: AccountInfo, tokenKeys?: TokenKeys): IdTokenEntity | null;
250
+ /**
251
+ * Gets all idTokens matching the given filter
252
+ * @param filter
253
+ * @returns
254
+ */
255
+ getIdTokensByFilter(filter: CredentialFilter, tokenKeys?: TokenKeys): IdTokenEntity[];
256
+ /**
257
+ * Validate the cache key against filter before retrieving and parsing cache value
258
+ * @param key
259
+ * @param filter
260
+ * @returns
261
+ */
262
+ idTokenKeyMatchesFilter(inputKey: string, filter: CredentialFilter): boolean;
263
+ /**
264
+ * Removes idToken from the cache
265
+ * @param key
266
+ */
267
+ removeIdToken(key: string): void;
268
+ /**
269
+ * Removes refresh token from the cache
270
+ * @param key
271
+ */
272
+ removeRefreshToken(key: string): void;
273
+ /**
274
+ * Retrieve AccessTokenEntity from cache
275
+ * @param clientId
276
+ * @param account
277
+ * @param scopes
278
+ * @param authScheme
279
+ */
280
+ getAccessToken(account: AccountInfo, request: BaseAuthRequest, tokenKeys?: TokenKeys): AccessTokenEntity | null;
281
+ /**
282
+ * Validate the cache key against filter before retrieving and parsing cache value
283
+ * @param key
284
+ * @param filter
285
+ * @param keyMustContainAllScopes
286
+ * @returns
287
+ */
288
+ accessTokenKeyMatchesFilter(inputKey: string, filter: CredentialFilter, keyMustContainAllScopes: boolean): boolean;
289
+ /**
290
+ * Gets all access tokens matching the filter
291
+ * @param filter
292
+ * @returns
293
+ */
294
+ getAccessTokensByFilter(filter: CredentialFilter): AccessTokenEntity[];
295
+ /**
296
+ * Helper to retrieve the appropriate refresh token from cache
297
+ * @param clientId
298
+ * @param account
299
+ * @param familyRT
300
+ */
301
+ getRefreshToken(account: AccountInfo, familyRT: boolean, tokenKeys?: TokenKeys): RefreshTokenEntity | null;
302
+ /**
303
+ * Validate the cache key against filter before retrieving and parsing cache value
304
+ * @param key
305
+ * @param filter
306
+ */
307
+ refreshTokenKeyMatchesFilter(inputKey: string, filter: CredentialFilter): boolean;
308
+ /**
309
+ * Retrieve AppMetadataEntity from cache
310
+ */
311
+ readAppMetadataFromCache(environment: string): AppMetadataEntity | null;
312
+ /**
313
+ * Return the family_id value associated with FOCI
314
+ * @param environment
315
+ * @param clientId
316
+ */
317
+ isAppMetadataFOCI(environment: string): boolean;
318
+ /**
319
+ * helper to match account ids
320
+ * @param value
321
+ * @param homeAccountId
322
+ */
323
+ private matchHomeAccountId;
324
+ /**
325
+ * helper to match account ids
326
+ * @param entity
327
+ * @param localAccountId
328
+ * @returns
329
+ */
330
+ private matchLocalAccountId;
331
+ /**
332
+ * helper to match usernames
333
+ * @param entity
334
+ * @param username
335
+ * @returns
336
+ */
337
+ private matchUsername;
338
+ /**
339
+ * helper to match names
340
+ * @param entity
341
+ * @param name
342
+ * @returns true if the downcased name properties are present and match in the filter and the entity
343
+ */
344
+ private matchName;
345
+ /**
346
+ * helper to match assertion
347
+ * @param value
348
+ * @param oboAssertion
349
+ */
350
+ private matchUserAssertionHash;
351
+ /**
352
+ * helper to match environment
353
+ * @param value
354
+ * @param environment
355
+ */
356
+ private matchEnvironment;
357
+ /**
358
+ * helper to match credential type
359
+ * @param entity
360
+ * @param credentialType
361
+ */
362
+ private matchCredentialType;
363
+ /**
364
+ * helper to match client ids
365
+ * @param entity
366
+ * @param clientId
367
+ */
368
+ private matchClientId;
369
+ /**
370
+ * helper to match family ids
371
+ * @param entity
372
+ * @param familyId
373
+ */
374
+ private matchFamilyId;
375
+ /**
376
+ * helper to match realm
377
+ * @param entity
378
+ * @param realm
379
+ */
380
+ private matchRealm;
381
+ /**
382
+ * helper to match nativeAccountId
383
+ * @param entity
384
+ * @param nativeAccountId
385
+ * @returns boolean indicating the match result
386
+ */
387
+ private matchNativeAccountId;
388
+ /**
389
+ * helper to match loginHint which can be either:
390
+ * 1. login_hint ID token claim
391
+ * 2. username in cached account object
392
+ * 3. upn in ID token claims
393
+ * @param entity
394
+ * @param loginHint
395
+ * @returns
396
+ */
397
+ private matchLoginHint;
398
+ private matchAuthorityType;
399
+ /**
400
+ * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.
401
+ * @param entity
402
+ * @param target
403
+ */
404
+ private matchTarget;
405
+ /**
406
+ * Returns true if the credential's tokenType or Authentication Scheme matches the one in the request, false otherwise
407
+ * @param entity
408
+ * @param tokenType
409
+ */
410
+ private matchTokenType;
411
+ /**
412
+ * Returns true if the credential's keyId matches the one in the request, false otherwise
413
+ * @param entity
414
+ * @param tokenType
415
+ */
416
+ private matchKeyId;
417
+ /**
418
+ * returns if a given cache entity is of the type appmetadata
419
+ * @param key
420
+ */
421
+ private isAppMetadata;
422
+ /**
423
+ * returns if a given cache entity is of the type authoritymetadata
424
+ * @param key
425
+ */
426
+ protected isAuthorityMetadata(key: string): boolean;
427
+ /**
428
+ * returns cache key used for cloud instance metadata
429
+ */
430
+ generateAuthorityMetadataCacheKey(authority: string): string;
431
+ /**
432
+ * Helper to convert serialized data to object
433
+ * @param obj
434
+ * @param json
435
+ */
436
+ static toObject<T>(obj: T, json: object): T;
437
+ }
438
+ /** @internal */
439
+ export declare class DefaultStorageClass extends CacheManager {
440
+ setAccount(): void;
441
+ getAccount(): AccountEntity;
442
+ setIdTokenCredential(): void;
443
+ getIdTokenCredential(): IdTokenEntity;
444
+ setAccessTokenCredential(): void;
445
+ getAccessTokenCredential(): AccessTokenEntity;
446
+ setRefreshTokenCredential(): void;
447
+ getRefreshTokenCredential(): RefreshTokenEntity;
448
+ setAppMetadata(): void;
449
+ getAppMetadata(): AppMetadataEntity;
450
+ setServerTelemetry(): void;
451
+ getServerTelemetry(): ServerTelemetryEntity;
452
+ setAuthorityMetadata(): void;
453
+ getAuthorityMetadata(): AuthorityMetadataEntity | null;
454
+ getAuthorityMetadataKeys(): Array<string>;
455
+ setThrottlingCache(): void;
456
+ getThrottlingCache(): ThrottlingEntity;
457
+ removeItem(): boolean;
458
+ containsKey(): boolean;
459
+ getKeys(): string[];
460
+ getAccountKeys(): string[];
461
+ getTokenKeys(): TokenKeys;
462
+ clear(): Promise<void>;
463
+ updateCredentialCacheKey(): string;
464
+ }
447
465
  //# sourceMappingURL=CacheManager.d.ts.map