@azure/msal-common 14.0.0-alpha.1 → 14.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +62 -62
  3. package/dist/account/AccountInfo.d.ts +31 -31
  4. package/dist/account/AuthToken.d.ts +20 -20
  5. package/dist/account/AuthToken.js +48 -48
  6. package/dist/account/CcsCredential.d.ts +8 -8
  7. package/dist/account/CcsCredential.js +9 -9
  8. package/dist/account/ClientCredentials.d.ts +14 -14
  9. package/dist/account/ClientInfo.d.ts +19 -19
  10. package/dist/account/ClientInfo.js +37 -37
  11. package/dist/account/DecodedAuthToken.d.ts +8 -8
  12. package/dist/account/TokenClaims.d.ts +65 -65
  13. package/dist/authority/Authority.d.ts +228 -215
  14. package/dist/authority/Authority.d.ts.map +1 -1
  15. package/dist/authority/Authority.js +716 -682
  16. package/dist/authority/Authority.js.map +1 -1
  17. package/dist/authority/AuthorityFactory.d.ts +30 -30
  18. package/dist/authority/AuthorityFactory.js +47 -47
  19. package/dist/authority/AuthorityMetadata.d.ts +622 -622
  20. package/dist/authority/AuthorityMetadata.js +876 -876
  21. package/dist/authority/AuthorityOptions.d.ts +18 -18
  22. package/dist/authority/AuthorityOptions.js +19 -19
  23. package/dist/authority/AuthorityType.d.ts +9 -9
  24. package/dist/authority/AuthorityType.js +14 -14
  25. package/dist/authority/AzureRegion.d.ts +1 -1
  26. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  27. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  28. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  29. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js +8 -8
  30. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  31. package/dist/authority/CloudInstanceDiscoveryResponse.js +8 -8
  32. package/dist/authority/ImdsOptions.d.ts +5 -5
  33. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  34. package/dist/authority/OpenIdConfigResponse.js +10 -10
  35. package/dist/authority/ProtocolMode.d.ts +7 -7
  36. package/dist/authority/ProtocolMode.js +12 -12
  37. package/dist/authority/RegionDiscovery.d.ts +30 -30
  38. package/dist/authority/RegionDiscovery.js +108 -108
  39. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  40. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  41. package/dist/cache/CacheManager.d.ts +443 -443
  42. package/dist/cache/CacheManager.js +1011 -1011
  43. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  44. package/dist/cache/entities/AccessTokenEntity.js +111 -111
  45. package/dist/cache/entities/AccountEntity.d.ts +99 -99
  46. package/dist/cache/entities/AccountEntity.js +248 -248
  47. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  48. package/dist/cache/entities/AppMetadataEntity.js +66 -66
  49. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +47 -47
  50. package/dist/cache/entities/AuthorityMetadataEntity.js +77 -77
  51. package/dist/cache/entities/CacheRecord.d.ts +13 -13
  52. package/dist/cache/entities/CacheRecord.js +13 -13
  53. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  54. package/dist/cache/entities/CredentialEntity.js +136 -136
  55. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  56. package/dist/cache/entities/IdTokenEntity.js +56 -56
  57. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  58. package/dist/cache/entities/RefreshTokenEntity.js +59 -59
  59. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  60. package/dist/cache/entities/ServerTelemetryEntity.js +27 -27
  61. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  62. package/dist/cache/entities/ThrottlingEntity.js +23 -23
  63. package/dist/cache/interface/ICacheManager.d.ts +165 -165
  64. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  65. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  66. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  67. package/dist/cache/persistence/TokenCacheContext.js +25 -25
  68. package/dist/cache/utils/CacheTypes.d.ts +62 -62
  69. package/dist/client/AuthorizationCodeClient.d.ts +71 -71
  70. package/dist/client/AuthorizationCodeClient.js +433 -433
  71. package/dist/client/BaseClient.d.ts +50 -50
  72. package/dist/client/BaseClient.js +92 -92
  73. package/dist/client/RefreshTokenClient.d.ts +34 -34
  74. package/dist/client/RefreshTokenClient.js +239 -239
  75. package/dist/client/SilentFlowClient.d.ts +24 -24
  76. package/dist/client/SilentFlowClient.js +94 -94
  77. package/dist/config/AppTokenProvider.d.ts +38 -38
  78. package/dist/config/ClientConfiguration.d.ts +133 -133
  79. package/dist/config/ClientConfiguration.js +88 -88
  80. package/dist/crypto/ICrypto.d.ts +62 -62
  81. package/dist/crypto/ICrypto.js +42 -42
  82. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  83. package/dist/crypto/JoseHeader.d.ts +21 -21
  84. package/dist/crypto/JoseHeader.js +36 -36
  85. package/dist/crypto/PopTokenGenerator.d.ts +57 -57
  86. package/dist/crypto/PopTokenGenerator.js +83 -83
  87. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  88. package/dist/error/AuthError.d.ts +47 -47
  89. package/dist/error/AuthError.js +51 -51
  90. package/dist/error/ClientAuthError.d.ts +412 -412
  91. package/dist/error/ClientAuthError.js +519 -519
  92. package/dist/error/ClientConfigurationError.d.ts +198 -198
  93. package/dist/error/ClientConfigurationError.js +249 -249
  94. package/dist/error/InteractionRequiredAuthError.d.ts +59 -59
  95. package/dist/error/InteractionRequiredAuthError.js +78 -78
  96. package/dist/error/JoseHeaderError.d.ts +28 -28
  97. package/dist/error/JoseHeaderError.js +39 -39
  98. package/dist/error/ServerError.d.ts +7 -7
  99. package/dist/error/ServerError.js +14 -14
  100. package/dist/index.cjs.js +8843 -8809
  101. package/dist/index.cjs.js.map +1 -1
  102. package/dist/index.d.ts +93 -93
  103. package/dist/index.js +1 -1
  104. package/dist/logger/Logger.d.ts +95 -95
  105. package/dist/logger/Logger.js +197 -197
  106. package/dist/network/INetworkModule.d.ts +29 -29
  107. package/dist/network/INetworkModule.js +14 -14
  108. package/dist/network/NetworkManager.d.ts +32 -32
  109. package/dist/network/NetworkManager.js +33 -33
  110. package/dist/network/RequestThumbprint.d.ts +16 -16
  111. package/dist/network/ThrottlingUtils.d.ts +41 -41
  112. package/dist/network/ThrottlingUtils.js +94 -94
  113. package/dist/packageMetadata.d.ts +2 -2
  114. package/dist/packageMetadata.js +4 -4
  115. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  116. package/dist/request/AuthenticationHeaderParser.js +55 -55
  117. package/dist/request/BaseAuthRequest.d.ts +37 -37
  118. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  119. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  120. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  121. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  122. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  123. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  124. package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
  125. package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
  126. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  127. package/dist/request/NativeRequest.d.ts +19 -19
  128. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  129. package/dist/request/RequestParameterBuilder.d.ts +216 -216
  130. package/dist/request/RequestParameterBuilder.js +374 -374
  131. package/dist/request/RequestValidator.d.ts +33 -33
  132. package/dist/request/RequestValidator.js +83 -83
  133. package/dist/request/ScopeSet.d.ts +88 -88
  134. package/dist/request/ScopeSet.js +197 -197
  135. package/dist/response/AuthenticationResult.d.ts +39 -39
  136. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  137. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  138. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  139. package/dist/response/IMDSBadResponse.d.ts +4 -4
  140. package/dist/response/ResponseHandler.d.ts +72 -72
  141. package/dist/response/ResponseHandler.js +300 -300
  142. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  143. package/dist/response/ServerAuthorizationTokenResponse.d.ts +44 -44
  144. package/dist/telemetry/performance/IPerformanceClient.d.ts +42 -42
  145. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  146. package/dist/telemetry/performance/PerformanceClient.d.ts +189 -189
  147. package/dist/telemetry/performance/PerformanceClient.js +406 -406
  148. package/dist/telemetry/performance/PerformanceEvent.d.ts +439 -439
  149. package/dist/telemetry/performance/PerformanceEvent.js +227 -227
  150. package/dist/telemetry/performance/StubPerformanceClient.d.ts +19 -19
  151. package/dist/telemetry/performance/StubPerformanceClient.js +36 -36
  152. package/dist/telemetry/server/ServerTelemetryManager.d.ts +65 -65
  153. package/dist/telemetry/server/ServerTelemetryManager.js +196 -196
  154. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  155. package/dist/url/IUri.d.ts +12 -12
  156. package/dist/url/UrlString.d.ts +70 -70
  157. package/dist/url/UrlString.js +242 -242
  158. package/dist/utils/Constants.d.ts +331 -331
  159. package/dist/utils/Constants.js +373 -373
  160. package/dist/utils/MsalTypes.d.ts +6 -6
  161. package/dist/utils/ProtocolUtils.d.ts +42 -42
  162. package/dist/utils/ProtocolUtils.js +71 -71
  163. package/dist/utils/StringUtils.d.ts +53 -53
  164. package/dist/utils/StringUtils.js +124 -124
  165. package/dist/utils/TimeUtils.d.ts +27 -27
  166. package/dist/utils/TimeUtils.js +45 -45
  167. package/package.json +79 -79
