@azure/msal-common 16.0.0-alpha.0 → 16.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/dist/account/AccountInfo.d.ts +3 -0
  2. package/dist/account/AccountInfo.d.ts.map +1 -1
  3. package/dist/account/AccountInfo.mjs +1 -1
  4. package/dist/account/AccountInfo.mjs.map +1 -1
  5. package/dist/account/AuthToken.d.ts +6 -0
  6. package/dist/account/AuthToken.d.ts.map +1 -1
  7. package/dist/account/AuthToken.mjs +21 -2
  8. package/dist/account/AuthToken.mjs.map +1 -1
  9. package/dist/account/CcsCredential.mjs +1 -1
  10. package/dist/account/CcsCredential.mjs.map +1 -1
  11. package/dist/account/ClientInfo.d.ts +5 -1
  12. package/dist/account/ClientInfo.d.ts.map +1 -1
  13. package/dist/account/ClientInfo.mjs +1 -1
  14. package/dist/account/ClientInfo.mjs.map +1 -1
  15. package/dist/account/TokenClaims.d.ts +4 -0
  16. package/dist/account/TokenClaims.d.ts.map +1 -1
  17. package/dist/account/TokenClaims.mjs +1 -1
  18. package/dist/account/TokenClaims.mjs.map +1 -1
  19. package/dist/authority/Authority.mjs +1 -1
  20. package/dist/authority/Authority.mjs.map +1 -1
  21. package/dist/authority/AuthorityFactory.mjs +1 -1
  22. package/dist/authority/AuthorityFactory.mjs.map +1 -1
  23. package/dist/authority/AuthorityMetadata.d.ts.map +1 -1
  24. package/dist/authority/AuthorityMetadata.mjs +27 -24
  25. package/dist/authority/AuthorityMetadata.mjs.map +1 -1
  26. package/dist/authority/AuthorityOptions.mjs +1 -1
  27. package/dist/authority/AuthorityOptions.mjs.map +1 -1
  28. package/dist/authority/AuthorityType.mjs +1 -1
  29. package/dist/authority/AuthorityType.mjs.map +1 -1
  30. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
  31. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
  32. package/dist/authority/OpenIdConfigResponse.mjs +1 -1
  33. package/dist/authority/ProtocolMode.mjs +1 -1
  34. package/dist/authority/ProtocolMode.mjs.map +1 -1
  35. package/dist/authority/RegionDiscovery.mjs +1 -1
  36. package/dist/authority/RegionDiscovery.mjs.map +1 -1
  37. package/dist/cache/CacheManager.d.ts +5 -5
  38. package/dist/cache/CacheManager.d.ts.map +1 -1
  39. package/dist/cache/CacheManager.mjs +8 -8
  40. package/dist/cache/CacheManager.mjs.map +1 -1
  41. package/dist/cache/entities/AccountEntity.d.ts +2 -1
  42. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  43. package/dist/cache/interface/ICacheManager.d.ts +5 -5
  44. package/dist/cache/interface/ICacheManager.d.ts.map +1 -1
  45. package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
  46. package/dist/cache/persistence/TokenCacheContext.mjs.map +1 -1
  47. package/dist/cache/utils/AccountEntityUtils.d.ts +0 -7
  48. package/dist/cache/utils/AccountEntityUtils.d.ts.map +1 -1
  49. package/dist/cache/utils/AccountEntityUtils.mjs +9 -29
  50. package/dist/cache/utils/AccountEntityUtils.mjs.map +1 -1
  51. package/dist/cache/utils/CacheHelpers.mjs +1 -1
  52. package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
  53. package/dist/client/AuthorizationCodeClient.d.ts +22 -3
  54. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  55. package/dist/client/AuthorizationCodeClient.mjs +51 -19
  56. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  57. package/dist/client/RefreshTokenClient.d.ts +16 -3
  58. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  59. package/dist/client/RefreshTokenClient.mjs +31 -12
  60. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  61. package/dist/client/SilentFlowClient.d.ts +16 -3
  62. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  63. package/dist/client/SilentFlowClient.mjs +21 -4
  64. package/dist/client/SilentFlowClient.mjs.map +1 -1
  65. package/dist/config/ClientConfiguration.mjs +1 -1
  66. package/dist/config/ClientConfiguration.mjs.map +1 -1
  67. package/dist/constants/AADServerParamKeys.mjs +1 -1
  68. package/dist/crypto/ICrypto.mjs +1 -1
  69. package/dist/crypto/ICrypto.mjs.map +1 -1
  70. package/dist/crypto/JoseHeader.mjs +1 -1
  71. package/dist/crypto/JoseHeader.mjs.map +1 -1
  72. package/dist/crypto/PopTokenGenerator.mjs +1 -1
  73. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  74. package/dist/error/AuthError.d.ts +5 -0
  75. package/dist/error/AuthError.d.ts.map +1 -1
  76. package/dist/error/AuthError.mjs +1 -1
  77. package/dist/error/AuthError.mjs.map +1 -1
  78. package/dist/error/AuthErrorCodes.mjs +1 -1
  79. package/dist/error/CacheError.mjs +1 -1
  80. package/dist/error/CacheError.mjs.map +1 -1
  81. package/dist/error/CacheErrorCodes.mjs +1 -1
  82. package/dist/error/ClientAuthError.mjs +1 -1
  83. package/dist/error/ClientAuthError.mjs.map +1 -1
  84. package/dist/error/ClientAuthErrorCodes.d.ts +1 -0
  85. package/dist/error/ClientAuthErrorCodes.d.ts.map +1 -1
  86. package/dist/error/ClientAuthErrorCodes.mjs +4 -3
  87. package/dist/error/ClientAuthErrorCodes.mjs.map +1 -1
  88. package/dist/error/ClientConfigurationError.mjs +1 -1
  89. package/dist/error/ClientConfigurationError.mjs.map +1 -1
  90. package/dist/error/ClientConfigurationErrorCodes.d.ts +1 -0
  91. package/dist/error/ClientConfigurationErrorCodes.d.ts.map +1 -1
  92. package/dist/error/ClientConfigurationErrorCodes.mjs +4 -3
  93. package/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -1
  94. package/dist/error/InteractionRequiredAuthError.mjs +1 -1
  95. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  96. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +1 -1
  97. package/dist/error/JoseHeaderError.mjs +1 -1
  98. package/dist/error/JoseHeaderError.mjs.map +1 -1
  99. package/dist/error/JoseHeaderErrorCodes.mjs +1 -1
  100. package/dist/error/NetworkError.mjs +1 -1
  101. package/dist/error/NetworkError.mjs.map +1 -1
  102. package/dist/error/PlatformBrokerError.d.ts +16 -0
  103. package/dist/error/PlatformBrokerError.d.ts.map +1 -0
  104. package/dist/error/PlatformBrokerError.mjs +49 -0
  105. package/dist/error/PlatformBrokerError.mjs.map +1 -0
  106. package/dist/error/ServerError.mjs +1 -1
  107. package/dist/error/ServerError.mjs.map +1 -1
  108. package/dist/exports-common.d.ts +4 -2
  109. package/dist/exports-common.d.ts.map +1 -1
  110. package/dist/exports-node-only.d.ts +1 -0
  111. package/dist/exports-node-only.d.ts.map +1 -1
  112. package/dist/index-node.mjs +7 -4
  113. package/dist/index-node.mjs.map +1 -1
  114. package/dist/index.mjs +7 -4
  115. package/dist/index.mjs.map +1 -1
  116. package/dist/logger/Logger.d.ts +24 -0
  117. package/dist/logger/Logger.d.ts.map +1 -1
  118. package/dist/logger/Logger.mjs +92 -4
  119. package/dist/logger/Logger.mjs.map +1 -1
  120. package/dist/network/INetworkModule.mjs +1 -1
  121. package/dist/network/INetworkModule.mjs.map +1 -1
  122. package/dist/network/RequestThumbprint.mjs +2 -2
  123. package/dist/network/RequestThumbprint.mjs.map +1 -1
  124. package/dist/network/ThrottlingUtils.mjs +1 -1
  125. package/dist/network/ThrottlingUtils.mjs.map +1 -1
  126. package/dist/packageMetadata.d.ts +1 -1
  127. package/dist/packageMetadata.d.ts.map +1 -1
  128. package/dist/packageMetadata.mjs +2 -2
  129. package/dist/protocol/Authorize.mjs +1 -1
  130. package/dist/protocol/Authorize.mjs.map +1 -1
  131. package/dist/protocol/Token.d.ts +40 -0
  132. package/dist/protocol/Token.d.ts.map +1 -0
  133. package/dist/protocol/Token.mjs +129 -0
  134. package/dist/protocol/Token.mjs.map +1 -0
  135. package/dist/request/AuthenticationHeaderParser.mjs +1 -1
  136. package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
  137. package/dist/request/BaseAuthRequest.d.ts +7 -5
  138. package/dist/request/BaseAuthRequest.d.ts.map +1 -1
  139. package/dist/request/CommonAuthorizationCodeRequest.d.ts +2 -1
  140. package/dist/request/CommonAuthorizationCodeRequest.d.ts.map +1 -1
  141. package/dist/request/CommonAuthorizationUrlRequest.d.ts +2 -4
  142. package/dist/request/CommonAuthorizationUrlRequest.d.ts.map +1 -1
  143. package/dist/request/CommonRefreshTokenRequest.d.ts +2 -1
  144. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  145. package/dist/request/CommonSilentFlowRequest.d.ts +2 -1
  146. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  147. package/dist/request/RequestParameterBuilder.d.ts +3 -3
  148. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  149. package/dist/request/RequestParameterBuilder.mjs +6 -6
  150. package/dist/request/RequestParameterBuilder.mjs.map +1 -1
  151. package/dist/request/ScopeSet.mjs +1 -1
  152. package/dist/request/ScopeSet.mjs.map +1 -1
  153. package/dist/response/ResponseHandler.d.ts +1 -1
  154. package/dist/response/ResponseHandler.d.ts.map +1 -1
  155. package/dist/response/ResponseHandler.mjs +5 -5
  156. package/dist/response/ResponseHandler.mjs.map +1 -1
  157. package/dist/telemetry/performance/IPerformanceClient.d.ts +2 -1
  158. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
  159. package/dist/telemetry/performance/PerformanceClient.d.ts +4 -1
  160. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  161. package/dist/telemetry/performance/PerformanceClient.mjs +30 -16
  162. package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
  163. package/dist/telemetry/performance/PerformanceEvent.d.ts +3 -0
  164. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  165. package/dist/telemetry/performance/PerformanceEvent.mjs +1 -1
  166. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  167. package/dist/telemetry/performance/PerformanceEvents.d.ts +1 -0
  168. package/dist/telemetry/performance/PerformanceEvents.d.ts.map +1 -1
  169. package/dist/telemetry/performance/PerformanceEvents.mjs +3 -2
  170. package/dist/telemetry/performance/PerformanceEvents.mjs.map +1 -1
  171. package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
  172. package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
  173. package/dist/telemetry/server/ServerTelemetryManager.mjs +1 -1
  174. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  175. package/dist/url/UrlString.mjs +1 -1
  176. package/dist/url/UrlString.mjs.map +1 -1
  177. package/dist/utils/ClientAssertionUtils.mjs +1 -1
  178. package/dist/utils/ClientAssertionUtils.mjs.map +1 -1
  179. package/dist/utils/Constants.d.ts +5 -0
  180. package/dist/utils/Constants.d.ts.map +1 -1
  181. package/dist/utils/Constants.mjs +6 -2
  182. package/dist/utils/Constants.mjs.map +1 -1
  183. package/dist/utils/FunctionWrappers.mjs +1 -1
  184. package/dist/utils/FunctionWrappers.mjs.map +1 -1
  185. package/dist/utils/ProtocolUtils.d.ts +14 -35
  186. package/dist/utils/ProtocolUtils.d.ts.map +1 -1
  187. package/dist/utils/ProtocolUtils.mjs +56 -60
  188. package/dist/utils/ProtocolUtils.mjs.map +1 -1
  189. package/dist/utils/StateTypes.d.ts +15 -0
  190. package/dist/utils/StateTypes.d.ts.map +1 -0
  191. package/dist/utils/StringUtils.mjs +1 -1
  192. package/dist/utils/StringUtils.mjs.map +1 -1
  193. package/dist/utils/TimeUtils.mjs +1 -1
  194. package/dist/utils/TimeUtils.mjs.map +1 -1
  195. package/dist/utils/UrlUtils.mjs +1 -1
  196. package/dist/utils/UrlUtils.mjs.map +1 -1
  197. package/lib/index-browser.cjs +31 -17
  198. package/lib/index-browser.cjs.map +1 -1
  199. package/lib/{index-node-FrCFfFuh.js → index-node-B7mR4APO.js} +2427 -2237
  200. package/lib/index-node-B7mR4APO.js.map +1 -0
  201. package/lib/index-node.cjs +5 -3
  202. package/lib/index-node.cjs.map +1 -1
  203. package/lib/index.cjs +5 -3
  204. package/lib/index.cjs.map +1 -1
  205. package/lib/types/account/AccountInfo.d.ts +3 -0
  206. package/lib/types/account/AccountInfo.d.ts.map +1 -1
  207. package/lib/types/account/AuthToken.d.ts +6 -0
  208. package/lib/types/account/AuthToken.d.ts.map +1 -1
  209. package/lib/types/account/ClientInfo.d.ts +5 -1
  210. package/lib/types/account/ClientInfo.d.ts.map +1 -1
  211. package/lib/types/account/TokenClaims.d.ts +4 -0
  212. package/lib/types/account/TokenClaims.d.ts.map +1 -1
  213. package/lib/types/authority/AuthorityMetadata.d.ts.map +1 -1
  214. package/lib/types/cache/CacheManager.d.ts +5 -5
  215. package/lib/types/cache/CacheManager.d.ts.map +1 -1
  216. package/lib/types/cache/entities/AccountEntity.d.ts +2 -1
  217. package/lib/types/cache/entities/AccountEntity.d.ts.map +1 -1
  218. package/lib/types/cache/interface/ICacheManager.d.ts +5 -5
  219. package/lib/types/cache/interface/ICacheManager.d.ts.map +1 -1
  220. package/lib/types/cache/utils/AccountEntityUtils.d.ts +0 -7
  221. package/lib/types/cache/utils/AccountEntityUtils.d.ts.map +1 -1
  222. package/lib/types/client/AuthorizationCodeClient.d.ts +22 -3
  223. package/lib/types/client/AuthorizationCodeClient.d.ts.map +1 -1
  224. package/lib/types/client/RefreshTokenClient.d.ts +16 -3
  225. package/lib/types/client/RefreshTokenClient.d.ts.map +1 -1
  226. package/lib/types/client/SilentFlowClient.d.ts +16 -3
  227. package/lib/types/client/SilentFlowClient.d.ts.map +1 -1
  228. package/lib/types/error/AuthError.d.ts +5 -0
  229. package/lib/types/error/AuthError.d.ts.map +1 -1
  230. package/lib/types/error/ClientAuthErrorCodes.d.ts +1 -0
  231. package/lib/types/error/ClientAuthErrorCodes.d.ts.map +1 -1
  232. package/lib/types/error/ClientConfigurationErrorCodes.d.ts +1 -0
  233. package/lib/types/error/ClientConfigurationErrorCodes.d.ts.map +1 -1
  234. package/lib/types/error/PlatformBrokerError.d.ts +16 -0
  235. package/lib/types/error/PlatformBrokerError.d.ts.map +1 -0
  236. package/lib/types/exports-common.d.ts +4 -2
  237. package/lib/types/exports-common.d.ts.map +1 -1
  238. package/lib/types/exports-node-only.d.ts +1 -0
  239. package/lib/types/exports-node-only.d.ts.map +1 -1
  240. package/lib/types/logger/Logger.d.ts +24 -0
  241. package/lib/types/logger/Logger.d.ts.map +1 -1
  242. package/lib/types/packageMetadata.d.ts +1 -1
  243. package/lib/types/packageMetadata.d.ts.map +1 -1
  244. package/lib/types/protocol/Token.d.ts +40 -0
  245. package/lib/types/protocol/Token.d.ts.map +1 -0
  246. package/lib/types/request/BaseAuthRequest.d.ts +7 -5
  247. package/lib/types/request/BaseAuthRequest.d.ts.map +1 -1
  248. package/lib/types/request/CommonAuthorizationCodeRequest.d.ts +2 -1
  249. package/lib/types/request/CommonAuthorizationCodeRequest.d.ts.map +1 -1
  250. package/lib/types/request/CommonAuthorizationUrlRequest.d.ts +2 -4
  251. package/lib/types/request/CommonAuthorizationUrlRequest.d.ts.map +1 -1
  252. package/lib/types/request/CommonRefreshTokenRequest.d.ts +2 -1
  253. package/lib/types/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  254. package/lib/types/request/CommonSilentFlowRequest.d.ts +2 -1
  255. package/lib/types/request/CommonSilentFlowRequest.d.ts.map +1 -1
  256. package/lib/types/request/RequestParameterBuilder.d.ts +3 -3
  257. package/lib/types/request/RequestParameterBuilder.d.ts.map +1 -1
  258. package/lib/types/response/ResponseHandler.d.ts +1 -1
  259. package/lib/types/response/ResponseHandler.d.ts.map +1 -1
  260. package/lib/types/telemetry/performance/IPerformanceClient.d.ts +2 -1
  261. package/lib/types/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
  262. package/lib/types/telemetry/performance/PerformanceClient.d.ts +4 -1
  263. package/lib/types/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  264. package/lib/types/telemetry/performance/PerformanceEvent.d.ts +3 -0
  265. package/lib/types/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  266. package/lib/types/telemetry/performance/PerformanceEvents.d.ts +1 -0
  267. package/lib/types/telemetry/performance/PerformanceEvents.d.ts.map +1 -1
  268. package/lib/types/utils/Constants.d.ts +5 -0
  269. package/lib/types/utils/Constants.d.ts.map +1 -1
  270. package/lib/types/utils/ProtocolUtils.d.ts +14 -35
  271. package/lib/types/utils/ProtocolUtils.d.ts.map +1 -1
  272. package/lib/types/utils/StateTypes.d.ts +15 -0
  273. package/lib/types/utils/StateTypes.d.ts.map +1 -0
  274. package/package.json +122 -120
  275. package/src/account/AccountInfo.ts +5 -0
  276. package/src/account/AuthToken.ts +22 -0
  277. package/src/account/ClientInfo.ts +5 -1
  278. package/src/account/TokenClaims.ts +4 -0
  279. package/src/authority/AuthorityMetadata.ts +33 -35
  280. package/src/cache/CacheManager.ts +19 -10
  281. package/src/cache/entities/AccountEntity.ts +2 -1
  282. package/src/cache/interface/ICacheManager.ts +12 -4
  283. package/src/cache/utils/AccountEntityUtils.ts +8 -37
  284. package/src/client/AuthorizationCodeClient.ts +128 -19
  285. package/src/client/RefreshTokenClient.ts +88 -13
  286. package/src/client/SilentFlowClient.ts +63 -5
  287. package/src/error/AuthError.ts +6 -0
  288. package/src/error/ClientAuthErrorCodes.ts +1 -0
  289. package/src/error/ClientConfigurationErrorCodes.ts +1 -0
  290. package/src/error/PlatformBrokerError.ts +67 -0
  291. package/src/exports-common.ts +5 -6
  292. package/src/exports-node-only.ts +4 -0
  293. package/src/logger/Logger.ts +150 -2
  294. package/src/network/RequestThumbprint.ts +1 -1
  295. package/src/packageMetadata.ts +1 -1
  296. package/src/protocol/Token.ts +230 -0
  297. package/src/request/BaseAuthRequest.ts +7 -5
  298. package/src/request/CommonAuthorizationCodeRequest.ts +2 -1
  299. package/src/request/CommonAuthorizationUrlRequest.ts +2 -4
  300. package/src/request/CommonRefreshTokenRequest.ts +2 -1
  301. package/src/request/CommonSilentFlowRequest.ts +2 -1
  302. package/src/request/RequestParameterBuilder.ts +5 -5
  303. package/src/response/ResponseHandler.ts +9 -3
  304. package/src/telemetry/performance/IPerformanceClient.ts +3 -1
  305. package/src/telemetry/performance/PerformanceClient.ts +39 -45
  306. package/src/telemetry/performance/PerformanceEvent.ts +7 -0
  307. package/src/telemetry/performance/PerformanceEvents.ts +1 -0
  308. package/src/utils/Constants.ts +6 -0
  309. package/src/utils/ProtocolUtils.ts +66 -92
  310. package/src/utils/StateTypes.ts +20 -0
  311. package/dist/client/BaseClient.d.ts +0 -59
  312. package/dist/client/BaseClient.d.ts.map +0 -1
  313. package/dist/client/BaseClient.mjs +0 -162
  314. package/dist/client/BaseClient.mjs.map +0 -1
  315. package/dist/index-browser.mjs +0 -75
  316. package/dist/index-browser.mjs.map +0 -1
  317. package/lib/index-node-FrCFfFuh.js.map +0 -1
  318. package/lib/types/client/BaseClient.d.ts +0 -59
  319. package/lib/types/client/BaseClient.d.ts.map +0 -1
  320. package/src/client/BaseClient.ts +0 -308
