@azure/msal-common 14.6.0-alpha.0 → 14.6.1
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 +253 -254
- package/dist/authority/Authority.d.ts.map +1 -1
- package/dist/authority/Authority.mjs +831 -816
- package/dist/authority/Authority.mjs.map +1 -1
- package/dist/authority/AuthorityFactory.d.ts +18 -31
- package/dist/authority/AuthorityFactory.d.ts.map +1 -1
- package/dist/authority/AuthorityFactory.mjs +29 -50
- package/dist/authority/AuthorityFactory.mjs.map +1 -1
- package/dist/authority/AuthorityMetadata.d.ts +43 -503
- package/dist/authority/AuthorityMetadata.d.ts.map +1 -1
- package/dist/authority/AuthorityMetadata.mjs +137 -603
- package/dist/authority/AuthorityMetadata.mjs.map +1 -1
- 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 -508
- package/dist/cache/CacheManager.mjs +1237 -1237
- 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 +11 -39
- package/dist/cache/entities/AppMetadataEntity.d.ts.map +1 -1
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts +15 -48
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts.map +1 -1
- 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 -7
- package/dist/cache/entities/ServerTelemetryEntity.d.ts +5 -5
- package/dist/cache/entities/ThrottlingEntity.d.ts +7 -7
- 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 +94 -70
- package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +326 -252
- 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.d.ts.map +1 -1
- package/dist/client/BaseClient.mjs +101 -101
- package/dist/client/BaseClient.mjs.map +1 -1
- package/dist/client/RefreshTokenClient.d.ts +35 -35
- package/dist/client/RefreshTokenClient.mjs +204 -204
- package/dist/client/SilentFlowClient.d.ts +27 -27
- package/dist/client/SilentFlowClient.mjs +128 -128
- 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 +98 -96
- package/dist/config/ClientConfiguration.mjs.map +1 -1
- package/dist/constants/AADServerParamKeys.d.ts +52 -52
- package/dist/constants/AADServerParamKeys.mjs +56 -56
- 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 -61
- package/dist/error/InteractionRequiredAuthError.mjs +84 -84
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +7 -7
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +13 -13
- 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 +8081 -8611
- 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 +4 -5
- 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 -27
- 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.mjs +350 -347
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
- package/dist/response/ServerAuthorizationTokenResponse.d.ts +47 -47
- package/dist/telemetry/performance/IPerformanceClient.d.ts +57 -57
- package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
- package/dist/telemetry/performance/PerformanceClient.d.ts +198 -198
- package/dist/telemetry/performance/PerformanceClient.mjs +412 -412
- 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.mjs +76 -76
- 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 +296 -298
- package/dist/utils/Constants.d.ts.map +1 -1
- package/dist/utils/Constants.mjs +310 -313
- 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 +69 -29
- package/src/authority/AuthorityFactory.ts +48 -92
- package/src/authority/AuthorityMetadata.ts +23 -526
- package/src/cache/entities/AppMetadataEntity.ts +6 -81
- package/src/cache/entities/AuthorityMetadataEntity.ts +2 -94
- package/src/cache/utils/CacheHelpers.ts +111 -0
- package/src/client/BaseClient.ts +10 -11
- package/src/config/ClientConfiguration.ts +4 -4
- package/src/index.ts +1 -2
- package/src/packageMetadata.ts +1 -1
- package/src/response/ResponseHandler.ts +5 -5
- package/src/utils/Constants.ts +0 -4
- package/dist/cache/entities/AppMetadataEntity.mjs +0 -73
- package/dist/cache/entities/AppMetadataEntity.mjs.map +0 -1
- package/dist/cache/entities/AuthorityMetadataEntity.mjs +0 -86
- package/dist/cache/entities/AuthorityMetadataEntity.mjs.map +0 -1
|
@@ -1,199 +1,199 @@
|
|
|
1
|
-
import { ApplicationTelemetry } from "../../config/ClientConfiguration";
|
|
2
|
-
import { Logger } from "../../logger/Logger";
|
|
3
|
-
import { InProgressPerformanceEvent, IPerformanceClient, PerformanceCallbackFunction, QueueMeasurement } from "./IPerformanceClient";
|
|
4
|
-
import { PerformanceEvent, PerformanceEvents } from "./PerformanceEvent";
|
|
5
|
-
import { IPerformanceMeasurement } from "./IPerformanceMeasurement";
|
|
6
|
-
export interface PreQueueEvent {
|
|
7
|
-
name: PerformanceEvents;
|
|
8
|
-
time: number;
|
|
9
|
-
}
|
|
10
|
-
export declare abstract class PerformanceClient implements IPerformanceClient {
|
|
11
|
-
protected authority: string;
|
|
12
|
-
protected libraryName: string;
|
|
13
|
-
protected libraryVersion: string;
|
|
14
|
-
protected applicationTelemetry: ApplicationTelemetry;
|
|
15
|
-
protected clientId: string;
|
|
16
|
-
protected logger: Logger;
|
|
17
|
-
protected callbacks: Map<string, PerformanceCallbackFunction>;
|
|
18
|
-
/**
|
|
19
|
-
* Multiple events with the same correlation id.
|
|
20
|
-
* @protected
|
|
21
|
-
* @type {Map<string, PerformanceEvent>}
|
|
22
|
-
*/
|
|
23
|
-
protected eventsByCorrelationId: Map<string, PerformanceEvent>;
|
|
24
|
-
/**
|
|
25
|
-
* Map of pre-queue times by correlation Id
|
|
26
|
-
*
|
|
27
|
-
* @protected
|
|
28
|
-
* @type {Map<string, PreQueueEvent>}
|
|
29
|
-
*/
|
|
30
|
-
protected preQueueTimeByCorrelationId: Map<string, PreQueueEvent>;
|
|
31
|
-
/**
|
|
32
|
-
* Map of queue measurements by correlation Id
|
|
33
|
-
*
|
|
34
|
-
* @protected
|
|
35
|
-
* @type {Map<string, Array<QueueMeasurement>>}
|
|
36
|
-
*/
|
|
37
|
-
protected queueMeasurements: Map<string, Array<QueueMeasurement>>;
|
|
38
|
-
protected intFields: Set<string>;
|
|
39
|
-
/**
|
|
40
|
-
* Creates an instance of PerformanceClient,
|
|
41
|
-
* an abstract class containing core performance telemetry logic.
|
|
42
|
-
*
|
|
43
|
-
* @constructor
|
|
44
|
-
* @param {string} clientId Client ID of the application
|
|
45
|
-
* @param {string} authority Authority used by the application
|
|
46
|
-
* @param {Logger} logger Logger used by the application
|
|
47
|
-
* @param {string} libraryName Name of the library
|
|
48
|
-
* @param {string} libraryVersion Version of the library
|
|
49
|
-
* @param {ApplicationTelemetry} applicationTelemetry application name and version
|
|
50
|
-
* @param {Set<String>} intFields integer fields to be truncated
|
|
51
|
-
*/
|
|
52
|
-
constructor(clientId: string, authority: string, logger: Logger, libraryName: string, libraryVersion: string, applicationTelemetry: ApplicationTelemetry, intFields?: Set<string>);
|
|
53
|
-
/**
|
|
54
|
-
* Generates and returns a unique id, typically a guid.
|
|
55
|
-
*
|
|
56
|
-
* @abstract
|
|
57
|
-
* @returns {string}
|
|
58
|
-
*/
|
|
59
|
-
abstract generateId(): string;
|
|
60
|
-
/**
|
|
61
|
-
* Starts and returns an platform-specific implementation of IPerformanceMeasurement.
|
|
62
|
-
* Note: this function can be changed to abstract at the next major version bump.
|
|
63
|
-
*
|
|
64
|
-
* @param {string} measureName
|
|
65
|
-
* @param {string} correlationId
|
|
66
|
-
* @returns {IPerformanceMeasurement}
|
|
67
|
-
* @deprecated This method will be removed in the next major version
|
|
68
|
-
*/
|
|
69
|
-
startPerformanceMeasurement(measureName: string, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
70
|
-
correlationId: string): IPerformanceMeasurement;
|
|
71
|
-
/**
|
|
72
|
-
* Sets pre-queue time by correlation Id
|
|
73
|
-
*
|
|
74
|
-
* @abstract
|
|
75
|
-
* @param {PerformanceEvents} eventName
|
|
76
|
-
* @param {string} correlationId
|
|
77
|
-
* @returns
|
|
78
|
-
*/
|
|
79
|
-
abstract setPreQueueTime(eventName: PerformanceEvents, correlationId?: string): void;
|
|
80
|
-
/**
|
|
81
|
-
* Gets map of pre-queue times by correlation Id
|
|
82
|
-
*
|
|
83
|
-
* @param {PerformanceEvents} eventName
|
|
84
|
-
* @param {string} correlationId
|
|
85
|
-
* @returns {number}
|
|
86
|
-
*/
|
|
87
|
-
getPreQueueTime(eventName: string, correlationId: string): number | void;
|
|
88
|
-
/**
|
|
89
|
-
* Calculates the difference between current time and time when function was queued.
|
|
90
|
-
* Note: It is possible to have 0 as the queue time if the current time and the queued time was the same.
|
|
91
|
-
*
|
|
92
|
-
* @param {number} preQueueTime
|
|
93
|
-
* @param {number} currentTime
|
|
94
|
-
* @returns {number}
|
|
95
|
-
*/
|
|
96
|
-
calculateQueuedTime(preQueueTime: number, currentTime: number): number;
|
|
97
|
-
/**
|
|
98
|
-
* Adds queue measurement time to QueueMeasurements array for given correlation ID.
|
|
99
|
-
*
|
|
100
|
-
* @param {PerformanceEvents} eventName
|
|
101
|
-
* @param {?string} correlationId
|
|
102
|
-
* @param {?number} queueTime
|
|
103
|
-
* @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements
|
|
104
|
-
* @returns
|
|
105
|
-
*/
|
|
106
|
-
addQueueMeasurement(eventName: string, correlationId?: string, queueTime?: number, manuallyCompleted?: boolean): void;
|
|
107
|
-
/**
|
|
108
|
-
* Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.
|
|
109
|
-
*
|
|
110
|
-
* @param {PerformanceEvents} measureName
|
|
111
|
-
* @param {?string} [correlationId]
|
|
112
|
-
* @returns {InProgressPerformanceEvent}
|
|
113
|
-
*/
|
|
114
|
-
startMeasurement(measureName: string, correlationId?: string): InProgressPerformanceEvent;
|
|
115
|
-
/**
|
|
116
|
-
* Stops measuring the performance for an operation. Should only be called directly by PerformanceClient classes,
|
|
117
|
-
* as consumers should instead use the function returned by startMeasurement.
|
|
118
|
-
* Adds a new field named as "[event name]DurationMs" for sub-measurements, completes and emits an event
|
|
119
|
-
* otherwise.
|
|
120
|
-
*
|
|
121
|
-
* @param {PerformanceEvent} event
|
|
122
|
-
* @param {IPerformanceMeasurement} measurement
|
|
123
|
-
* @returns {(PerformanceEvent | null)}
|
|
124
|
-
*/
|
|
125
|
-
endMeasurement(event: PerformanceEvent): PerformanceEvent | null;
|
|
126
|
-
/**
|
|
127
|
-
* Saves extra information to be emitted when the measurements are flushed
|
|
128
|
-
* @param fields
|
|
129
|
-
* @param correlationId
|
|
130
|
-
*/
|
|
131
|
-
addFields(fields: {
|
|
132
|
-
[key: string]: {} | undefined;
|
|
133
|
-
}, correlationId: string): void;
|
|
134
|
-
/**
|
|
135
|
-
* Increment counters to be emitted when the measurements are flushed
|
|
136
|
-
* @param fields {string[]}
|
|
137
|
-
* @param correlationId {string} correlation identifier
|
|
138
|
-
*/
|
|
139
|
-
incrementFields(fields: {
|
|
140
|
-
[key: string]: number | undefined;
|
|
141
|
-
}, correlationId: string): void;
|
|
142
|
-
/**
|
|
143
|
-
* Upserts event into event cache.
|
|
144
|
-
* First key is the correlation id, second key is the event id.
|
|
145
|
-
* Allows for events to be grouped by correlation id,
|
|
146
|
-
* and to easily allow for properties on them to be updated.
|
|
147
|
-
*
|
|
148
|
-
* @private
|
|
149
|
-
* @param {PerformanceEvent} event
|
|
150
|
-
*/
|
|
151
|
-
protected cacheEventByCorrelationId(event: PerformanceEvent): void;
|
|
152
|
-
private getQueueInfo;
|
|
153
|
-
/**
|
|
154
|
-
* Removes measurements for a given correlation id.
|
|
155
|
-
*
|
|
156
|
-
* @param {string} correlationId
|
|
157
|
-
*/
|
|
158
|
-
discardMeasurements(correlationId: string): void;
|
|
159
|
-
/**
|
|
160
|
-
* Removes cache for a given correlation id.
|
|
161
|
-
*
|
|
162
|
-
* @param {string} correlationId correlation identifier
|
|
163
|
-
*/
|
|
164
|
-
private discardCache;
|
|
165
|
-
/**
|
|
166
|
-
* Registers a callback function to receive performance events.
|
|
167
|
-
*
|
|
168
|
-
* @param {PerformanceCallbackFunction} callback
|
|
169
|
-
* @returns {string}
|
|
170
|
-
*/
|
|
171
|
-
addPerformanceCallback(callback: PerformanceCallbackFunction): string;
|
|
172
|
-
/**
|
|
173
|
-
* Removes a callback registered with addPerformanceCallback.
|
|
174
|
-
*
|
|
175
|
-
* @param {string} callbackId
|
|
176
|
-
* @returns {boolean}
|
|
177
|
-
*/
|
|
178
|
-
removePerformanceCallback(callbackId: string): boolean;
|
|
179
|
-
/**
|
|
180
|
-
* Emits events to all registered callbacks.
|
|
181
|
-
*
|
|
182
|
-
* @param {PerformanceEvent[]} events
|
|
183
|
-
* @param {?string} [correlationId]
|
|
184
|
-
*/
|
|
185
|
-
emitEvents(events: PerformanceEvent[], correlationId: string): void;
|
|
186
|
-
/**
|
|
187
|
-
* Enforce truncation of integral fields in performance event.
|
|
188
|
-
* @param {PerformanceEvent} event performance event to update.
|
|
189
|
-
* @param {Set<string>} intFields integral fields.
|
|
190
|
-
*/
|
|
191
|
-
private truncateIntegralFields;
|
|
192
|
-
/**
|
|
193
|
-
* Returns event duration in milliseconds
|
|
194
|
-
* @param startTimeMs {number}
|
|
195
|
-
* @returns {number}
|
|
196
|
-
*/
|
|
197
|
-
private getDurationMs;
|
|
198
|
-
}
|
|
1
|
+
import { ApplicationTelemetry } from "../../config/ClientConfiguration";
|
|
2
|
+
import { Logger } from "../../logger/Logger";
|
|
3
|
+
import { InProgressPerformanceEvent, IPerformanceClient, PerformanceCallbackFunction, QueueMeasurement } from "./IPerformanceClient";
|
|
4
|
+
import { PerformanceEvent, PerformanceEvents } from "./PerformanceEvent";
|
|
5
|
+
import { IPerformanceMeasurement } from "./IPerformanceMeasurement";
|
|
6
|
+
export interface PreQueueEvent {
|
|
7
|
+
name: PerformanceEvents;
|
|
8
|
+
time: number;
|
|
9
|
+
}
|
|
10
|
+
export declare abstract class PerformanceClient implements IPerformanceClient {
|
|
11
|
+
protected authority: string;
|
|
12
|
+
protected libraryName: string;
|
|
13
|
+
protected libraryVersion: string;
|
|
14
|
+
protected applicationTelemetry: ApplicationTelemetry;
|
|
15
|
+
protected clientId: string;
|
|
16
|
+
protected logger: Logger;
|
|
17
|
+
protected callbacks: Map<string, PerformanceCallbackFunction>;
|
|
18
|
+
/**
|
|
19
|
+
* Multiple events with the same correlation id.
|
|
20
|
+
* @protected
|
|
21
|
+
* @type {Map<string, PerformanceEvent>}
|
|
22
|
+
*/
|
|
23
|
+
protected eventsByCorrelationId: Map<string, PerformanceEvent>;
|
|
24
|
+
/**
|
|
25
|
+
* Map of pre-queue times by correlation Id
|
|
26
|
+
*
|
|
27
|
+
* @protected
|
|
28
|
+
* @type {Map<string, PreQueueEvent>}
|
|
29
|
+
*/
|
|
30
|
+
protected preQueueTimeByCorrelationId: Map<string, PreQueueEvent>;
|
|
31
|
+
/**
|
|
32
|
+
* Map of queue measurements by correlation Id
|
|
33
|
+
*
|
|
34
|
+
* @protected
|
|
35
|
+
* @type {Map<string, Array<QueueMeasurement>>}
|
|
36
|
+
*/
|
|
37
|
+
protected queueMeasurements: Map<string, Array<QueueMeasurement>>;
|
|
38
|
+
protected intFields: Set<string>;
|
|
39
|
+
/**
|
|
40
|
+
* Creates an instance of PerformanceClient,
|
|
41
|
+
* an abstract class containing core performance telemetry logic.
|
|
42
|
+
*
|
|
43
|
+
* @constructor
|
|
44
|
+
* @param {string} clientId Client ID of the application
|
|
45
|
+
* @param {string} authority Authority used by the application
|
|
46
|
+
* @param {Logger} logger Logger used by the application
|
|
47
|
+
* @param {string} libraryName Name of the library
|
|
48
|
+
* @param {string} libraryVersion Version of the library
|
|
49
|
+
* @param {ApplicationTelemetry} applicationTelemetry application name and version
|
|
50
|
+
* @param {Set<String>} intFields integer fields to be truncated
|
|
51
|
+
*/
|
|
52
|
+
constructor(clientId: string, authority: string, logger: Logger, libraryName: string, libraryVersion: string, applicationTelemetry: ApplicationTelemetry, intFields?: Set<string>);
|
|
53
|
+
/**
|
|
54
|
+
* Generates and returns a unique id, typically a guid.
|
|
55
|
+
*
|
|
56
|
+
* @abstract
|
|
57
|
+
* @returns {string}
|
|
58
|
+
*/
|
|
59
|
+
abstract generateId(): string;
|
|
60
|
+
/**
|
|
61
|
+
* Starts and returns an platform-specific implementation of IPerformanceMeasurement.
|
|
62
|
+
* Note: this function can be changed to abstract at the next major version bump.
|
|
63
|
+
*
|
|
64
|
+
* @param {string} measureName
|
|
65
|
+
* @param {string} correlationId
|
|
66
|
+
* @returns {IPerformanceMeasurement}
|
|
67
|
+
* @deprecated This method will be removed in the next major version
|
|
68
|
+
*/
|
|
69
|
+
startPerformanceMeasurement(measureName: string, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
70
|
+
correlationId: string): IPerformanceMeasurement;
|
|
71
|
+
/**
|
|
72
|
+
* Sets pre-queue time by correlation Id
|
|
73
|
+
*
|
|
74
|
+
* @abstract
|
|
75
|
+
* @param {PerformanceEvents} eventName
|
|
76
|
+
* @param {string} correlationId
|
|
77
|
+
* @returns
|
|
78
|
+
*/
|
|
79
|
+
abstract setPreQueueTime(eventName: PerformanceEvents, correlationId?: string): void;
|
|
80
|
+
/**
|
|
81
|
+
* Gets map of pre-queue times by correlation Id
|
|
82
|
+
*
|
|
83
|
+
* @param {PerformanceEvents} eventName
|
|
84
|
+
* @param {string} correlationId
|
|
85
|
+
* @returns {number}
|
|
86
|
+
*/
|
|
87
|
+
getPreQueueTime(eventName: string, correlationId: string): number | void;
|
|
88
|
+
/**
|
|
89
|
+
* Calculates the difference between current time and time when function was queued.
|
|
90
|
+
* Note: It is possible to have 0 as the queue time if the current time and the queued time was the same.
|
|
91
|
+
*
|
|
92
|
+
* @param {number} preQueueTime
|
|
93
|
+
* @param {number} currentTime
|
|
94
|
+
* @returns {number}
|
|
95
|
+
*/
|
|
96
|
+
calculateQueuedTime(preQueueTime: number, currentTime: number): number;
|
|
97
|
+
/**
|
|
98
|
+
* Adds queue measurement time to QueueMeasurements array for given correlation ID.
|
|
99
|
+
*
|
|
100
|
+
* @param {PerformanceEvents} eventName
|
|
101
|
+
* @param {?string} correlationId
|
|
102
|
+
* @param {?number} queueTime
|
|
103
|
+
* @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements
|
|
104
|
+
* @returns
|
|
105
|
+
*/
|
|
106
|
+
addQueueMeasurement(eventName: string, correlationId?: string, queueTime?: number, manuallyCompleted?: boolean): void;
|
|
107
|
+
/**
|
|
108
|
+
* Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.
|
|
109
|
+
*
|
|
110
|
+
* @param {PerformanceEvents} measureName
|
|
111
|
+
* @param {?string} [correlationId]
|
|
112
|
+
* @returns {InProgressPerformanceEvent}
|
|
113
|
+
*/
|
|
114
|
+
startMeasurement(measureName: string, correlationId?: string): InProgressPerformanceEvent;
|
|
115
|
+
/**
|
|
116
|
+
* Stops measuring the performance for an operation. Should only be called directly by PerformanceClient classes,
|
|
117
|
+
* as consumers should instead use the function returned by startMeasurement.
|
|
118
|
+
* Adds a new field named as "[event name]DurationMs" for sub-measurements, completes and emits an event
|
|
119
|
+
* otherwise.
|
|
120
|
+
*
|
|
121
|
+
* @param {PerformanceEvent} event
|
|
122
|
+
* @param {IPerformanceMeasurement} measurement
|
|
123
|
+
* @returns {(PerformanceEvent | null)}
|
|
124
|
+
*/
|
|
125
|
+
endMeasurement(event: PerformanceEvent): PerformanceEvent | null;
|
|
126
|
+
/**
|
|
127
|
+
* Saves extra information to be emitted when the measurements are flushed
|
|
128
|
+
* @param fields
|
|
129
|
+
* @param correlationId
|
|
130
|
+
*/
|
|
131
|
+
addFields(fields: {
|
|
132
|
+
[key: string]: {} | undefined;
|
|
133
|
+
}, correlationId: string): void;
|
|
134
|
+
/**
|
|
135
|
+
* Increment counters to be emitted when the measurements are flushed
|
|
136
|
+
* @param fields {string[]}
|
|
137
|
+
* @param correlationId {string} correlation identifier
|
|
138
|
+
*/
|
|
139
|
+
incrementFields(fields: {
|
|
140
|
+
[key: string]: number | undefined;
|
|
141
|
+
}, correlationId: string): void;
|
|
142
|
+
/**
|
|
143
|
+
* Upserts event into event cache.
|
|
144
|
+
* First key is the correlation id, second key is the event id.
|
|
145
|
+
* Allows for events to be grouped by correlation id,
|
|
146
|
+
* and to easily allow for properties on them to be updated.
|
|
147
|
+
*
|
|
148
|
+
* @private
|
|
149
|
+
* @param {PerformanceEvent} event
|
|
150
|
+
*/
|
|
151
|
+
protected cacheEventByCorrelationId(event: PerformanceEvent): void;
|
|
152
|
+
private getQueueInfo;
|
|
153
|
+
/**
|
|
154
|
+
* Removes measurements for a given correlation id.
|
|
155
|
+
*
|
|
156
|
+
* @param {string} correlationId
|
|
157
|
+
*/
|
|
158
|
+
discardMeasurements(correlationId: string): void;
|
|
159
|
+
/**
|
|
160
|
+
* Removes cache for a given correlation id.
|
|
161
|
+
*
|
|
162
|
+
* @param {string} correlationId correlation identifier
|
|
163
|
+
*/
|
|
164
|
+
private discardCache;
|
|
165
|
+
/**
|
|
166
|
+
* Registers a callback function to receive performance events.
|
|
167
|
+
*
|
|
168
|
+
* @param {PerformanceCallbackFunction} callback
|
|
169
|
+
* @returns {string}
|
|
170
|
+
*/
|
|
171
|
+
addPerformanceCallback(callback: PerformanceCallbackFunction): string;
|
|
172
|
+
/**
|
|
173
|
+
* Removes a callback registered with addPerformanceCallback.
|
|
174
|
+
*
|
|
175
|
+
* @param {string} callbackId
|
|
176
|
+
* @returns {boolean}
|
|
177
|
+
*/
|
|
178
|
+
removePerformanceCallback(callbackId: string): boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Emits events to all registered callbacks.
|
|
181
|
+
*
|
|
182
|
+
* @param {PerformanceEvent[]} events
|
|
183
|
+
* @param {?string} [correlationId]
|
|
184
|
+
*/
|
|
185
|
+
emitEvents(events: PerformanceEvent[], correlationId: string): void;
|
|
186
|
+
/**
|
|
187
|
+
* Enforce truncation of integral fields in performance event.
|
|
188
|
+
* @param {PerformanceEvent} event performance event to update.
|
|
189
|
+
* @param {Set<string>} intFields integral fields.
|
|
190
|
+
*/
|
|
191
|
+
private truncateIntegralFields;
|
|
192
|
+
/**
|
|
193
|
+
* Returns event duration in milliseconds
|
|
194
|
+
* @param startTimeMs {number}
|
|
195
|
+
* @returns {number}
|
|
196
|
+
*/
|
|
197
|
+
private getDurationMs;
|
|
198
|
+
}
|
|
199
199
|
//# sourceMappingURL=PerformanceClient.d.ts.map
|