@azure/msal-common 14.0.2 → 14.1.0-alpha.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 (399) hide show
  1. package/dist/account/AccountInfo.d.ts +32 -32
  2. package/dist/account/AuthToken.d.ts +17 -20
  3. package/dist/account/AuthToken.d.ts.map +1 -1
  4. package/dist/account/AuthToken.mjs +61 -51
  5. package/dist/account/AuthToken.mjs.map +1 -1
  6. package/dist/account/CcsCredential.d.ts +9 -9
  7. package/dist/account/CcsCredential.mjs +8 -8
  8. package/dist/account/CcsCredential.mjs.map +1 -1
  9. package/dist/account/ClientCredentials.d.ts +14 -14
  10. package/dist/account/ClientInfo.d.ts +19 -19
  11. package/dist/account/ClientInfo.d.ts.map +1 -1
  12. package/dist/account/ClientInfo.mjs +39 -39
  13. package/dist/account/ClientInfo.mjs.map +1 -1
  14. package/dist/account/TokenClaims.d.ts +65 -65
  15. package/dist/authority/Authority.d.ts +235 -235
  16. package/dist/authority/Authority.d.ts.map +1 -1
  17. package/dist/authority/Authority.mjs +743 -765
  18. package/dist/authority/Authority.mjs.map +1 -1
  19. package/dist/authority/AuthorityFactory.d.ts +31 -31
  20. package/dist/authority/AuthorityFactory.d.ts.map +1 -1
  21. package/dist/authority/AuthorityFactory.mjs +52 -51
  22. package/dist/authority/AuthorityFactory.mjs.map +1 -1
  23. package/dist/authority/AuthorityMetadata.d.ts +623 -623
  24. package/dist/authority/AuthorityMetadata.mjs +884 -884
  25. package/dist/authority/AuthorityMetadata.mjs.map +1 -1
  26. package/dist/authority/AuthorityOptions.d.ts +21 -21
  27. package/dist/authority/AuthorityOptions.mjs +18 -18
  28. package/dist/authority/AuthorityOptions.mjs.map +1 -1
  29. package/dist/authority/AuthorityType.d.ts +10 -10
  30. package/dist/authority/AuthorityType.mjs +13 -13
  31. package/dist/authority/AuthorityType.mjs.map +1 -1
  32. package/dist/authority/AzureRegion.d.ts +1 -1
  33. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  34. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  35. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  36. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
  37. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs.map +1 -1
  38. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  39. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
  40. package/dist/authority/CloudInstanceDiscoveryResponse.mjs.map +1 -1
  41. package/dist/authority/ImdsOptions.d.ts +5 -5
  42. package/dist/authority/OIDCOptions.d.ts +8 -8
  43. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  44. package/dist/authority/OpenIdConfigResponse.mjs +10 -10
  45. package/dist/authority/OpenIdConfigResponse.mjs.map +1 -1
  46. package/dist/authority/ProtocolMode.d.ts +8 -8
  47. package/dist/authority/ProtocolMode.mjs +11 -11
  48. package/dist/authority/ProtocolMode.mjs.map +1 -1
  49. package/dist/authority/RegionDiscovery.d.ts +32 -30
  50. package/dist/authority/RegionDiscovery.d.ts.map +1 -1
  51. package/dist/authority/RegionDiscovery.mjs +107 -108
  52. package/dist/authority/RegionDiscovery.mjs.map +1 -1
  53. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  54. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  55. package/dist/cache/CacheManager.d.ts +446 -446
  56. package/dist/cache/CacheManager.d.ts.map +1 -1
  57. package/dist/cache/CacheManager.mjs +1001 -1025
  58. package/dist/cache/CacheManager.mjs.map +1 -1
  59. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  60. package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -1
  61. package/dist/cache/entities/AccessTokenEntity.mjs +112 -114
  62. package/dist/cache/entities/AccessTokenEntity.mjs.map +1 -1
  63. package/dist/cache/entities/AccountEntity.d.ts +101 -101
  64. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  65. package/dist/cache/entities/AccountEntity.mjs +222 -223
  66. package/dist/cache/entities/AccountEntity.mjs.map +1 -1
  67. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  68. package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
  69. package/dist/cache/entities/AppMetadataEntity.mjs.map +1 -1
  70. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
  71. package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
  72. package/dist/cache/entities/AuthorityMetadataEntity.mjs.map +1 -1
  73. package/dist/cache/entities/CacheRecord.d.ts +14 -14
  74. package/dist/cache/entities/CacheRecord.mjs +14 -14
  75. package/dist/cache/entities/CacheRecord.mjs.map +1 -1
  76. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  77. package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
  78. package/dist/cache/entities/CredentialEntity.mjs +138 -137
  79. package/dist/cache/entities/CredentialEntity.mjs.map +1 -1
  80. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  81. package/dist/cache/entities/IdTokenEntity.mjs +56 -56
  82. package/dist/cache/entities/IdTokenEntity.mjs.map +1 -1
  83. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  84. package/dist/cache/entities/RefreshTokenEntity.mjs +59 -59
  85. package/dist/cache/entities/RefreshTokenEntity.mjs.map +1 -1
  86. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  87. package/dist/cache/entities/ServerTelemetryEntity.mjs +27 -27
  88. package/dist/cache/entities/ServerTelemetryEntity.mjs.map +1 -1
  89. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  90. package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
  91. package/dist/cache/entities/ThrottlingEntity.mjs.map +1 -1
  92. package/dist/cache/interface/ICacheManager.d.ts +166 -166
  93. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  94. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  95. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  96. package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
  97. package/dist/cache/persistence/TokenCacheContext.mjs.map +1 -1
  98. package/dist/cache/utils/CacheTypes.d.ts +69 -69
  99. package/dist/client/AuthorizationCodeClient.d.ts +73 -73
  100. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  101. package/dist/client/AuthorizationCodeClient.mjs +412 -440
  102. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  103. package/dist/client/BaseClient.d.ts +51 -51
  104. package/dist/client/BaseClient.d.ts.map +1 -1
  105. package/dist/client/BaseClient.mjs +101 -94
  106. package/dist/client/BaseClient.mjs.map +1 -1
  107. package/dist/client/RefreshTokenClient.d.ts +35 -35
  108. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  109. package/dist/client/RefreshTokenClient.mjs +185 -243
  110. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  111. package/dist/client/SilentFlowClient.d.ts +26 -25
  112. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  113. package/dist/client/SilentFlowClient.mjs +128 -104
  114. package/dist/client/SilentFlowClient.mjs.map +1 -1
  115. package/dist/config/AppTokenProvider.d.ts +38 -38
  116. package/dist/config/ClientConfiguration.d.ts +150 -150
  117. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  118. package/dist/config/ClientConfiguration.mjs +99 -100
  119. package/dist/config/ClientConfiguration.mjs.map +1 -1
  120. package/dist/crypto/ICrypto.d.ts +62 -62
  121. package/dist/crypto/ICrypto.d.ts.map +1 -1
  122. package/dist/crypto/ICrypto.mjs +35 -43
  123. package/dist/crypto/ICrypto.mjs.map +1 -1
  124. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  125. package/dist/crypto/JoseHeader.d.ts +22 -22
  126. package/dist/crypto/JoseHeader.d.ts.map +1 -1
  127. package/dist/crypto/JoseHeader.mjs +39 -38
  128. package/dist/crypto/JoseHeader.mjs.map +1 -1
  129. package/dist/crypto/PopTokenGenerator.d.ts +60 -59
  130. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  131. package/dist/crypto/PopTokenGenerator.mjs +83 -83
  132. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  133. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  134. package/dist/error/AuthError.d.ts +44 -47
  135. package/dist/error/AuthError.d.ts.map +1 -1
  136. package/dist/error/AuthError.mjs +50 -52
  137. package/dist/error/AuthError.mjs.map +1 -1
  138. package/dist/error/AuthErrorCodes.d.ts +6 -0
  139. package/dist/error/AuthErrorCodes.d.ts.map +1 -0
  140. package/dist/error/AuthErrorCodes.mjs +14 -0
  141. package/dist/error/AuthErrorCodes.mjs.map +1 -0
  142. package/dist/error/ClientAuthError.d.ts +232 -412
  143. package/dist/error/ClientAuthError.d.ts.map +1 -1
  144. package/dist/error/ClientAuthError.mjs +248 -520
  145. package/dist/error/ClientAuthError.mjs.map +1 -1
  146. package/dist/error/ClientAuthErrorCodes.d.ts +44 -0
  147. package/dist/error/ClientAuthErrorCodes.d.ts.map +1 -0
  148. package/dist/error/ClientAuthErrorCodes.mjs +52 -0
  149. package/dist/error/ClientAuthErrorCodes.mjs.map +1 -0
  150. package/dist/error/ClientConfigurationError.d.ts +128 -222
  151. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  152. package/dist/error/ClientConfigurationError.mjs +140 -281
  153. package/dist/error/ClientConfigurationError.mjs.map +1 -1
  154. package/dist/error/ClientConfigurationErrorCodes.d.ts +23 -0
  155. package/dist/error/ClientConfigurationErrorCodes.d.ts.map +1 -0
  156. package/dist/error/ClientConfigurationErrorCodes.mjs +31 -0
  157. package/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -0
  158. package/dist/error/InteractionRequiredAuthError.d.ts +57 -59
  159. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
  160. package/dist/error/InteractionRequiredAuthError.mjs +80 -79
  161. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  162. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +6 -0
  163. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -0
  164. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +16 -0
  165. package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -0
  166. package/dist/error/JoseHeaderError.d.ts +15 -28
  167. package/dist/error/JoseHeaderError.d.ts.map +1 -1
  168. package/dist/error/JoseHeaderError.mjs +24 -40
  169. package/dist/error/JoseHeaderError.mjs.map +1 -1
  170. package/dist/error/JoseHeaderErrorCodes.d.ts +3 -0
  171. package/dist/error/JoseHeaderErrorCodes.d.ts.map +1 -0
  172. package/dist/error/JoseHeaderErrorCodes.mjs +11 -0
  173. package/dist/error/JoseHeaderErrorCodes.mjs.map +1 -0
  174. package/dist/error/ServerError.d.ts +7 -7
  175. package/dist/error/ServerError.mjs +14 -14
  176. package/dist/error/ServerError.mjs.map +1 -1
  177. package/dist/index.cjs +8727 -8978
  178. package/dist/index.cjs.map +1 -1
  179. package/dist/index.d.ts +96 -96
  180. package/dist/index.d.ts.map +1 -1
  181. package/dist/index.mjs +17 -7
  182. package/dist/index.mjs.map +1 -1
  183. package/dist/logger/Logger.d.ts +95 -95
  184. package/dist/logger/Logger.d.ts.map +1 -1
  185. package/dist/logger/Logger.mjs +188 -198
  186. package/dist/logger/Logger.mjs.map +1 -1
  187. package/dist/network/INetworkModule.d.ts +29 -29
  188. package/dist/network/INetworkModule.d.ts.map +1 -1
  189. package/dist/network/INetworkModule.mjs +14 -15
  190. package/dist/network/INetworkModule.mjs.map +1 -1
  191. package/dist/network/NetworkManager.d.ts +33 -33
  192. package/dist/network/NetworkManager.d.ts.map +1 -1
  193. package/dist/network/NetworkManager.mjs +36 -35
  194. package/dist/network/NetworkManager.mjs.map +1 -1
  195. package/dist/network/RequestThumbprint.d.ts +16 -16
  196. package/dist/network/ThrottlingUtils.d.ts +42 -42
  197. package/dist/network/ThrottlingUtils.mjs +95 -95
  198. package/dist/network/ThrottlingUtils.mjs.map +1 -1
  199. package/dist/packageMetadata.d.ts +2 -2
  200. package/dist/packageMetadata.mjs +4 -4
  201. package/dist/packageMetadata.mjs.map +1 -1
  202. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  203. package/dist/request/AuthenticationHeaderParser.d.ts.map +1 -1
  204. package/dist/request/AuthenticationHeaderParser.mjs +58 -57
  205. package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
  206. package/dist/request/BaseAuthRequest.d.ts +40 -40
  207. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  208. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  209. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  210. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  211. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  212. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  213. package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
  214. package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
  215. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  216. package/dist/request/NativeRequest.d.ts +19 -19
  217. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  218. package/dist/request/RequestParameterBuilder.d.ts +217 -217
  219. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  220. package/dist/request/RequestParameterBuilder.mjs +383 -383
  221. package/dist/request/RequestParameterBuilder.mjs.map +1 -1
  222. package/dist/request/RequestValidator.d.ts +33 -33
  223. package/dist/request/RequestValidator.d.ts.map +1 -1
  224. package/dist/request/RequestValidator.mjs +83 -84
  225. package/dist/request/RequestValidator.mjs.map +1 -1
  226. package/dist/request/ScopeSet.d.ts +88 -88
  227. package/dist/request/ScopeSet.d.ts.map +1 -1
  228. package/dist/request/ScopeSet.mjs +201 -199
  229. package/dist/request/ScopeSet.mjs.map +1 -1
  230. package/dist/request/StoreInCache.d.ts +8 -8
  231. package/dist/response/AuthenticationResult.d.ts +41 -39
  232. package/dist/response/AuthenticationResult.d.ts.map +1 -1
  233. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  234. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  235. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  236. package/dist/response/IMDSBadResponse.d.ts +4 -4
  237. package/dist/response/ResponseHandler.d.ts +67 -66
  238. package/dist/response/ResponseHandler.d.ts.map +1 -1
  239. package/dist/response/ResponseHandler.mjs +316 -297
  240. package/dist/response/ResponseHandler.mjs.map +1 -1
  241. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  242. package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -44
  243. package/dist/response/ServerAuthorizationTokenResponse.d.ts.map +1 -1
  244. package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
  245. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
  246. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  247. package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
  248. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  249. package/dist/telemetry/performance/PerformanceClient.mjs +409 -408
  250. package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
  251. package/dist/telemetry/performance/PerformanceEvent.d.ts +433 -426
  252. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  253. package/dist/telemetry/performance/PerformanceEvent.mjs +234 -226
  254. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  255. package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
  256. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
  257. package/dist/telemetry/performance/StubPerformanceClient.mjs +77 -57
  258. package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
  259. package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
  260. package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
  261. package/dist/telemetry/server/ServerTelemetryManager.mjs +197 -198
  262. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  263. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  264. package/dist/url/IUri.d.ts +12 -12
  265. package/dist/url/UrlString.d.ts +83 -83
  266. package/dist/url/UrlString.d.ts.map +1 -1
  267. package/dist/url/UrlString.mjs +283 -283
  268. package/dist/url/UrlString.mjs.map +1 -1
  269. package/dist/utils/Constants.d.ts +366 -353
  270. package/dist/utils/Constants.d.ts.map +1 -1
  271. package/dist/utils/Constants.mjs +377 -360
  272. package/dist/utils/Constants.mjs.map +1 -1
  273. package/dist/utils/FunctionWrappers.d.ts +28 -0
  274. package/dist/utils/FunctionWrappers.d.ts.map +1 -0
  275. package/dist/utils/FunctionWrappers.mjs +90 -0
  276. package/dist/utils/FunctionWrappers.mjs.map +1 -0
  277. package/dist/utils/MsalTypes.d.ts +6 -6
  278. package/dist/utils/ProtocolUtils.d.ts +42 -42
  279. package/dist/utils/ProtocolUtils.d.ts.map +1 -1
  280. package/dist/utils/ProtocolUtils.mjs +71 -73
  281. package/dist/utils/ProtocolUtils.mjs.map +1 -1
  282. package/dist/utils/StringUtils.d.ts +40 -53
  283. package/dist/utils/StringUtils.d.ts.map +1 -1
  284. package/dist/utils/StringUtils.mjs +95 -126
  285. package/dist/utils/StringUtils.mjs.map +1 -1
  286. package/dist/utils/TimeUtils.d.ts +27 -27
  287. package/dist/utils/TimeUtils.mjs +45 -45
  288. package/dist/utils/TimeUtils.mjs.map +1 -1
  289. package/package.json +6 -4
  290. package/src/account/AccountInfo.ts +44 -0
  291. package/src/account/AuthToken.ts +71 -0
  292. package/src/account/CcsCredential.ts +16 -0
  293. package/src/account/ClientCredentials.ts +20 -0
  294. package/src/account/ClientInfo.ts +67 -0
  295. package/src/account/TokenClaims.ts +70 -0
  296. package/src/authority/Authority.ts +1207 -0
  297. package/src/authority/AuthorityFactory.ts +118 -0
  298. package/src/authority/AuthorityMetadata.ts +953 -0
  299. package/src/authority/AuthorityOptions.ts +40 -0
  300. package/src/authority/AuthorityType.ts +15 -0
  301. package/src/authority/AzureRegion.ts +7 -0
  302. package/src/authority/AzureRegionConfiguration.ts +16 -0
  303. package/src/authority/CloudDiscoveryMetadata.ts +10 -0
  304. package/src/authority/CloudInstanceDiscoveryErrorResponse.ts +26 -0
  305. package/src/authority/CloudInstanceDiscoveryResponse.ts +21 -0
  306. package/src/authority/ImdsOptions.ts +10 -0
  307. package/src/authority/OIDCOptions.ts +14 -0
  308. package/src/authority/OpenIdConfigResponse.ts +24 -0
  309. package/src/authority/ProtocolMode.ts +13 -0
  310. package/src/authority/RegionDiscovery.ts +196 -0
  311. package/src/authority/RegionDiscoveryMetadata.ts +15 -0
  312. package/src/broker/nativeBroker/INativeBrokerPlugin.ts +29 -0
  313. package/src/cache/CacheManager.ts +1579 -0
  314. package/src/cache/entities/AccessTokenEntity.ts +167 -0
  315. package/src/cache/entities/AccountEntity.ts +314 -0
  316. package/src/cache/entities/AppMetadataEntity.ts +91 -0
  317. package/src/cache/entities/AuthorityMetadataEntity.ts +112 -0
  318. package/src/cache/entities/CacheRecord.ts +33 -0
  319. package/src/cache/entities/CredentialEntity.ts +220 -0
  320. package/src/cache/entities/IdTokenEntity.ts +74 -0
  321. package/src/cache/entities/RefreshTokenEntity.ts +78 -0
  322. package/src/cache/entities/ServerTelemetryEntity.ts +38 -0
  323. package/src/cache/entities/ThrottlingEntity.ts +36 -0
  324. package/src/cache/interface/ICacheManager.ts +218 -0
  325. package/src/cache/interface/ICachePlugin.ts +11 -0
  326. package/src/cache/interface/ISerializableTokenCache.ts +9 -0
  327. package/src/cache/persistence/TokenCacheContext.ts +39 -0
  328. package/src/cache/utils/CacheTypes.ts +93 -0
  329. package/src/client/AuthorizationCodeClient.ts +736 -0
  330. package/src/client/BaseClient.ts +208 -0
  331. package/src/client/RefreshTokenClient.ts +399 -0
  332. package/src/client/SilentFlowClient.ts +239 -0
  333. package/src/config/AppTokenProvider.ts +47 -0
  334. package/src/config/ClientConfiguration.ts +286 -0
  335. package/src/crypto/ICrypto.ts +112 -0
  336. package/src/crypto/IGuidGenerator.ts +9 -0
  337. package/src/crypto/JoseHeader.ts +58 -0
  338. package/src/crypto/PopTokenGenerator.ts +160 -0
  339. package/src/crypto/SignedHttpRequest.ts +16 -0
  340. package/src/error/AuthError.ts +83 -0
  341. package/src/error/AuthErrorCodes.ts +10 -0
  342. package/src/error/ClientAuthError.ts +333 -0
  343. package/src/error/ClientAuthErrorCodes.ts +51 -0
  344. package/src/error/ClientConfigurationError.ts +210 -0
  345. package/src/error/ClientConfigurationErrorCodes.ts +28 -0
  346. package/src/error/InteractionRequiredAuthError.ts +139 -0
  347. package/src/error/InteractionRequiredAuthErrorCodes.ts +13 -0
  348. package/src/error/JoseHeaderError.ts +32 -0
  349. package/src/error/JoseHeaderErrorCodes.ts +7 -0
  350. package/src/error/ServerError.ts +18 -0
  351. package/src/index.ts +226 -0
  352. package/src/logger/Logger.ts +272 -0
  353. package/src/network/INetworkModule.ts +60 -0
  354. package/src/network/NetworkManager.ts +76 -0
  355. package/src/network/RequestThumbprint.ts +22 -0
  356. package/src/network/ThrottlingUtils.ts +156 -0
  357. package/src/packageMetadata.ts +3 -0
  358. package/src/request/AuthenticationHeaderParser.ts +92 -0
  359. package/src/request/BaseAuthRequest.ts +46 -0
  360. package/src/request/CommonAuthorizationCodeRequest.ts +33 -0
  361. package/src/request/CommonAuthorizationUrlRequest.ts +56 -0
  362. package/src/request/CommonClientCredentialRequest.ts +23 -0
  363. package/src/request/CommonDeviceCodeRequest.ts +31 -0
  364. package/src/request/CommonEndSessionRequest.ts +27 -0
  365. package/src/request/CommonOnBehalfOfRequest.ts +19 -0
  366. package/src/request/CommonRefreshTokenRequest.ts +25 -0
  367. package/src/request/CommonSilentFlowRequest.ts +24 -0
  368. package/src/request/CommonUsernamePasswordRequest.ts +23 -0
  369. package/src/request/NativeRequest.ts +25 -0
  370. package/src/request/NativeSignOutRequest.ts +10 -0
  371. package/src/request/RequestParameterBuilder.ts +613 -0
  372. package/src/request/RequestValidator.ts +116 -0
  373. package/src/request/ScopeSet.ts +246 -0
  374. package/src/request/StoreInCache.ts +16 -0
  375. package/src/response/AuthenticationResult.ts +47 -0
  376. package/src/response/AuthorizationCodePayload.ts +18 -0
  377. package/src/response/DeviceCodeResponse.ts +31 -0
  378. package/src/response/ExternalTokenResponse.ts +24 -0
  379. package/src/response/IMDSBadResponse.ts +9 -0
  380. package/src/response/ResponseHandler.ts +634 -0
  381. package/src/response/ServerAuthorizationCodeResponse.ts +33 -0
  382. package/src/response/ServerAuthorizationTokenResponse.ts +54 -0
  383. package/src/telemetry/performance/IPerformanceClient.ts +71 -0
  384. package/src/telemetry/performance/IPerformanceMeasurement.ts +10 -0
  385. package/src/telemetry/performance/PerformanceClient.ts +636 -0
  386. package/src/telemetry/performance/PerformanceEvent.ts +542 -0
  387. package/src/telemetry/performance/StubPerformanceClient.ts +101 -0
  388. package/src/telemetry/server/ServerTelemetryManager.ts +274 -0
  389. package/src/telemetry/server/ServerTelemetryRequest.ts +13 -0
  390. package/src/url/IUri.ts +17 -0
  391. package/src/url/UrlString.ts +373 -0
  392. package/src/utils/Constants.ts +444 -0
  393. package/src/utils/FunctionWrappers.ts +105 -0
  394. package/src/utils/MsalTypes.ts +9 -0
  395. package/src/utils/ProtocolUtils.ts +120 -0
  396. package/src/utils/StringUtils.ts +106 -0
  397. package/src/utils/TimeUtils.ts +51 -0
  398. package/dist/account/DecodedAuthToken.d.ts +0 -9
  399. package/dist/account/DecodedAuthToken.d.ts.map +0 -1
