@azure/msal-common 14.0.3 → 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 (296) hide show
  1. package/dist/account/AccountInfo.d.ts +32 -32
  2. package/dist/account/AuthToken.d.ts +17 -17
  3. package/dist/account/AuthToken.d.ts.map +1 -1
  4. package/dist/account/AuthToken.mjs +60 -59
  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/ClientCredentials.d.ts +14 -14
  9. package/dist/account/ClientInfo.d.ts +19 -19
  10. package/dist/account/ClientInfo.d.ts.map +1 -1
  11. package/dist/account/ClientInfo.mjs +39 -38
  12. package/dist/account/ClientInfo.mjs.map +1 -1
  13. package/dist/account/TokenClaims.d.ts +65 -65
  14. package/dist/authority/Authority.d.ts +235 -235
  15. package/dist/authority/Authority.d.ts.map +1 -1
  16. package/dist/authority/Authority.mjs +743 -765
  17. package/dist/authority/Authority.mjs.map +1 -1
  18. package/dist/authority/AuthorityFactory.d.ts +31 -31
  19. package/dist/authority/AuthorityFactory.d.ts.map +1 -1
  20. package/dist/authority/AuthorityFactory.mjs +52 -50
  21. package/dist/authority/AuthorityFactory.mjs.map +1 -1
  22. package/dist/authority/AuthorityMetadata.d.ts +623 -623
  23. package/dist/authority/AuthorityMetadata.mjs +884 -884
  24. package/dist/authority/AuthorityOptions.d.ts +21 -21
  25. package/dist/authority/AuthorityOptions.mjs +18 -18
  26. package/dist/authority/AuthorityType.d.ts +10 -10
  27. package/dist/authority/AuthorityType.mjs +13 -13
  28. package/dist/authority/AzureRegion.d.ts +1 -1
  29. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  30. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  31. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  32. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
  33. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  34. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
  35. package/dist/authority/ImdsOptions.d.ts +5 -5
  36. package/dist/authority/OIDCOptions.d.ts +8 -8
  37. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  38. package/dist/authority/OpenIdConfigResponse.mjs +10 -10
  39. package/dist/authority/ProtocolMode.d.ts +8 -8
  40. package/dist/authority/ProtocolMode.mjs +11 -11
  41. package/dist/authority/RegionDiscovery.d.ts +32 -30
  42. package/dist/authority/RegionDiscovery.d.ts.map +1 -1
  43. package/dist/authority/RegionDiscovery.mjs +107 -108
  44. package/dist/authority/RegionDiscovery.mjs.map +1 -1
  45. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  46. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  47. package/dist/cache/CacheManager.d.ts +446 -446
  48. package/dist/cache/CacheManager.d.ts.map +1 -1
  49. package/dist/cache/CacheManager.mjs +1000 -1024
  50. package/dist/cache/CacheManager.mjs.map +1 -1
  51. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  52. package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -1
  53. package/dist/cache/entities/AccessTokenEntity.mjs +111 -110
  54. package/dist/cache/entities/AccessTokenEntity.mjs.map +1 -1
  55. package/dist/cache/entities/AccountEntity.d.ts +101 -101
  56. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  57. package/dist/cache/entities/AccountEntity.mjs +222 -221
  58. package/dist/cache/entities/AccountEntity.mjs.map +1 -1
  59. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  60. package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
  61. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
  62. package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
  63. package/dist/cache/entities/CacheRecord.d.ts +14 -14
  64. package/dist/cache/entities/CacheRecord.mjs +14 -14
  65. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  66. package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
  67. package/dist/cache/entities/CredentialEntity.mjs +138 -137
  68. package/dist/cache/entities/CredentialEntity.mjs.map +1 -1
  69. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  70. package/dist/cache/entities/IdTokenEntity.mjs +56 -56
  71. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  72. package/dist/cache/entities/RefreshTokenEntity.mjs +59 -59
  73. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  74. package/dist/cache/entities/ServerTelemetryEntity.mjs +27 -27
  75. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  76. package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
  77. package/dist/cache/interface/ICacheManager.d.ts +166 -166
  78. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  79. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  80. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  81. package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
  82. package/dist/cache/utils/CacheTypes.d.ts +69 -69
  83. package/dist/client/AuthorizationCodeClient.d.ts +73 -73
  84. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  85. package/dist/client/AuthorizationCodeClient.mjs +411 -410
  86. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  87. package/dist/client/BaseClient.d.ts +51 -51
  88. package/dist/client/BaseClient.d.ts.map +1 -1
  89. package/dist/client/BaseClient.mjs +100 -99
  90. package/dist/client/BaseClient.mjs.map +1 -1
  91. package/dist/client/RefreshTokenClient.d.ts +35 -35
  92. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  93. package/dist/client/RefreshTokenClient.mjs +185 -234
  94. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  95. package/dist/client/SilentFlowClient.d.ts +26 -25
  96. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  97. package/dist/client/SilentFlowClient.mjs +127 -103
  98. package/dist/client/SilentFlowClient.mjs.map +1 -1
  99. package/dist/config/AppTokenProvider.d.ts +38 -38
  100. package/dist/config/ClientConfiguration.d.ts +150 -150
  101. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  102. package/dist/config/ClientConfiguration.mjs +99 -100
  103. package/dist/config/ClientConfiguration.mjs.map +1 -1
  104. package/dist/crypto/ICrypto.d.ts +62 -62
  105. package/dist/crypto/ICrypto.d.ts.map +1 -1
  106. package/dist/crypto/ICrypto.mjs +35 -43
  107. package/dist/crypto/ICrypto.mjs.map +1 -1
  108. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  109. package/dist/crypto/JoseHeader.d.ts +22 -22
  110. package/dist/crypto/JoseHeader.d.ts.map +1 -1
  111. package/dist/crypto/JoseHeader.mjs +39 -38
  112. package/dist/crypto/JoseHeader.mjs.map +1 -1
  113. package/dist/crypto/PopTokenGenerator.d.ts +60 -59
  114. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  115. package/dist/crypto/PopTokenGenerator.mjs +83 -83
  116. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  117. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  118. package/dist/error/AuthError.d.ts +44 -47
  119. package/dist/error/AuthError.d.ts.map +1 -1
  120. package/dist/error/AuthError.mjs +50 -52
  121. package/dist/error/AuthError.mjs.map +1 -1
  122. package/dist/error/AuthErrorCodes.d.ts +6 -0
  123. package/dist/error/AuthErrorCodes.d.ts.map +1 -0
  124. package/dist/error/AuthErrorCodes.mjs +14 -0
  125. package/dist/error/AuthErrorCodes.mjs.map +1 -0
  126. package/dist/error/ClientAuthError.d.ts +232 -412
  127. package/dist/error/ClientAuthError.d.ts.map +1 -1
  128. package/dist/error/ClientAuthError.mjs +248 -520
  129. package/dist/error/ClientAuthError.mjs.map +1 -1
  130. package/dist/error/ClientAuthErrorCodes.d.ts +44 -0
  131. package/dist/error/ClientAuthErrorCodes.d.ts.map +1 -0
  132. package/dist/error/ClientAuthErrorCodes.mjs +52 -0
  133. package/dist/error/ClientAuthErrorCodes.mjs.map +1 -0
  134. package/dist/error/ClientConfigurationError.d.ts +128 -222
  135. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  136. package/dist/error/ClientConfigurationError.mjs +140 -281
  137. package/dist/error/ClientConfigurationError.mjs.map +1 -1
  138. package/dist/error/ClientConfigurationErrorCodes.d.ts +23 -0
  139. package/dist/error/ClientConfigurationErrorCodes.d.ts.map +1 -0
  140. package/dist/error/ClientConfigurationErrorCodes.mjs +31 -0
  141. package/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -0
  142. package/dist/error/InteractionRequiredAuthError.d.ts +57 -59
  143. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
  144. package/dist/error/InteractionRequiredAuthError.mjs +80 -79
  145. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  146. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +6 -0
  147. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -0
  148. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +16 -0
  149. package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -0
  150. package/dist/error/JoseHeaderError.d.ts +15 -28
  151. package/dist/error/JoseHeaderError.d.ts.map +1 -1
  152. package/dist/error/JoseHeaderError.mjs +24 -40
  153. package/dist/error/JoseHeaderError.mjs.map +1 -1
  154. package/dist/error/JoseHeaderErrorCodes.d.ts +3 -0
  155. package/dist/error/JoseHeaderErrorCodes.d.ts.map +1 -0
  156. package/dist/error/JoseHeaderErrorCodes.mjs +11 -0
  157. package/dist/error/JoseHeaderErrorCodes.mjs.map +1 -0
  158. package/dist/error/ServerError.d.ts +7 -7
  159. package/dist/error/ServerError.mjs +14 -14
  160. package/dist/index.cjs +8715 -9047
  161. package/dist/index.cjs.map +1 -1
  162. package/dist/index.d.ts +96 -96
  163. package/dist/index.d.ts.map +1 -1
  164. package/dist/index.mjs +13 -5
  165. package/dist/index.mjs.map +1 -1
  166. package/dist/logger/Logger.d.ts +95 -95
  167. package/dist/logger/Logger.mjs +188 -188
  168. package/dist/network/INetworkModule.d.ts +29 -29
  169. package/dist/network/INetworkModule.d.ts.map +1 -1
  170. package/dist/network/INetworkModule.mjs +14 -15
  171. package/dist/network/INetworkModule.mjs.map +1 -1
  172. package/dist/network/NetworkManager.d.ts +33 -33
  173. package/dist/network/NetworkManager.d.ts.map +1 -1
  174. package/dist/network/NetworkManager.mjs +36 -35
  175. package/dist/network/NetworkManager.mjs.map +1 -1
  176. package/dist/network/RequestThumbprint.d.ts +16 -16
  177. package/dist/network/ThrottlingUtils.d.ts +42 -42
  178. package/dist/network/ThrottlingUtils.mjs +95 -95
  179. package/dist/packageMetadata.d.ts +2 -2
  180. package/dist/packageMetadata.mjs +3 -3
  181. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  182. package/dist/request/AuthenticationHeaderParser.d.ts.map +1 -1
  183. package/dist/request/AuthenticationHeaderParser.mjs +58 -57
  184. package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
  185. package/dist/request/BaseAuthRequest.d.ts +40 -40
  186. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  187. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  188. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  189. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  190. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  191. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  192. package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
  193. package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
  194. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  195. package/dist/request/NativeRequest.d.ts +19 -19
  196. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  197. package/dist/request/RequestParameterBuilder.d.ts +217 -217
  198. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  199. package/dist/request/RequestParameterBuilder.mjs +383 -382
  200. package/dist/request/RequestParameterBuilder.mjs.map +1 -1
  201. package/dist/request/RequestValidator.d.ts +33 -33
  202. package/dist/request/RequestValidator.d.ts.map +1 -1
  203. package/dist/request/RequestValidator.mjs +83 -82
  204. package/dist/request/RequestValidator.mjs.map +1 -1
  205. package/dist/request/ScopeSet.d.ts +88 -88
  206. package/dist/request/ScopeSet.d.ts.map +1 -1
  207. package/dist/request/ScopeSet.mjs +201 -199
  208. package/dist/request/ScopeSet.mjs.map +1 -1
  209. package/dist/request/StoreInCache.d.ts +8 -8
  210. package/dist/response/AuthenticationResult.d.ts +41 -41
  211. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  212. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  213. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  214. package/dist/response/IMDSBadResponse.d.ts +4 -4
  215. package/dist/response/ResponseHandler.d.ts +67 -67
  216. package/dist/response/ResponseHandler.d.ts.map +1 -1
  217. package/dist/response/ResponseHandler.mjs +314 -313
  218. package/dist/response/ResponseHandler.mjs.map +1 -1
  219. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  220. package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -46
  221. package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
  222. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  223. package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
  224. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  225. package/dist/telemetry/performance/PerformanceClient.mjs +409 -408
  226. package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
  227. package/dist/telemetry/performance/PerformanceEvent.d.ts +433 -433
  228. package/dist/telemetry/performance/PerformanceEvent.mjs +234 -234
  229. package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
  230. package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
  231. package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
  232. package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
  233. package/dist/telemetry/server/ServerTelemetryManager.mjs +197 -197
  234. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  235. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  236. package/dist/url/IUri.d.ts +12 -12
  237. package/dist/url/UrlString.d.ts +83 -83
  238. package/dist/url/UrlString.d.ts.map +1 -1
  239. package/dist/url/UrlString.mjs +283 -281
  240. package/dist/url/UrlString.mjs.map +1 -1
  241. package/dist/utils/Constants.d.ts +366 -363
  242. package/dist/utils/Constants.d.ts.map +1 -1
  243. package/dist/utils/Constants.mjs +376 -368
  244. package/dist/utils/Constants.mjs.map +1 -1
  245. package/dist/utils/FunctionWrappers.d.ts +27 -27
  246. package/dist/utils/FunctionWrappers.mjs +85 -85
  247. package/dist/utils/MsalTypes.d.ts +6 -6
  248. package/dist/utils/ProtocolUtils.d.ts +42 -42
  249. package/dist/utils/ProtocolUtils.d.ts.map +1 -1
  250. package/dist/utils/ProtocolUtils.mjs +71 -70
  251. package/dist/utils/ProtocolUtils.mjs.map +1 -1
  252. package/dist/utils/StringUtils.d.ts +40 -40
  253. package/dist/utils/StringUtils.mjs +95 -95
  254. package/dist/utils/TimeUtils.d.ts +27 -27
  255. package/dist/utils/TimeUtils.mjs +45 -45
  256. package/package.json +1 -1
  257. package/src/account/AuthToken.ts +8 -7
  258. package/src/account/ClientInfo.ts +9 -6
  259. package/src/authority/Authority.ts +76 -94
  260. package/src/authority/AuthorityFactory.ts +21 -9
  261. package/src/authority/RegionDiscovery.ts +21 -18
  262. package/src/cache/CacheManager.ts +37 -77
  263. package/src/cache/entities/AccessTokenEntity.ts +7 -2
  264. package/src/cache/entities/AccountEntity.ts +7 -2
  265. package/src/cache/entities/CredentialEntity.ts +7 -2
  266. package/src/client/AuthorizationCodeClient.ts +32 -10
  267. package/src/client/BaseClient.ts +7 -4
  268. package/src/client/RefreshTokenClient.ts +81 -124
  269. package/src/client/SilentFlowClient.ts +72 -19
  270. package/src/config/ClientConfiguration.ts +6 -7
  271. package/src/crypto/ICrypto.ts +13 -28
  272. package/src/crypto/JoseHeader.ts +6 -3
  273. package/src/crypto/PopTokenGenerator.ts +10 -5
  274. package/src/error/AuthError.ts +24 -26
  275. package/src/error/AuthErrorCodes.ts +10 -0
  276. package/src/error/ClientAuthError.ts +227 -632
  277. package/src/error/ClientAuthErrorCodes.ts +51 -0
  278. package/src/error/ClientConfigurationError.ts +146 -332
  279. package/src/error/ClientConfigurationErrorCodes.ts +28 -0
  280. package/src/error/InteractionRequiredAuthError.ts +60 -55
  281. package/src/error/InteractionRequiredAuthErrorCodes.ts +13 -0
  282. package/src/error/JoseHeaderError.ts +11 -31
  283. package/src/error/JoseHeaderErrorCodes.ts +7 -0
  284. package/src/index.ts +12 -1
  285. package/src/network/INetworkModule.ts +10 -7
  286. package/src/network/NetworkManager.ts +5 -5
  287. package/src/request/AuthenticationHeaderParser.ts +11 -8
  288. package/src/request/RequestParameterBuilder.ts +10 -3
  289. package/src/request/RequestValidator.ts +19 -6
  290. package/src/request/ScopeSet.ts +23 -7
  291. package/src/response/ResponseHandler.ts +37 -17
  292. package/src/telemetry/performance/PerformanceClient.ts +2 -1
  293. package/src/telemetry/server/ServerTelemetryManager.ts +1 -1
  294. package/src/url/UrlString.ts +26 -16
  295. package/src/utils/Constants.ts +11 -3
  296. package/src/utils/ProtocolUtils.ts +8 -12
