@azure/msal-common 16.0.0-alpha.0 → 16.0.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 (325) 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 +41 -18
  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 +67 -22
  138. package/dist/request/BaseAuthRequest.d.ts.map +1 -1
  139. package/dist/request/CommonAuthorizationCodeRequest.d.ts +18 -12
  140. package/dist/request/CommonAuthorizationCodeRequest.d.ts.map +1 -1
  141. package/dist/request/CommonAuthorizationUrlRequest.d.ts +48 -29
  142. package/dist/request/CommonAuthorizationUrlRequest.d.ts.map +1 -1
  143. package/dist/request/CommonEndSessionRequest.d.ts +21 -7
  144. package/dist/request/CommonEndSessionRequest.d.ts.map +1 -1
  145. package/dist/request/CommonRefreshTokenRequest.d.ts +12 -9
  146. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  147. package/dist/request/CommonSilentFlowRequest.d.ts +12 -13
  148. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  149. package/dist/request/RequestParameterBuilder.d.ts +3 -3
  150. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  151. package/dist/request/RequestParameterBuilder.mjs +6 -6
  152. package/dist/request/RequestParameterBuilder.mjs.map +1 -1
  153. package/dist/request/ScopeSet.mjs +1 -1
  154. package/dist/request/ScopeSet.mjs.map +1 -1
  155. package/dist/response/ResponseHandler.d.ts +1 -1
  156. package/dist/response/ResponseHandler.d.ts.map +1 -1
  157. package/dist/response/ResponseHandler.mjs +6 -5
  158. package/dist/response/ResponseHandler.mjs.map +1 -1
  159. package/dist/telemetry/performance/IPerformanceClient.d.ts +2 -1
  160. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
  161. package/dist/telemetry/performance/PerformanceClient.d.ts +4 -1
  162. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  163. package/dist/telemetry/performance/PerformanceClient.mjs +30 -16
  164. package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
  165. package/dist/telemetry/performance/PerformanceEvent.d.ts +6 -1
  166. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  167. package/dist/telemetry/performance/PerformanceEvent.mjs +1 -1
  168. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  169. package/dist/telemetry/performance/PerformanceEvents.d.ts +1 -0
  170. package/dist/telemetry/performance/PerformanceEvents.d.ts.map +1 -1
  171. package/dist/telemetry/performance/PerformanceEvents.mjs +3 -2
  172. package/dist/telemetry/performance/PerformanceEvents.mjs.map +1 -1
  173. package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
  174. package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
  175. package/dist/telemetry/server/ServerTelemetryManager.mjs +1 -1
  176. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  177. package/dist/url/UrlString.mjs +1 -1
  178. package/dist/url/UrlString.mjs.map +1 -1
  179. package/dist/utils/ClientAssertionUtils.mjs +1 -1
  180. package/dist/utils/ClientAssertionUtils.mjs.map +1 -1
  181. package/dist/utils/Constants.d.ts +5 -0
  182. package/dist/utils/Constants.d.ts.map +1 -1
  183. package/dist/utils/Constants.mjs +6 -2
  184. package/dist/utils/Constants.mjs.map +1 -1
  185. package/dist/utils/FunctionWrappers.mjs +1 -1
  186. package/dist/utils/FunctionWrappers.mjs.map +1 -1
  187. package/dist/utils/ProtocolUtils.d.ts +14 -35
  188. package/dist/utils/ProtocolUtils.d.ts.map +1 -1
  189. package/dist/utils/ProtocolUtils.mjs +56 -60
  190. package/dist/utils/ProtocolUtils.mjs.map +1 -1
  191. package/dist/utils/StateTypes.d.ts +15 -0
  192. package/dist/utils/StateTypes.d.ts.map +1 -0
  193. package/dist/utils/StringUtils.mjs +1 -1
  194. package/dist/utils/StringUtils.mjs.map +1 -1
  195. package/dist/utils/TimeUtils.mjs +1 -1
  196. package/dist/utils/TimeUtils.mjs.map +1 -1
  197. package/dist/utils/UrlUtils.mjs +1 -1
  198. package/dist/utils/UrlUtils.mjs.map +1 -1
  199. package/lib/index-browser.cjs +31 -17
  200. package/lib/index-browser.cjs.map +1 -1
  201. package/lib/{index-node-FrCFfFuh.js → index-node-Dwr2_mSO.js} +2437 -2242
  202. package/lib/index-node-Dwr2_mSO.js.map +1 -0
  203. package/lib/index-node.cjs +5 -3
  204. package/lib/index-node.cjs.map +1 -1
  205. package/lib/index.cjs +5 -3
  206. package/lib/index.cjs.map +1 -1
  207. package/lib/types/account/AccountInfo.d.ts +3 -0
  208. package/lib/types/account/AccountInfo.d.ts.map +1 -1
  209. package/lib/types/account/AuthToken.d.ts +6 -0
  210. package/lib/types/account/AuthToken.d.ts.map +1 -1
  211. package/lib/types/account/ClientInfo.d.ts +5 -1
  212. package/lib/types/account/ClientInfo.d.ts.map +1 -1
  213. package/lib/types/account/TokenClaims.d.ts +4 -0
  214. package/lib/types/account/TokenClaims.d.ts.map +1 -1
  215. package/lib/types/authority/AuthorityMetadata.d.ts.map +1 -1
  216. package/lib/types/cache/CacheManager.d.ts +5 -5
  217. package/lib/types/cache/CacheManager.d.ts.map +1 -1
  218. package/lib/types/cache/entities/AccountEntity.d.ts +2 -1
  219. package/lib/types/cache/entities/AccountEntity.d.ts.map +1 -1
  220. package/lib/types/cache/interface/ICacheManager.d.ts +5 -5
  221. package/lib/types/cache/interface/ICacheManager.d.ts.map +1 -1
  222. package/lib/types/cache/utils/AccountEntityUtils.d.ts +0 -7
  223. package/lib/types/cache/utils/AccountEntityUtils.d.ts.map +1 -1
  224. package/lib/types/client/AuthorizationCodeClient.d.ts +22 -3
  225. package/lib/types/client/AuthorizationCodeClient.d.ts.map +1 -1
  226. package/lib/types/client/RefreshTokenClient.d.ts +16 -3
  227. package/lib/types/client/RefreshTokenClient.d.ts.map +1 -1
  228. package/lib/types/client/SilentFlowClient.d.ts +16 -3
  229. package/lib/types/client/SilentFlowClient.d.ts.map +1 -1
  230. package/lib/types/error/AuthError.d.ts +5 -0
  231. package/lib/types/error/AuthError.d.ts.map +1 -1
  232. package/lib/types/error/ClientAuthErrorCodes.d.ts +1 -0
  233. package/lib/types/error/ClientAuthErrorCodes.d.ts.map +1 -1
  234. package/lib/types/error/ClientConfigurationErrorCodes.d.ts +1 -0
  235. package/lib/types/error/ClientConfigurationErrorCodes.d.ts.map +1 -1
  236. package/lib/types/error/PlatformBrokerError.d.ts +16 -0
  237. package/lib/types/error/PlatformBrokerError.d.ts.map +1 -0
  238. package/lib/types/exports-common.d.ts +4 -2
  239. package/lib/types/exports-common.d.ts.map +1 -1
  240. package/lib/types/exports-node-only.d.ts +1 -0
  241. package/lib/types/exports-node-only.d.ts.map +1 -1
  242. package/lib/types/logger/Logger.d.ts +24 -0
  243. package/lib/types/logger/Logger.d.ts.map +1 -1
  244. package/lib/types/packageMetadata.d.ts +1 -1
  245. package/lib/types/packageMetadata.d.ts.map +1 -1
  246. package/lib/types/protocol/Token.d.ts +40 -0
  247. package/lib/types/protocol/Token.d.ts.map +1 -0
  248. package/lib/types/request/BaseAuthRequest.d.ts +67 -22
  249. package/lib/types/request/BaseAuthRequest.d.ts.map +1 -1
  250. package/lib/types/request/CommonAuthorizationCodeRequest.d.ts +18 -12
  251. package/lib/types/request/CommonAuthorizationCodeRequest.d.ts.map +1 -1
  252. package/lib/types/request/CommonAuthorizationUrlRequest.d.ts +48 -29
  253. package/lib/types/request/CommonAuthorizationUrlRequest.d.ts.map +1 -1
  254. package/lib/types/request/CommonEndSessionRequest.d.ts +21 -7
  255. package/lib/types/request/CommonEndSessionRequest.d.ts.map +1 -1
  256. package/lib/types/request/CommonRefreshTokenRequest.d.ts +12 -9
  257. package/lib/types/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  258. package/lib/types/request/CommonSilentFlowRequest.d.ts +12 -13
  259. package/lib/types/request/CommonSilentFlowRequest.d.ts.map +1 -1
  260. package/lib/types/request/RequestParameterBuilder.d.ts +3 -3
  261. package/lib/types/request/RequestParameterBuilder.d.ts.map +1 -1
  262. package/lib/types/response/ResponseHandler.d.ts +1 -1
  263. package/lib/types/response/ResponseHandler.d.ts.map +1 -1
  264. package/lib/types/telemetry/performance/IPerformanceClient.d.ts +2 -1
  265. package/lib/types/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
  266. package/lib/types/telemetry/performance/PerformanceClient.d.ts +4 -1
  267. package/lib/types/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  268. package/lib/types/telemetry/performance/PerformanceEvent.d.ts +6 -1
  269. package/lib/types/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  270. package/lib/types/telemetry/performance/PerformanceEvents.d.ts +1 -0
  271. package/lib/types/telemetry/performance/PerformanceEvents.d.ts.map +1 -1
  272. package/lib/types/utils/Constants.d.ts +5 -0
  273. package/lib/types/utils/Constants.d.ts.map +1 -1
  274. package/lib/types/utils/ProtocolUtils.d.ts +14 -35
  275. package/lib/types/utils/ProtocolUtils.d.ts.map +1 -1
  276. package/lib/types/utils/StateTypes.d.ts +15 -0
  277. package/lib/types/utils/StateTypes.d.ts.map +1 -0
  278. package/package.json +123 -120
  279. package/src/account/AccountInfo.ts +5 -0
  280. package/src/account/AuthToken.ts +22 -0
  281. package/src/account/ClientInfo.ts +5 -1
  282. package/src/account/TokenClaims.ts +4 -0
  283. package/src/authority/AuthorityMetadata.ts +33 -35
  284. package/src/cache/CacheManager.ts +19 -10
  285. package/src/cache/entities/AccountEntity.ts +2 -1
  286. package/src/cache/interface/ICacheManager.ts +12 -4
  287. package/src/cache/utils/AccountEntityUtils.ts +8 -37
  288. package/src/client/AuthorizationCodeClient.ts +128 -19
  289. package/src/client/RefreshTokenClient.ts +101 -29
  290. package/src/client/SilentFlowClient.ts +63 -5
  291. package/src/error/AuthError.ts +6 -0
  292. package/src/error/ClientAuthErrorCodes.ts +1 -0
  293. package/src/error/ClientConfigurationErrorCodes.ts +1 -0
  294. package/src/error/PlatformBrokerError.ts +67 -0
  295. package/src/exports-common.ts +5 -6
  296. package/src/exports-node-only.ts +4 -0
  297. package/src/logger/Logger.ts +150 -2
  298. package/src/network/RequestThumbprint.ts +1 -1
  299. package/src/packageMetadata.ts +1 -1
  300. package/src/protocol/Token.ts +230 -0
  301. package/src/request/BaseAuthRequest.ts +67 -22
  302. package/src/request/CommonAuthorizationCodeRequest.ts +18 -12
  303. package/src/request/CommonAuthorizationUrlRequest.ts +48 -29
  304. package/src/request/CommonEndSessionRequest.ts +21 -7
  305. package/src/request/CommonRefreshTokenRequest.ts +12 -9
  306. package/src/request/CommonSilentFlowRequest.ts +12 -13
  307. package/src/request/RequestParameterBuilder.ts +5 -5
  308. package/src/response/ResponseHandler.ts +14 -3
  309. package/src/telemetry/performance/IPerformanceClient.ts +3 -1
  310. package/src/telemetry/performance/PerformanceClient.ts +39 -45
  311. package/src/telemetry/performance/PerformanceEvent.ts +10 -1
  312. package/src/telemetry/performance/PerformanceEvents.ts +1 -0
  313. package/src/utils/Constants.ts +6 -0
  314. package/src/utils/ProtocolUtils.ts +66 -92
  315. package/src/utils/StateTypes.ts +20 -0
  316. package/dist/client/BaseClient.d.ts +0 -59
  317. package/dist/client/BaseClient.d.ts.map +0 -1
  318. package/dist/client/BaseClient.mjs +0 -162
  319. package/dist/client/BaseClient.mjs.map +0 -1
  320. package/dist/index-browser.mjs +0 -75
  321. package/dist/index-browser.mjs.map +0 -1
  322. package/lib/index-node-FrCFfFuh.js.map +0 -1
  323. package/lib/types/client/BaseClient.d.ts +0 -59
  324. package/lib/types/client/BaseClient.d.ts.map +0 -1
  325. package/src/client/BaseClient.ts +0 -308