@@ -33,6 +33,141 @@ export interface ILoggerCallback {
33
33
  (level: LogLevel, message: string, containsPii: boolean): void;
34
34
  }
35
35
 
36
+ /**
37
+ * Represents a single logged message with metadata
38
+ */
39
+ export interface LoggedMessage {
40
+ hash: string;
41
+ level: LogLevel;
42
+ containsPii: boolean;
43
+ milliseconds: number;
44
+ }
45
+
46
+ /**
47
+ * LRU cache node for correlation ID management
48
+ */
49
+ interface CorrelationLogData {
50
+ logs: LoggedMessage[];
51
+ firstEventTime: number;
52
+ }
53
+
54
+ // Shared cache state for better minification - using Map's insertion order for LRU
55
+ const CACHE_CAPACITY = 50;
56
+ const MAX_LOGS_PER_CORRELATION = 500;
57
+ const correlationCache = new Map<string, CorrelationLogData>();
58
+
59
+ /**
60
+ * Mark correlation ID as recently used by moving it to end of Map
61
+ * @param correlationId
62
+ * @param {CorrelationLogData} data
63
+ */
64
+ function markAsRecentlyUsed(
65
+ correlationId: string,
66
+ data: CorrelationLogData
67
+ ): void {
68
+ correlationCache.delete(correlationId);
69
+ correlationCache.set(correlationId, data);
70
+ }
71
+
72
+ /**
73
+ * Add log message to cache for specific correlation ID
74
+ * @param correlationId
75
+ * @param {LoggedMessage} loggedMessage
76
+ */
77
+ function addLogToCache(
78
+ correlationId: string,
79
+ loggedMessage: LoggedMessage
80
+ ): void {
81
+ const currentTime = Date.now();
82
+
83
+ let data = correlationCache.get(correlationId);
84
+
85
+ if (data) {
86
+ // Mark as recently used
87
+ markAsRecentlyUsed(correlationId, data);
88
+ } else {
89
+ // Create new entry
90
+ data = { logs: [], firstEventTime: currentTime };
91
+ correlationCache.set(correlationId, data);
92
+
93
+ // Remove LRU (first entry) if capacity exceeded
94
+ if (correlationCache.size > CACHE_CAPACITY) {
95
+ const firstKey = correlationCache.keys().next().value;
96
+ if (firstKey) {
97
+ correlationCache.delete(firstKey);
98
+ }
99
+ }
100
+ }
101
+
102
+ // Add log to the data, maintaining max logs per correlation
103
+ data.logs.push({
104
+ ...loggedMessage,
105
+ milliseconds: currentTime - data.firstEventTime,
106
+ });
107
+ if (data.logs.length > MAX_LOGS_PER_CORRELATION) {
108
+ data.logs.shift(); // Remove oldest log
109
+ }
110
+ }
111
+
112
+ /**
113
+ * Get all logs for specific correlation ID
114
+ * @param correlationId
115
+ */
116
+ export function getLogsFromCache(correlationId: string): LoggedMessage[] {
117
+ const data = correlationCache.get(correlationId);
118
+ if (data) {
119
+ markAsRecentlyUsed(correlationId, data);
120
+ return [...data.logs]; // Return copy
121
+ }
122
+ return [];
123
+ }
124
+
125
+ /**
126
+ * Get logs for correlation ID and flush them from cache
127
+ * Attaches logs with empty correlation id to the requested correlation logs
128
+ * @param correlationId
129
+ */
130
+ export function getAndFlushLogsFromCache(
131
+ correlationId: string
132
+ ): LoggedMessage[] {
133
+ const res: LoggedMessage[] = [];
134
+ for (const id of ["", correlationId]) {
135
+ const data = correlationCache.get(id);
136
+ res.push(...(data?.logs ?? []));
137
+ correlationCache.delete(id); // Remove the correlation ID completely from cache
138
+ }
139
+ return res;
140
+ }
141
+
142
+ /**
143
+ * Get all correlation IDs that have logs
144
+ */
145
+ export function getCachedCorrelationIds(): string[] {
146
+ return Array.from(correlationCache.keys());
147
+ }
148
+
149
+ /**
150
+ * Checks if a string is already a hashed logging string (6 alphanumeric characters)
151
+ */
152
+ function isHashedString(str: string): boolean {
153
+ if (str.length !== 6) {
154
+ return false;
155
+ }
156
+
157
+ for (let i = 0; i < str.length; i++) {
158
+ const char = str[i];
159
+ const isAlphaNumeric =
160
+ (char >= "a" && char <= "z") ||
161
+ (char >= "A" && char <= "Z") ||
162
+ (char >= "0" && char <= "9");
163
+ if (!isAlphaNumeric) {
164
+ return false;
165
+ }
166
+ }
167
+
168
+ return true;
169
+ }
170
+
36
171
  /**
37
172
  * Class which facilitates logging of messages to a specific place.
38
173
  */
