@azure/msal-common 14.4.1-beta.0 → 14.5.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 (287) hide show
  1. package/dist/account/AccountInfo.d.ts +58 -31
  2. package/dist/account/AccountInfo.d.ts.map +1 -1
  3. package/dist/account/AccountInfo.mjs +64 -0
  4. package/dist/account/AccountInfo.mjs.map +1 -0
  5. package/dist/account/AuthToken.d.ts +17 -17
  6. package/dist/account/AuthToken.mjs +58 -58
  7. package/dist/account/AuthToken.mjs.map +1 -1
  8. package/dist/account/CcsCredential.d.ts +9 -9
  9. package/dist/account/CcsCredential.mjs +8 -8
  10. package/dist/account/CcsCredential.mjs.map +1 -1
  11. package/dist/account/ClientCredentials.d.ts +14 -14
  12. package/dist/account/ClientInfo.d.ts +18 -19
  13. package/dist/account/ClientInfo.d.ts.map +1 -1
  14. package/dist/account/ClientInfo.mjs +37 -37
  15. package/dist/account/ClientInfo.mjs.map +1 -1
  16. package/dist/account/TokenClaims.d.ts +83 -65
  17. package/dist/account/TokenClaims.d.ts.map +1 -1
  18. package/dist/account/TokenClaims.mjs +25 -0
  19. package/dist/account/TokenClaims.mjs.map +1 -0
  20. package/dist/authority/Authority.d.ts +253 -249
  21. package/dist/authority/Authority.d.ts.map +1 -1
  22. package/dist/authority/Authority.mjs +812 -789
  23. package/dist/authority/Authority.mjs.map +1 -1
  24. package/dist/authority/AuthorityFactory.d.ts +31 -31
  25. package/dist/authority/AuthorityFactory.mjs +47 -47
  26. package/dist/authority/AuthorityFactory.mjs.map +1 -1
  27. package/dist/authority/AuthorityMetadata.d.ts +503 -503
  28. package/dist/authority/AuthorityMetadata.mjs +603 -603
  29. package/dist/authority/AuthorityMetadata.mjs.map +1 -1
  30. package/dist/authority/AuthorityOptions.d.ts +27 -27
  31. package/dist/authority/AuthorityOptions.mjs +18 -18
  32. package/dist/authority/AuthorityOptions.mjs.map +1 -1
  33. package/dist/authority/AuthorityType.d.ts +10 -10
  34. package/dist/authority/AuthorityType.mjs +13 -13
  35. package/dist/authority/AuthorityType.mjs.map +1 -1
  36. package/dist/authority/AzureRegion.d.ts +1 -1
  37. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  38. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  39. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  40. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
  41. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs.map +1 -1
  42. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  43. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
  44. package/dist/authority/CloudInstanceDiscoveryResponse.mjs.map +1 -1
  45. package/dist/authority/ImdsOptions.d.ts +5 -5
  46. package/dist/authority/OIDCOptions.d.ts +8 -8
  47. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  48. package/dist/authority/OpenIdConfigResponse.mjs +10 -10
  49. package/dist/authority/OpenIdConfigResponse.mjs.map +1 -1
  50. package/dist/authority/ProtocolMode.d.ts +8 -8
  51. package/dist/authority/ProtocolMode.mjs +11 -11
  52. package/dist/authority/ProtocolMode.mjs.map +1 -1
  53. package/dist/authority/RegionDiscovery.d.ts +32 -32
  54. package/dist/authority/RegionDiscovery.mjs +106 -106
  55. package/dist/authority/RegionDiscovery.mjs.map +1 -1
  56. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  57. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  58. package/dist/cache/CacheManager.d.ts +517 -485
  59. package/dist/cache/CacheManager.d.ts.map +1 -1
  60. package/dist/cache/CacheManager.mjs +1264 -1102
  61. package/dist/cache/CacheManager.mjs.map +1 -1
  62. package/dist/cache/entities/AccessTokenEntity.d.ts +25 -25
  63. package/dist/cache/entities/AccountEntity.d.ts +106 -101
  64. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  65. package/dist/cache/entities/AccountEntity.mjs +247 -219
  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 +30 -30
  77. package/dist/cache/entities/IdTokenEntity.d.ts +8 -8
  78. package/dist/cache/entities/RefreshTokenEntity.d.ts +5 -7
  79. package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -1
  80. package/dist/cache/entities/ServerTelemetryEntity.d.ts +5 -5
  81. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  82. package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
  83. package/dist/cache/entities/ThrottlingEntity.mjs.map +1 -1
  84. package/dist/cache/interface/ICacheManager.d.ts +166 -166
  85. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  86. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  87. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  88. package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
  89. package/dist/cache/persistence/TokenCacheContext.mjs.map +1 -1
  90. package/dist/cache/utils/CacheHelpers.d.ts +64 -64
  91. package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
  92. package/dist/cache/utils/CacheHelpers.mjs +231 -234
  93. package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
  94. package/dist/cache/utils/CacheTypes.d.ts +69 -67
  95. package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
  96. package/dist/client/AuthorizationCodeClient.d.ts +74 -74
  97. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  98. package/dist/client/AuthorizationCodeClient.mjs +404 -403
  99. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  100. package/dist/client/BaseClient.d.ts +51 -51
  101. package/dist/client/BaseClient.mjs +100 -100
  102. package/dist/client/BaseClient.mjs.map +1 -1
  103. package/dist/client/RefreshTokenClient.d.ts +35 -35
  104. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  105. package/dist/client/RefreshTokenClient.mjs +189 -194
  106. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  107. package/dist/client/SilentFlowClient.d.ts +27 -27
  108. package/dist/client/SilentFlowClient.mjs +118 -118
  109. package/dist/client/SilentFlowClient.mjs.map +1 -1
  110. package/dist/config/AppTokenProvider.d.ts +38 -38
  111. package/dist/config/ClientConfiguration.d.ts +150 -150
  112. package/dist/config/ClientConfiguration.mjs +97 -97
  113. package/dist/config/ClientConfiguration.mjs.map +1 -1
  114. package/dist/constants/AADServerParamKeys.d.ts +52 -0
  115. package/dist/constants/AADServerParamKeys.d.ts.map +1 -0
  116. package/dist/constants/AADServerParamKeys.mjs +60 -0
  117. package/dist/constants/AADServerParamKeys.mjs.map +1 -0
  118. package/dist/crypto/ICrypto.d.ts +58 -58
  119. package/dist/crypto/ICrypto.mjs +30 -30
  120. package/dist/crypto/ICrypto.mjs.map +1 -1
  121. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  122. package/dist/crypto/JoseHeader.d.ts +22 -22
  123. package/dist/crypto/JoseHeader.mjs +37 -37
  124. package/dist/crypto/JoseHeader.mjs.map +1 -1
  125. package/dist/crypto/PopTokenGenerator.d.ts +60 -60
  126. package/dist/crypto/PopTokenGenerator.mjs +82 -82
  127. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  128. package/dist/crypto/SignedHttpRequest.d.ts +15 -15
  129. package/dist/error/AuthError.d.ts +44 -44
  130. package/dist/error/AuthError.mjs +46 -46
  131. package/dist/error/AuthError.mjs.map +1 -1
  132. package/dist/error/AuthErrorCodes.d.ts +5 -5
  133. package/dist/error/AuthErrorCodes.mjs +9 -9
  134. package/dist/error/AuthErrorCodes.mjs.map +1 -1
  135. package/dist/error/ClientAuthError.d.ts +237 -237
  136. package/dist/error/ClientAuthError.mjs +249 -249
  137. package/dist/error/ClientAuthError.mjs.map +1 -1
  138. package/dist/error/ClientAuthErrorCodes.d.ts +44 -44
  139. package/dist/error/ClientAuthErrorCodes.mjs +48 -48
  140. package/dist/error/ClientAuthErrorCodes.mjs.map +1 -1
  141. package/dist/error/ClientConfigurationError.d.ts +128 -128
  142. package/dist/error/ClientConfigurationError.mjs +135 -135
  143. package/dist/error/ClientConfigurationError.mjs.map +1 -1
  144. package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
  145. package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
  146. package/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -1
  147. package/dist/error/InteractionRequiredAuthError.d.ts +57 -57
  148. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
  149. package/dist/error/InteractionRequiredAuthError.mjs +77 -78
  150. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  151. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +5 -6
  152. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -1
  153. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +12 -13
  154. package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -1
  155. package/dist/error/JoseHeaderError.d.ts +15 -15
  156. package/dist/error/JoseHeaderError.mjs +22 -22
  157. package/dist/error/JoseHeaderError.mjs.map +1 -1
  158. package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
  159. package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
  160. package/dist/error/JoseHeaderErrorCodes.mjs.map +1 -1
  161. package/dist/error/ServerError.d.ts +7 -7
  162. package/dist/error/ServerError.mjs +14 -14
  163. package/dist/error/ServerError.mjs.map +1 -1
  164. package/dist/index.cjs +8645 -8295
  165. package/dist/index.cjs.map +1 -1
  166. package/dist/index.d.ts +99 -98
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.mjs +7 -3
  169. package/dist/index.mjs.map +1 -1
  170. package/dist/logger/Logger.d.ts +95 -95
  171. package/dist/logger/Logger.mjs +188 -188
  172. package/dist/logger/Logger.mjs.map +1 -1
  173. package/dist/network/INetworkModule.d.ts +29 -29
  174. package/dist/network/INetworkModule.mjs +12 -12
  175. package/dist/network/INetworkModule.mjs.map +1 -1
  176. package/dist/network/NetworkManager.d.ts +33 -33
  177. package/dist/network/NetworkManager.mjs +34 -34
  178. package/dist/network/NetworkManager.mjs.map +1 -1
  179. package/dist/network/RequestThumbprint.d.ts +18 -18
  180. package/dist/network/ThrottlingUtils.d.ts +42 -42
  181. package/dist/network/ThrottlingUtils.mjs +95 -95
  182. package/dist/network/ThrottlingUtils.mjs.map +1 -1
  183. package/dist/packageMetadata.d.ts +2 -2
  184. package/dist/packageMetadata.mjs +4 -4
  185. package/dist/packageMetadata.mjs.map +1 -1
  186. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  187. package/dist/request/AuthenticationHeaderParser.mjs +55 -55
  188. package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
  189. package/dist/request/BaseAuthRequest.d.ts +43 -43
  190. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  191. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  192. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  193. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  194. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  195. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  196. package/dist/request/CommonRefreshTokenRequest.d.ts +22 -23
  197. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  198. package/dist/request/CommonSilentFlowRequest.d.ts +20 -21
  199. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  200. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  201. package/dist/request/NativeRequest.d.ts +19 -19
  202. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  203. package/dist/request/RequestParameterBuilder.d.ts +217 -217
  204. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  205. package/dist/request/RequestParameterBuilder.mjs +383 -382
  206. package/dist/request/RequestParameterBuilder.mjs.map +1 -1
  207. package/dist/request/RequestValidator.d.ts +33 -33
  208. package/dist/request/RequestValidator.mjs +81 -81
  209. package/dist/request/RequestValidator.mjs.map +1 -1
  210. package/dist/request/ScopeSet.d.ts +88 -88
  211. package/dist/request/ScopeSet.mjs +197 -197
  212. package/dist/request/ScopeSet.mjs.map +1 -1
  213. package/dist/request/StoreInCache.d.ts +8 -8
  214. package/dist/response/AuthenticationResult.d.ts +41 -41
  215. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  216. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  217. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  218. package/dist/response/IMDSBadResponse.d.ts +4 -4
  219. package/dist/response/ResponseHandler.d.ts +69 -67
  220. package/dist/response/ResponseHandler.d.ts.map +1 -1
  221. package/dist/response/ResponseHandler.mjs +339 -313
  222. package/dist/response/ResponseHandler.mjs.map +1 -1
  223. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  224. package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -46
  225. package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
  226. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  227. package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
  228. package/dist/telemetry/performance/PerformanceClient.mjs +409 -409
  229. package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
  230. package/dist/telemetry/performance/PerformanceEvent.d.ts +464 -464
  231. package/dist/telemetry/performance/PerformanceEvent.mjs +253 -253
  232. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  233. package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
  234. package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
  235. package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
  236. package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
  237. package/dist/telemetry/server/ServerTelemetryManager.mjs +201 -201
  238. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  239. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  240. package/dist/url/IUri.d.ts +12 -12
  241. package/dist/url/UrlString.d.ts +48 -48
  242. package/dist/url/UrlString.mjs +161 -161
  243. package/dist/url/UrlString.mjs.map +1 -1
  244. package/dist/utils/Constants.d.ts +296 -365
  245. package/dist/utils/Constants.d.ts.map +1 -1
  246. package/dist/utils/Constants.mjs +309 -376
  247. package/dist/utils/Constants.mjs.map +1 -1
  248. package/dist/utils/FunctionWrappers.d.ts +27 -27
  249. package/dist/utils/FunctionWrappers.mjs +84 -84
  250. package/dist/utils/FunctionWrappers.mjs.map +1 -1
  251. package/dist/utils/MsalTypes.d.ts +6 -6
  252. package/dist/utils/ProtocolUtils.d.ts +42 -42
  253. package/dist/utils/ProtocolUtils.mjs +69 -69
  254. package/dist/utils/ProtocolUtils.mjs.map +1 -1
  255. package/dist/utils/StringUtils.d.ts +40 -40
  256. package/dist/utils/StringUtils.mjs +95 -95
  257. package/dist/utils/StringUtils.mjs.map +1 -1
  258. package/dist/utils/TimeUtils.d.ts +27 -27
  259. package/dist/utils/TimeUtils.mjs +45 -45
  260. package/dist/utils/TimeUtils.mjs.map +1 -1
  261. package/dist/utils/UrlUtils.d.ts +10 -10
  262. package/dist/utils/UrlUtils.mjs +44 -44
  263. package/dist/utils/UrlUtils.mjs.map +1 -1
  264. package/package.json +93 -92
  265. package/src/account/AccountInfo.ts +96 -0
  266. package/src/account/ClientInfo.ts +2 -3
  267. package/src/account/TokenClaims.ts +28 -0
  268. package/src/authority/Authority.ts +29 -2
  269. package/src/cache/CacheManager.ts +416 -114
  270. package/src/cache/entities/AccountEntity.ts +84 -33
  271. package/src/cache/entities/RefreshTokenEntity.ts +1 -3
  272. package/src/cache/utils/CacheHelpers.ts +1 -6
  273. package/src/cache/utils/CacheTypes.ts +11 -0
  274. package/src/client/AuthorizationCodeClient.ts +4 -5
  275. package/src/client/RefreshTokenClient.ts +3 -15
  276. package/src/client/SilentFlowClient.ts +1 -1
  277. package/src/constants/AADServerParamKeys.ts +56 -0
  278. package/src/crypto/PopTokenGenerator.ts +1 -1
  279. package/src/error/InteractionRequiredAuthError.ts +0 -2
  280. package/src/error/InteractionRequiredAuthErrorCodes.ts +0 -1
  281. package/src/index.ts +17 -5
  282. package/src/packageMetadata.ts +1 -1
  283. package/src/request/CommonRefreshTokenRequest.ts +0 -1
  284. package/src/request/CommonSilentFlowRequest.ts +0 -1
  285. package/src/request/RequestParameterBuilder.ts +7 -5
  286. package/src/response/ResponseHandler.ts +95 -27
  287. package/src/utils/Constants.ts +0 -72
