@azure/msal-common 14.0.0-alpha.1 → 14.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) 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 +9 -8
  7. package/dist/account/CcsCredential.d.ts.map +1 -1
  8. package/dist/account/CcsCredential.js +9 -10
  9. package/dist/account/CcsCredential.js.map +1 -1
  10. package/dist/account/ClientCredentials.d.ts +14 -14
  11. package/dist/account/ClientInfo.d.ts +19 -19
  12. package/dist/account/ClientInfo.js +37 -37
  13. package/dist/account/DecodedAuthToken.d.ts +8 -8
  14. package/dist/account/TokenClaims.d.ts +65 -65
  15. package/dist/authority/Authority.d.ts +228 -215
  16. package/dist/authority/Authority.d.ts.map +1 -1
  17. package/dist/authority/Authority.js +716 -682
  18. package/dist/authority/Authority.js.map +1 -1
  19. package/dist/authority/AuthorityFactory.d.ts +30 -30
  20. package/dist/authority/AuthorityFactory.js +47 -47
  21. package/dist/authority/AuthorityMetadata.d.ts +622 -622
  22. package/dist/authority/AuthorityMetadata.js +876 -876
  23. package/dist/authority/AuthorityOptions.d.ts +19 -18
  24. package/dist/authority/AuthorityOptions.d.ts.map +1 -1
  25. package/dist/authority/AuthorityOptions.js +19 -20
  26. package/dist/authority/AuthorityOptions.js.map +1 -1
  27. package/dist/authority/AuthorityType.d.ts +10 -9
  28. package/dist/authority/AuthorityType.d.ts.map +1 -1
  29. package/dist/authority/AuthorityType.js +14 -15
  30. package/dist/authority/AuthorityType.js.map +1 -1
  31. package/dist/authority/AzureRegion.d.ts +1 -1
  32. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  33. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  34. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  35. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js +8 -8
  36. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  37. package/dist/authority/CloudInstanceDiscoveryResponse.js +8 -8
  38. package/dist/authority/ImdsOptions.d.ts +5 -5
  39. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  40. package/dist/authority/OpenIdConfigResponse.js +10 -10
  41. package/dist/authority/ProtocolMode.d.ts +8 -7
  42. package/dist/authority/ProtocolMode.d.ts.map +1 -1
  43. package/dist/authority/ProtocolMode.js +12 -13
  44. package/dist/authority/ProtocolMode.js.map +1 -1
  45. package/dist/authority/RegionDiscovery.d.ts +30 -30
  46. package/dist/authority/RegionDiscovery.js +108 -108
  47. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  48. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  49. package/dist/cache/CacheManager.d.ts +443 -443
  50. package/dist/cache/CacheManager.js +1011 -1011
  51. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  52. package/dist/cache/entities/AccessTokenEntity.js +111 -111
  53. package/dist/cache/entities/AccountEntity.d.ts +99 -99
  54. package/dist/cache/entities/AccountEntity.js +248 -248
  55. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  56. package/dist/cache/entities/AppMetadataEntity.js +66 -66
  57. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +47 -47
  58. package/dist/cache/entities/AuthorityMetadataEntity.js +77 -77
  59. package/dist/cache/entities/CacheRecord.d.ts +13 -13
  60. package/dist/cache/entities/CacheRecord.js +13 -13
  61. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  62. package/dist/cache/entities/CredentialEntity.js +136 -136
  63. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  64. package/dist/cache/entities/IdTokenEntity.js +56 -56
  65. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  66. package/dist/cache/entities/RefreshTokenEntity.js +59 -59
  67. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  68. package/dist/cache/entities/ServerTelemetryEntity.js +27 -27
  69. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  70. package/dist/cache/entities/ThrottlingEntity.js +23 -23
  71. package/dist/cache/interface/ICacheManager.d.ts +165 -165
  72. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  73. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  74. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  75. package/dist/cache/persistence/TokenCacheContext.js +25 -25
  76. package/dist/cache/utils/CacheTypes.d.ts +62 -62
  77. package/dist/client/AuthorizationCodeClient.d.ts +71 -71
  78. package/dist/client/AuthorizationCodeClient.js +433 -433
  79. package/dist/client/BaseClient.d.ts +50 -50
  80. package/dist/client/BaseClient.js +92 -92
  81. package/dist/client/RefreshTokenClient.d.ts +34 -34
  82. package/dist/client/RefreshTokenClient.js +239 -239
  83. package/dist/client/SilentFlowClient.d.ts +24 -24
  84. package/dist/client/SilentFlowClient.js +94 -94
  85. package/dist/config/AppTokenProvider.d.ts +38 -38
  86. package/dist/config/ClientConfiguration.d.ts +133 -133
  87. package/dist/config/ClientConfiguration.js +88 -88
  88. package/dist/crypto/ICrypto.d.ts +62 -62
  89. package/dist/crypto/ICrypto.js +42 -42
  90. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  91. package/dist/crypto/JoseHeader.d.ts +21 -21
  92. package/dist/crypto/JoseHeader.js +36 -36
  93. package/dist/crypto/PopTokenGenerator.d.ts +58 -57
  94. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  95. package/dist/crypto/PopTokenGenerator.js +82 -83
  96. package/dist/crypto/PopTokenGenerator.js.map +1 -1
  97. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  98. package/dist/error/AuthError.d.ts +47 -47
  99. package/dist/error/AuthError.js +51 -51
  100. package/dist/error/ClientAuthError.d.ts +412 -412
  101. package/dist/error/ClientAuthError.js +519 -519
  102. package/dist/error/ClientConfigurationError.d.ts +206 -198
  103. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  104. package/dist/error/ClientConfigurationError.js +259 -249
  105. package/dist/error/ClientConfigurationError.js.map +1 -1
  106. package/dist/error/InteractionRequiredAuthError.d.ts +59 -59
  107. package/dist/error/InteractionRequiredAuthError.js +78 -78
  108. package/dist/error/JoseHeaderError.d.ts +28 -28
  109. package/dist/error/JoseHeaderError.js +39 -39
  110. package/dist/error/ServerError.d.ts +7 -7
  111. package/dist/error/ServerError.js +14 -14
  112. package/dist/index.cjs.js +8826 -8813
  113. package/dist/index.cjs.js.map +1 -1
  114. package/dist/index.d.ts +93 -93
  115. package/dist/index.js +1 -1
  116. package/dist/logger/Logger.d.ts +95 -95
  117. package/dist/logger/Logger.js +197 -197
  118. package/dist/network/INetworkModule.d.ts +29 -29
  119. package/dist/network/INetworkModule.js +14 -14
  120. package/dist/network/NetworkManager.d.ts +32 -32
  121. package/dist/network/NetworkManager.js +33 -33
  122. package/dist/network/RequestThumbprint.d.ts +16 -16
  123. package/dist/network/ThrottlingUtils.d.ts +41 -41
  124. package/dist/network/ThrottlingUtils.js +94 -94
  125. package/dist/packageMetadata.d.ts +2 -2
  126. package/dist/packageMetadata.d.ts.map +1 -1
  127. package/dist/packageMetadata.js +4 -4
  128. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  129. package/dist/request/AuthenticationHeaderParser.js +55 -55
  130. package/dist/request/BaseAuthRequest.d.ts +37 -37
  131. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  132. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  133. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  134. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  135. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  136. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  137. package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
  138. package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
  139. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  140. package/dist/request/NativeRequest.d.ts +19 -19
  141. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  142. package/dist/request/RequestParameterBuilder.d.ts +216 -216
  143. package/dist/request/RequestParameterBuilder.js +374 -374
  144. package/dist/request/RequestValidator.d.ts +33 -33
  145. package/dist/request/RequestValidator.js +82 -83
  146. package/dist/request/RequestValidator.js.map +1 -1
  147. package/dist/request/ScopeSet.d.ts +88 -88
  148. package/dist/request/ScopeSet.js +197 -197
  149. package/dist/response/AuthenticationResult.d.ts +39 -39
  150. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  151. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  152. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  153. package/dist/response/IMDSBadResponse.d.ts +4 -4
  154. package/dist/response/ResponseHandler.d.ts +72 -72
  155. package/dist/response/ResponseHandler.js +300 -300
  156. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  157. package/dist/response/ServerAuthorizationTokenResponse.d.ts +44 -44
  158. package/dist/telemetry/performance/IPerformanceClient.d.ts +42 -42
  159. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  160. package/dist/telemetry/performance/PerformanceClient.d.ts +189 -189
  161. package/dist/telemetry/performance/PerformanceClient.js +406 -406
  162. package/dist/telemetry/performance/PerformanceEvent.d.ts +441 -439
  163. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  164. package/dist/telemetry/performance/PerformanceEvent.js +225 -227
  165. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -1
  166. package/dist/telemetry/performance/StubPerformanceClient.d.ts +15 -19
  167. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
  168. package/dist/telemetry/performance/StubPerformanceClient.js +22 -36
  169. package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -1
  170. package/dist/telemetry/server/ServerTelemetryManager.d.ts +65 -65
  171. package/dist/telemetry/server/ServerTelemetryManager.js +196 -196
  172. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  173. package/dist/url/IUri.d.ts +12 -12
  174. package/dist/url/UrlString.d.ts +70 -70
  175. package/dist/url/UrlString.js +242 -242
  176. package/dist/utils/Constants.d.ts +345 -331
  177. package/dist/utils/Constants.d.ts.map +1 -1
  178. package/dist/utils/Constants.js +353 -373
  179. package/dist/utils/Constants.js.map +1 -1
  180. package/dist/utils/MsalTypes.d.ts +6 -6
  181. package/dist/utils/ProtocolUtils.d.ts +42 -42
  182. package/dist/utils/ProtocolUtils.js +71 -71
  183. package/dist/utils/StringUtils.d.ts +53 -53
  184. package/dist/utils/StringUtils.js +124 -124
  185. package/dist/utils/TimeUtils.d.ts +27 -27
  186. package/dist/utils/TimeUtils.js +45 -45
  187. package/package.json +86 -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