@@ -1,26 +1,26 @@
1
- /**
2
- * Deserialized response object from server authorization code request.
3
- * - code: authorization code from server
4
- * - client_info: client info object
5
- * - state: OAuth2 request state
6
- * - error: error sent back in hash
7
- * - error: description
8
- */
9
- export type ServerAuthorizationCodeResponse = {
10
- code?: string;
11
- client_info?: string;
12
- state?: string;
13
- cloud_instance_name?: string;
14
- cloud_instance_host_name?: string;
15
- cloud_graph_host_name?: string;
16
- msgraph_host?: string;
17
- error?: string;
18
- error_description?: string;
19
- suberror?: string;
20
- timestamp?: string;
21
- trace_id?: string;
22
- correlation_id?: string;
23
- claims?: string;
24
- accountId?: string;
25
- };
1
+ /**
2
+ * Deserialized response object from server authorization code request.
3
+ * - code: authorization code from server
4
+ * - client_info: client info object
5
+ * - state: OAuth2 request state
6
+ * - error: error sent back in hash
7
+ * - error: description
8
+ */
9
+ export type ServerAuthorizationCodeResponse = {
10
+ code?: string;
11
+ client_info?: string;
12
+ state?: string;
13
+ cloud_instance_name?: string;
14
+ cloud_instance_host_name?: string;
15
+ cloud_graph_host_name?: string;
16
+ msgraph_host?: string;
17
+ error?: string;
18
+ error_description?: string;
19
+ suberror?: string;
20
+ timestamp?: string;
21
+ trace_id?: string;
22
+ correlation_id?: string;
23
+ claims?: string;
24
+ accountId?: string;
25
+ };
26
26
  //# sourceMappingURL=ServerAuthorizationCodeResponse.d.ts.map
