@azure/msal-common 14.7.2-alpha.0 → 14.8.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.mjs +1 -1
- package/dist/account/AuthToken.mjs +1 -1
- package/dist/account/CcsCredential.mjs +1 -1
- package/dist/account/ClientInfo.mjs +1 -1
- package/dist/account/TokenClaims.mjs +1 -1
- package/dist/authority/Authority.d.ts +2 -3
- package/dist/authority/Authority.d.ts.map +1 -1
- package/dist/authority/Authority.mjs +4 -8
- package/dist/authority/Authority.mjs.map +1 -1
- package/dist/authority/AuthorityFactory.mjs +1 -1
- package/dist/authority/AuthorityMetadata.mjs +1 -1
- package/dist/authority/AuthorityOptions.mjs +1 -1
- package/dist/authority/AuthorityType.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
- package/dist/authority/OpenIdConfigResponse.mjs +1 -1
- package/dist/authority/ProtocolMode.mjs +1 -1
- package/dist/authority/RegionDiscovery.mjs +1 -1
- package/dist/cache/CacheManager.mjs +1 -1
- package/dist/cache/entities/AccountEntity.mjs +1 -1
- package/dist/cache/entities/CacheRecord.mjs +1 -1
- package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +1 -1
- package/dist/client/BaseClient.mjs +1 -1
- package/dist/client/RefreshTokenClient.mjs +1 -1
- package/dist/client/SilentFlowClient.mjs +1 -1
- package/dist/config/ClientConfiguration.d.ts.map +1 -1
- package/dist/config/ClientConfiguration.mjs +4 -2
- package/dist/config/ClientConfiguration.mjs.map +1 -1
- package/dist/constants/AADServerParamKeys.mjs +1 -1
- package/dist/crypto/ICrypto.mjs +1 -1
- package/dist/crypto/JoseHeader.mjs +1 -1
- package/dist/crypto/PopTokenGenerator.mjs +1 -1
- package/dist/error/AuthError.mjs +1 -1
- package/dist/error/AuthErrorCodes.mjs +1 -1
- package/dist/error/ClientAuthError.mjs +1 -1
- package/dist/error/ClientAuthErrorCodes.mjs +1 -1
- package/dist/error/ClientConfigurationError.mjs +1 -1
- package/dist/error/ClientConfigurationErrorCodes.mjs +1 -1
- package/dist/error/InteractionRequiredAuthError.mjs +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +1 -1
- package/dist/error/JoseHeaderError.mjs +1 -1
- package/dist/error/JoseHeaderErrorCodes.mjs +1 -1
- package/dist/error/ServerError.mjs +1 -1
- package/dist/index.cjs +401 -33
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/logger/Logger.mjs +1 -1
- package/dist/network/INetworkModule.mjs +1 -1
- package/dist/network/NetworkManager.mjs +1 -1
- package/dist/network/ThrottlingUtils.mjs +1 -1
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.d.ts.map +1 -1
- package/dist/packageMetadata.mjs +2 -2
- package/dist/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist/request/RequestParameterBuilder.mjs +1 -1
- package/dist/request/RequestValidator.mjs +1 -1
- package/dist/request/ScopeSet.mjs +1 -1
- package/dist/response/ResponseHandler.mjs +1 -1
- package/dist/telemetry/performance/IPerformanceClient.d.ts +1 -1
- package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceClient.d.ts +55 -5
- package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceClient.mjs +183 -13
- package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
- package/dist/telemetry/performance/PerformanceEvent.d.ts +14 -0
- package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs +215 -2
- package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.mjs +1 -1
- package/dist/url/UrlString.mjs +1 -1
- package/dist/utils/Constants.d.ts +0 -10
- package/dist/utils/Constants.d.ts.map +1 -1
- package/dist/utils/Constants.mjs +2 -13
- package/dist/utils/Constants.mjs.map +1 -1
- package/dist/utils/FunctionWrappers.d.ts.map +1 -1
- package/dist/utils/FunctionWrappers.mjs +3 -3
- package/dist/utils/FunctionWrappers.mjs.map +1 -1
- package/dist/utils/ProtocolUtils.mjs +1 -1
- package/dist/utils/StringUtils.mjs +1 -1
- package/dist/utils/TimeUtils.mjs +1 -1
- package/dist/utils/UrlUtils.mjs +1 -1
- package/package.json +1 -1
- package/src/authority/Authority.ts +3 -9
- package/src/config/ClientConfiguration.ts +4 -4
- package/src/index.ts +0 -1
- package/src/packageMetadata.ts +1 -1
- package/src/telemetry/performance/IPerformanceClient.ts +4 -1
- package/src/telemetry/performance/PerformanceClient.ts +279 -16
- package/src/telemetry/performance/PerformanceEvent.ts +237 -0
- package/src/utils/Constants.ts +0 -12
- package/src/utils/FunctionWrappers.ts +12 -6
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common v14.
|
|
1
|
+
/*! @azure/msal-common v14.8.0 2024-03-22 */
|
|
2
2
|
'use strict';
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
@@ -66,20 +66,11 @@ const Constants = {
|
|
|
66
66
|
};
|
|
67
67
|
const HttpStatus = {
|
|
68
68
|
SUCCESS_RANGE_START: 200,
|
|
69
|
-
SUCCESS: 200,
|
|
70
69
|
SUCCESS_RANGE_END: 299,
|
|
71
70
|
REDIRECT: 302,
|
|
72
71
|
CLIENT_ERROR_RANGE_START: 400,
|
|
73
|
-
BAD_REQUEST: 400,
|
|
74
|
-
UNAUTHORIZED: 401,
|
|
75
|
-
NOT_FOUND: 404,
|
|
76
|
-
REQUEST_TIMEOUT: 408,
|
|
77
|
-
TOO_MANY_REQUESTS: 429,
|
|
78
72
|
CLIENT_ERROR_RANGE_END: 499,
|
|
79
73
|
SERVER_ERROR_RANGE_START: 500,
|
|
80
|
-
INTERNAL_SERVER_ERROR: 500,
|
|
81
|
-
SERVICE_UNAVAILABLE: 503,
|
|
82
|
-
GATEWAY_TIMEOUT: 504,
|
|
83
74
|
SERVER_ERROR_RANGE_END: 599,
|
|
84
75
|
};
|
|
85
76
|
const OIDC_DEFAULT_SCOPES = [
|
|
@@ -319,8 +310,6 @@ const JsonWebTokenTypes = {
|
|
|
319
310
|
Pop: "pop",
|
|
320
311
|
};
|
|
321
312
|
const ONE_DAY_IN_MS = 86400000;
|
|
322
|
-
// Token renewal offset default in seconds
|
|
323
|
-
const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
|
|
324
313
|
|
|
325
314
|
/*
|
|
326
315
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -954,7 +943,7 @@ class Logger {
|
|
|
954
943
|
|
|
955
944
|
/* eslint-disable header/header */
|
|
956
945
|
const name = "@azure/msal-common";
|
|
957
|
-
const version = "14.
|
|
946
|
+
const version = "14.8.0";
|
|
958
947
|
|
|
959
948
|
/*
|
|
960
949
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -3897,6 +3886,8 @@ class DefaultStorageClass extends CacheManager {
|
|
|
3897
3886
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3898
3887
|
* Licensed under the MIT License.
|
|
3899
3888
|
*/
|
|
3889
|
+
// Token renewal offset default in seconds
|
|
3890
|
+
const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
|
|
3900
3891
|
const DEFAULT_SYSTEM_OPTIONS = {
|
|
3901
3892
|
tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,
|
|
3902
3893
|
preventCorsPreflight: false,
|
|
@@ -4984,6 +4975,219 @@ const PerformanceEvents = {
|
|
|
4984
4975
|
Sha256Digest: "sha256Digest",
|
|
4985
4976
|
GetRandomValues: "getRandomValues",
|
|
4986
4977
|
};
|
|
4978
|
+
const PerformanceEventAbbreviations = new Map([
|
|
4979
|
+
[PerformanceEvents.AcquireTokenByCode, "ATByCode"],
|
|
4980
|
+
[PerformanceEvents.AcquireTokenByRefreshToken, "ATByRT"],
|
|
4981
|
+
[PerformanceEvents.AcquireTokenSilent, "ATS"],
|
|
4982
|
+
[PerformanceEvents.AcquireTokenSilentAsync, "ATSAsync"],
|
|
4983
|
+
[PerformanceEvents.AcquireTokenPopup, "ATPopup"],
|
|
4984
|
+
[PerformanceEvents.AcquireTokenRedirect, "ATRedirect"],
|
|
4985
|
+
[
|
|
4986
|
+
PerformanceEvents.CryptoOptsGetPublicKeyThumbprint,
|
|
4987
|
+
"CryptoGetPKThumb",
|
|
4988
|
+
],
|
|
4989
|
+
[PerformanceEvents.CryptoOptsSignJwt, "CryptoSignJwt"],
|
|
4990
|
+
[PerformanceEvents.SilentCacheClientAcquireToken, "SltCacheClientAT"],
|
|
4991
|
+
[PerformanceEvents.SilentIframeClientAcquireToken, "SltIframeClientAT"],
|
|
4992
|
+
[PerformanceEvents.SilentRefreshClientAcquireToken, "SltRClientAT"],
|
|
4993
|
+
[PerformanceEvents.SsoSilent, "SsoSlt"],
|
|
4994
|
+
[
|
|
4995
|
+
PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority,
|
|
4996
|
+
"StdIntClientGetDiscAuth",
|
|
4997
|
+
],
|
|
4998
|
+
[
|
|
4999
|
+
PerformanceEvents.FetchAccountIdWithNativeBroker,
|
|
5000
|
+
"FetchAccIdWithNtvBroker",
|
|
5001
|
+
],
|
|
5002
|
+
[
|
|
5003
|
+
PerformanceEvents.NativeInteractionClientAcquireToken,
|
|
5004
|
+
"NtvIntClientAT",
|
|
5005
|
+
],
|
|
5006
|
+
[
|
|
5007
|
+
PerformanceEvents.BaseClientCreateTokenRequestHeaders,
|
|
5008
|
+
"BaseClientCreateTReqHead",
|
|
5009
|
+
],
|
|
5010
|
+
[
|
|
5011
|
+
PerformanceEvents.RefreshTokenClientExecutePostToTokenEndpoint,
|
|
5012
|
+
"RTClientExecPost",
|
|
5013
|
+
],
|
|
5014
|
+
[
|
|
5015
|
+
PerformanceEvents.AuthorizationCodeClientExecutePostToTokenEndpoint,
|
|
5016
|
+
"AuthCodeClientExecPost",
|
|
5017
|
+
],
|
|
5018
|
+
[PerformanceEvents.BrokerHandhshake, "BrokerHandshake"],
|
|
5019
|
+
[
|
|
5020
|
+
PerformanceEvents.AcquireTokenByRefreshTokenInBroker,
|
|
5021
|
+
"ATByRTInBroker",
|
|
5022
|
+
],
|
|
5023
|
+
[PerformanceEvents.AcquireTokenByBroker, "ATByBroker"],
|
|
5024
|
+
[
|
|
5025
|
+
PerformanceEvents.RefreshTokenClientExecuteTokenRequest,
|
|
5026
|
+
"RTClientExecTReq",
|
|
5027
|
+
],
|
|
5028
|
+
[PerformanceEvents.RefreshTokenClientAcquireToken, "RTClientAT"],
|
|
5029
|
+
[
|
|
5030
|
+
PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken,
|
|
5031
|
+
"RTClientATWithCachedRT",
|
|
5032
|
+
],
|
|
5033
|
+
[
|
|
5034
|
+
PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken,
|
|
5035
|
+
"RTClientATByRT",
|
|
5036
|
+
],
|
|
5037
|
+
[
|
|
5038
|
+
PerformanceEvents.RefreshTokenClientCreateTokenRequestBody,
|
|
5039
|
+
"RTClientCreateTReqBody",
|
|
5040
|
+
],
|
|
5041
|
+
[PerformanceEvents.AcquireTokenFromCache, "ATFromCache"],
|
|
5042
|
+
[
|
|
5043
|
+
PerformanceEvents.SilentFlowClientAcquireCachedToken,
|
|
5044
|
+
"SltFlowClientATCached",
|
|
5045
|
+
],
|
|
5046
|
+
[
|
|
5047
|
+
PerformanceEvents.SilentFlowClientGenerateResultFromCacheRecord,
|
|
5048
|
+
"SltFlowClientGenResFromCache",
|
|
5049
|
+
],
|
|
5050
|
+
[PerformanceEvents.AcquireTokenBySilentIframe, "ATBySltIframe"],
|
|
5051
|
+
[PerformanceEvents.InitializeBaseRequest, "InitBaseReq"],
|
|
5052
|
+
[PerformanceEvents.InitializeSilentRequest, "InitSltReq"],
|
|
5053
|
+
[
|
|
5054
|
+
PerformanceEvents.InitializeClientApplication,
|
|
5055
|
+
"InitClientApplication",
|
|
5056
|
+
],
|
|
5057
|
+
[PerformanceEvents.SilentIframeClientTokenHelper, "SIClientTHelper"],
|
|
5058
|
+
[
|
|
5059
|
+
PerformanceEvents.SilentHandlerInitiateAuthRequest,
|
|
5060
|
+
"SHandlerInitAuthReq",
|
|
5061
|
+
],
|
|
5062
|
+
[
|
|
5063
|
+
PerformanceEvents.SilentHandlerMonitorIframeForHash,
|
|
5064
|
+
"SltHandlerMonitorIframeForHash",
|
|
5065
|
+
],
|
|
5066
|
+
[PerformanceEvents.SilentHandlerLoadFrame, "SHandlerLoadFrame"],
|
|
5067
|
+
[PerformanceEvents.SilentHandlerLoadFrameSync, "SHandlerLoadFrameSync"],
|
|
5068
|
+
[
|
|
5069
|
+
PerformanceEvents.StandardInteractionClientCreateAuthCodeClient,
|
|
5070
|
+
"StdIntClientCreateAuthCodeClient",
|
|
5071
|
+
],
|
|
5072
|
+
[
|
|
5073
|
+
PerformanceEvents.StandardInteractionClientGetClientConfiguration,
|
|
5074
|
+
"StdIntClientGetClientConf",
|
|
5075
|
+
],
|
|
5076
|
+
[
|
|
5077
|
+
PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest,
|
|
5078
|
+
"StdIntClientInitAuthReq",
|
|
5079
|
+
],
|
|
5080
|
+
[
|
|
5081
|
+
PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest,
|
|
5082
|
+
"StdIntClientInitAuthCodeReq",
|
|
5083
|
+
],
|
|
5084
|
+
[PerformanceEvents.GetAuthCodeUrl, "GetAuthCodeUrl"],
|
|
5085
|
+
[
|
|
5086
|
+
PerformanceEvents.HandleCodeResponseFromServer,
|
|
5087
|
+
"HandleCodeResFromServer",
|
|
5088
|
+
],
|
|
5089
|
+
[PerformanceEvents.HandleCodeResponse, "HandleCodeResp"],
|
|
5090
|
+
[PerformanceEvents.UpdateTokenEndpointAuthority, "UpdTEndpointAuth"],
|
|
5091
|
+
[PerformanceEvents.AuthClientAcquireToken, "AuthClientAT"],
|
|
5092
|
+
[PerformanceEvents.AuthClientExecuteTokenRequest, "AuthClientExecTReq"],
|
|
5093
|
+
[
|
|
5094
|
+
PerformanceEvents.AuthClientCreateTokenRequestBody,
|
|
5095
|
+
"AuthClientCreateTReqBody",
|
|
5096
|
+
],
|
|
5097
|
+
[
|
|
5098
|
+
PerformanceEvents.AuthClientCreateQueryString,
|
|
5099
|
+
"AuthClientCreateQueryStr",
|
|
5100
|
+
],
|
|
5101
|
+
[PerformanceEvents.PopTokenGenerateCnf, "PopTGenCnf"],
|
|
5102
|
+
[PerformanceEvents.PopTokenGenerateKid, "PopTGenKid"],
|
|
5103
|
+
[PerformanceEvents.HandleServerTokenResponse, "HandleServerTRes"],
|
|
5104
|
+
[PerformanceEvents.DeserializeResponse, "DeserializeRes"],
|
|
5105
|
+
[
|
|
5106
|
+
PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance,
|
|
5107
|
+
"AuthFactCreateDiscInst",
|
|
5108
|
+
],
|
|
5109
|
+
[
|
|
5110
|
+
PerformanceEvents.AuthorityResolveEndpointsAsync,
|
|
5111
|
+
"AuthResolveEndpointsAsync",
|
|
5112
|
+
],
|
|
5113
|
+
[
|
|
5114
|
+
PerformanceEvents.AuthorityResolveEndpointsFromLocalSources,
|
|
5115
|
+
"AuthResolveEndpointsFromLocal",
|
|
5116
|
+
],
|
|
5117
|
+
[
|
|
5118
|
+
PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork,
|
|
5119
|
+
"AuthGetCDMetaFromNet",
|
|
5120
|
+
],
|
|
5121
|
+
[
|
|
5122
|
+
PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata,
|
|
5123
|
+
"AuthUpdCDMeta",
|
|
5124
|
+
],
|
|
5125
|
+
[
|
|
5126
|
+
PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork,
|
|
5127
|
+
"AuthUpdCDMetaFromNet",
|
|
5128
|
+
],
|
|
5129
|
+
[
|
|
5130
|
+
PerformanceEvents.AuthorityUpdateEndpointMetadata,
|
|
5131
|
+
"AuthUpdEndpointMeta",
|
|
5132
|
+
],
|
|
5133
|
+
[
|
|
5134
|
+
PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation,
|
|
5135
|
+
"AuthUpdMetaWithRegInfo",
|
|
5136
|
+
],
|
|
5137
|
+
[PerformanceEvents.RegionDiscoveryDetectRegion, "RegDiscDetectReg"],
|
|
5138
|
+
[
|
|
5139
|
+
PerformanceEvents.RegionDiscoveryGetRegionFromIMDS,
|
|
5140
|
+
"RegDiscGetRegFromIMDS",
|
|
5141
|
+
],
|
|
5142
|
+
[
|
|
5143
|
+
PerformanceEvents.RegionDiscoveryGetCurrentVersion,
|
|
5144
|
+
"RegDiscGetCurrentVer",
|
|
5145
|
+
],
|
|
5146
|
+
[PerformanceEvents.AcquireTokenByCodeAsync, "ATByCodeAsync"],
|
|
5147
|
+
[
|
|
5148
|
+
PerformanceEvents.GetEndpointMetadataFromNetwork,
|
|
5149
|
+
"GetEndpointMetaFromNet",
|
|
5150
|
+
],
|
|
5151
|
+
[
|
|
5152
|
+
PerformanceEvents.GetCloudDiscoveryMetadataFromNetworkMeasurement,
|
|
5153
|
+
"GetCDMetaFromNet",
|
|
5154
|
+
],
|
|
5155
|
+
[
|
|
5156
|
+
PerformanceEvents.HandleRedirectPromiseMeasurement,
|
|
5157
|
+
"HandleRedirectPromise",
|
|
5158
|
+
],
|
|
5159
|
+
[
|
|
5160
|
+
PerformanceEvents.HandleNativeRedirectPromiseMeasurement,
|
|
5161
|
+
"HandleNtvRedirectPromise",
|
|
5162
|
+
],
|
|
5163
|
+
[
|
|
5164
|
+
PerformanceEvents.UpdateCloudDiscoveryMetadataMeasurement,
|
|
5165
|
+
"UpdateCDMeta",
|
|
5166
|
+
],
|
|
5167
|
+
[
|
|
5168
|
+
PerformanceEvents.UsernamePasswordClientAcquireToken,
|
|
5169
|
+
"UserPassClientAT",
|
|
5170
|
+
],
|
|
5171
|
+
[
|
|
5172
|
+
PerformanceEvents.NativeMessageHandlerHandshake,
|
|
5173
|
+
"NtvMsgHandlerHandshake",
|
|
5174
|
+
],
|
|
5175
|
+
[PerformanceEvents.NativeGenerateAuthResult, "NtvGenAuthRes"],
|
|
5176
|
+
[PerformanceEvents.RemoveHiddenIframe, "RemoveHiddenIframe"],
|
|
5177
|
+
[
|
|
5178
|
+
PerformanceEvents.ClearTokensAndKeysWithClaims,
|
|
5179
|
+
"ClearTAndKeysWithClaims",
|
|
5180
|
+
],
|
|
5181
|
+
[PerformanceEvents.CacheManagerGetRefreshToken, "CacheManagerGetRT"],
|
|
5182
|
+
[PerformanceEvents.GeneratePkceCodes, "GenPkceCodes"],
|
|
5183
|
+
[PerformanceEvents.GenerateCodeVerifier, "GenCodeVerifier"],
|
|
5184
|
+
[
|
|
5185
|
+
PerformanceEvents.GenerateCodeChallengeFromVerifier,
|
|
5186
|
+
"GenCodeChallengeFromVerifier",
|
|
5187
|
+
],
|
|
5188
|
+
[PerformanceEvents.Sha256Digest, "Sha256Digest"],
|
|
5189
|
+
[PerformanceEvents.GetRandomValues, "GetRandomValues"],
|
|
5190
|
+
]);
|
|
4987
5191
|
/**
|
|
4988
5192
|
* State of the performance event.
|
|
4989
5193
|
*
|
|
@@ -5053,7 +5257,7 @@ const invoke = (callback, eventName, logger, telemetryClient, correlationId) =>
|
|
|
5053
5257
|
}
|
|
5054
5258
|
inProgressEvent?.end({
|
|
5055
5259
|
success: false,
|
|
5056
|
-
});
|
|
5260
|
+
}, e);
|
|
5057
5261
|
throw e;
|
|
5058
5262
|
}
|
|
5059
5263
|
};
|
|
@@ -5099,7 +5303,7 @@ const invokeAsync = (callback, eventName, logger, telemetryClient, correlationId
|
|
|
5099
5303
|
}
|
|
5100
5304
|
inProgressEvent?.end({
|
|
5101
5305
|
success: false,
|
|
5102
|
-
});
|
|
5306
|
+
}, e);
|
|
5103
5307
|
throw e;
|
|
5104
5308
|
});
|
|
5105
5309
|
};
|
|
@@ -5222,7 +5426,7 @@ RegionDiscovery.IMDS_OPTIONS = {
|
|
|
5222
5426
|
* @internal
|
|
5223
5427
|
*/
|
|
5224
5428
|
class Authority {
|
|
5225
|
-
constructor(authority, networkInterface, cacheManager, authorityOptions, logger, correlationId, performanceClient
|
|
5429
|
+
constructor(authority, networkInterface, cacheManager, authorityOptions, logger, correlationId, performanceClient) {
|
|
5226
5430
|
this.canonicalAuthority = authority;
|
|
5227
5431
|
this._canonicalAuthority.validateAsUri();
|
|
5228
5432
|
this.networkInterface = networkInterface;
|
|
@@ -5236,7 +5440,6 @@ class Authority {
|
|
|
5236
5440
|
this.logger = logger;
|
|
5237
5441
|
this.performanceClient = performanceClient;
|
|
5238
5442
|
this.correlationId = correlationId;
|
|
5239
|
-
this.managedIdentity = managedIdentity || false;
|
|
5240
5443
|
this.regionDiscovery = new RegionDiscovery(networkInterface, this.logger, this.performanceClient, this.correlationId);
|
|
5241
5444
|
}
|
|
5242
5445
|
/**
|
|
@@ -5442,7 +5645,7 @@ class Authority {
|
|
|
5442
5645
|
return `${this.canonicalAuthority}v2.0/.well-known/openid-configuration`;
|
|
5443
5646
|
}
|
|
5444
5647
|
/**
|
|
5445
|
-
* Boolean that returns
|
|
5648
|
+
* Boolean that returns whethr or not tenant discovery has been completed.
|
|
5446
5649
|
*/
|
|
5447
5650
|
discoveryComplete() {
|
|
5448
5651
|
return !!this.metadata;
|
|
@@ -5894,10 +6097,7 @@ class Authority {
|
|
|
5894
6097
|
* helper function to generate environment from authority object
|
|
5895
6098
|
*/
|
|
5896
6099
|
getPreferredCache() {
|
|
5897
|
-
if (this.
|
|
5898
|
-
return Constants.DEFAULT_AUTHORITY_HOST;
|
|
5899
|
-
}
|
|
5900
|
-
else if (this.discoveryComplete()) {
|
|
6100
|
+
if (this.discoveryComplete()) {
|
|
5901
6101
|
return this.metadata.preferred_cache;
|
|
5902
6102
|
}
|
|
5903
6103
|
else {
|
|
@@ -8001,6 +8201,162 @@ class StubPerformanceClient {
|
|
|
8001
8201
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
8002
8202
|
* Licensed under the MIT License.
|
|
8003
8203
|
*/
|
|
8204
|
+
/**
|
|
8205
|
+
* Starts context by adding payload to the stack
|
|
8206
|
+
* @param event {PerformanceEvent}
|
|
8207
|
+
* @param abbreviations {Map<string, string>} event name abbreviations
|
|
8208
|
+
* @param stack {?PerformanceEventStackedContext[]} stack
|
|
8209
|
+
*/
|
|
8210
|
+
function startContext(event, abbreviations, stack) {
|
|
8211
|
+
if (!stack) {
|
|
8212
|
+
return;
|
|
8213
|
+
}
|
|
8214
|
+
stack.push({
|
|
8215
|
+
name: abbreviations.get(event.name) || event.name,
|
|
8216
|
+
});
|
|
8217
|
+
}
|
|
8218
|
+
/**
|
|
8219
|
+
* Ends context by removing payload from the stack and returning parent or self, if stack is empty, payload
|
|
8220
|
+
*
|
|
8221
|
+
* @param event {PerformanceEvent}
|
|
8222
|
+
* @param abbreviations {Map<string, string>} event name abbreviations
|
|
8223
|
+
* @param stack {?PerformanceEventStackedContext[]} stack
|
|
8224
|
+
* @param error {?unknown} error
|
|
8225
|
+
*/
|
|
8226
|
+
function endContext(event, abbreviations, stack, error) {
|
|
8227
|
+
if (!stack?.length) {
|
|
8228
|
+
return;
|
|
8229
|
+
}
|
|
8230
|
+
const peek = (stack) => {
|
|
8231
|
+
return stack.length ? stack[stack.length - 1] : undefined;
|
|
8232
|
+
};
|
|
8233
|
+
const abbrEventName = abbreviations.get(event.name) || event.name;
|
|
8234
|
+
const top = peek(stack);
|
|
8235
|
+
if (top?.name !== abbrEventName) {
|
|
8236
|
+
return;
|
|
8237
|
+
}
|
|
8238
|
+
const current = stack?.pop();
|
|
8239
|
+
if (!current) {
|
|
8240
|
+
return;
|
|
8241
|
+
}
|
|
8242
|
+
const errorCode = error instanceof AuthError
|
|
8243
|
+
? error.errorCode
|
|
8244
|
+
: error instanceof Error
|
|
8245
|
+
? error.name
|
|
8246
|
+
: undefined;
|
|
8247
|
+
const subErr = error instanceof AuthError ? error.subError : undefined;
|
|
8248
|
+
if (errorCode && current.childErr !== errorCode) {
|
|
8249
|
+
current.err = errorCode;
|
|
8250
|
+
if (subErr) {
|
|
8251
|
+
current.subErr = subErr;
|
|
8252
|
+
}
|
|
8253
|
+
}
|
|
8254
|
+
delete current.name;
|
|
8255
|
+
delete current.childErr;
|
|
8256
|
+
const context = {
|
|
8257
|
+
...current,
|
|
8258
|
+
dur: event.durationMs,
|
|
8259
|
+
};
|
|
8260
|
+
if (!event.success) {
|
|
8261
|
+
context.fail = 1;
|
|
8262
|
+
}
|
|
8263
|
+
const parent = peek(stack);
|
|
8264
|
+
if (!parent) {
|
|
8265
|
+
return { [abbrEventName]: context };
|
|
8266
|
+
}
|
|
8267
|
+
if (errorCode) {
|
|
8268
|
+
parent.childErr = errorCode;
|
|
8269
|
+
}
|
|
8270
|
+
let childName;
|
|
8271
|
+
if (!parent[abbrEventName]) {
|
|
8272
|
+
childName = abbrEventName;
|
|
8273
|
+
}
|
|
8274
|
+
else {
|
|
8275
|
+
const siblings = Object.keys(parent).filter((key) => key.startsWith(abbrEventName)).length;
|
|
8276
|
+
childName = `${abbrEventName}_${siblings + 1}`;
|
|
8277
|
+
}
|
|
8278
|
+
parent[childName] = context;
|
|
8279
|
+
return parent;
|
|
8280
|
+
}
|
|
8281
|
+
/**
|
|
8282
|
+
* Adds error name and stack trace to the telemetry event
|
|
8283
|
+
* @param error {Error}
|
|
8284
|
+
* @param logger {Logger}
|
|
8285
|
+
* @param event {PerformanceEvent}
|
|
8286
|
+
* @param stackMaxSize {number} max error stack size to capture
|
|
8287
|
+
*/
|
|
8288
|
+
function addError(error, logger, event, stackMaxSize = 5) {
|
|
8289
|
+
if (!(error instanceof Error)) {
|
|
8290
|
+
logger.trace("PerformanceClient.addErrorStack: Input error is not instance of Error", event.correlationId);
|
|
8291
|
+
return;
|
|
8292
|
+
}
|
|
8293
|
+
else if (error instanceof AuthError) {
|
|
8294
|
+
event.errorCode = error.errorCode;
|
|
8295
|
+
event.subErrorCode = error.subError;
|
|
8296
|
+
return;
|
|
8297
|
+
}
|
|
8298
|
+
else if (event.errorStack?.length) {
|
|
8299
|
+
logger.trace("PerformanceClient.addErrorStack: Stack already exist", event.correlationId);
|
|
8300
|
+
return;
|
|
8301
|
+
}
|
|
8302
|
+
else if (!error.stack?.length) {
|
|
8303
|
+
logger.trace("PerformanceClient.addErrorStack: Input stack is empty", event.correlationId);
|
|
8304
|
+
return;
|
|
8305
|
+
}
|
|
8306
|
+
if (error.stack) {
|
|
8307
|
+
event.errorStack = compactStack(error.stack, stackMaxSize);
|
|
8308
|
+
}
|
|
8309
|
+
event.errorName = error.name;
|
|
8310
|
+
}
|
|
8311
|
+
/**
|
|
8312
|
+
* Compacts error stack into array by fetching N first entries
|
|
8313
|
+
* @param stack {string} error stack
|
|
8314
|
+
* @param stackMaxSize {number} max error stack size to capture
|
|
8315
|
+
* @returns {string[]}
|
|
8316
|
+
*/
|
|
8317
|
+
function compactStack(stack, stackMaxSize) {
|
|
8318
|
+
if (stackMaxSize < 0) {
|
|
8319
|
+
return [];
|
|
8320
|
+
}
|
|
8321
|
+
const stackArr = stack.split("\n") || [];
|
|
8322
|
+
if (stackArr.length < 2) {
|
|
8323
|
+
return [];
|
|
8324
|
+
}
|
|
8325
|
+
const res = [];
|
|
8326
|
+
// Get top N stack lines
|
|
8327
|
+
for (
|
|
8328
|
+
// Skip first line as it may contain PII data
|
|
8329
|
+
let ix = Math.max(stackArr.length - stackMaxSize - 1, 1); ix < stackArr.length; ix++) {
|
|
8330
|
+
const line = stackArr[ix];
|
|
8331
|
+
if (res.length >= stackMaxSize) {
|
|
8332
|
+
break;
|
|
8333
|
+
}
|
|
8334
|
+
res.push(compactStackLine(line));
|
|
8335
|
+
}
|
|
8336
|
+
return res;
|
|
8337
|
+
}
|
|
8338
|
+
/**
|
|
8339
|
+
* Compacts error stack line by shortening file path
|
|
8340
|
+
* Example: https://localhost/msal-common/src/authority/Authority.js:100:1 -> Authority.js:100:1
|
|
8341
|
+
* @param line {string} stack line
|
|
8342
|
+
* @returns {string}
|
|
8343
|
+
*/
|
|
8344
|
+
function compactStackLine(line) {
|
|
8345
|
+
const filePathIx = line.lastIndexOf(" ") + 1;
|
|
8346
|
+
if (filePathIx < 1) {
|
|
8347
|
+
return line;
|
|
8348
|
+
}
|
|
8349
|
+
const filePath = line.substring(filePathIx);
|
|
8350
|
+
let fileNameIx = filePath.lastIndexOf("/");
|
|
8351
|
+
fileNameIx = fileNameIx < 0 ? filePath.lastIndexOf("\\") : fileNameIx;
|
|
8352
|
+
if (fileNameIx >= 0) {
|
|
8353
|
+
return (line.substring(0, filePathIx) +
|
|
8354
|
+
"(" +
|
|
8355
|
+
filePath.substring(fileNameIx + 1) +
|
|
8356
|
+
(filePath.charAt(filePath.length - 1) === ")" ? "" : ")")).trimStart();
|
|
8357
|
+
}
|
|
8358
|
+
return line.trimStart();
|
|
8359
|
+
}
|
|
8004
8360
|
class PerformanceClient {
|
|
8005
8361
|
/**
|
|
8006
8362
|
* Creates an instance of PerformanceClient,
|
|
@@ -8014,8 +8370,9 @@ class PerformanceClient {
|
|
|
8014
8370
|
* @param {string} libraryVersion Version of the library
|
|
8015
8371
|
* @param {ApplicationTelemetry} applicationTelemetry application name and version
|
|
8016
8372
|
* @param {Set<String>} intFields integer fields to be truncated
|
|
8373
|
+
* @param {Map<string, string>} abbreviations event name abbreviations
|
|
8017
8374
|
*/
|
|
8018
|
-
constructor(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry, intFields) {
|
|
8375
|
+
constructor(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry, intFields, abbreviations) {
|
|
8019
8376
|
this.authority = authority;
|
|
8020
8377
|
this.libraryName = libraryName;
|
|
8021
8378
|
this.libraryVersion = libraryVersion;
|
|
@@ -8024,12 +8381,17 @@ class PerformanceClient {
|
|
|
8024
8381
|
this.logger = logger;
|
|
8025
8382
|
this.callbacks = new Map();
|
|
8026
8383
|
this.eventsByCorrelationId = new Map();
|
|
8384
|
+
this.eventStack = new Map();
|
|
8027
8385
|
this.queueMeasurements = new Map();
|
|
8028
8386
|
this.preQueueTimeByCorrelationId = new Map();
|
|
8029
8387
|
this.intFields = intFields || new Set();
|
|
8030
8388
|
for (const item of IntFields) {
|
|
8031
8389
|
this.intFields.add(item);
|
|
8032
8390
|
}
|
|
8391
|
+
this.abbreviations = abbreviations || new Map();
|
|
8392
|
+
for (const [key, value] of PerformanceEventAbbreviations) {
|
|
8393
|
+
this.abbreviations.set(key, value);
|
|
8394
|
+
}
|
|
8033
8395
|
}
|
|
8034
8396
|
/**
|
|
8035
8397
|
* Starts and returns an platform-specific implementation of IPerformanceMeasurement.
|
|
@@ -8159,15 +8521,16 @@ class PerformanceClient {
|
|
|
8159
8521
|
};
|
|
8160
8522
|
// Store in progress events so they can be discarded if not ended properly
|
|
8161
8523
|
this.cacheEventByCorrelationId(inProgressEvent);
|
|
8524
|
+
startContext(inProgressEvent, this.abbreviations, this.eventStack.get(eventCorrelationId));
|
|
8162
8525
|
// Return the event and functions the caller can use to properly end/flush the measurement
|
|
8163
8526
|
return {
|
|
8164
|
-
end: (event) => {
|
|
8527
|
+
end: (event, error) => {
|
|
8165
8528
|
return this.endMeasurement({
|
|
8166
8529
|
// Initial set of event properties
|
|
8167
8530
|
...inProgressEvent,
|
|
8168
8531
|
// Properties set when event ends
|
|
8169
8532
|
...event,
|
|
8170
|
-
});
|
|
8533
|
+
}, error);
|
|
8171
8534
|
},
|
|
8172
8535
|
discard: () => {
|
|
8173
8536
|
return this.discardMeasurements(inProgressEvent.correlationId);
|
|
@@ -8189,10 +8552,10 @@ class PerformanceClient {
|
|
|
8189
8552
|
* otherwise.
|
|
8190
8553
|
*
|
|
8191
8554
|
* @param {PerformanceEvent} event
|
|
8192
|
-
* @param {
|
|
8555
|
+
* @param {unknown} error
|
|
8193
8556
|
* @returns {(PerformanceEvent | null)}
|
|
8194
8557
|
*/
|
|
8195
|
-
endMeasurement(event) {
|
|
8558
|
+
endMeasurement(event, error) {
|
|
8196
8559
|
const rootEvent = this.eventsByCorrelationId.get(event.correlationId);
|
|
8197
8560
|
if (!rootEvent) {
|
|
8198
8561
|
this.logger.trace(`PerformanceClient: Measurement not found for ${event.eventId}`, event.correlationId);
|
|
@@ -8204,6 +8567,8 @@ class PerformanceClient {
|
|
|
8204
8567
|
totalQueueCount: 0,
|
|
8205
8568
|
manuallyCompletedCount: 0,
|
|
8206
8569
|
};
|
|
8570
|
+
event.durationMs = Math.round(event.durationMs || this.getDurationMs(event.startTimeMs));
|
|
8571
|
+
const context = endContext(event, this.abbreviations, this.eventStack.get(rootEvent.correlationId), error);
|
|
8207
8572
|
if (isRoot) {
|
|
8208
8573
|
queueInfo = this.getQueueInfo(event.correlationId);
|
|
8209
8574
|
this.discardCache(rootEvent.correlationId);
|
|
@@ -8211,13 +8576,15 @@ class PerformanceClient {
|
|
|
8211
8576
|
else {
|
|
8212
8577
|
rootEvent.incompleteSubMeasurements?.delete(event.eventId);
|
|
8213
8578
|
}
|
|
8214
|
-
|
|
8215
|
-
this.logger.trace(`PerformanceClient: Performance measurement ended for ${event.name}: ${durationMs} ms`, event.correlationId);
|
|
8579
|
+
this.logger.trace(`PerformanceClient: Performance measurement ended for ${event.name}: ${event.durationMs} ms`, event.correlationId);
|
|
8216
8580
|
// Add sub-measurement attribute to root event.
|
|
8217
8581
|
if (!isRoot) {
|
|
8218
|
-
rootEvent[event.name + "DurationMs"] = Math.floor(durationMs);
|
|
8582
|
+
rootEvent[event.name + "DurationMs"] = Math.floor(event.durationMs);
|
|
8219
8583
|
return { ...rootEvent };
|
|
8220
8584
|
}
|
|
8585
|
+
if (error) {
|
|
8586
|
+
addError(error, this.logger, rootEvent);
|
|
8587
|
+
}
|
|
8221
8588
|
let finalEvent = { ...rootEvent, ...event };
|
|
8222
8589
|
let incompleteSubsCount = 0;
|
|
8223
8590
|
// Incomplete sub-measurements are discarded. They are likely an instrumentation bug that should be fixed.
|
|
@@ -8228,12 +8595,12 @@ class PerformanceClient {
|
|
|
8228
8595
|
finalEvent.incompleteSubMeasurements = undefined;
|
|
8229
8596
|
finalEvent = {
|
|
8230
8597
|
...finalEvent,
|
|
8231
|
-
durationMs: Math.round(durationMs),
|
|
8232
8598
|
queuedTimeMs: queueInfo.totalQueueTime,
|
|
8233
8599
|
queuedCount: queueInfo.totalQueueCount,
|
|
8234
8600
|
queuedManuallyCompletedCount: queueInfo.manuallyCompletedCount,
|
|
8235
8601
|
status: PerformanceEventStatus.Completed,
|
|
8236
8602
|
incompleteSubsCount,
|
|
8603
|
+
context,
|
|
8237
8604
|
};
|
|
8238
8605
|
this.truncateIntegralFields(finalEvent);
|
|
8239
8606
|
this.emitEvents([finalEvent], event.correlationId);
|
|
@@ -8303,6 +8670,7 @@ class PerformanceClient {
|
|
|
8303
8670
|
else {
|
|
8304
8671
|
this.logger.trace(`PerformanceClient: Performance measurement for ${event.name} started`, event.correlationId);
|
|
8305
8672
|
this.eventsByCorrelationId.set(event.correlationId, { ...event });
|
|
8673
|
+
this.eventStack.set(event.correlationId, []);
|
|
8306
8674
|
}
|
|
8307
8675
|
}
|
|
8308
8676
|
getQueueInfo(correlationId) {
|
|
@@ -8344,6 +8712,8 @@ class PerformanceClient {
|
|
|
8344
8712
|
this.queueMeasurements.delete(correlationId);
|
|
8345
8713
|
this.logger.trace("PerformanceClient: Pre-queue times discarded", correlationId);
|
|
8346
8714
|
this.preQueueTimeByCorrelationId.delete(correlationId);
|
|
8715
|
+
this.logger.trace("PerformanceClient: Event stack discarded", correlationId);
|
|
8716
|
+
this.eventStack.delete(correlationId);
|
|
8347
8717
|
}
|
|
8348
8718
|
/**
|
|
8349
8719
|
* Registers a callback function to receive performance events.
|
|
@@ -8389,7 +8759,6 @@ class PerformanceClient {
|
|
|
8389
8759
|
/**
|
|
8390
8760
|
* Enforce truncation of integral fields in performance event.
|
|
8391
8761
|
* @param {PerformanceEvent} event performance event to update.
|
|
8392
|
-
* @param {Set<string>} intFields integral fields.
|
|
8393
8762
|
*/
|
|
8394
8763
|
truncateIntegralFields(event) {
|
|
8395
8764
|
this.intFields.forEach((key) => {
|
|
@@ -8444,7 +8813,6 @@ exports.Constants = Constants;
|
|
|
8444
8813
|
exports.CredentialType = CredentialType;
|
|
8445
8814
|
exports.DEFAULT_CRYPTO_IMPLEMENTATION = DEFAULT_CRYPTO_IMPLEMENTATION;
|
|
8446
8815
|
exports.DEFAULT_SYSTEM_OPTIONS = DEFAULT_SYSTEM_OPTIONS;
|
|
8447
|
-
exports.DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = DEFAULT_TOKEN_RENEWAL_OFFSET_SEC;
|
|
8448
8816
|
exports.DefaultStorageClass = DefaultStorageClass;
|
|
8449
8817
|
exports.Errors = Errors;
|
|
8450
8818
|
exports.GrantType = GrantType;
|