@@ -1,99 +1,99 @@
1
- /*! @azure/msal-common v14.4.1-beta.0 2023-11-14 */
1
+ /*! @azure/msal-common v14.5.0 2023-12-01 */
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 +1 @@
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
+ {"version":3,"file":"StringUtils.mjs","sources":["../../src/utils/StringUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAEH;;AAEG;MACU,WAAW,CAAA;AACpB;;;AAGG;IACH,OAAO,UAAU,CAAC,MAAe,EAAA;AAC7B,QAAA,IAAI,MAAM,EAAE;YACR,IAAI;gBACA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACxC,aAAA;YAAC,OAAO,CAAC,EAAE,GAAE;AACjB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,OAAO,UAAU,CAAC,GAAW,EAAE,MAAc,EAAA;QACzC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACpC;AAED,IAAA,OAAO,QAAQ,CAAC,GAAW,EAAE,MAAc,EAAA;AACvC,QAAA,QACI,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;AAC3B,YAAA,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EACxD;KACL;AAED;;;;AAIG;IACH,OAAO,mBAAmB,CAAI,KAAa,EAAA;QACvC,MAAM,GAAG,GAAO,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChC,QAAA,MAAM,MAAM,GAAG,CAAC,CAAS,KAAK,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACxE,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACpB,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACb,gBAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC7C,IAAI,GAAG,IAAI,KAAK,EAAE;oBACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACpC,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,GAAQ,CAAC;KACnB;AAED;;;;AAIG;IACH,OAAO,gBAAgB,CAAC,GAAkB,EAAA;AACtC,QAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;KAC3C;AAED;;;AAGG;IACH,OAAO,2BAA2B,CAAC,GAAkB,EAAA;AACjD,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,KAAI;YACxB,OAAO,CAAC,CAAC,KAAK,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;AAED;;;AAGG;IACH,OAAO,eAAe,CAAI,GAAW,EAAA;QACjC,IAAI;AACA,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;AAC/B,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACR,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;AAED;;;;AAIG;AACH,IAAA,OAAO,YAAY,CAAC,OAAe,EAAE,KAAa,EAAA;AAC9C;;;AAGG;;AAEH,QAAA,MAAM,KAAK,GAAW,IAAI,MAAM,CAC5B,OAAO;AACF,aAAA,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;AACtB,aAAA,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;AACvB,aAAA,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAC7B,CAAC;AAEF,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;AACJ;;;;"}
@@ -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.4.1-beta.0 2023-11-14 */
1
+ /*! @azure/msal-common v14.5.0 2023-12-01 */
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":";;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;;;;;;;;;;;;;;;;;;;;;;"}
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,11 +1,11 @@
1
- import { ServerAuthorizationCodeResponse } from "../response/ServerAuthorizationCodeResponse";
2
- /**
3
- * Parses hash string from given string. Returns empty string if no hash symbol is found.
4
- * @param hashString
5
- */
6
- export declare function stripLeadingHashOrQuery(responseString: string): string;
7
- /**
8
- * Returns URL hash as server auth code response object.
9
- */
10
- export declare function getDeserializedResponse(responseString: string): ServerAuthorizationCodeResponse | null;
1
+ import { ServerAuthorizationCodeResponse } from "../response/ServerAuthorizationCodeResponse";
2
+ /**
3
+ * Parses hash string from given string. Returns empty string if no hash symbol is found.
4
+ * @param hashString
5
+ */
6
+ export declare function stripLeadingHashOrQuery(responseString: string): string;
7
+ /**
8
+ * Returns URL hash as server auth code response object.
9
+ */
10
+ export declare function getDeserializedResponse(responseString: string): ServerAuthorizationCodeResponse | null;
11
11
  //# sourceMappingURL=UrlUtils.d.ts.map
@@ -1,51 +1,51 @@
1
- /*! @azure/msal-common v14.4.1-beta.0 2023-11-14 */
1
+ /*! @azure/msal-common v14.5.0 2023-12-01 */
2
2
  'use strict';
3
3
  import { createClientAuthError } from '../error/ClientAuthError.mjs';
4
4
  import { hashNotDeserialized } from '../error/ClientAuthErrorCodes.mjs';
5
5
 
6
- /*
7
- * Copyright (c) Microsoft Corporation. All rights reserved.
8
- * Licensed under the MIT License.
9
- */
10
- /**
11
- * Parses hash string from given string. Returns empty string if no hash symbol is found.
12
- * @param hashString
13
- */
14
- function stripLeadingHashOrQuery(responseString) {
15
- if (responseString.startsWith("#/")) {
16
- return responseString.substring(2);
17
- }
18
- else if (responseString.startsWith("#") ||
19
- responseString.startsWith("?")) {
20
- return responseString.substring(1);
21
- }
22
- return responseString;
23
- }
24
- /**
25
- * Returns URL hash as server auth code response object.
26
- */
27
- function getDeserializedResponse(responseString) {
28
- // Check if given hash is empty
29
- if (!responseString || responseString.indexOf("=") < 0) {
30
- return null;
31
- }
32
- try {
33
- // Strip the # or ? symbol if present
34
- const normalizedResponse = stripLeadingHashOrQuery(responseString);
35
- // If # symbol was not present, above will return empty string, so give original hash value
36
- const deserializedHash = Object.fromEntries(new URLSearchParams(normalizedResponse));
37
- // Check for known response properties
38
- if (deserializedHash.code ||
39
- deserializedHash.error ||
40
- deserializedHash.error_description ||
41
- deserializedHash.state) {
42
- return deserializedHash;
43
- }
44
- }
45
- catch (e) {
46
- throw createClientAuthError(hashNotDeserialized);
47
- }
48
- return null;
6
+ /*
7
+ * Copyright (c) Microsoft Corporation. All rights reserved.
8
+ * Licensed under the MIT License.
9
+ */
10
+ /**
11
+ * Parses hash string from given string. Returns empty string if no hash symbol is found.
12
+ * @param hashString
13
+ */
14
+ function stripLeadingHashOrQuery(responseString) {
15
+ if (responseString.startsWith("#/")) {
16
+ return responseString.substring(2);
17
+ }
18
+ else if (responseString.startsWith("#") ||
19
+ responseString.startsWith("?")) {
20
+ return responseString.substring(1);
21
+ }
22
+ return responseString;
23
+ }
24
+ /**
25
+ * Returns URL hash as server auth code response object.
26
+ */
27
+ function getDeserializedResponse(responseString) {
28
+ // Check if given hash is empty
29
+ if (!responseString || responseString.indexOf("=") < 0) {
30
+ return null;
31
+ }
32
+ try {
33
+ // Strip the # or ? symbol if present
34
+ const normalizedResponse = stripLeadingHashOrQuery(responseString);
35
+ // If # symbol was not present, above will return empty string, so give original hash value
36
+ const deserializedHash = Object.fromEntries(new URLSearchParams(normalizedResponse));
37
+ // Check for known response properties
38
+ if (deserializedHash.code ||
39
+ deserializedHash.error ||
40
+ deserializedHash.error_description ||
41
+ deserializedHash.state) {
42
+ return deserializedHash;
43
+ }
44
+ }
45
+ catch (e) {
46
+ throw createClientAuthError(hashNotDeserialized);
47
+ }
48
+ return null;
49
49
  }
50
50
 
51
51
  export { getDeserializedResponse, stripLeadingHashOrQuery };
@@ -1 +1 @@
1
- {"version":3,"file":"UrlUtils.mjs","sources":["../../src/utils/UrlUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAKA;AAMA;;;AAIA;AAaA;;AAEG;AACa,SAAA,uBAAA,CAAA,cACE,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"UrlUtils.mjs","sources":["../../src/utils/UrlUtils.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.hashNotDeserialized"],"mappings":";;;;;AAAA;;;AAGG;AAQH;;;AAGG;AACG,SAAU,uBAAuB,CAAC,cAAsB,EAAA;AAC1D,IAAA,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACjC,QAAA,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACtC,KAAA;AAAM,SAAA,IACH,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;AAC9B,QAAA,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAChC;AACE,QAAA,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACtC,KAAA;AAED,IAAA,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED;;AAEG;AACG,SAAU,uBAAuB,CACnC,cAAsB,EAAA;;IAGtB,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACpD,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;IACD,IAAI;;AAEA,QAAA,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;;AAEnE,QAAA,MAAM,gBAAgB,GAClB,MAAM,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;;QAGhE,IACI,gBAAgB,CAAC,IAAI;AACrB,YAAA,gBAAgB,CAAC,KAAK;AACtB,YAAA,gBAAgB,CAAC,iBAAiB;YAClC,gBAAgB,CAAC,KAAK,EACxB;AACE,YAAA,OAAO,gBAAgB,CAAC;AAC3B,SAAA;AACJ,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;AACR,QAAA,MAAM,qBAAqB,CAACA,mBAAwC,CAAC,CAAC;AACzE,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AAChB;;;;"}