@@ -1,99 +1,99 @@
1
- /*! @azure/msal-common v14.0.3 2023-09-05 */
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
- * @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
- }
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
+ }
97
97
  }
98
98
 
99
99
  export { StringUtils };
@@ -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.3 2023-09-05 */
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 };
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.3",
13
+ "version": "14.1.0-alpha.0",
14
14
  "description": "Microsoft Authentication Library for js",
15
15
  "keywords": [
16
16
  "implicit",
@@ -4,7 +4,10 @@
4
4
  */
5
5
 
6
6
  import { TokenClaims } from "./TokenClaims";
7
- import { ClientAuthError } from "../error/ClientAuthError";
7
+ import {
8
+ createClientAuthError,
9
+ ClientAuthErrorCodes,
10
+ } from "../error/ClientAuthError";
8
11
 
9
12
  /**
10
13
  * Extract token by decoding the rawToken
@@ -23,7 +26,7 @@ export function extractTokenClaims(
23
26
  const base64Decoded = base64Decode(jswPayload);
24
27
  return JSON.parse(base64Decoded) as TokenClaims;
25
28
  } catch (err) {
26
- throw ClientAuthError.createTokenParsingError(err as string);
29
+ throw createClientAuthError(ClientAuthErrorCodes.tokenParsingError);
27
30
  }
28
31
  }
29
32
 
@@ -34,14 +37,12 @@ export function extractTokenClaims(
34
37
  */
35
38
  export function getJWSPayload(authToken: string): string {
36
39
  if (!authToken) {
37
- throw ClientAuthError.createTokenNullOrEmptyError(authToken);
40
+ throw createClientAuthError(ClientAuthErrorCodes.nullOrEmptyToken);
38
41
  }
39
42
  const tokenPartsRegex = /^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/;
40
43
  const matches = tokenPartsRegex.exec(authToken);
41
44
  if (!matches || matches.length < 4) {
42
- throw ClientAuthError.createTokenParsingError(
43
- `Given token is malformed: ${JSON.stringify(authToken)}`
44
- );
45
+ throw createClientAuthError(ClientAuthErrorCodes.tokenParsingError);
45
46
  }
46
47
  /**
47
48
  * const crackedToken = {
@@ -65,6 +66,6 @@ export function checkMaxAge(authTime: number, maxAge: number): void {
65
66
  */
66
67
  const fiveMinuteSkew = 300000; // five minutes in milliseconds
67
68
  if (maxAge === 0 || Date.now() - fiveMinuteSkew > authTime + maxAge) {
68
- throw ClientAuthError.createMaxAgeTranspiredError();
69
+ throw createClientAuthError(ClientAuthErrorCodes.maxAgeTranspired);
69
70
  }
70
71
  }
@@ -3,7 +3,10 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ClientAuthError } from "../error/ClientAuthError";
6
+ import {
7
+ createClientAuthError,
8
+ ClientAuthErrorCodes,
9
+ } from "../error/ClientAuthError";
7
10
  import { ICrypto } from "../crypto/ICrypto";