@@ -90,7 +90,8 @@ export abstract class CacheManager implements ICacheManager {
90
90
  */
91
91
  abstract setAccount(
92
92
  account: AccountEntity,
93
- correlationId: string
93
+ correlationId: string,
94
+ kmsi: boolean
94
95
  ): Promise<void>;
95
96
 
96
97
  /**
@@ -109,7 +110,8 @@ export abstract class CacheManager implements ICacheManager {
109
110
  */
110
111
  abstract setIdTokenCredential(
111
112
  idToken: IdTokenEntity,
112
- correlationId: string
113
+ correlationId: string,
114
+ kmsi: boolean
113
115
  ): Promise<void>;
114
116
 
115
117
  /**
@@ -128,7 +130,8 @@ export abstract class CacheManager implements ICacheManager {
128
130
  */
129
131
  abstract setAccessTokenCredential(
130
132
  accessToken: AccessTokenEntity,
131
- correlationId: string
133
+ correlationId: string,
134
+ kmsi: boolean
132
135
  ): Promise<void>;
133
136
 
134
137
  /**
@@ -147,7 +150,8 @@ export abstract class CacheManager implements ICacheManager {
147
150
  */
148
151
  abstract setRefreshTokenCredential(
149
152
  refreshToken: RefreshTokenEntity,
150
- correlationId: string
153
+ correlationId: string,
154
+ kmsi: boolean
151
155
  ): Promise<void>;
152
156
 
153
157
  /**
@@ -544,6 +548,7 @@ export abstract class CacheManager implements ICacheManager {
544
548
  async saveCacheRecord(
545
549
  cacheRecord: CacheRecord,
546
550
  correlationId: string,
551
+ kmsi: boolean,
547
552
  storeInCache?: StoreInCache
548
553
  ): Promise<void> {
549
554
  if (!cacheRecord) {
@@ -554,13 +559,14 @@ export abstract class CacheManager implements ICacheManager {
554
559
 
555
560
  try {
556
561
  if (!!cacheRecord.account) {
557
- await this.setAccount(cacheRecord.account, correlationId);
562
+ await this.setAccount(cacheRecord.account, correlationId, kmsi);
558
563
  }
559
564
 
560
565
  if (!!cacheRecord.idToken && storeInCache?.idToken !== false) {
561
566
  await this.setIdTokenCredential(
562
567
  cacheRecord.idToken,
563
- correlationId
568
+ correlationId,
569
+ kmsi
564
570
  );
565
571
  }
566
572
 
@@ -570,7 +576,8 @@ export abstract class CacheManager implements ICacheManager {
570
576
  ) {
571
577
  await this.saveAccessToken(
572
578
  cacheRecord.accessToken,
573
- correlationId
579
+ correlationId,
580
+ kmsi
574
581
  );
575
582
  }
576
583
 
@@ -580,7 +587,8 @@ export abstract class CacheManager implements ICacheManager {
580
587
  ) {
581
588
  await this.setRefreshTokenCredential(
582
589
  cacheRecord.refreshToken,
583
- correlationId
590
+ correlationId,
591
+ kmsi
584
592
  );
585
593
  }
586
594
 
@@ -606,7 +614,8 @@ export abstract class CacheManager implements ICacheManager {
606
614
  */
607
615
  private async saveAccessToken(
608
616
  credential: AccessTokenEntity,
609
- correlationId: string
617
+ correlationId: string,
618
+ kmsi: boolean
610
619
  ): Promise<void> {
611
620
  const accessTokenFilter: CredentialFilter = {
612
621
  clientId: credential.clientId,
@@ -646,7 +655,7 @@ export abstract class CacheManager implements ICacheManager {
646
655
  }
647
656
  }
648
657
  });
