@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
package/package.json CHANGED
@@ -1,125 +1,127 @@
1
1
  {
2
- "name": "@azure/msal-common",
3
- "author": {
4
- "name": "Microsoft",
5
- "email": "nugetaad@microsoft.com",
6
- "url": "https://www.microsoft.com"
2
+ "name": "@azure/msal-common",
3
+ "author": {
4
+ "name": "Microsoft",
5
+ "email": "nugetaad@microsoft.com",
6
+ "url": "https://www.microsoft.com"
7
+ },
8
+ "license": "MIT",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
12
+ },
13
+ "version": "16.0.0-beta.0",
14
+ "description": "Microsoft Authentication Library for js",
15
+ "keywords": [
16
+ "implicit",
17
+ "authorization code",
18
+ "PKCE",
19
+ "js",
20
+ "AAD",
21
+ "msal",
22
+ "oauth"
23
+ ],
24
+ "sideEffects": false,
25
+ "type": "module",
26
+ "main": "./lib/index.cjs",
27
+ "module": "./dist/index.mjs",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ "./browser": {
31
+ "import": {
32
+ "types": "./dist-browser/index-browser.d.ts",
33
+ "default": "./dist-browser/index-browser.mjs"
34
+ },
35
+ "require": {
36
+ "types": "./lib/types/index-browser.d.ts",
37
+ "default": "./lib/index-browser.cjs"
38
+ }
7
39
  },
8
- "license": "MIT",
9
- "repository": {
10
- "type": "git",
11
- "url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
40
+ "./node": {
41
+ "import": {
42
+ "types": "./dist/index-node.d.ts",
43
+ "default": "./dist/index-node.mjs"
44
+ },
45
+ "require": {
46
+ "types": "./lib/types/index-node.d.ts",
47
+ "default": "./lib/index-node.cjs"
48
+ }
12
49
  },
13
- "version": "16.0.0-alpha.0",
14
- "description": "Microsoft Authentication Library for js",
15
- "keywords": [
16
- "implicit",
17
- "authorization code",
18
- "PKCE",
19
- "js",
20
- "AAD",
21
- "msal",
22
- "oauth"
23
- ],
24
- "sideEffects": false,
25
- "type": "module",
26
- "main": "./lib/index.cjs",
27
- "module": "./dist/index.mjs",
28
- "types": "./dist/index.d.ts",
29
- "exports": {
30
- "./browser": {
31
- "import": {
32
- "types": "./dist/index-browser.d.ts",
33
- "default": "./dist/index-browser.mjs"
34
- },
35
- "require": {
36
- "types": "./lib/types/index-browser.d.ts",
37
- "default": "./lib/index-browser.cjs"
38
- }
39
- },
40
- "./node": {
41
- "import": {
42
- "types": "./dist/index-node.d.ts",
43
- "default": "./dist/index-node.mjs"
44
- },
45
- "require": {
46
- "types": "./lib/types/index-node.d.ts",
47
- "default": "./lib/index-node.cjs"
48
- }
49
- },
50
- ".": {
51
- "import": {
52
- "types": "./dist/index.d.ts",
53
- "default": "./dist/index.mjs"
54
- },
55
- "require": {
56
- "types": "./lib/types/index.d.ts",
57
- "default": "./lib/index.cjs"
58
- }
59
- },
60
- "./package.json": "./package.json"
50
+ ".": {
51
+ "import": {
52
+ "types": "./dist/index.d.ts",
53
+ "default": "./dist/index.mjs"
54
+ },
55
+ "require": {
56
+ "types": "./lib/types/index.d.ts",
57
+ "default": "./lib/index.cjs"
58
+ }
61
59
  },
62
- "engines": {
63
- "node": ">=0.8.0"
64
- },
65
- "directories": {
66
- "test": "test"
67
- },
68
- "files": [
69
- "dist",
70
- "lib",
71
- "src",
72
- "node",
73
- "browser"
74
- ],
75
- "scripts": {
76
- "clean": "shx rm -rf dist lib",
77
- "clean:coverage": "rimraf ../../.nyc_output/*",
78
- "lint": "eslint src --ext .ts",
79
- "lint:fix": "npm run lint -- --fix",
80
- "test": "jest",
81
- "test:coverage": "jest --coverage",
82
- "test:coverage:only": "npm run clean:coverage && npm run test:coverage",
83
- "build:modules": "rollup -c --strictDeprecations --bundleConfigAsCjs",
84
- "build:modules:watch": "rollup -cw --bundleConfigAsCjs",
85
- "build": "npm run clean && npm run build:modules",
86
- "build:all": "npm run build",
87
- "prepack": "npm run build",
88
- "metadata:check": "ts-node scripts/metadata.ts",
89
- "format:check": "prettier --ignore-path .gitignore --check src test",
90
- "format:fix": "prettier --ignore-path .gitignore --write src test",
91
- "apiExtractor": "api-extractor run"
92
- },
93
- "beachball": {
94
- "disallowedChangeTypes": []
95
- },
96
- "devDependencies": {
97
- "@babel/core": "^7.7.2",
98
- "@babel/plugin-proposal-class-properties": "^7.7.0",
99
- "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
100
- "@babel/preset-env": "^7.7.1",
101
- "@babel/preset-typescript": "^7.7.2",
102
- "@microsoft/api-extractor": "^7.43.4",
103
- "@rollup/plugin-typescript": "^11.0.0",
104
- "@types/debug": "^4.1.5",
105
- "@types/jest": "^29.5.0",
106
- "@types/lodash": "^4.14.182",
107
- "@types/node": "^20.3.1",
108
- "eslint-config-msal": "file:../../shared-configs/eslint-config-msal",
109
- "jest": "^29.5.0",
110
- "jest-junit": "^16.0.0",
111
- "lodash": "^4.17.21",
112
- "msal-test-utils": "file:../../shared-test-utils",
113
- "prettier": "2.8.7",
114
- "rimraf": "^3.0.2",
115
- "rollup": "^4.22.4",
116
- "rollup-msal": "file:../../shared-configs/rollup-msal",
117
- "shx": "^0.3.2",
118
- "ts-jest": "^29.1.0",
119
- "ts-jest-resolver": "^2.0.1",
120
- "ts-node": "^10.9.1",
121
- "tslib": "^1.10.0",
122
- "typescript": "^4.9.5",
123
- "yargs": "^17.5.1"
124
- }
60
+ "./package.json": "./package.json"
61
+ },
62
+ "engines": {
63
+ "node": ">=0.8.0"
64
+ },
65
+ "directories": {
66
+ "test": "test"
67
+ },
68
+ "files": [
69
+ "dist",
70
+ "lib",
71
+ "src",
72
+ "node",
73
+ "browser"
74
+ ],
75
+ "scripts": {
76
+ "clean": "shx rm -rf dist dist-browser lib",
77
+ "clean:coverage": "rimraf ../../.nyc_output/*",
78
+ "lint": "eslint src --ext .ts",
79
+ "lint:fix": "npm run lint -- --fix",
80
+ "test": "jest",
81
+ "test:coverage": "jest --coverage",
82
+ "test:coverage:only": "npm run clean:coverage && npm run test:coverage",
83
+ "build:modules": "rollup -c --strictDeprecations --bundleConfigAsCjs",
84
+ "build:modules:watch": "rollup -cw --bundleConfigAsCjs",
85
+ "build": "npm run clean && npm run build:modules",
86
+ "build:debug": "npm run clean && MSAL_MINIFY_LOGS=false npm run build:modules",
87
+ "build:all": "npm run build",
88
+ "build:all:debug": "MSAL_MINIFY_LOGS=false npm run build",
89
+ "prepack": "npm run build",
90
+ "metadata:check": "ts-node scripts/metadata.ts",
91
+ "format:check": "prettier --ignore-path .gitignore --check src test",
92
+ "format:fix": "prettier --ignore-path .gitignore --write src test",
93
+ "apiExtractor": "api-extractor run"
94
+ },
95
+ "beachball": {
96
+ "disallowedChangeTypes": []
97
+ },
98
+ "devDependencies": {
99
+ "@babel/core": "^7.7.2",
100
+ "@babel/plugin-proposal-class-properties": "^7.7.0",
101
+ "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
102
+ "@babel/preset-env": "^7.7.1",
103
+ "@babel/preset-typescript": "^7.7.2",
104
+ "@microsoft/api-extractor": "^7.43.4",
105
+ "@rollup/plugin-typescript": "^11.0.0",
106
+ "@types/debug": "^4.1.5",
107
+ "@types/jest": "^29.5.0",
108
+ "@types/lodash": "^4.14.182",
109
+ "@types/node": "^20.3.1",
110
+ "eslint-config-msal": "file:../../shared-configs/eslint-config-msal",
111
+ "jest": "^29.5.0",
112
+ "jest-junit": "^16.0.0",
113
+ "lodash": "^4.17.21",
114
+ "msal-test-utils": "file:../../shared-test-utils",
115
+ "prettier": "2.8.7",
116
+ "rimraf": "^3.0.2",
117
+ "rollup": "^4.22.4",
118
+ "rollup-msal": "file:../../shared-configs/rollup-msal",
119
+ "shx": "^0.3.2",
120
+ "ts-jest": "^29.1.0",
121
+ "ts-jest-resolver": "^2.0.1",
122
+ "ts-node": "^10.9.1",
123
+ "tslib": "^1.10.0",
124
+ "typescript": "^4.9.5",
125
+ "yargs": "^17.5.1"
126
+ }
125
127
  }
@@ -4,6 +4,9 @@
4
4
  */
5
5
 
6
6
  import { TokenClaims } from "./TokenClaims.js";
7
+
8
+ export type DataBoundary = "EU" | "None";
9
+
7
10
  /**
8
11
  * Account object with the following signature:
9
12
  * - homeAccountId - Home account identifier for this account object
@@ -16,6 +19,7 @@ import { TokenClaims } from "./TokenClaims.js";
16
19
  * - idTokenClaims - Object contains claims from ID token
17
20
  * - nativeAccountId - The user's native account ID
18
21
  * - tenantProfiles - Map of tenant profile objects for each tenant that the account has authenticated with in the browser
22
+ * - dataBoundary - Data boundary extracted from clientInfo
19
23
  */
20
24
  export type AccountInfo = {
21
25
  homeAccountId: string;
@@ -38,6 +42,7 @@ export type AccountInfo = {
38
42
  nativeAccountId?: string;
39
43
  authorityType?: string;
40
44
  tenantProfiles?: Map<string, TenantProfile>;
45
+ dataBoundary?: DataBoundary;
41
46
  };
42
47
 
43
48
  /**
@@ -30,6 +30,28 @@ export function extractTokenClaims(
30
30
  }
31
31
  }
32
32
 
33
+ /**
34
+ * Check if the signin_state claim contains "kmsi"
35
+ * @param idTokenClaims
36
+ * @returns
37
+ */
38
+ export function isKmsi(idTokenClaims: TokenClaims): boolean {
39
+ if (!idTokenClaims.signin_state) {
40
+ return false;
41
+ }
42
+ /**
43
+ * Signin_state claim known values:
44
+ * dvc_mngd - device is managed
45
+ * dvc_dmjd - device is domain joined
46
+ * kmsi - user opted to "keep me signed in"
47
+ * inknownntwk - Request made inside a known network. Don't use this, use CAE instead.
48
+ */
49
+ const kmsiClaims = ["kmsi", "dvc_dmjd"]; // There are some cases where kmsi may not be returned but persistent storage is still OK - allow dvc_dmjd as well
50
+ return idTokenClaims.signin_state.some((value) =>
51
+ kmsiClaims.includes(value.trim().toLowerCase())
52
+ );
53
+ }
54
+
33
55
  /**
34
56
  * decode a JWT
35
57
  *
@@ -10,11 +10,15 @@ import {
10
10
  import * as Constants from "../utils/Constants.js";
11
11
 
12
12
  /**
13
- * Client info object which consists of two IDs. Need to add more info here.
13
+ * Client info object which consists of:
14
+ * uid: user id
15
+ * utid: tenant id
16
+ * xms_tdbr: optional, only for non-US tenants
14
17
  */
15
18
  export type ClientInfo = {
16
19
  uid: string;
17
20
  utid: string;
21
+ xms_tdbr?: string;
18
22
  };
19
23
 
20
24
  /**
@@ -47,6 +47,10 @@ export type TokenClaims = {
47
47
  upn?: string;
48
48
  preferred_username?: string;
49
49
  login_hint?: string;
50
+ /**
51
+ * Contains KMSI (Keep Me Signed In) status among other things
52
+ */
53
+ signin_state?: Array<string>;
50
54
  emails?: string[];
51
55
  name?: string;
52
56
  nonce?: string;
@@ -16,42 +16,40 @@ type RawMetadata = {
16
16
  instanceDiscoveryMetadata: CloudInstanceDiscoveryResponse;
17
17
  };
18
18
 
19
- export const rawMetdataJSON: RawMetadata = {
20
- endpointMetadata: {
21
- "login.microsoftonline.com": {
22
- token_endpoint:
23
- "https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/token",
24
- jwks_uri:
25
- "https://login.microsoftonline.com/{tenantid}/discovery/v2.0/keys",
26
- issuer: "https://login.microsoftonline.com/{tenantid}/v2.0",
27
- authorization_endpoint:
28
- "https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/authorize",
29
- end_session_endpoint:
30
- "https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/logout",
31
- },
32
- "login.chinacloudapi.cn": {
33
- token_endpoint:
34
- "https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/token",
35
- jwks_uri:
36
- "https://login.chinacloudapi.cn/{tenantid}/discovery/v2.0/keys",
37
- issuer: "https://login.partner.microsoftonline.cn/{tenantid}/v2.0",
38
- authorization_endpoint:
39
- "https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/authorize",
40
- end_session_endpoint:
41
- "https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/logout",
42
- },
43
- "login.microsoftonline.us": {
44
- token_endpoint:
45
- "https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/token",
46
- jwks_uri:
47
- "https://login.microsoftonline.us/{tenantid}/discovery/v2.0/keys",
48
- issuer: "https://login.microsoftonline.us/{tenantid}/v2.0",
49
- authorization_endpoint:
50
- "https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/authorize",
51
- end_session_endpoint:
52
- "https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/logout",
53
- },
19
+ // Build endpoint metadata dynamically to avoid string duplication
20
+ const endpointHosts: Array<{ host: string; issuerHost?: string }> = [
21
+ { host: "login.microsoftonline.com" },
22
+ {
23
+ host: "login.chinacloudapi.cn",
24
+ issuerHost: "login.partner.microsoftonline.cn", // Issuer differs
54
25
  },
26
+ { host: "login.microsoftonline.us" },
27
+ { host: "login.sovcloud-identity.fr" },
28
+ { host: "login.sovcloud-identity.de" },
29
+ { host: "login.sovcloud-identity.sg" },
30
+ ];
31
+
32
+ function buildOpenIdConfig(
33
+ host: string,
34
+ issuerHost: string
35
+ ): OpenIdConfigResponse {
36
+ return {
37
+ token_endpoint: `https://${host}/{tenantid}/oauth2/v2.0/token`,
38
+ jwks_uri: `https://${host}/{tenantid}/discovery/v2.0/keys`,
39
+ issuer: `https://${issuerHost}/{tenantid}/v2.0`,
40
+ authorization_endpoint: `https://${host}/{tenantid}/oauth2/v2.0/authorize`,
41
+ end_session_endpoint: `https://${host}/{tenantid}/oauth2/v2.0/logout`,
42
+ };
43
+ }
44
+
45
+ const dynamicEndpointMetadata: RawMetadata["endpointMetadata"] =
46
+ endpointHosts.reduce((acc, { host, issuerHost }) => {
47
+ acc[host] = buildOpenIdConfig(host, issuerHost || host);
48
+ return acc;
49
+ }, {} as Record<string, OpenIdConfigResponse>);
50
+
51
+ export const rawMetdataJSON: RawMetadata = {
52
+ endpointMetadata: dynamicEndpointMetadata,
55
53
  instanceDiscoveryMetadata: {
56
54
  tenant_discovery_endpoint:
57
55
  "https://{canonicalAuthority}/v2.0/.well-known/openid-configuration",
@@ -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
- }