@@ -1,45 +1,45 @@
1
- import { AuthenticationScheme } from "../utils/Constants";
2
- /**
3
- * Deserialized response object from server authorization code request.
4
- * - token_type: Indicates the token type value. Can be either Bearer or pop.
5
- * - scope: The scopes that the access_token is valid for.
6
- * - expires_in: How long the access token is valid (in seconds).
7
- * - refresh_in: Duration afer which a token should be renewed, regardless of expiration.
8
- * - ext_expires_in: How long the access token is valid (in seconds) if the server isn't responding.
9
- * - access_token: The requested access token. The app can use this token to authenticate to the secured resource, such as a web API.
10
- * - refresh_token: An OAuth 2.0 refresh token. The app can use this token acquire additional access tokens after the current access token expires.
11
- * - id_token: A JSON Web Token (JWT). The app can decode the segments of this token to request information about the user who signed in.
12
- * - key_id: A string that uniquely identifies a public key that the request is bound to.
13
- *
14
- * In case of error:
15
- * - error: An error code string that can be used to classify types of errors that occur, and can be used to react to errors.
16
- * - error_description: A specific error message that can help a developer identify the root cause of an authentication error.
17
- * - error_codes: A list of STS-specific error codes that can help in diagnostics.
18
- * - timestamp: The time at which the error occurred.
19
- * - trace_id: A unique identifier for the request that can help in diagnostics.
20
- * - correlation_id: A unique identifier for the request that can help in diagnostics across components.
21
- */
22
- export type ServerAuthorizationTokenResponse = {
23
- token_type?: AuthenticationScheme;
24
- scope?: string;
25
- expires_in?: number;
26
- refresh_in?: number;
27
- ext_expires_in?: number;
28
- access_token?: string;
29
- refresh_token?: string;
30
- id_token?: string;
31
- client_info?: string;
32
- foci?: string;
33
- spa_code?: string;
34
- spa_accountid?: string;
35
- key_id?: string;
36
- error?: string;
37
- error_description?: string;
38
- error_codes?: Array<string>;
39
- suberror?: string;
40
- timestamp?: string;
41
- trace_id?: string;
42
- correlation_id?: string;
43
- claims?: string;
44
- };
1
+ import { AuthenticationScheme } from "../utils/Constants";
2
+ /**
3
+ * Deserialized response object from server authorization code request.
4
+ * - token_type: Indicates the token type value. Can be either Bearer or pop.
5
+ * - scope: The scopes that the access_token is valid for.
6
+ * - expires_in: How long the access token is valid (in seconds).
7
+ * - refresh_in: Duration afer which a token should be renewed, regardless of expiration.
8
+ * - ext_expires_in: How long the access token is valid (in seconds) if the server isn't responding.
9
+ * - access_token: The requested access token. The app can use this token to authenticate to the secured resource, such as a web API.
10
+ * - refresh_token: An OAuth 2.0 refresh token. The app can use this token acquire additional access tokens after the current access token expires.
11
+ * - id_token: A JSON Web Token (JWT). The app can decode the segments of this token to request information about the user who signed in.
12
+ * - key_id: A string that uniquely identifies a public key that the request is bound to.
13
+ *
14
+ * In case of error:
15
+ * - error: An error code string that can be used to classify types of errors that occur, and can be used to react to errors.
16
+ * - error_description: A specific error message that can help a developer identify the root cause of an authentication error.
17
+ * - error_codes: A list of STS-specific error codes that can help in diagnostics.
18
+ * - timestamp: The time at which the error occurred.
19
+ * - trace_id: A unique identifier for the request that can help in diagnostics.
20
+ * - correlation_id: A unique identifier for the request that can help in diagnostics across components.
21
+ */
22
+ export type ServerAuthorizationTokenResponse = {
23
+ token_type?: AuthenticationScheme;
24
+ scope?: string;
25
+ expires_in?: number;
26
+ refresh_in?: number;
27
+ ext_expires_in?: number;
28
+ access_token?: string;
29
+ refresh_token?: string;
30
+ id_token?: string;
31
+ client_info?: string;
32
+ foci?: string;
33
+ spa_code?: string;
34
+ spa_accountid?: string;
35
+ key_id?: string;
36
+ error?: string;
37
+ error_description?: string;
38
+ error_codes?: Array<string>;
39
+ suberror?: string;
40
+ timestamp?: string;
41
+ trace_id?: string;
42
+ correlation_id?: string;
43
+ claims?: string;
44
+ };
45
45
  //# sourceMappingURL=ServerAuthorizationTokenResponse.d.ts.map