649
- await this.setAccessTokenCredential(credential, correlationId);
658
+ await this.setAccessTokenCredential(credential, correlationId, kmsi);
650
659
  }
651
660
 
652
661
  /**
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { TenantProfile } from "../../account/AccountInfo.js";
6
+ import { TenantProfile, DataBoundary } from "../../account/AccountInfo.js";
7
7
 
8
8
  /**
9
9
  * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).
@@ -46,4 +46,5 @@ export type AccountEntity = {
46
46
  tenantProfiles?: Array<TenantProfile>;
47
47
  /** Timestamp when the entry was last updated */
48
48
  lastUpdatedAt: string;
49
+ dataBoundary?: DataBoundary;
49
50
  };
@@ -29,7 +29,11 @@ export interface ICacheManager {
29
29
  * @param account
30
30
  * @param correlationId
31
31
  */
32
- setAccount(account: AccountEntity, correlationId: string): Promise<void>;
32
+ setAccount(
33
+ account: AccountEntity,
34
+ correlationId: string,
35
+ kmsi: boolean
36
+ ): Promise<void>;
33
37
 
34
38
  /**
35
39
  * fetch the idToken entity from the platform cache
@@ -48,7 +52,8 @@ export interface ICacheManager {
48
52
  */
49
53
  setIdTokenCredential(
50
54
  idToken: IdTokenEntity,
51
- correlationId: string
55
+ correlationId: string,
56
+ kmsi: boolean
52
57
  ): Promise<void>;
53
58
 
54
59
  /**
@@ -68,7 +73,8 @@ export interface ICacheManager {
68
73
  */
69
74
  setAccessTokenCredential(
70
75
  accessToken: AccessTokenEntity,
71
- correlationId: string
76
+ correlationId: string,
77
+ kmsi: boolean
72
78
  ): Promise<void>;
73
79
 
74
80
  /**
@@ -88,7 +94,8 @@ export interface ICacheManager {
88
94
  */
89
95
  setRefreshTokenCredential(
90
96
  refreshToken: RefreshTokenEntity,
91
- correlationId: string
97
+ correlationId: string,
98
+ kmsi: boolean
92
99
  ): Promise<void>;
93
100
 
94
101
  /**
@@ -216,6 +223,7 @@ export interface ICacheManager {
216
223
  saveCacheRecord(
217
224
  cacheRecord: CacheRecord,
218
225
  correlationId: string,
226
+ kmsi: boolean,
219
227
  storeInCache?: StoreInCache
220
228
  ): Promise<void>;
221
229
 
@@ -11,6 +11,7 @@ import {
11
11
  AccountInfo,
12
12
  TenantProfile,
13
13
  buildTenantProfile,
14
+ DataBoundary,
14
15
  } from "../../account/AccountInfo.js";
15
16
  import {
16
17
  createClientAuthError,
@@ -56,6 +57,7 @@ export function getAccountInfo(accountEntity: AccountEntity): AccountInfo {
56
57
  return [tenantProfile.tenantId, tenantProfile];
57
58
  })
58
59
  ),
60
+ dataBoundary: accountEntity.dataBoundary,
59
61
  };
60
62
  }
61
63
 
@@ -94,9 +96,13 @@ export function createAccountEntity(
94
96
  }
95
97
 
96
98
  let clientInfo: ClientInfo | undefined;
99
+ let dataBoundary: DataBoundary | undefined;
97
100
 
98
101
  if (accountDetails.clientInfo && base64Decode) {
99
102
  clientInfo = buildClientInfo(accountDetails.clientInfo, base64Decode);
103
+ if (clientInfo.xms_tdbr) {
104
+ dataBoundary = clientInfo.xms_tdbr === "EU" ? "EU" : "None";
105
+ }
100
106
  }
101
107
 
102
108
  const env =
@@ -164,6 +170,7 @@ export function createAccountEntity(
164
170
  msGraphHost: accountDetails.msGraphHost,
165
171
  nativeAccountId: accountDetails.nativeAccountId,
166
172
  tenantProfiles: tenantProfiles,
173
+ dataBoundary,
167
174
  } as AccountEntity;
168
175
  }
169
176
 
@@ -193,6 +200,7 @@ export function createAccountEntityFromAccountInfo(
193
200
  cloudGraphHostName: cloudGraphHostName,
194
201
  msGraphHost: msGraphHost,
195
202
  tenantProfiles: Array.from(accountInfo.tenantProfiles?.values() || []),
203
+ dataBoundary: accountInfo.dataBoundary,
196
204
  } as AccountEntity;
197
205
  }
198
206
 
@@ -248,40 +256,3 @@ export function isAccountEntity(entity: object): entity is AccountEntity {
248
256
  entity.hasOwnProperty("authorityType")
249
257
  );
250
258
  }
251
-
252
- /**
253
- * Helper function to determine whether 2 accountInfo objects represent the same account
254
- * @param accountA
255
- * @param accountB
256
- * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality
257
- */
258
- export function accountInfoIsEqual(
259
- accountA: AccountInfo | null,
260
- accountB: AccountInfo | null,
261
- compareClaims?: boolean
262
- ): boolean {
263
- if (!accountA || !accountB) {
264
- return false;
265
- }
266
-
267
- let claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false
268
- if (compareClaims) {
269
- const accountAClaims = (accountA.idTokenClaims || {}) as TokenClaims;
270
- const accountBClaims = (accountB.idTokenClaims || {}) as TokenClaims;
271
-
272
- // issued at timestamp and nonce are expected to change each time a new id token is acquired
273
- claimsMatch =
274
- accountAClaims.iat === accountBClaims.iat &&
275
- accountAClaims.nonce === accountBClaims.nonce;
276
- }
277
-
278
- return (
279
- accountA.homeAccountId === accountB.homeAccountId &&
280
- accountA.localAccountId === accountB.localAccountId &&
281
- accountA.username === accountB.username &&
282
- accountA.tenantId === accountB.tenantId &&
283
- accountA.environment === accountB.environment &&
284
- accountA.nativeAccountId === accountB.nativeAccountId &&
285
- claimsMatch
286
- );
287
- }
@@ -3,7 +3,6 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { BaseClient } from "./BaseClient.js";
7
6
  import { CommonAuthorizationCodeRequest } from "../request/CommonAuthorizationCodeRequest.js";
8
7
  import { Authority } from "../authority/Authority.js";
9
8
  import * as RequestParameterBuilder from "../request/RequestParameterBuilder.js";
@@ -11,7 +10,9 @@ import * as UrlUtils from "../utils/UrlUtils.js";
11
10
  import * as Constants from "../utils/Constants.js";
12
11
  import * as AADServerParamKeys from "../constants/AADServerParamKeys.js";
13
12
  import {
13
+ buildClientConfiguration,
14
14
  ClientConfiguration,
15
+ CommonClientConfiguration,
15
16
  isOidcProtocolMode,
16
17
  } from "../config/ClientConfiguration.js";
17
18
  import { ServerAuthorizationTokenResponse } from "../response/ServerAuthorizationTokenResponse.js";
@@ -43,21 +44,79 @@ import { invokeAsync } from "../utils/FunctionWrappers.js";
43
44
  import { ClientAssertion } from "../account/ClientCredentials.js";
44
45
  import { getClientAssertion } from "../utils/ClientAssertionUtils.js";
45
46
  import { getRequestThumbprint } from "../network/RequestThumbprint.js";
47
+ import {
48
+ createTokenQueryParameters,
49
+ createTokenRequestHeaders,
50
+ executePostToTokenEndpoint,
51
+ } from "../protocol/Token.js";
52
+ import { createDiscoveredInstance } from "../authority/AuthorityFactory.js";
53
+ import { ServerTelemetryManager } from "../telemetry/server/ServerTelemetryManager.js";
54
+ import { Logger } from "../logger/Logger.js";
55
+ import { ICrypto } from "../crypto/ICrypto.js";
56
+ import { CacheManager } from "../cache/CacheManager.js";
57
+ import { INetworkModule } from "../network/INetworkModule.js";
58
+ import { version, name } from "../packageMetadata.js";
46
59
 
47
60
  /**
48
61
  * Oauth2.0 Authorization Code client
49
62
  * @internal
50
63
  */
51
- export class AuthorizationCodeClient extends BaseClient {
64
+ export class AuthorizationCodeClient {
52
65
  // Flag to indicate if client is for hybrid spa auth code redemption
53
66
  protected includeRedirectUri: boolean = true;
54
67
  private oidcDefaultScopes;
55
68
 
69
+ // Logger object
70
+ public logger: Logger;
71
+
72
+ // Application config
73
+ protected config: CommonClientConfiguration;
74
+
75
+ // Crypto Interface
76
+ protected cryptoUtils: ICrypto;
77
+
78
+ // Storage Interface
79
+ protected cacheManager: CacheManager;
80
+
81
+ // Network Interface
82
+ protected networkClient: INetworkModule;
83
+
84
+ // Server Telemetry Manager
85
+ protected serverTelemetryManager: ServerTelemetryManager | null;
86
+
87
+ // Default authority object
88
+ public authority: Authority;
89
+
90
+ // Performance telemetry client
91
+ protected performanceClient: IPerformanceClient;
92
+
56
93
  constructor(
57
94
  configuration: ClientConfiguration,
58
95
  performanceClient: IPerformanceClient
59
96
  ) {
60
- super(configuration, performanceClient);
97
+ // Set the configuration
98
+ this.config = buildClientConfiguration(configuration);
99
+
100
+ // Initialize the logger
101
+ this.logger = new Logger(this.config.loggerOptions, name, version);
102
+
103
+ // Initialize crypto
104
+ this.cryptoUtils = this.config.cryptoInterface;
105
+
106
+ // Initialize storage interface
107
+ this.cacheManager = this.config.storageInterface;
108
+
109
+ // Set the network interface
110
+ this.networkClient = this.config.networkInterface;
111
+
112
+ // Set TelemetryManager
113
+ this.serverTelemetryManager = this.config.serverTelemetryManager;
114
+
115
+ // set Authority
116
+ this.authority = this.config.authOptions.authority;
117
+
118
+ // set performance telemetry client
119
+ this.performanceClient = performanceClient;
61
120
  this.oidcDefaultScopes =
62
121
  this.config.authOptions.authority.options.OIDCOptions?.defaultScopes;
63
122
  }
@@ -77,6 +136,17 @@ export class AuthorizationCodeClient extends BaseClient {
77
136
  );
78
137
  }
79
138
 
139
+ // Check for new cloud instance
140
+ if (authCodePayload && authCodePayload.cloud_instance_host_name) {
141
+ await invokeAsync(
142
+ this.updateTokenEndpointAuthority.bind(this),
143
+ PerformanceEvents.UpdateTokenEndpointAuthority,
144
+ this.logger,
145
+ this.performanceClient,
146
+ request.correlationId
147
+ )(authCodePayload.cloud_instance_host_name, request.correlationId);
148
+ }
149
+
80
150
  const reqTimestamp = TimeUtils.nowSeconds();
81
151
  const response = await invokeAsync(
82
152
  this.executeTokenRequest.bind(this),
@@ -84,7 +154,7 @@ export class AuthorizationCodeClient extends BaseClient {
84
154
  this.logger,
85
155
  this.performanceClient,
86
156
  request.correlationId
87
- )(this.authority, request);
157
+ )(this.authority, request, this.serverTelemetryManager);
88
158
 
89
159
  // Retrieve requestId from response headers
90
160
  const requestId =
@@ -153,9 +223,15 @@ export class AuthorizationCodeClient extends BaseClient {
153
223
  */
154
224
  private async executeTokenRequest(
155
225
  authority: Authority,
156
- request: CommonAuthorizationCodeRequest
226
+ request: CommonAuthorizationCodeRequest,
227
+ serverTelemetryManager: ServerTelemetryManager | null
157
228
  ): Promise<NetworkResponse<ServerAuthorizationTokenResponse>> {
158
- const queryParametersString = this.createTokenQueryParameters(request);
229
+ const queryParametersString = createTokenQueryParameters(
230
+ request,
231
+ this.config.authOptions.clientId,
232
+ this.config.authOptions.redirectUri,
233
+ this.performanceClient
234
+ );
159
235
  const endpoint = UrlString.appendQueryString(
160
236
  authority.tokenEndpoint,
161
237
  queryParametersString
@@ -187,7 +263,9 @@ export class AuthorizationCodeClient extends BaseClient {
187
263
  );
188
264
  }
189
265
  }
190
- const headers: Record<string, string> = this.createTokenRequestHeaders(
266
+ const headers: Record<string, string> = createTokenRequestHeaders(
267
+ this.logger,
268
+ this.config.systemOptions.preventCorsPreflight,
191
269
  ccsCredential || request.ccsCredential
192
270
  );
193
271
 
@@ -197,12 +275,23 @@ export class AuthorizationCodeClient extends BaseClient {
197
275
  );
198
276
 
199
277
  return invokeAsync(
200
- this.executePostToTokenEndpoint.bind(this),
278
+ executePostToTokenEndpoint,
201
279
  PerformanceEvents.AuthorizationCodeClientExecutePostToTokenEndpoint,
202
280
  this.logger,
203
281
  this.performanceClient,
204
282
  request.correlationId
205
- )(endpoint, requestBody, headers, thumbprint, request.correlationId);
283
+ )(
284
+ endpoint,
285
+ requestBody,
286
+ headers,
287
+ thumbprint,
288
+ request.correlationId,
289
+ this.cacheManager,
290
+ this.networkClient,
291
+ this.logger,
292
+ this.performanceClient,
293
+ serverTelemetryManager
294
+ );
206
295
  }
207
296
 
208
297
  /**
@@ -217,7 +306,7 @@ export class AuthorizationCodeClient extends BaseClient {
217
306
  RequestParameterBuilder.addClientId(
218
307
  parameters,
219
308
  request.embeddedClientId ||
220
- request.tokenBodyParameters?.[AADServerParamKeys.CLIENT_ID] ||
309
+ request.extraParameters?.[AADServerParamKeys.CLIENT_ID] ||
221
310
  this.config.authOptions.clientId
222
311
  );
223
312
 
@@ -413,22 +502,20 @@ export class AuthorizationCodeClient extends BaseClient {
413
502
  );
414
503
  }
415
504
 
416
- if (request.tokenBodyParameters) {
417
- RequestParameterBuilder.addExtraQueryParameters(
505
+ if (request.extraParameters) {
506
+ RequestParameterBuilder.addExtraParameters(
418
507
  parameters,
419
- request.tokenBodyParameters
508
+ request.extraParameters
420
509
  );
421
510
  }
422
511
 
423
512
  // Add hybrid spa parameters if not already provided
424
513
  if (
425
514
  request.enableSpaAuthorizationCode &&
426
- (!request.tokenBodyParameters ||
427
- !request.tokenBodyParameters[
428
- AADServerParamKeys.RETURN_SPA_CODE
429
- ])
515
+ (!request.extraParameters ||
516
+ !request.extraParameters[AADServerParamKeys.RETURN_SPA_CODE])
430
517
  ) {
431
- RequestParameterBuilder.addExtraQueryParameters(parameters, {
518
+ RequestParameterBuilder.addExtraParameters(parameters, {
432
519
  [AADServerParamKeys.RETURN_SPA_CODE]: "1",
433
520
  });
434
521
  }
@@ -483,7 +570,7 @@ export class AuthorizationCodeClient extends BaseClient {
483
570
  }
484
571
 
485
572
  if (request.extraQueryParameters) {
486
- RequestParameterBuilder.addExtraQueryParameters(
573
+ RequestParameterBuilder.addExtraParameters(
487
574
  parameters,
488
575
  request.extraQueryParameters
489
576
  );
@@ -495,4 +582,26 @@ export class AuthorizationCodeClient extends BaseClient {
495
582
 
496
583
  return UrlUtils.mapToQueryString(parameters);
497
584
  }
585
+
586
+ /**
587
+ * Updates the authority to the cloud instance provided in the authorization response
588
+ * @param cloudInstanceHostName - cloud instance host name from authorization code payload
589
+ * @param correlationId - request correlation id
590
+ */
591
+ private async updateTokenEndpointAuthority(
592
+ cloudInstanceHostName: string,
593
+ correlationId: string
594
+ ): Promise<void> {
595
+ const cloudInstanceAuthorityUri = `https://${cloudInstanceHostName}/${this.authority.tenant}/`;
596
+ const cloudInstanceAuthority = await createDiscoveredInstance(
597
+ cloudInstanceAuthorityUri,
598
+ this.networkClient,
599
+ this.cacheManager,
600
+ this.authority.options,
601
+ this.logger,
602
+ correlationId,
603
+ this.performanceClient
604
+ );
605
+ this.authority = cloudInstanceAuthority;
606
+ }
498
607
  }