@@ -1,130 +1,99 @@
1
- /*! @azure/msal-common v14.0.2 2023-08-18 */
1
+ /*! @azure/msal-common v14.1.0-alpha.0 2023-09-20 */
2
2
  'use strict';
3
- import { ClientAuthError } from '../error/ClientAuthError.mjs';
4
-
5
- /*
6
- * Copyright (c) Microsoft Corporation. All rights reserved.
7
- * Licensed under the MIT License.
8
- */
9
- /**
10
- * @hidden
11
- */
12
- class StringUtils {
13
- /**
14
- * decode a JWT
15
- *
16
- * @param authToken
17
- */
18
- static decodeAuthToken(authToken) {
19
- if (StringUtils.isEmpty(authToken)) {
20
- throw ClientAuthError.createTokenNullOrEmptyError(authToken);
21
- }
22
- const tokenPartsRegex = /^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/;
23
- const matches = tokenPartsRegex.exec(authToken);
24
- if (!matches || matches.length < 4) {
25
- throw ClientAuthError.createTokenParsingError(`Given token is malformed: ${JSON.stringify(authToken)}`);
26
- }
27
- const crackedToken = {
28
- header: matches[1],
29
- JWSPayload: matches[2],
30
- JWSSig: matches[3],
31
- };
32
- return crackedToken;
33
- }
34
- /**
35
- * Check if a string is empty.
36
- *
37
- * @param str
38
- */
39
- static isEmpty(str) {
40
- return typeof str === "undefined" || !str || 0 === str.length;
41
- }
42
- /**
43
- * Check if stringified object is empty
44
- * @param strObj
45
- */
46
- static isEmptyObj(strObj) {
47
- if (strObj && !StringUtils.isEmpty(strObj)) {
48
- try {
49
- const obj = JSON.parse(strObj);
50
- return Object.keys(obj).length === 0;
51
- }
52
- catch (e) { }
53
- }
54
- return true;
55
- }
56
- static startsWith(str, search) {
57
- return str.indexOf(search) === 0;
58
- }
59
- static endsWith(str, search) {
60
- return (str.length >= search.length &&
61
- str.lastIndexOf(search) === str.length - search.length);
62
- }
63
- /**
64
- * Parses string into an object.
65
- *
66
- * @param query
67
- */
68
- static queryStringToObject(query) {
69
- const obj = {};
70
- const params = query.split("&");
71
- const decode = (s) => decodeURIComponent(s.replace(/\+/g, " "));
72
- params.forEach((pair) => {
73
- if (pair.trim()) {
74
- const [key, value] = pair.split(/=(.+)/g, 2); // Split on the first occurence of the '=' character
75
- if (key && value) {
76
- obj[decode(key)] = decode(value);
77
- }
78
- }
79
- });
80
- return obj;
81
- }
82
- /**
83
- * Trims entries in an array.
84
- *
85
- * @param arr
86
- */
87
- static trimArrayEntries(arr) {
88
- return arr.map((entry) => entry.trim());
89
- }
90
- /**
91
- * Removes empty strings from array
92
- * @param arr
93
- */
94
- static removeEmptyStringsFromArray(arr) {
95
- return arr.filter((entry) => {
96
- return !StringUtils.isEmpty(entry);
97
- });
98
- }
99
- /**
100
- * Attempts to parse a string into JSON
101
- * @param str
102
- */
103
- static jsonParseHelper(str) {
104
- try {
105
- return JSON.parse(str);
106
- }
107
- catch (e) {
108
- return null;
109
- }
110
- }
111
- /**
112
- * Tests if a given string matches a given pattern, with support for wildcards and queries.
113
- * @param pattern Wildcard pattern to string match. Supports "*" for wildcards and "?" for queries
114
- * @param input String to match against
115
- */
116
- static matchPattern(pattern, input) {
117
- /**
118
- * Wildcard support: https://stackoverflow.com/a/3117248/4888559
119
- * Queries: replaces "?" in string with escaped "\?" for regex test
120
- */
121
- // eslint-disable-next-line security/detect-non-literal-regexp
122
- const regex = new RegExp(pattern
123
- .replace(/\\/g, "\\\\")
124
- .replace(/\*/g, "[^ ]*")
125
- .replace(/\?/g, "\\?"));
126
- return regex.test(input);
127
- }
3
+ /*
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License.
6
+ */
7
+ /**
8
+ * @hidden
9
+ */
10
+ class StringUtils {
11
+ /**
12
+ * Check if stringified object is empty
13
+ * @param strObj
14
+ */
15
+ static isEmptyObj(strObj) {
16
+ if (strObj) {
17
+ try {
18
+ const obj = JSON.parse(strObj);
19
+ return Object.keys(obj).length === 0;
20
+ }
21
+ catch (e) { }
22
+ }
23
+ return true;
24
+ }
25
+ static startsWith(str, search) {
26
+ return str.indexOf(search) === 0;
27
+ }
28
+ static endsWith(str, search) {
29
+ return (str.length >= search.length &&
30
+ str.lastIndexOf(search) === str.length - search.length);
31
+ }
32
+ /**
33
+ * Parses string into an object.
34
+ *
35
+ * @param query
36
+ */
37
+ static queryStringToObject(query) {
38
+ const obj = {};
39
+ const params = query.split("&");
40
+ const decode = (s) => decodeURIComponent(s.replace(/\+/g, " "));
41
+ params.forEach((pair) => {
42
+ if (pair.trim()) {
43
+ const [key, value] = pair.split(/=(.+)/g, 2); // Split on the first occurence of the '=' character
44
+ if (key && value) {
45
+ obj[decode(key)] = decode(value);
46
+ }
47
+ }
48
+ });
49
+ return obj;
50
+ }
51
+ /**
52
+ * Trims entries in an array.
53
+ *
54
+ * @param arr
55
+ */
56
+ static trimArrayEntries(arr) {
57
+ return arr.map((entry) => entry.trim());
58
+ }
59
+ /**
60
+ * Removes empty strings from array
61
+ * @param arr
62
+ */
63
+ static removeEmptyStringsFromArray(arr) {
64
+ return arr.filter((entry) => {
65
+ return !!entry;
66
+ });
67
+ }
68
+ /**
69
+ * Attempts to parse a string into JSON
70
+ * @param str
71
+ */
72
+ static jsonParseHelper(str) {
73
+ try {
74
+ return JSON.parse(str);
75
+ }
76
+ catch (e) {
77
+ return null;
78
+ }
79
+ }
80
+ /**
81
+ * Tests if a given string matches a given pattern, with support for wildcards and queries.
82
+ * @param pattern Wildcard pattern to string match. Supports "*" for wildcards and "?" for queries
83
+ * @param input String to match against
84
+ */
85
+ static matchPattern(pattern, input) {
86
+ /**
87
+ * Wildcard support: https://stackoverflow.com/a/3117248/4888559
88
+ * Queries: replaces "?" in string with escaped "\?" for regex test
89
+ */
90
+ // eslint-disable-next-line security/detect-non-literal-regexp
91
+ const regex = new RegExp(pattern
92
+ .replace(/\\/g, "\\\\")
93
+ .replace(/\*/g, "[^ ]*")
94
+ .replace(/\?/g, "\\?"));
95
+ return regex.test(input);
96
+ }
128
97
  }
129
98
 
130
99
  export { StringUtils };
@@ -1 +1 @@
1
- {"version":3,"file":"StringUtils.mjs","sources":["../../src/utils/StringUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StringUtils.mjs","sources":["../../src/utils/StringUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;AAEG;AACH;AACI;;;AAGG,MAAA,WAAA,CAAA;;;;AAsBH;;;;AAIG,gBAAA,MAAA,GAAA,GAAA,IAAA,CAAA,KAAA,CAAA,MAAA,CAAA,CAAA;8BACuB,IAAI,CAAK,GAAA,CAAA,CAAA,MAAQ,KAAI,CAAA,CAAA;AAe/C,aAAA;;;;AAIG,KAAA;AACH,IAAA,OAAO,UAAA,CAAA,GAAA,EAAgB,MAAM,EAAA;AAI7B,QAAA,OAAA,GAAA,CAAA,OAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA;;;AAGG,QAAA,QAAA,GAAA,CAAA,MAAA,IAAA,MAAA,CAAA,MAAA;AACH,YAAO,GAAA,CAAA,WAAA,CAAA,MAAA,CAAA,KAA4B,GAAK,CAAA,MAAM,GAAA,MAAO,CAAG,MAAM;AAM9D,KAAA;;;AAGG;;AASH;;;;AAIG,QAAA,MAAA,MAAA,GAAA,CAAA,CAAA,KAAA,kBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,KAAA,EAAA,GAAA,CAAA,CAAA,CAAA;QACG,MAAa,CAAA,OAAA,CAAA,CAAC,IAAO,KAAE;AAehC,YAAA,IAAA,IAAA,CAAA,IAAA,EAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,28 +1,28 @@
1
- /**
2
- * Utility class which exposes functions for managing date and time operations.
3
- */
4
- export declare class TimeUtils {
5
- /**
6
- * return the current time in Unix time (seconds).
7
- */
8
- static nowSeconds(): number;
9
- /**
10
- * check if a token is expired based on given UTC time in seconds.
11
- * @param expiresOn
12
- */
13
- static isTokenExpired(expiresOn: string, offset: number): boolean;
14
- /**
15
- * If the current time is earlier than the time that a token was cached at, we must discard the token
16
- * i.e. The system clock was turned back after acquiring the cached token
17
- * @param cachedAt
18
- * @param offset
19
- */
20
- static wasClockTurnedBack(cachedAt: string): boolean;
21
- /**
22
- * Waits for t number of milliseconds
23
- * @param t number
24
- * @param value T
25
- */
26
- static delay<T>(t: number, value?: T): Promise<T | void>;
27
- }
1
+ /**
2
+ * Utility class which exposes functions for managing date and time operations.
3
+ */
4
+ export declare class TimeUtils {
5
+ /**
6
+ * return the current time in Unix time (seconds).
7
+ */
8
+ static nowSeconds(): number;
9
+ /**
10
+ * check if a token is expired based on given UTC time in seconds.
11
+ * @param expiresOn
12
+ */
13
+ static isTokenExpired(expiresOn: string, offset: number): boolean;
14
+ /**
15
+ * If the current time is earlier than the time that a token was cached at, we must discard the token
16
+ * i.e. The system clock was turned back after acquiring the cached token
17
+ * @param cachedAt
18
+ * @param offset
19
+ */
20
+ static wasClockTurnedBack(cachedAt: string): boolean;
21
+ /**
22
+ * Waits for t number of milliseconds
23
+ * @param t number
24
+ * @param value T
25
+ */
26
+ static delay<T>(t: number, value?: T): Promise<T | void>;
27
+ }
28
28
  //# sourceMappingURL=TimeUtils.d.ts.map
@@ -1,49 +1,49 @@
1
- /*! @azure/msal-common v14.0.2 2023-08-18 */
1
+ /*! @azure/msal-common v14.1.0-alpha.0 2023-09-20 */
2
2
  'use strict';
3
- /*
4
- * Copyright (c) Microsoft Corporation. All rights reserved.
5
- * Licensed under the MIT License.
6
- */
7
- /**
8
- * Utility class which exposes functions for managing date and time operations.
9
- */
10
- class TimeUtils {
11
- /**
12
- * return the current time in Unix time (seconds).
13
- */
14
- static nowSeconds() {
15
- // Date.getTime() returns in milliseconds.
16
- return Math.round(new Date().getTime() / 1000.0);
17
- }
18
- /**
19
- * check if a token is expired based on given UTC time in seconds.
20
- * @param expiresOn
21
- */
22
- static isTokenExpired(expiresOn, offset) {
23
- // check for access token expiry
24
- const expirationSec = Number(expiresOn) || 0;
25
- const offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;
26
- // If current time + offset is greater than token expiration time, then token is expired.
27
- return offsetCurrentTimeSec > expirationSec;
28
- }
29
- /**
30
- * If the current time is earlier than the time that a token was cached at, we must discard the token
31
- * i.e. The system clock was turned back after acquiring the cached token
32
- * @param cachedAt
33
- * @param offset
34
- */
35
- static wasClockTurnedBack(cachedAt) {
36
- const cachedAtSec = Number(cachedAt);
37
- return cachedAtSec > TimeUtils.nowSeconds();
38
- }
39
- /**
40
- * Waits for t number of milliseconds
41
- * @param t number
42
- * @param value T
43
- */
44
- static delay(t, value) {
45
- return new Promise((resolve) => setTimeout(() => resolve(value), t));
46
- }
3
+ /*
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License.
6
+ */
7
+ /**
8
+ * Utility class which exposes functions for managing date and time operations.
9
+ */
10
+ class TimeUtils {
11
+ /**
12
+ * return the current time in Unix time (seconds).
13
+ */
14
+ static nowSeconds() {
15
+ // Date.getTime() returns in milliseconds.
16
+ return Math.round(new Date().getTime() / 1000.0);
17
+ }
18
+ /**
19
+ * check if a token is expired based on given UTC time in seconds.
20
+ * @param expiresOn
21
+ */
22
+ static isTokenExpired(expiresOn, offset) {
23
+ // check for access token expiry
24
+ const expirationSec = Number(expiresOn) || 0;
25
+ const offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;
26
+ // If current time + offset is greater than token expiration time, then token is expired.
27
+ return offsetCurrentTimeSec > expirationSec;
28
+ }
29
+ /**
30
+ * If the current time is earlier than the time that a token was cached at, we must discard the token
31
+ * i.e. The system clock was turned back after acquiring the cached token
32
+ * @param cachedAt
33
+ * @param offset
34
+ */
35
+ static wasClockTurnedBack(cachedAt) {
36
+ const cachedAtSec = Number(cachedAt);
37
+ return cachedAtSec > TimeUtils.nowSeconds();
38
+ }
39
+ /**
40
+ * Waits for t number of milliseconds
41
+ * @param t number
42
+ * @param value T
43
+ */
44
+ static delay(t, value) {
45
+ return new Promise((resolve) => setTimeout(() => resolve(value), t));
46
+ }
47
47
  }
48
48
 
49
49
  export { TimeUtils };
@@ -1 +1 @@
1
- {"version":3,"file":"TimeUtils.mjs","sources":["../../src/utils/TimeUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAEH;;AAEG;MACU,SAAS,CAAA;AAClB;;AAEG;AACH,IAAA,OAAO,UAAU,GAAA;;AAEb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;KACpD;AAED;;;AAGG;AACH,IAAA,OAAO,cAAc,CAAC,SAAiB,EAAE,MAAc,EAAA;;QAEnD,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,oBAAoB,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC;;QAG7D,OAAO,oBAAoB,GAAG,aAAa,CAAC;KAC/C;AAED;;;;;AAKG;IACH,OAAO,kBAAkB,CAAC,QAAgB,EAAA;AACtC,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAErC,QAAA,OAAO,WAAW,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;KAC/C;AAED;;;;AAIG;AACH,IAAA,OAAO,KAAK,CAAI,CAAS,EAAE,KAAS,EAAA;QAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACxE;AACJ;;;;"}
1
+ {"version":3,"file":"TimeUtils.mjs","sources":["../../src/utils/TimeUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;AAEG;AACH;AACI;;AAEG;AACG,MAAW,SAAA,CAAA;AAKjB;;;AAGG,IAAA,OAAA,UAAA,GAAA;;AAUH,QAAA,OAAA,IAAA,CAAA,KAAA,CAAA,IAAA,IAAA,EAAA,CAAA,OAAA,EAAA,GAAA,MAAA,CAAA,CAAA;;;;;AAKG;AACH,IAAA,OAAO,cAAkB,CAAA,iBAAW,EAAA;AAMpC;;;;AAIG,QAAA,OAAA,oBAAA,GAAA,aAAA,CAAA;AACH,KAAA;AAGH;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "type": "git",
11
11
  "url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
12
12
  },
13
- "version": "14.0.2",
13
+ "version": "14.1.0-alpha.0",
14
14
  "description": "Microsoft Authentication Library for js",
15
15
  "keywords": [
16
16
  "implicit",
@@ -41,13 +41,14 @@
41
41
  "test": "test"
42
42
  },
43
43
  "files": [
44
- "dist"
44
+ "dist",
45
+ "src"
45
46
  ],
46
47
  "scripts": {
47
48
  "clean": "shx rm -rf dist lib",
48
49
  "clean:coverage": "rimraf ../../.nyc_output/*",
49
- "lint": "cd ../../ && npm run lint:common",
50
- "lint:fix": "npm run lint -- -- --fix",
50
+ "lint": "eslint src --ext .ts",
51
+ "lint:fix": "npm run lint -- --fix",
51
52
  "test": "jest",
52
53
  "test:coverage": "jest --coverage",
53
54
  "test:coverage:only": "npm run clean:coverage && npm run test:coverage",
@@ -77,6 +78,7 @@
77
78
  "@types/lodash": "^4.14.182",
78
79
  "@types/node": "^20.3.1",
79
80
  "@types/sinon": "^7.5.0",
81
+ "eslint-config-msal": "^0.0.0",
80
82
  "jest": "^29.5.0",
81
83
  "lodash": "^4.17.21",
82
84
  "prettier": "2.8.7",
@@ -0,0 +1,44 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import { TokenClaims } from "./TokenClaims";
7
+ /**
8
+ * Account object with the following signature:
9
+ * - homeAccountId - Home account identifier for this account object
10
+ * - environment - Entity which issued the token represented by the domain of the issuer (e.g. login.microsoftonline.com)
11
+ * - tenantId - Full tenant or organizational id that this account belongs to
12
+ * - username - preferred_username claim of the id_token that represents this account
13
+ * - localAccountId - Local, tenant-specific account identifer for this account object, usually used in legacy cases
14
+ * - name - Full name for the account, including given name and family name
15
+ * - idToken - raw ID token
16
+ * - idTokenClaims - Object contains claims from ID token
17
+ * - localAccountId - The user's account ID
18
+ * - nativeAccountId - The user's native account ID
19
+ */
20
+ export type AccountInfo = {
21
+ homeAccountId: string;
22
+ environment: string;
23
+ tenantId: string;
24
+ username: string;
25
+ localAccountId: string;
26
+ name?: string;
27
+ idToken?: string;
28
+ idTokenClaims?: TokenClaims & {
29
+ [key: string]:
30
+ | string
31
+ | number
32
+ | string[]
33
+ | object
34
+ | undefined
35
+ | unknown;
36
+ };
37
+ nativeAccountId?: string;
38
+ authorityType?: string;
39
+ };
40
+
41
+ export type ActiveAccountFilters = {
42
+ homeAccountId: string;
43
+ localAccountId: string;
44
+ };
@@ -0,0 +1,71 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import { TokenClaims } from "./TokenClaims";
7
+ import {
8
+ createClientAuthError,
9
+ ClientAuthErrorCodes,
10
+ } from "../error/ClientAuthError";
11
+
12
+ /**
13
+ * Extract token by decoding the rawToken
14
+ *
15
+ * @param encodedToken
16
+ */
17
+ export function extractTokenClaims(
18
+ encodedToken: string,
19
+ base64Decode: (input: string) => string
20
+ ): TokenClaims {
21
+ const jswPayload = getJWSPayload(encodedToken);
22
+
23
+ // token will be decoded to get the username
24
+ try {
25
+ // base64Decode() should throw an error if there is an issue
26
+ const base64Decoded = base64Decode(jswPayload);
27
+ return JSON.parse(base64Decoded) as TokenClaims;
28
+ } catch (err) {
29
+ throw createClientAuthError(ClientAuthErrorCodes.tokenParsingError);
30
+ }
31
+ }
32
+
33
+ /**
34
+ * decode a JWT
35
+ *
36
+ * @param authToken
37
+ */
38
+ export function getJWSPayload(authToken: string): string {
39
+ if (!authToken) {
40
+ throw createClientAuthError(ClientAuthErrorCodes.nullOrEmptyToken);
41
+ }
42
+ const tokenPartsRegex = /^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/;
43
+ const matches = tokenPartsRegex.exec(authToken);
44
+ if (!matches || matches.length < 4) {
45
+ throw createClientAuthError(ClientAuthErrorCodes.tokenParsingError);
46
+ }
47
+ /**
48
+ * const crackedToken = {
49
+ * header: matches[1],
50
+ * JWSPayload: matches[2],
51
+ * JWSSig: matches[3],
52
+ * };
53
+ */
54
+
55
+ return matches[2];
56
+ }
57
+
58
+ /**
59
+ * Determine if the token's max_age has transpired
60
+ */
61
+ export function checkMaxAge(authTime: number, maxAge: number): void {
62
+ /*
63
+ * per https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest
64
+ * To force an immediate re-authentication: If an app requires that a user re-authenticate prior to access,
65
+ * provide a value of 0 for the max_age parameter and the AS will force a fresh login.
66
+ */
67
+ const fiveMinuteSkew = 300000; // five minutes in milliseconds
68
+ if (maxAge === 0 || Date.now() - fiveMinuteSkew > authTime + maxAge) {
69
+ throw createClientAuthError(ClientAuthErrorCodes.maxAgeTranspired);
70
+ }
71
+ }
@@ -0,0 +1,16 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ export type CcsCredential = {
7
+ credential: string;
8
+ type: CcsCredentialType;
9
+ };
10
+
11
+ export const CcsCredentialType = {
12
+ HOME_ACCOUNT_ID: "home_account_id",
13
+ UPN: "UPN",
14
+ } as const;
15
+ export type CcsCredentialType =
16
+ (typeof CcsCredentialType)[keyof typeof CcsCredentialType];
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ /**
7
+ * Client Assertion credential for Confidential Clients
8
+ */
9
+ export type ClientAssertion = {
10
+ assertion: string;
11
+ assertionType: string;
12
+ };
13
+
14
+ /**
15
+ * Client Credentials set for Confidential Clients
16
+ */
17
+ export type ClientCredentials = {
18
+ clientSecret?: string;
19
+ clientAssertion?: ClientAssertion;
20
+ };
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import {
7
+ createClientAuthError,
8
+ ClientAuthErrorCodes,
9
+ } from "../error/ClientAuthError";
10
+ import { ICrypto } from "../crypto/ICrypto";
11
+ import { Separators, Constants } from "../utils/Constants";
12
+
13
+ /**
14
+ * Client info object which consists of two IDs. Need to add more info here.
15
+ */
16
+ export type ClientInfo = {
17
+ uid: string;
18
+ utid: string;
19
+ };
20
+
21
+ /**
22
+ * Function to build a client info object from server clientInfo string
23
+ * @param rawClientInfo
24
+ * @param crypto
25
+ */
26
+ export function buildClientInfo(
27
+ rawClientInfo: string,
28
+ crypto: ICrypto
29
+ ): ClientInfo {
30
+ if (!rawClientInfo) {
31
+ throw createClientAuthError(ClientAuthErrorCodes.clientInfoEmptyError);
32
+ }
33
+
34
+ try {
35
+ const decodedClientInfo: string = crypto.base64Decode(rawClientInfo);
36
+ return JSON.parse(decodedClientInfo) as ClientInfo;
37
+ } catch (e) {
38
+ throw createClientAuthError(
39
+ ClientAuthErrorCodes.clientInfoDecodingError
40
+ );
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Function to build a client info object from cached homeAccountId string
46
+ * @param homeAccountId
47
+ */
48
+ export function buildClientInfoFromHomeAccountId(
49
+ homeAccountId: string
50
+ ): ClientInfo {
51
+ if (!homeAccountId) {
52
+ throw createClientAuthError(
53
+ ClientAuthErrorCodes.clientInfoDecodingError
54
+ );
55
+ }
56
+ const clientInfoParts: string[] = homeAccountId.split(
57
+ Separators.CLIENT_INFO_SEPARATOR,
58
+ 2
59
+ );
60
+ return {
61
+ uid: clientInfoParts[0],
62
+ utid:
63
+ clientInfoParts.length < 2
64
+ ? Constants.EMPTY_STRING
65
+ : clientInfoParts[1],
66
+ };
67
+ }