@@ -1,43 +1,43 @@
1
- import { Counters, PerformanceEvent, PerformanceEvents, StaticFields } from "./PerformanceEvent";
2
- import { IPerformanceMeasurement } from "./IPerformanceMeasurement";
3
- export type PerformanceCallbackFunction = (events: PerformanceEvent[]) => void;
4
- export type InProgressPerformanceEvent = {
5
- endMeasurement: (event?: Partial<PerformanceEvent>) => PerformanceEvent | null;
6
- discardMeasurement: () => void;
7
- addStaticFields: (staticFields: StaticFields) => void;
8
- increment: (counters: Counters) => void;
9
- event: PerformanceEvent;
10
- measurement: IPerformanceMeasurement;
11
- };
12
- export interface IPerformanceClient {
13
- startMeasurement(measureName: PerformanceEvents, correlationId?: string): InProgressPerformanceEvent;
14
- endMeasurement(event: PerformanceEvent): PerformanceEvent | null;
15
- discardMeasurements(correlationId: string): void;
16
- addStaticFields(staticFields: StaticFields, correlationId: string): void;
17
- removePerformanceCallback(callbackId: string): boolean;
18
- addPerformanceCallback(callback: PerformanceCallbackFunction): string;
19
- emitEvents(events: PerformanceEvent[], correlationId: string): void;
20
- startPerformanceMeasurement(measureName: string, correlationId: string): IPerformanceMeasurement;
21
- generateId(): string;
22
- calculateQueuedTime(preQueueTime: number, currentTime: number): number;
23
- addQueueMeasurement(eventName: PerformanceEvents, correlationId?: string, queueTime?: number, manuallyCompleted?: boolean): void;
24
- setPreQueueTime(eventName: PerformanceEvents, correlationId?: string): void;
25
- }
26
- /**
27
- * Queue measurement type
28
- */
29
- export type QueueMeasurement = {
30
- /**
31
- * Name of performance event
32
- */
33
- eventName: PerformanceEvents;
34
- /**
35
- * Time spent in JS queue
36
- */
37
- queueTime: number;
38
- /**
39
- * Incomplete pre-queue events are instrumentation bugs that should be fixed.
40
- */
41
- manuallyCompleted?: boolean;
42
- };
1
+ import { Counters, PerformanceEvent, PerformanceEvents, StaticFields } from "./PerformanceEvent";
2
+ import { IPerformanceMeasurement } from "./IPerformanceMeasurement";
3
+ export type PerformanceCallbackFunction = (events: PerformanceEvent[]) => void;
4
+ export type InProgressPerformanceEvent = {
5
+ endMeasurement: (event?: Partial<PerformanceEvent>) => PerformanceEvent | null;
6
+ discardMeasurement: () => void;
7
+ addStaticFields: (staticFields: StaticFields) => void;
8
+ increment: (counters: Counters) => void;
9
+ event: PerformanceEvent;
10
+ measurement: IPerformanceMeasurement;
11
+ };
12
+ export interface IPerformanceClient {
13
+ startMeasurement(measureName: PerformanceEvents, correlationId?: string): InProgressPerformanceEvent;
14
+ endMeasurement(event: PerformanceEvent): PerformanceEvent | null;
15
+ discardMeasurements(correlationId: string): void;
16
+ addStaticFields(staticFields: StaticFields, correlationId: string): void;
17
+ removePerformanceCallback(callbackId: string): boolean;
18
+ addPerformanceCallback(callback: PerformanceCallbackFunction): string;
19
+ emitEvents(events: PerformanceEvent[], correlationId: string): void;
20
+ startPerformanceMeasurement(measureName: string, correlationId: string): IPerformanceMeasurement;
21
+ generateId(): string;
22
+ calculateQueuedTime(preQueueTime: number, currentTime: number): number;
23
+ addQueueMeasurement(eventName: PerformanceEvents, correlationId?: string, queueTime?: number, manuallyCompleted?: boolean): void;
24
+ setPreQueueTime(eventName: PerformanceEvents, correlationId?: string): void;
25
+ }
26
+ /**
27
+ * Queue measurement type
28
+ */
29
+ export type QueueMeasurement = {
30
+ /**
31
+ * Name of performance event
32
+ */
33
+ eventName: PerformanceEvents;
34
+ /**
35
+ * Time spent in JS queue
36
+ */
37
+ queueTime: number;
38
+ /**
39
+ * Incomplete pre-queue events are instrumentation bugs that should be fixed.
40
+ */
41
+ manuallyCompleted?: boolean;
42
+ };
43
43
  //# sourceMappingURL=IPerformanceClient.d.ts.map