8
11
  import { Separators, Constants } from "../utils/Constants";
9
12
 
@@ -25,15 +28,15 @@ export function buildClientInfo(
25
28
  crypto: ICrypto
26
29
  ): ClientInfo {
27
30
  if (!rawClientInfo) {
28
- throw ClientAuthError.createClientInfoEmptyError();
31
+ throw createClientAuthError(ClientAuthErrorCodes.clientInfoEmptyError);
29
32
  }
30
33
 
31
34
  try {
32
35
  const decodedClientInfo: string = crypto.base64Decode(rawClientInfo);
33
36
  return JSON.parse(decodedClientInfo) as ClientInfo;
34
37
  } catch (e) {
35
- throw ClientAuthError.createClientInfoDecodingError(
36
- (e as ClientAuthError).message
38
+ throw createClientAuthError(
39
+ ClientAuthErrorCodes.clientInfoDecodingError
37
40
  );
38
41
  }
39
42
  }
@@ -46,8 +49,8 @@ export function buildClientInfoFromHomeAccountId(
46
49
  homeAccountId: string
47
50
  ): ClientInfo {
48
51
  if (!homeAccountId) {
49
- throw ClientAuthError.createClientInfoDecodingError(
50
- "Home account ID was empty."
52
+ throw createClientAuthError(
53
+ ClientAuthErrorCodes.clientInfoDecodingError
51
54
  );
52
55
  }
53
56
  const clientInfoParts: string[] = homeAccountId.split(