@azure/msal-common 14.5.0 → 14.6.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.
- package/dist/account/AccountInfo.d.ts +58 -58
- package/dist/account/AccountInfo.mjs +59 -59
- package/dist/account/AuthToken.d.ts +17 -17
- package/dist/account/AuthToken.mjs +58 -58
- package/dist/account/CcsCredential.d.ts +9 -9
- package/dist/account/CcsCredential.mjs +8 -8
- package/dist/account/ClientCredentials.d.ts +14 -14
- package/dist/account/ClientInfo.d.ts +18 -18
- package/dist/account/ClientInfo.mjs +37 -37
- package/dist/account/TokenClaims.d.ts +83 -83
- package/dist/account/TokenClaims.mjs +20 -20
- package/dist/authority/Authority.d.ts +254 -253
- package/dist/authority/Authority.d.ts.map +1 -1
- package/dist/authority/Authority.mjs +815 -811
- package/dist/authority/Authority.mjs.map +1 -1
- package/dist/authority/AuthorityFactory.d.ts +31 -31
- package/dist/authority/AuthorityFactory.mjs +47 -47
- package/dist/authority/AuthorityMetadata.d.ts +503 -503
- package/dist/authority/AuthorityMetadata.mjs +603 -603
- package/dist/authority/AuthorityOptions.d.ts +27 -27
- package/dist/authority/AuthorityOptions.mjs +18 -18
- package/dist/authority/AuthorityType.d.ts +10 -10
- package/dist/authority/AuthorityType.mjs +13 -13
- package/dist/authority/AzureRegion.d.ts +1 -1
- package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
- package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
- package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
- package/dist/authority/ImdsOptions.d.ts +5 -5
- package/dist/authority/OIDCOptions.d.ts +8 -8
- package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
- package/dist/authority/OpenIdConfigResponse.mjs +10 -10
- package/dist/authority/ProtocolMode.d.ts +8 -8
- package/dist/authority/ProtocolMode.mjs +11 -11
- package/dist/authority/RegionDiscovery.d.ts +32 -32
- package/dist/authority/RegionDiscovery.mjs +106 -106
- package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
- package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
- package/dist/cache/CacheManager.d.ts +508 -517
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.mjs +1237 -1263
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/entities/AccessTokenEntity.d.ts +25 -25
- package/dist/cache/entities/AccountEntity.d.ts +106 -106
- package/dist/cache/entities/AccountEntity.mjs +244 -244
- package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
- package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
- package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
- package/dist/cache/entities/CacheRecord.d.ts +14 -14
- package/dist/cache/entities/CacheRecord.mjs +14 -14
- package/dist/cache/entities/CredentialEntity.d.ts +30 -30
- package/dist/cache/entities/IdTokenEntity.d.ts +8 -8
- package/dist/cache/entities/RefreshTokenEntity.d.ts +7 -5
- package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -1
- package/dist/cache/entities/ServerTelemetryEntity.d.ts +5 -5
- package/dist/cache/entities/ThrottlingEntity.d.ts +7 -13
- package/dist/cache/entities/ThrottlingEntity.d.ts.map +1 -1
- package/dist/cache/interface/ICacheManager.d.ts +166 -166
- package/dist/cache/interface/ICachePlugin.d.ts +5 -5
- package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
- package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
- package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
- package/dist/cache/utils/CacheHelpers.d.ts +70 -64
- package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +252 -233
- package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
- package/dist/cache/utils/CacheTypes.d.ts +69 -69
- package/dist/client/AuthorizationCodeClient.d.ts +74 -74
- package/dist/client/AuthorizationCodeClient.mjs +402 -402
- package/dist/client/BaseClient.d.ts +51 -51
- package/dist/client/BaseClient.mjs +100 -100
- package/dist/client/RefreshTokenClient.d.ts +35 -35
- package/dist/client/RefreshTokenClient.d.ts.map +1 -1
- package/dist/client/RefreshTokenClient.mjs +206 -187
- package/dist/client/RefreshTokenClient.mjs.map +1 -1
- package/dist/client/SilentFlowClient.d.ts +27 -27
- package/dist/client/SilentFlowClient.d.ts.map +1 -1
- package/dist/client/SilentFlowClient.mjs +129 -118
- package/dist/client/SilentFlowClient.mjs.map +1 -1
- package/dist/config/AppTokenProvider.d.ts +38 -38
- package/dist/config/ClientConfiguration.d.ts +150 -150
- package/dist/config/ClientConfiguration.d.ts.map +1 -1
- package/dist/config/ClientConfiguration.mjs +96 -98
- package/dist/config/ClientConfiguration.mjs.map +1 -1
- package/dist/constants/AADServerParamKeys.d.ts +52 -51
- package/dist/constants/AADServerParamKeys.d.ts.map +1 -1
- package/dist/constants/AADServerParamKeys.mjs +57 -56
- package/dist/constants/AADServerParamKeys.mjs.map +1 -1
- package/dist/crypto/ICrypto.d.ts +58 -58
- package/dist/crypto/ICrypto.mjs +30 -30
- package/dist/crypto/IGuidGenerator.d.ts +4 -4
- package/dist/crypto/JoseHeader.d.ts +22 -22
- package/dist/crypto/JoseHeader.mjs +37 -37
- package/dist/crypto/PopTokenGenerator.d.ts +60 -60
- package/dist/crypto/PopTokenGenerator.mjs +82 -82
- package/dist/crypto/SignedHttpRequest.d.ts +15 -15
- package/dist/error/AuthError.d.ts +44 -44
- package/dist/error/AuthError.mjs +46 -46
- package/dist/error/AuthErrorCodes.d.ts +5 -5
- package/dist/error/AuthErrorCodes.mjs +9 -9
- package/dist/error/ClientAuthError.d.ts +237 -237
- package/dist/error/ClientAuthError.mjs +249 -249
- package/dist/error/ClientAuthErrorCodes.d.ts +44 -44
- package/dist/error/ClientAuthErrorCodes.mjs +48 -48
- package/dist/error/ClientConfigurationError.d.ts +128 -128
- package/dist/error/ClientConfigurationError.mjs +135 -135
- package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
- package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
- package/dist/error/InteractionRequiredAuthError.d.ts +61 -57
- package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthError.mjs +85 -77
- package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +7 -5
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +15 -13
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -1
- package/dist/error/JoseHeaderError.d.ts +15 -15
- package/dist/error/JoseHeaderError.mjs +22 -22
- package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
- package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
- package/dist/error/ServerError.d.ts +7 -7
- package/dist/error/ServerError.mjs +14 -14
- package/dist/index.cjs +8628 -8597
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +99 -99
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +2 -3
- package/dist/index.mjs.map +1 -1
- package/dist/logger/Logger.d.ts +95 -95
- package/dist/logger/Logger.mjs +188 -188
- package/dist/network/INetworkModule.d.ts +29 -29
- package/dist/network/INetworkModule.mjs +12 -12
- package/dist/network/NetworkManager.d.ts +33 -33
- package/dist/network/NetworkManager.mjs +34 -34
- package/dist/network/RequestThumbprint.d.ts +18 -18
- package/dist/network/ThrottlingUtils.d.ts +42 -42
- package/dist/network/ThrottlingUtils.mjs +95 -95
- package/dist/packageMetadata.d.ts +2 -2
- package/dist/packageMetadata.d.ts.map +1 -1
- package/dist/packageMetadata.mjs +4 -4
- package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
- package/dist/request/AuthenticationHeaderParser.mjs +55 -55
- package/dist/request/BaseAuthRequest.d.ts +43 -43
- package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
- package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
- package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
- package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
- package/dist/request/CommonEndSessionRequest.d.ts +21 -21
- package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
- package/dist/request/CommonRefreshTokenRequest.d.ts +22 -22
- package/dist/request/CommonSilentFlowRequest.d.ts +27 -20
- package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
- package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
- package/dist/request/NativeRequest.d.ts +19 -19
- package/dist/request/NativeSignOutRequest.d.ts +5 -5
- package/dist/request/RequestParameterBuilder.d.ts +217 -217
- package/dist/request/RequestParameterBuilder.mjs +381 -381
- package/dist/request/RequestValidator.d.ts +33 -33
- package/dist/request/RequestValidator.mjs +81 -81
- package/dist/request/ScopeSet.d.ts +88 -88
- package/dist/request/ScopeSet.mjs +197 -197
- package/dist/request/StoreInCache.d.ts +8 -8
- package/dist/response/AuthenticationResult.d.ts +41 -41
- package/dist/response/AuthorizationCodePayload.d.ts +13 -13
- package/dist/response/DeviceCodeResponse.d.ts +25 -25
- package/dist/response/ExternalTokenResponse.d.ts +15 -15
- package/dist/response/IMDSBadResponse.d.ts +4 -4
- package/dist/response/ResponseHandler.d.ts +69 -69
- package/dist/response/ResponseHandler.d.ts.map +1 -1
- package/dist/response/ResponseHandler.mjs +346 -336
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
- package/dist/response/ServerAuthorizationTokenResponse.d.ts +47 -46
- package/dist/response/ServerAuthorizationTokenResponse.d.ts.map +1 -1
- package/dist/telemetry/performance/IPerformanceClient.d.ts +57 -51
- package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
- package/dist/telemetry/performance/PerformanceClient.d.ts +198 -191
- package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceClient.mjs +413 -409
- package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
- package/dist/telemetry/performance/PerformanceEvent.d.ts +464 -464
- package/dist/telemetry/performance/PerformanceEvent.mjs +253 -253
- package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
- package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
- package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
- package/dist/telemetry/server/ServerTelemetryManager.mjs +201 -201
- package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
- package/dist/url/IUri.d.ts +12 -12
- package/dist/url/UrlString.d.ts +48 -48
- package/dist/url/UrlString.mjs +161 -161
- package/dist/utils/Constants.d.ts +298 -296
- package/dist/utils/Constants.d.ts.map +1 -1
- package/dist/utils/Constants.mjs +313 -310
- package/dist/utils/Constants.mjs.map +1 -1
- package/dist/utils/FunctionWrappers.d.ts +27 -27
- package/dist/utils/FunctionWrappers.mjs +84 -84
- package/dist/utils/MsalTypes.d.ts +6 -6
- package/dist/utils/ProtocolUtils.d.ts +42 -42
- package/dist/utils/ProtocolUtils.mjs +69 -69
- package/dist/utils/StringUtils.d.ts +40 -40
- package/dist/utils/StringUtils.mjs +95 -95
- package/dist/utils/TimeUtils.d.ts +27 -27
- package/dist/utils/TimeUtils.mjs +45 -45
- package/dist/utils/UrlUtils.d.ts +10 -10
- package/dist/utils/UrlUtils.mjs +44 -44
- package/package.json +1 -1
- package/src/authority/Authority.ts +9 -3
- package/src/cache/CacheManager.ts +0 -54
- package/src/cache/entities/RefreshTokenEntity.ts +3 -1
- package/src/cache/entities/ThrottlingEntity.ts +2 -24
- package/src/cache/utils/CacheHelpers.ts +26 -1
- package/src/client/RefreshTokenClient.ts +40 -7
- package/src/client/SilentFlowClient.ts +30 -10
- package/src/config/ClientConfiguration.ts +4 -4
- package/src/constants/AADServerParamKeys.ts +1 -0
- package/src/error/InteractionRequiredAuthError.ts +12 -0
- package/src/error/InteractionRequiredAuthErrorCodes.ts +2 -0
- package/src/index.ts +1 -0
- package/src/packageMetadata.ts +1 -1
- package/src/request/CommonSilentFlowRequest.ts +7 -0
- package/src/response/ResponseHandler.ts +21 -5
- package/src/response/ServerAuthorizationTokenResponse.ts +1 -0
- package/src/telemetry/performance/IPerformanceClient.ts +6 -0
- package/src/telemetry/performance/PerformanceClient.ts +24 -31
- package/src/telemetry/performance/StubPerformanceClient.ts +0 -1
- package/src/utils/Constants.ts +4 -0
- package/dist/cache/entities/ThrottlingEntity.mjs +0 -30
- package/dist/cache/entities/ThrottlingEntity.mjs.map +0 -1
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
/*! @azure/msal-common v14.
|
|
1
|
+
/*! @azure/msal-common v14.6.0-alpha.0 2023-12-15 */
|
|
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
|
package/dist/utils/TimeUtils.mjs
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
/*! @azure/msal-common v14.
|
|
1
|
+
/*! @azure/msal-common v14.6.0-alpha.0 2023-12-15 */
|
|
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/dist/utils/UrlUtils.d.ts
CHANGED
|
@@ -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
|
package/dist/utils/UrlUtils.mjs
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
/*! @azure/msal-common v14.
|
|
1
|
+
/*! @azure/msal-common v14.6.0-alpha.0 2023-12-15 */
|
|
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 };
|
package/package.json
CHANGED
|
@@ -86,6 +86,8 @@ export class Authority {
|
|
|
86
86
|
protected performanceClient: IPerformanceClient | undefined;
|
|
87
87
|
// Correlation Id
|
|
88
88
|
protected correlationId: string | undefined;
|
|
89
|
+
// Indicates if the authority is fake, for the purpose of a Managed Identity Application
|
|
90
|
+
private managedIdentity: boolean;
|
|
89
91
|
// Reserved tenant domain names that will not be replaced with tenant id
|
|
90
92
|
private static reservedTenantDomains: Set<string> = new Set([
|
|
91
93
|
"{tenant}",
|
|
@@ -102,7 +104,8 @@ export class Authority {
|
|
|
102
104
|
authorityOptions: AuthorityOptions,
|
|
103
105
|
logger: Logger,
|
|
104
106
|
performanceClient?: IPerformanceClient,
|
|
105
|
-
correlationId?: string
|
|
107
|
+
correlationId?: string,
|
|
108
|
+
managedIdentity?: boolean
|
|
106
109
|
) {
|
|
107
110
|
this.canonicalAuthority = authority;
|
|
108
111
|
this._canonicalAuthority.validateAsUri();
|
|
@@ -117,6 +120,7 @@ export class Authority {
|
|
|
117
120
|
this.logger = logger;
|
|
118
121
|
this.performanceClient = performanceClient;
|
|
119
122
|
this.correlationId = correlationId;
|
|
123
|
+
this.managedIdentity = managedIdentity || false;
|
|
120
124
|
this.regionDiscovery = new RegionDiscovery(
|
|
121
125
|
networkInterface,
|
|
122
126
|
this.logger,
|
|
@@ -382,7 +386,7 @@ export class Authority {
|
|
|
382
386
|
}
|
|
383
387
|
|
|
384
388
|
/**
|
|
385
|
-
* Boolean that returns
|
|
389
|
+
* Boolean that returns whether or not tenant discovery has been completed.
|
|
386
390
|
*/
|
|
387
391
|
discoveryComplete(): boolean {
|
|
388
392
|
return !!this.metadata;
|
|
@@ -1119,7 +1123,9 @@ export class Authority {
|
|
|
1119
1123
|
* helper function to generate environment from authority object
|
|
1120
1124
|
*/
|
|
1121
1125
|
getPreferredCache(): string {
|
|
1122
|
-
if (this.
|
|
1126
|
+
if (this.managedIdentity) {
|
|
1127
|
+
return Constants.DEFAULT_AUTHORITY_HOST;
|
|
1128
|
+
} else if (this.discoveryComplete()) {
|
|
1123
1129
|
return this.metadata.preferred_cache;
|
|
1124
1130
|
} else {
|
|
1125
1131
|
throw createClientAuthError(
|
|
@@ -49,7 +49,6 @@ import { BaseAuthRequest } from "../request/BaseAuthRequest";
|
|
|
49
49
|
import { Logger } from "../logger/Logger";
|
|
50
50
|
import { name, version } from "../packageMetadata";
|
|
51
51
|
import { StoreInCache } from "../request/StoreInCache";
|
|
52
|
-
import { getTenantFromAuthorityString } from "../authority/Authority";
|
|
53
52
|
import { getAliasesFromStaticSources } from "../authority/AuthorityMetadata";
|
|
54
53
|
import { StaticAuthorityOptions } from "../authority/AuthorityOptions";
|
|
55
54
|
import { TokenClaims } from "../account/TokenClaims";
|
|
@@ -1128,59 +1127,6 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1128
1127
|
return true;
|
|
1129
1128
|
}
|
|
1130
1129
|
|
|
1131
|
-
/**
|
|
1132
|
-
* Retrieve the cached credentials into a cacherecord
|
|
1133
|
-
* @param account {AccountInfo}
|
|
1134
|
-
* @param request {BaseAuthRequest}
|
|
1135
|
-
* @param environment {string}
|
|
1136
|
-
* @param performanceClient {?IPerformanceClient}
|
|
1137
|
-
* @param correlationId {?string}
|
|
1138
|
-
*/
|
|
1139
|
-
readCacheRecord(
|
|
1140
|
-
account: AccountInfo,
|
|
1141
|
-
request: BaseAuthRequest,
|
|
1142
|
-
environment: string,
|
|
1143
|
-
performanceClient?: IPerformanceClient,
|
|
1144
|
-
correlationId?: string
|
|
1145
|
-
): CacheRecord {
|
|
1146
|
-
// Use authority tenantId for cache lookup filter if it's defined, otherwise use tenantId from account passed in
|
|
1147
|
-
const requestTenantId =
|
|
1148
|
-
account.tenantId || getTenantFromAuthorityString(request.authority);
|
|
1149
|
-
const tokenKeys = this.getTokenKeys();
|
|
1150
|
-
const cachedAccount = this.readAccountFromCache(account);
|
|
1151
|
-
const cachedIdToken = this.getIdToken(
|
|
1152
|
-
account,
|
|
1153
|
-
tokenKeys,
|
|
1154
|
-
requestTenantId,
|
|
1155
|
-
performanceClient,
|
|
1156
|
-
correlationId
|
|
1157
|
-
);
|
|
1158
|
-
const cachedAccessToken = this.getAccessToken(
|
|
1159
|
-
account,
|
|
1160
|
-
request,
|
|
1161
|
-
tokenKeys,
|
|
1162
|
-
requestTenantId,
|
|
1163
|
-
performanceClient,
|
|
1164
|
-
correlationId
|
|
1165
|
-
);
|
|
1166
|
-
const cachedRefreshToken = this.getRefreshToken(
|
|
1167
|
-
account,
|
|
1168
|
-
false,
|
|
1169
|
-
tokenKeys,
|
|
1170
|
-
performanceClient,
|
|
1171
|
-
correlationId
|
|
1172
|
-
);
|
|
1173
|
-
const cachedAppMetadata = this.readAppMetadataFromCache(environment);
|
|
1174
|
-
|
|
1175
|
-
return {
|
|
1176
|
-
account: cachedAccount,
|
|
1177
|
-
idToken: cachedIdToken,
|
|
1178
|
-
accessToken: cachedAccessToken,
|
|
1179
|
-
refreshToken: cachedRefreshToken,
|
|
1180
|
-
appMetadata: cachedAppMetadata,
|
|
1181
|
-
};
|
|
1182
|
-
}
|
|
1183
|
-
|
|
1184
1130
|
/**
|
|
1185
1131
|
* Retrieve AccountEntity from cache
|
|
1186
1132
|
* @param account
|
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export class ThrottlingEntity {
|
|
6
|
+
export type ThrottlingEntity = {
|
|
9
7
|
// Unix-time value representing the expiration of the throttle
|
|
10
8
|
throttleTime: number;
|
|
11
9
|
// Information provided by the server
|
|
@@ -13,24 +11,4 @@ export class ThrottlingEntity {
|
|
|
13
11
|
errorCodes?: Array<string>;
|
|
14
12
|
errorMessage?: string;
|
|
15
13
|
subError?: string;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* validates if a given cache entry is "Throttling", parses <key,value>
|
|
19
|
-
* @param key
|
|
20
|
-
* @param entity
|
|
21
|
-
*/
|
|
22
|
-
static isThrottlingEntity(key: string, entity?: object): boolean {
|
|
23
|
-
let validateKey: boolean = false;
|
|
24
|
-
if (key) {
|
|
25
|
-
validateKey =
|
|
26
|
-
key.indexOf(ThrottlingConstants.THROTTLING_PREFIX) === 0;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
let validateEntity: boolean = true;
|
|
30
|
-
if (entity) {
|
|
31
|
-
validateEntity = entity.hasOwnProperty("throttleTime");
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return validateKey && validateEntity;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
14
|
+
};
|