@@ -1,6 +1,6 @@
1
- export interface IPerformanceMeasurement {
2
- startMeasurement(): void;
3
- endMeasurement(): void;
4
- flushMeasurement(): number | null;
5
- }
1
+ export interface IPerformanceMeasurement {
2
+ startMeasurement(): void;
3
+ endMeasurement(): void;
4
+ flushMeasurement(): number | null;
5
+ }
6
6
  //# sourceMappingURL=IPerformanceMeasurement.d.ts.map
@@ -1,190 +1,190 @@
1
- import { ApplicationTelemetry } from "../../config/ClientConfiguration";
2
- import { Logger } from "../../logger/Logger";
3
- import { InProgressPerformanceEvent, IPerformanceClient, PerformanceCallbackFunction, QueueMeasurement } from "./IPerformanceClient";
4
- import { IPerformanceMeasurement } from "./IPerformanceMeasurement";
5
- import { Counters, PerformanceEvent, PerformanceEvents, StaticFields } from "./PerformanceEvent";
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
- /**
39
- * Creates an instance of PerformanceClient,
40
- * an abstract class containing core performance telemetry logic.
41
- *
42
- * @constructor
43
- * @param {string} clientId Client ID of the application
44
- * @param {string} authority Authority used by the application
45
- * @param {Logger} logger Logger used by the application
46
- * @param {string} libraryName Name of the library
47
- * @param {string} libraryVersion Version of the library
48
- */
49
- constructor(clientId: string, authority: string, logger: Logger, libraryName: string, libraryVersion: string, applicationTelemetry: ApplicationTelemetry);
50
- /**
51
- * Generates and returns a unique id, typically a guid.
52
- *
53
- * @abstract
54
- * @returns {string}
55
- */
56
- abstract generateId(): string;
57
- /**
58
- * Starts and returns an platform-specific implementation of IPerformanceMeasurement.
59
- * Note: this function can be changed to abstract at the next major version bump.
60
- *
61
- * @param {string} measureName
62
- * @param {string} correlationId
63
- * @returns {IPerformanceMeasurement}
64
- */
65
- startPerformanceMeasurement(measureName: string, // eslint-disable-line @typescript-eslint/no-unused-vars
66
- correlationId: string): IPerformanceMeasurement;
67
- /**
68
- * Sets pre-queue time by correlation Id
69
- *
70
- * @abstract
71
- * @param {PerformanceEvents} eventName
72
- * @param {string} correlationId
73
- * @returns
74
- */
75
- abstract setPreQueueTime(eventName: PerformanceEvents, correlationId?: string): void;
76
- /**
77
- * Get integral fields.
78
- * Override to change the set.
79
- */
80
- getIntFields(): ReadonlySet<string>;
81
- /**
82
- * Gets map of pre-queue times by correlation Id
83
- *
84
- * @param {PerformanceEvents} eventName
85
- * @param {string} correlationId
86
- * @returns {number}
87
- */
88
- getPreQueueTime(eventName: PerformanceEvents, correlationId: string): number | void;
89
- /**
90
- * Calculates the difference between current time and time when function was queued.
91
- * Note: It is possible to have 0 as the queue time if the current time and the queued time was the same.
92
- *
93
- * @param {number} preQueueTime
94
- * @param {number} currentTime
95
- * @returns {number}
96
- */
97
- calculateQueuedTime(preQueueTime: number, currentTime: number): number;
98
- /**
99
- * Adds queue measurement time to QueueMeasurements array for given correlation ID.
100
- *
101
- * @param {PerformanceEvents} eventName
102
- * @param {?string} correlationId
103
- * @param {?number} queueTime
104
- * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements
105
- * @returns
106
- */
107
- addQueueMeasurement(eventName: PerformanceEvents, correlationId?: string, queueTime?: number, manuallyCompleted?: boolean): void;
108
- /**
109
- * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.
110
- *
111
- * @param {PerformanceEvents} measureName
112
- * @param {?string} [correlationId]
113
- * @returns {InProgressPerformanceEvent}
114
- */
115
- startMeasurement(measureName: PerformanceEvents, correlationId?: string): InProgressPerformanceEvent;
116
- /**
117
- * Stops measuring the performance for an operation. Should only be called directly by PerformanceClient classes,
118
- * as consumers should instead use the function returned by startMeasurement.
119
- * Adds a new field named as "[event name]DurationMs" for sub-measurements, completes and emits an event
120
- * otherwise.
121
- *
122
- * @param {PerformanceEvent} event
123
- * @param {IPerformanceMeasurement} measurement
124
- * @returns {(PerformanceEvent | null)}
125
- */
126
- endMeasurement(event: PerformanceEvent, measurement?: IPerformanceMeasurement): PerformanceEvent | null;
127
- /**
128
- * Saves extra information to be emitted when the measurements are flushed
129
- * @param fields
130
- * @param correlationId
131
- */
132
- addStaticFields(fields: StaticFields, correlationId: string): void;
133
- /**
134
- * Increment counters to be emitted when the measurements are flushed
135
- * @param counters {Counters}
136
- * @param correlationId {string} correlation identifier
137
- */
138
- increment(counters: Counters, correlationId: string): void;
139
- /**
140
- * Upserts event into event cache.
141
- * First key is the correlation id, second key is the event id.
142
- * Allows for events to be grouped by correlation id,
143
- * and to easily allow for properties on them to be updated.
144
- *
145
- * @private
146
- * @param {PerformanceEvent} event
147
- */
148
- private cacheEventByCorrelationId;
149
- private getQueueInfo;
150
- /**
151
- * Removes measurements for a given correlation id.
152
- *
153
- * @param {string} correlationId
154
- */
155
- discardMeasurements(correlationId: string): void;
156
- /**
157
- * Removes cache for a given correlation id.
158
- *
159
- * @param {string} correlationId correlation identifier
160
- */
161
- private discardCache;
162
- /**
163
- * Registers a callback function to receive performance events.
164
- *
165
- * @param {PerformanceCallbackFunction} callback
166
- * @returns {string}
167
- */
168
- addPerformanceCallback(callback: PerformanceCallbackFunction): string;
169
- /**
170
- * Removes a callback registered with addPerformanceCallback.
171
- *
172
- * @param {string} callbackId
173
- * @returns {boolean}
174
- */
175
- removePerformanceCallback(callbackId: string): boolean;
176
- /**
177
- * Emits events to all registered callbacks.
178
- *
179
- * @param {PerformanceEvent[]} events
180
- * @param {?string} [correlationId]
181
- */
182
- emitEvents(events: PerformanceEvent[], correlationId: string): void;
183
- /**
184
- * Enforce truncation of integral fields in performance event.
185
- * @param {PerformanceEvent} event performance event to update.
186
- * @param {Set<string>} intFields integral fields.
187
- */
188
- private truncateIntegralFields;
189
- }
1
+ import { ApplicationTelemetry } from "../../config/ClientConfiguration";
2
+ import { Logger } from "../../logger/Logger";
3
+ import { InProgressPerformanceEvent, IPerformanceClient, PerformanceCallbackFunction, QueueMeasurement } from "./IPerformanceClient";
4
+ import { IPerformanceMeasurement } from "./IPerformanceMeasurement";
5
+ import { Counters, PerformanceEvent, PerformanceEvents, StaticFields } from "./PerformanceEvent";
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
+ /**
39
+ * Creates an instance of PerformanceClient,
40
+ * an abstract class containing core performance telemetry logic.
41
+ *
42
+ * @constructor
43
+ * @param {string} clientId Client ID of the application
44
+ * @param {string} authority Authority used by the application
45
+ * @param {Logger} logger Logger used by the application
46
+ * @param {string} libraryName Name of the library
47
+ * @param {string} libraryVersion Version of the library
48
+ */
49
+ constructor(clientId: string, authority: string, logger: Logger, libraryName: string, libraryVersion: string, applicationTelemetry: ApplicationTelemetry);
50
+ /**
51
+ * Generates and returns a unique id, typically a guid.
52
+ *
53
+ * @abstract
54
+ * @returns {string}
55
+ */
56
+ abstract generateId(): string;
57
+ /**
58
+ * Starts and returns an platform-specific implementation of IPerformanceMeasurement.
59
+ * Note: this function can be changed to abstract at the next major version bump.
60
+ *
61
+ * @param {string} measureName
62
+ * @param {string} correlationId
63
+ * @returns {IPerformanceMeasurement}
64
+ */
65
+ startPerformanceMeasurement(measureName: string, // eslint-disable-line @typescript-eslint/no-unused-vars
66
+ correlationId: string): IPerformanceMeasurement;
67
+ /**
68
+ * Sets pre-queue time by correlation Id
69
+ *
70
+ * @abstract
71
+ * @param {PerformanceEvents} eventName
72
+ * @param {string} correlationId
73
+ * @returns
74
+ */
75
+ abstract setPreQueueTime(eventName: PerformanceEvents, correlationId?: string): void;
76
+ /**
77
+ * Get integral fields.
78
+ * Override to change the set.
79
+ */
80
+ getIntFields(): ReadonlySet<string>;
81
+ /**
82
+ * Gets map of pre-queue times by correlation Id
83
+ *
84
+ * @param {PerformanceEvents} eventName
85
+ * @param {string} correlationId
86
+ * @returns {number}
87
+ */
88
+ getPreQueueTime(eventName: PerformanceEvents, correlationId: string): number | void;
89
+ /**
90
+ * Calculates the difference between current time and time when function was queued.
91
+ * Note: It is possible to have 0 as the queue time if the current time and the queued time was the same.
92
+ *
93
+ * @param {number} preQueueTime
94
+ * @param {number} currentTime
95
+ * @returns {number}
96
+ */
97
+ calculateQueuedTime(preQueueTime: number, currentTime: number): number;
98
+ /**
99
+ * Adds queue measurement time to QueueMeasurements array for given correlation ID.
100
+ *
101
+ * @param {PerformanceEvents} eventName
102
+ * @param {?string} correlationId
103
+ * @param {?number} queueTime
104
+ * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements
105
+ * @returns
106
+ */
107
+ addQueueMeasurement(eventName: PerformanceEvents, correlationId?: string, queueTime?: number, manuallyCompleted?: boolean): void;
108
+ /**
109
+ * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.
110
+ *
111
+ * @param {PerformanceEvents} measureName
112
+ * @param {?string} [correlationId]
113
+ * @returns {InProgressPerformanceEvent}
114
+ */
115
+ startMeasurement(measureName: PerformanceEvents, correlationId?: string): InProgressPerformanceEvent;
116
+ /**
117
+ * Stops measuring the performance for an operation. Should only be called directly by PerformanceClient classes,
118
+ * as consumers should instead use the function returned by startMeasurement.
119
+ * Adds a new field named as "[event name]DurationMs" for sub-measurements, completes and emits an event
120
+ * otherwise.
121
+ *
122
+ * @param {PerformanceEvent} event
123
+ * @param {IPerformanceMeasurement} measurement
124
+ * @returns {(PerformanceEvent | null)}
125
+ */
126
+ endMeasurement(event: PerformanceEvent, measurement?: IPerformanceMeasurement): PerformanceEvent | null;
127
+ /**
128
+ * Saves extra information to be emitted when the measurements are flushed
129
+ * @param fields
130
+ * @param correlationId
131
+ */
132
+ addStaticFields(fields: StaticFields, correlationId: string): void;
133
+ /**
134
+ * Increment counters to be emitted when the measurements are flushed
135
+ * @param counters {Counters}
136
+ * @param correlationId {string} correlation identifier
137
+ */
138
+ increment(counters: Counters, correlationId: string): void;
139
+ /**
140
+ * Upserts event into event cache.
141
+ * First key is the correlation id, second key is the event id.
142
+ * Allows for events to be grouped by correlation id,
143
+ * and to easily allow for properties on them to be updated.
144
+ *
145
+ * @private
146
+ * @param {PerformanceEvent} event
147
+ */
148
+ private cacheEventByCorrelationId;
149
+ private getQueueInfo;
150
+ /**
151
+ * Removes measurements for a given correlation id.
152
+ *
153
+ * @param {string} correlationId
154
+ */
155
+ discardMeasurements(correlationId: string): void;
156
+ /**
157
+ * Removes cache for a given correlation id.
158
+ *
159
+ * @param {string} correlationId correlation identifier
160
+ */
161
+ private discardCache;
162
+ /**
163
+ * Registers a callback function to receive performance events.
164
+ *
165
+ * @param {PerformanceCallbackFunction} callback
166
+ * @returns {string}
167
+ */
168
+ addPerformanceCallback(callback: PerformanceCallbackFunction): string;
169
+ /**
170
+ * Removes a callback registered with addPerformanceCallback.
171
+ *
172
+ * @param {string} callbackId
173
+ * @returns {boolean}
174
+ */
175
+ removePerformanceCallback(callbackId: string): boolean;
176
+ /**
177
+ * Emits events to all registered callbacks.
178
+ *
179
+ * @param {PerformanceEvent[]} events
180
+ * @param {?string} [correlationId]
181
+ */
182
+ emitEvents(events: PerformanceEvent[], correlationId: string): void;
183
+ /**
184
+ * Enforce truncation of integral fields in performance event.
185
+ * @param {PerformanceEvent} event performance event to update.
186
+ * @param {Set<string>} intFields integral fields.
187
+ */
188
+ private truncateIntegralFields;
189
+ }
190
190
  //# sourceMappingURL=PerformanceClient.d.ts.map