@@ -105,6 +240,19 @@ export class Logger {
105
240
  logMessage: string,
106
241
  options: LoggerMessageOptions
107
242
  ): void {
243
+ const correlationId = options.correlationId;
244
+ const isHashedInput = isHashedString(logMessage);
245
+
246
+ if (isHashedInput) {
247
+ const loggedMessage: LoggedMessage = {
248
+ hash: logMessage,
249
+ level: options.logLevel,
250
+ containsPii: options.containsPii || false,
251
+ milliseconds: 0, // Will be calculated in addLogToCache
252
+ };
253
+ addLogToCache(correlationId, loggedMessage);
254
+ }
255
+
108
256
  if (
109
257
  options.logLevel > this.level ||
110
258
  (!this.piiLoggingEnabled && options.containsPii)
@@ -114,12 +262,12 @@ export class Logger {
114
262
  const timestamp = new Date().toUTCString();
115
263
 
116
264
  // Add correlationId to logs if set, correlationId provided on log messages take precedence
117
- const logHeader = `[${timestamp}] : [${options.correlationId}]`;
265
+ const logHeader = `[${timestamp}] : [${correlationId}]`;
118
266
 
119
267
  const log = `${logHeader} : ${this.packageName}@${
120
268
  this.packageVersion
121
269
  } : ${LogLevel[options.logLevel]} - ${logMessage}`;
122
- // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? "-Pii": Constants.""}${options.context ? `:${options.context}` : Constants.""}`)(logMessage);
270
+
123
271
  this.executeCallback(
124
272
  options.logLevel,
125
273
  log,
@@ -42,6 +42,6 @@ export function getRequestThumbprint(
42
42
  shrClaims: request.shrClaims,
43
43
  sshKid: request.sshKid,
44
44
  embeddedClientId:
45
- request.embeddedClientId || request.tokenBodyParameters?.clientId,
45
+ request.embeddedClientId || request.extraParameters?.clientId,
46
46
  };
47
47
  }
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable header/header */
2
2
  export const name = "@azure/msal-common";
3
- export const version = "16.0.0-alpha.0";
3
+ export const version = "16.0.0-beta.0";
@@ -0,0 +1,230 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import { CcsCredential, CcsCredentialType } from "../account/CcsCredential.js";
7
+ import { buildClientInfoFromHomeAccountId } from "../account/ClientInfo.js";
8
+ import { Logger } from "../logger/Logger.js";
9
+ import { BaseAuthRequest } from "../request/BaseAuthRequest.js";
10
+ import { HeaderNames, URL_FORM_CONTENT_TYPE } from "../utils/Constants.js";
11
+ import * as RequestParameterBuilder from "../request/RequestParameterBuilder.js";
12
+ import * as UrlUtils from "../utils/UrlUtils.js";
13
+ import { IPerformanceClient } from "../exports-browser-only.js";
14
+ import { ServerAuthorizationTokenResponse } from "../response/ServerAuthorizationTokenResponse.js";
15
+ import { RequestThumbprint } from "../network/RequestThumbprint.js";
16
+ import {
17
+ INetworkModule,
18
+ NetworkRequestOptions,
19
+ } from "../network/INetworkModule.js";
20
+ import { NetworkResponse } from "../network/NetworkResponse.js";
21
+ import { ThrottlingUtils } from "../network/ThrottlingUtils.js";
22
+ import { NetworkError } from "../error/NetworkError.js";
23
+ import { AuthError } from "../error/AuthError.js";
24
+ import {
25
+ ClientAuthErrorCodes,
26
+ createClientAuthError,
27
+ } from "../error/ClientAuthError.js";
28
+ import { invokeAsync } from "../utils/FunctionWrappers.js";
29
+ import * as PerformanceEvents from "../telemetry/performance/PerformanceEvents.js";
30
+ import { CacheManager } from "../cache/CacheManager.js";
31
+ import { ServerTelemetryManager } from "../telemetry/server/ServerTelemetryManager.js";
32
+
33
+ /**
34
+ * Creates default headers for requests to token endpoint
35
+ */
36
+ export function createTokenRequestHeaders(
37
+ logger: Logger,
38
+ preventCorsPreflight: boolean,
39
+ ccsCred?: CcsCredential
40
+ ): Record<string, string> {
41
+ const headers: Record<string, string> = {};
42
+ headers[HeaderNames.CONTENT_TYPE] = URL_FORM_CONTENT_TYPE;
43
+ if (!preventCorsPreflight && ccsCred) {
44
+ switch (ccsCred.type) {
45
+ case CcsCredentialType.HOME_ACCOUNT_ID:
46
+ try {
47
+ const clientInfo = buildClientInfoFromHomeAccountId(
48
+ ccsCred.credential
49
+ );
50
+ headers[
51
+ HeaderNames.CCS_HEADER
52
+ ] = `Oid:${clientInfo.uid}@${clientInfo.utid}`;
53
+ } catch (e) {
54
+ logger.verbose(
55
+ `Could not parse home account ID for CCS Header: '${e}'`,
56
+ ""
57
+ );
58
+ }
59
+ break;
60
+ case CcsCredentialType.UPN:
61
+ headers[HeaderNames.CCS_HEADER] = `UPN: ${ccsCred.credential}`;
62
+ break;
63
+ }
64
+ }
65
+ return headers;
66
+ }
67
+
68
+ /**
69
+ * Creates query string for the /token request
70
+ * @param request
71
+ */
72
+ export function createTokenQueryParameters(
73
+ request: BaseAuthRequest,
74
+ clientId: string,
75
+ redirectUri: string,
76
+ performanceClient: IPerformanceClient
77
+ ): string {
78
+ const parameters = new Map<string, string>();
79
+
80
+ if (request.embeddedClientId) {
81
+ RequestParameterBuilder.addBrokerParameters(
82
+ parameters,
83
+ clientId,
84
+ redirectUri
85
+ );
86
+ }
87
+
88
+ if (request.extraQueryParameters) {
89
+ RequestParameterBuilder.addExtraParameters(
90
+ parameters,
91
+ request.extraQueryParameters
92
+ );
93
+ }
94
+
95
+ RequestParameterBuilder.addCorrelationId(parameters, request.correlationId);
96
+
97
+ RequestParameterBuilder.instrumentBrokerParams(
98
+ parameters,
99
+ request.correlationId,
100
+ performanceClient
101
+ );
102
+ return UrlUtils.mapToQueryString(parameters);
103
+ }
104
+
105
+ /**
106
+ * Http post to token endpoint
107
+ * @param tokenEndpoint
108
+ * @param queryString
109
+ * @param headers
110
+ * @param thumbprint
111
+ */
112
+ export async function executePostToTokenEndpoint(
113
+ tokenEndpoint: string,
114
+ queryString: string,
115
+ headers: Record<string, string>,
116
+ thumbprint: RequestThumbprint,
117
+ correlationId: string,
118
+ cacheManager: CacheManager,
119
+ networkClient: INetworkModule,
120
+ logger: Logger,
121
+ performanceClient: IPerformanceClient,
122
+ serverTelemetryManager: ServerTelemetryManager | null
123
+ ): Promise<NetworkResponse<ServerAuthorizationTokenResponse>> {
124
+ const response = await sendPostRequest<ServerAuthorizationTokenResponse>(
125
+ thumbprint,
126
+ tokenEndpoint,
127
+ { body: queryString, headers: headers },
128
+ correlationId,
129
+ cacheManager,
130
+ networkClient,
131
+ logger,
132
+ performanceClient
133
+ );
134
+
135
+ if (
136
+ serverTelemetryManager &&
137
+ response.status < 500 &&
138
+ response.status !== 429
139
+ ) {
140
+ // Telemetry data successfully logged by server, clear Telemetry cache
141
+ serverTelemetryManager.clearTelemetryCache();
142
+ }
143
+
144
+ return response;
145
+ }
146
+
147
+ /**
148
+ * Wraps sendPostRequestAsync with necessary preflight and postflight logic
149
+ * @param thumbprint - Request thumbprint for throttling
150
+ * @param tokenEndpoint - Endpoint to make the POST to
151
+ * @param options - Body and Headers to include on the POST request
152
+ * @param correlationId - CorrelationId for telemetry
153
+ * @param cacheManager - Cache manager instance
154
+ * @param networkClient - Network module instance
155
+ * @param logger - Logger instance
156
+ * @param performanceClient - Performance client instance
157
+ */
158
+ export async function sendPostRequest<
159
+ T extends ServerAuthorizationTokenResponse
160
+ >(
161
+ thumbprint: RequestThumbprint,
162
+ tokenEndpoint: string,
163
+ options: NetworkRequestOptions,
164
+ correlationId: string,
165
+ cacheManager: CacheManager,
166
+ networkClient: INetworkModule,
167
+ logger: Logger,
168
+ performanceClient: IPerformanceClient
169
+ ): Promise<NetworkResponse<T>> {
170
+ ThrottlingUtils.preProcess(cacheManager, thumbprint, correlationId);
171
+
172
+ let response;
173
+ try {
174
+ response = await invokeAsync(
175
+ networkClient.sendPostRequestAsync.bind(networkClient)<T>,
176
+ PerformanceEvents.NetworkClientSendPostRequestAsync,
177
+ logger,
178
+ performanceClient,
179
+ correlationId
180
+ )(tokenEndpoint, options);
181
+ const responseHeaders = response.headers || {};
182
+ performanceClient?.addFields(
183
+ {
184
+ refreshTokenSize: response.body.refresh_token?.length || 0,
185
+ httpVerToken:
186
+ responseHeaders[HeaderNames.X_MS_HTTP_VERSION] || "",
187
+ requestId: responseHeaders[HeaderNames.X_MS_REQUEST_ID] || "",
188
+ },
189
+ correlationId
190
+ );
191
+ } catch (e) {
192
+ if (e instanceof NetworkError) {
193
+ const responseHeaders = e.responseHeaders;
194
+ if (responseHeaders) {
195
+ performanceClient?.addFields(
196
+ {
197
+ httpVerToken:
198
+ responseHeaders[HeaderNames.X_MS_HTTP_VERSION] ||
199
+ "",
200
+ requestId:
201
+ responseHeaders[HeaderNames.X_MS_REQUEST_ID] || "",
202
+ contentTypeHeader:
203
+ responseHeaders[HeaderNames.CONTENT_TYPE] ||
204
+ undefined,
205
+ contentLengthHeader:
206
+ responseHeaders[HeaderNames.CONTENT_LENGTH] ||
207
+ undefined,
208
+ httpStatus: e.httpStatus,
209
+ },
210
+ correlationId
211
+ );
212
+ }
213
+ throw e.error;
214
+ }
215
+ if (e instanceof AuthError) {
216
+ throw e;
217
+ } else {
218
+ throw createClientAuthError(ClientAuthErrorCodes.networkError);
219
+ }
220
+ }
221
+
222
+ ThrottlingUtils.postProcess(
223
+ cacheManager,
224
+ thumbprint,
225
+ response,
226
+ correlationId
227
+ );
228
+
229
+ return response;
230
+ }
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { AuthenticationScheme } from "../utils/Constants.js";
6
+ import { AuthenticationScheme, HttpMethod } from "../utils/Constants.js";
7
7
  import type { AzureCloudOptions } from "../config/ClientConfiguration.js";
8
8
  import { StringDict } from "../utils/MsalTypes.js";
9
9
  import { StoreInCache } from "./StoreInCache.js";
@@ -24,12 +24,13 @@ import { ShrOptions } from "../crypto/SignedHttpRequest.js";
24
24
  * - sshJwk - A stringified JSON Web Key representing a public key that can be signed by an SSH certificate.
25
25
  * - sshKid - Key ID that uniquely identifies the SSH public key mentioned above.
26
26
  * - azureCloudOptions - Convenience string enums for users to provide public/sovereign cloud ids
27
- * - tokenQueryParameters - String to string map of custom query parameters added to the /token call
28
- * - tokenBodyParameters - String to string map of custom parameters added to the body of the /token call
27
+ * - extraQueryParameters - String to string map of custom query parameters added to outgoing token service requests
29
28
  * - storeInCache - Object containing boolean values indicating whether to store tokens in the cache or not (default is true)
30
29
  * - scenarioId - Scenario id to track custom user prompts
31
30
  * - popKid - Key ID to identify the public key for PoP token request
32
31
  * - embeddedClientId - Embedded client id. When specified, broker client id (brk_client_id) and redirect uri (brk_redirect_uri) params are set with values from the config, overriding the corresponding extra parameters, if present.
32
+ * - httpMethod - HTTP method to use for the /authorize request. Defaults to GET, but can be set to POST if the request requires body parameters
33
+ * - extraParameters - String to string map of custom parameters added to outgoing token service requests
33
34
  */
34
35
  export type BaseAuthRequest = {
35
36
  authority: string;
@@ -46,10 +47,11 @@ export type BaseAuthRequest = {
46
47
  sshKid?: string;
47
48
  azureCloudOptions?: AzureCloudOptions;
48
49
  maxAge?: number;
49
- tokenBodyParameters?: StringDict;
50
- tokenQueryParameters?: StringDict;
51
50
  storeInCache?: StoreInCache;
52
51
  scenarioId?: string;
53
52
  popKid?: string;
54
53
  embeddedClientId?: string;
54
+ httpMethod?: HttpMethod;
55
+ extraQueryParameters?: StringDict;
56
+ extraParameters?: StringDict;
55
57
  };
@@ -19,7 +19,8 @@ import { CcsCredential } from "../account/CcsCredential.js";
19
19
  * - resourceRequestMethod - HTTP Request type used to request data from the resource (i.e. "GET", "POST", etc.). Used for proof-of-possession flows.
20
20
  * - resourceRequestUri - URI that token will be used for. Used for proof-of-possession flows.
21
21
  * - enableSpaAuthCode - Enables the acqusition of a spa authorization code (confidential clients only)
22
- * - tokenQueryParameters - String to string map of custom query parameters added to the /token call
22
+ * - extraQueryParameters - String to string map of custom query parameters added to outgoing token service requests
23
+ * - extraParameters - String to string map of custom query parameters added to outgoing token service requests
23
24
  */
24
25
  export type CommonAuthorizationCodeRequest = BaseAuthRequest & {
25
26
  code: string;
@@ -4,7 +4,6 @@
4
4
  */
5
5
 
6
6
  import { ResponseMode } from "../utils/Constants.js";
7
- import { StringDict } from "../utils/MsalTypes.js";
8
7
  import { BaseAuthRequest } from "./BaseAuthRequest.js";
9
8
  import { AccountInfo } from "../account/AccountInfo.js";
10
9
 
@@ -32,8 +31,8 @@ import { AccountInfo } from "../account/AccountInfo.js";
32
31
  * - loginHint - Can be used to pre-fill the username/email address field of the sign-in page for the user, if you know the username/email address ahead of time. Often apps use this parameter during re-authentication, having already extracted the username from a previous sign-in using the preferred_username claim.
33
32
  * - sid - Session ID, unique identifier for the session. Available as an optional claim on ID tokens.
34
33
  * - domainHint - Provides a hint about the tenant or domain that the user should use to sign in. The value of the domain hint is a registered domain for the tenant.
35
- * - extraQueryParameters - String to string map of custom query parameters added to the /authorize call
36
- * - tokenQueryParameters - String to string map of custom query parameters added to the /token call
34
+ * - extraQueryParameters - String to string map of custom query parameters added to outgoing token service requests
35
+ * - extraParameters - String to string map of custom query parameters added to outgoing token service requests
37
36
  * - nonce - A value included in the request that is returned in the id token. A randomly generated unique value is typically used to mitigate replay attacks.
38
37
  * - resourceRequestMethod - HTTP Request type used to request data from the resource (i.e. "GET", "POST", etc.). Used for proof-of-possession flows.
39
38
  * - resourceRequestUri - URI that token will be used for. Used for proof-of-possession flows.
@@ -46,7 +45,6 @@ export type CommonAuthorizationUrlRequest = BaseAuthRequest & {
46
45
  codeChallenge?: string;
47
46
  codeChallengeMethod?: string;
48
47
  domainHint?: string;
49
- extraQueryParameters?: StringDict;
50
48
  extraScopesToConsent?: Array<string>;
51
49
  loginHint?: string;
52
50
  nonce: string;
@@ -16,7 +16,8 @@ import { CcsCredential } from "../account/CcsCredential.js";
16
16
  * - resourceRequestMethod - HTTP Request type used to request data from the resource (i.e. "GET", "POST", etc.). Used for proof-of-possession flows.
17
17
  * - resourceRequestUri - URI that token will be used for. Used for proof-of-possession flows.
18
18
  * - forceCache - Force MSAL to cache a refresh token flow response when there is no account in the cache. Used for migration scenarios.
19
- * - tokenQueryParameters - String to string map of custom query parameters added to the /token call
19
+ * - extraQueryParameters - String to string map of custom query parameters added to outgoing token service requests
20
+ * - extraParameters - String to string map of custom query parameters added to outgoing token service requests
20
21
  */
21
22
  export type CommonRefreshTokenRequest = BaseAuthRequest & {
22
23
  refreshToken: string;
@@ -16,7 +16,8 @@ import { BaseAuthRequest } from "./BaseAuthRequest.js";
16
16
  * - forceRefresh - Forces silent requests to make network calls if true.
17
17
  * - resourceRequestMethod - HTTP Request type used to request data from the resource (i.e. "GET", "POST", etc.). Used for proof-of-possession flows.
18
18
  * - resourceRequestUri - URI that token will be used for. Used for proof-of-possession flows.
19
- * - tokenQueryParameters - String to string map of custom query parameters added to the /token call
19
+ * - extraQueryParameters - String to string map of custom query parameters added to outgoing token service requests
20
+ * - extraParameters - String to string map of custom query parameters added to outgoing token service requests
20
21
  */
21
22
  export type CommonSilentFlowRequest = BaseAuthRequest & {
22
23
  /** Account object to lookup the credentials */
@@ -455,14 +455,14 @@ export function addInstanceAware(parameters: Map<string, string>): void {
455
455
  }
456
456
 
457
457
  /**
458
- * add extraQueryParams
459
- * @param eQParams
458
+ * Add extraParameters
459
+ * @param extraParams - String dictionary containing extra parameters to be added.
460
460
  */
461
- export function addExtraQueryParameters(
461
+ export function addExtraParameters(
462
462
  parameters: Map<string, string>,
463
- eQParams: StringDict
463
+ extraParams: StringDict
464
464
  ): void {
465
- Object.entries(eQParams).forEach(([key, value]) => {
465
+ Object.entries(extraParams).forEach(([key, value]) => {
466
466
  if (!parameters.has(key) && value) {
467
467
  parameters.set(key, value);
468
468
  }
@@ -24,7 +24,7 @@ import {
24
24
  } from "../error/InteractionRequiredAuthError.js";
25
25
  import { CacheRecord } from "../cache/entities/CacheRecord.js";
26
26
  import { CacheManager } from "../cache/CacheManager.js";
27
- import { ProtocolUtils, RequestStateObject } from "../utils/ProtocolUtils.js";
27
+ import * as ProtocolUtils from "../utils/ProtocolUtils.js";
28
28
  import * as Constants from "../utils/Constants.js";
29
29
  import { PopTokenGenerator } from "../crypto/PopTokenGenerator.js";
30
30
  import { AppMetadataEntity } from "../cache/entities/AppMetadataEntity.js";
@@ -33,7 +33,11 @@ import { TokenCacheContext } from "../cache/persistence/TokenCacheContext.js";
33
33
  import { ISerializableTokenCache } from "../cache/interface/ISerializableTokenCache.js";
34
34
  import { AuthorizationCodePayload } from "./AuthorizationCodePayload.js";
35
35
  import { BaseAuthRequest } from "../request/BaseAuthRequest.js";
36
- import { checkMaxAge, extractTokenClaims } from "../account/AuthToken.js";
36
+ import {
37
+ checkMaxAge,
38
+ extractTokenClaims,
39
+ isKmsi,
40
+ } from "../account/AuthToken.js";
37
41
  import {
38
42
  TokenClaims,
39
43
  getTenantIdFromIdTokenClaims,
@@ -47,6 +51,7 @@ import * as CacheHelpers from "../cache/utils/CacheHelpers.js";
47
51
  import * as TimeUtils from "../utils/TimeUtils.js";
48
52
  import * as AccountEntityUtils from "../cache/utils/AccountEntityUtils.js";
49
53
  import { IPerformanceClient } from "../telemetry/performance/IPerformanceClient.js";
54
+ import { RequestStateObject } from "../utils/StateTypes.js";
50
55
 
51
56
  /**
52
57
  * Class that handles response parsing.
@@ -234,7 +239,7 @@ export class ResponseHandler {
234
239
  let requestStateObj: RequestStateObject | undefined;
235
240
  if (!!authCodePayload && !!authCodePayload.state) {
236
241
  requestStateObj = ProtocolUtils.parseRequestState(
237
- this.cryptoObj,
242
+ this.cryptoObj.base64Decode,
238
243
  authCodePayload.state
239
244
  );
240
245
  }
@@ -305,6 +310,7 @@ export class ResponseHandler {
305
310
  await this.cacheStorage.saveCacheRecord(
306
311
  cacheRecord,
307
312
  request.correlationId,
313
+ isKmsi(idTokenClaims || {}),
308
314
  request.storeInCache
309
315
  );
310
316
  } finally {
@@ -4,13 +4,15 @@
4
4
  */
5
5
 
6
6
  import { PerformanceEvent } from "./PerformanceEvent.js";
7
+ import { AccountInfo } from "../../account/AccountInfo.js";
7
8
 
8
9
  export type PerformanceCallbackFunction = (events: PerformanceEvent[]) => void;
9
10
 
10
11
  export type InProgressPerformanceEvent = {
11
12
  end: (
12
13
  event?: Partial<PerformanceEvent>,
13
- error?: unknown
14
+ error?: unknown,
15
+ account?: AccountInfo
14
16
  ) => PerformanceEvent | null;
15
17
  discard: () => void;
16
18
  add: (fields: { [key: string]: {} | undefined }) => void;