@azure/msal-common 16.0.1 → 16.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account/AccountInfo.mjs +1 -1
- package/dist/account/AuthToken.mjs +1 -1
- package/dist/account/CcsCredential.mjs +1 -1
- package/dist/account/ClientInfo.mjs +1 -1
- package/dist/account/TokenClaims.mjs +1 -1
- package/dist/authority/Authority.mjs +1 -1
- package/dist/authority/AuthorityFactory.mjs +1 -1
- package/dist/authority/AuthorityMetadata.mjs +1 -1
- package/dist/authority/AuthorityOptions.mjs +1 -1
- package/dist/authority/AuthorityType.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
- package/dist/authority/OpenIdConfigResponse.mjs +1 -1
- package/dist/authority/ProtocolMode.mjs +1 -1
- package/dist/authority/RegionDiscovery.mjs +1 -1
- package/dist/cache/CacheManager.d.ts +2 -2
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.mjs +3 -3
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/entities/AccountEntity.d.ts +2 -0
- package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
- package/dist/cache/interface/ICacheManager.d.ts +2 -2
- package/dist/cache/interface/ICacheManager.d.ts.map +1 -1
- package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
- package/dist/cache/utils/AccountEntityUtils.d.ts.map +1 -1
- package/dist/cache/utils/AccountEntityUtils.mjs +18 -3
- package/dist/cache/utils/AccountEntityUtils.mjs.map +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +1 -1
- package/dist/client/AuthorizationCodeClient.d.ts +1 -1
- package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +3 -3
- package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
- package/dist/client/RefreshTokenClient.d.ts +2 -2
- package/dist/client/RefreshTokenClient.d.ts.map +1 -1
- package/dist/client/RefreshTokenClient.mjs +9 -9
- package/dist/client/RefreshTokenClient.mjs.map +1 -1
- package/dist/client/SilentFlowClient.mjs +1 -1
- package/dist/config/ClientConfiguration.mjs +1 -1
- package/dist/constants/AADServerParamKeys.mjs +1 -1
- package/dist/crypto/ICrypto.mjs +1 -1
- package/dist/crypto/JoseHeader.mjs +1 -1
- package/dist/crypto/PopTokenGenerator.mjs +1 -1
- package/dist/error/AuthError.mjs +1 -1
- package/dist/error/AuthErrorCodes.mjs +1 -1
- package/dist/error/CacheError.mjs +1 -1
- package/dist/error/CacheErrorCodes.mjs +1 -1
- package/dist/error/ClientAuthError.mjs +1 -1
- package/dist/error/ClientAuthErrorCodes.mjs +1 -1
- package/dist/error/ClientConfigurationError.mjs +1 -1
- package/dist/error/ClientConfigurationErrorCodes.mjs +1 -1
- package/dist/error/InteractionRequiredAuthError.mjs +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +1 -1
- package/dist/error/JoseHeaderError.mjs +1 -1
- package/dist/error/JoseHeaderErrorCodes.mjs +1 -1
- package/dist/error/NetworkError.mjs +1 -1
- package/dist/error/PlatformBrokerError.mjs +1 -1
- package/dist/error/ServerError.mjs +1 -1
- package/dist/index-node.mjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/logger/Logger.mjs +1 -1
- package/dist/network/INetworkModule.mjs +1 -1
- package/dist/network/RequestThumbprint.mjs +1 -1
- package/dist/network/ThrottlingUtils.mjs +1 -1
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.mjs +2 -2
- package/dist/protocol/Authorize.mjs +1 -1
- package/dist/protocol/Token.mjs +1 -1
- package/dist/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist/request/RequestParameterBuilder.mjs +1 -1
- package/dist/request/ScopeSet.mjs +1 -1
- package/dist/response/ResponseHandler.d.ts +1 -1
- package/dist/response/ResponseHandler.d.ts.map +1 -1
- package/dist/response/ResponseHandler.mjs +11 -6
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/telemetry/performance/PerformanceClient.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvent.d.ts +3 -0
- package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
- package/dist/telemetry/performance/PerformanceEvents.mjs +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.mjs +1 -1
- package/dist/url/UrlString.mjs +1 -1
- package/dist/utils/ClientAssertionUtils.mjs +1 -1
- package/dist/utils/Constants.mjs +1 -1
- package/dist/utils/FunctionWrappers.mjs +1 -1
- package/dist/utils/ProtocolUtils.mjs +1 -1
- package/dist/utils/StringUtils.mjs +1 -1
- package/dist/utils/TimeUtils.mjs +1 -1
- package/dist/utils/UrlUtils.mjs +1 -1
- package/dist-browser/account/AccountInfo.d.ts +71 -0
- package/dist-browser/account/AccountInfo.d.ts.map +1 -0
- package/dist-browser/account/AccountInfo.mjs +85 -0
- package/dist-browser/account/AccountInfo.mjs.map +1 -0
- package/dist-browser/account/AuthToken.d.ts +24 -0
- package/dist-browser/account/AuthToken.d.ts.map +1 -0
- package/dist-browser/account/AuthToken.mjs +85 -0
- package/dist-browser/account/AuthToken.mjs.map +1 -0
- package/dist-browser/account/CcsCredential.d.ts +10 -0
- package/dist-browser/account/CcsCredential.d.ts.map +1 -0
- package/dist-browser/account/CcsCredential.mjs +13 -0
- package/dist-browser/account/CcsCredential.mjs.map +1 -0
- package/dist-browser/account/ClientCredentials.d.ts +20 -0
- package/dist-browser/account/ClientCredentials.d.ts.map +1 -0
- package/dist-browser/account/ClientInfo.d.ts +23 -0
- package/dist-browser/account/ClientInfo.d.ts.map +1 -0
- package/dist-browser/account/ClientInfo.mjs +44 -0
- package/dist-browser/account/ClientInfo.mjs.map +1 -0
- package/dist-browser/account/TokenClaims.d.ts +88 -0
- package/dist-browser/account/TokenClaims.d.ts.map +1 -0
- package/dist-browser/account/TokenClaims.mjs +25 -0
- package/dist-browser/account/TokenClaims.mjs.map +1 -0
- package/dist-browser/authority/Authority.d.ts +255 -0
- package/dist-browser/authority/Authority.d.ts.map +1 -0
- package/dist-browser/authority/Authority.mjs +841 -0
- package/dist-browser/authority/Authority.mjs.map +1 -0
- package/dist-browser/authority/AuthorityFactory.d.ts +23 -0
- package/dist-browser/authority/AuthorityFactory.d.ts.map +1 -0
- package/dist-browser/authority/AuthorityFactory.mjs +42 -0
- package/dist-browser/authority/AuthorityFactory.mjs.map +1 -0
- package/dist-browser/authority/AuthorityMetadata.d.ts +44 -0
- package/dist-browser/authority/AuthorityMetadata.d.ts.map +1 -0
- package/dist-browser/authority/AuthorityMetadata.mjs +146 -0
- package/dist-browser/authority/AuthorityMetadata.mjs.map +1 -0
- package/dist-browser/authority/AuthorityOptions.d.ts +27 -0
- package/dist-browser/authority/AuthorityOptions.d.ts.map +1 -0
- package/dist-browser/authority/AuthorityOptions.mjs +23 -0
- package/dist-browser/authority/AuthorityOptions.mjs.map +1 -0
- package/dist-browser/authority/AuthorityType.d.ts +11 -0
- package/dist-browser/authority/AuthorityType.d.ts.map +1 -0
- package/dist-browser/authority/AuthorityType.mjs +18 -0
- package/dist-browser/authority/AuthorityType.mjs.map +1 -0
- package/dist-browser/authority/AzureRegion.d.ts +2 -0
- package/dist-browser/authority/AzureRegion.d.ts.map +1 -0
- package/dist-browser/authority/AzureRegionConfiguration.d.ts +6 -0
- package/dist-browser/authority/AzureRegionConfiguration.d.ts.map +1 -0
- package/dist-browser/authority/CloudDiscoveryMetadata.d.ts +6 -0
- package/dist-browser/authority/CloudDiscoveryMetadata.d.ts.map +1 -0
- package/dist-browser/authority/CloudInstanceDiscoveryErrorResponse.d.ts +14 -0
- package/dist-browser/authority/CloudInstanceDiscoveryErrorResponse.d.ts.map +1 -0
- package/dist-browser/authority/CloudInstanceDiscoveryErrorResponse.mjs +13 -0
- package/dist-browser/authority/CloudInstanceDiscoveryErrorResponse.mjs.map +1 -0
- package/dist-browser/authority/CloudInstanceDiscoveryResponse.d.ts +10 -0
- package/dist-browser/authority/CloudInstanceDiscoveryResponse.d.ts.map +1 -0
- package/dist-browser/authority/CloudInstanceDiscoveryResponse.mjs +13 -0
- package/dist-browser/authority/CloudInstanceDiscoveryResponse.mjs.map +1 -0
- package/dist-browser/authority/ImdsOptions.d.ts +6 -0
- package/dist-browser/authority/ImdsOptions.d.ts.map +1 -0
- package/dist-browser/authority/OIDCOptions.d.ts +9 -0
- package/dist-browser/authority/OIDCOptions.d.ts.map +1 -0
- package/dist-browser/authority/OpenIdConfigResponse.d.ts +12 -0
- package/dist-browser/authority/OpenIdConfigResponse.d.ts.map +1 -0
- package/dist-browser/authority/OpenIdConfigResponse.mjs +15 -0
- package/dist-browser/authority/OpenIdConfigResponse.mjs.map +1 -0
- package/dist-browser/authority/ProtocolMode.d.ts +20 -0
- package/dist-browser/authority/ProtocolMode.d.ts.map +1 -0
- package/dist-browser/authority/ProtocolMode.mjs +27 -0
- package/dist-browser/authority/ProtocolMode.mjs.map +1 -0
- package/dist-browser/authority/RegionDiscovery.d.ts +33 -0
- package/dist-browser/authority/RegionDiscovery.d.ts.map +1 -0
- package/dist-browser/authority/RegionDiscovery.mjs +111 -0
- package/dist-browser/authority/RegionDiscovery.mjs.map +1 -0
- package/dist-browser/authority/RegionDiscoveryMetadata.d.ts +7 -0
- package/dist-browser/authority/RegionDiscoveryMetadata.d.ts.map +1 -0
- package/dist-browser/broker/nativeBroker/INativeBrokerPlugin.d.ts +17 -0
- package/dist-browser/broker/nativeBroker/INativeBrokerPlugin.d.ts.map +1 -0
- package/dist-browser/cache/CacheManager.d.ts +478 -0
- package/dist-browser/cache/CacheManager.d.ts.map +1 -0
- package/dist-browser/cache/CacheManager.mjs +1111 -0
- package/dist-browser/cache/CacheManager.mjs.map +1 -0
- package/dist-browser/cache/entities/AccessTokenEntity.d.ts +22 -0
- package/dist-browser/cache/entities/AccessTokenEntity.d.ts.map +1 -0
- package/dist-browser/cache/entities/AccountEntity.d.ts +47 -0
- package/dist-browser/cache/entities/AccountEntity.d.ts.map +1 -0
- package/dist-browser/cache/entities/AppMetadataEntity.d.ts +12 -0
- package/dist-browser/cache/entities/AppMetadataEntity.d.ts.map +1 -0
- package/dist-browser/cache/entities/AuthorityMetadataEntity.d.ts +16 -0
- package/dist-browser/cache/entities/AuthorityMetadataEntity.d.ts.map +1 -0
- package/dist-browser/cache/entities/CacheRecord.d.ts +14 -0
- package/dist-browser/cache/entities/CacheRecord.d.ts.map +1 -0
- package/dist-browser/cache/entities/CredentialEntity.d.ts +31 -0
- package/dist-browser/cache/entities/CredentialEntity.d.ts.map +1 -0
- package/dist-browser/cache/entities/IdTokenEntity.d.ts +9 -0
- package/dist-browser/cache/entities/IdTokenEntity.d.ts.map +1 -0
- package/dist-browser/cache/entities/RefreshTokenEntity.d.ts +8 -0
- package/dist-browser/cache/entities/RefreshTokenEntity.d.ts.map +1 -0
- package/dist-browser/cache/entities/ServerTelemetryEntity.d.ts +7 -0
- package/dist-browser/cache/entities/ServerTelemetryEntity.d.ts.map +1 -0
- package/dist-browser/cache/entities/ThrottlingEntity.d.ts +8 -0
- package/dist-browser/cache/entities/ThrottlingEntity.d.ts.map +1 -0
- package/dist-browser/cache/interface/ICacheManager.d.ts +188 -0
- package/dist-browser/cache/interface/ICacheManager.d.ts.map +1 -0
- package/dist-browser/cache/interface/ICachePlugin.d.ts +6 -0
- package/dist-browser/cache/interface/ICachePlugin.d.ts.map +1 -0
- package/dist-browser/cache/interface/ISerializableTokenCache.d.ts +5 -0
- package/dist-browser/cache/interface/ISerializableTokenCache.d.ts.map +1 -0
- package/dist-browser/cache/persistence/TokenCacheContext.d.ts +24 -0
- package/dist-browser/cache/persistence/TokenCacheContext.d.ts.map +1 -0
- package/dist-browser/cache/persistence/TokenCacheContext.mjs +30 -0
- package/dist-browser/cache/persistence/TokenCacheContext.mjs.map +1 -0
- package/dist-browser/cache/utils/AccountEntityUtils.d.ts +53 -0
- package/dist-browser/cache/utils/AccountEntityUtils.d.ts.map +1 -0
- package/dist-browser/cache/utils/AccountEntityUtils.mjs +207 -0
- package/dist-browser/cache/utils/AccountEntityUtils.mjs.map +1 -0
- package/dist-browser/cache/utils/CacheHelpers.d.ts +86 -0
- package/dist-browser/cache/utils/CacheHelpers.d.ts.map +1 -0
- package/dist-browser/cache/utils/CacheHelpers.mjs +267 -0
- package/dist-browser/cache/utils/CacheHelpers.mjs.map +1 -0
- package/dist-browser/cache/utils/CacheTypes.d.ts +69 -0
- package/dist-browser/cache/utils/CacheTypes.d.ts.map +1 -0
- package/dist-browser/client/AuthorizationCodeClient.d.ts +64 -0
- package/dist-browser/client/AuthorizationCodeClient.d.ts.map +1 -0
- package/dist-browser/client/AuthorizationCodeClient.mjs +287 -0
- package/dist-browser/client/AuthorizationCodeClient.mjs.map +1 -0
- package/dist-browser/client/RefreshTokenClient.d.ts +49 -0
- package/dist-browser/client/RefreshTokenClient.d.ts.map +1 -0
- package/dist-browser/client/RefreshTokenClient.mjs +254 -0
- package/dist-browser/client/RefreshTokenClient.mjs.map +1 -0
- package/dist-browser/client/SilentFlowClient.d.ts +35 -0
- package/dist-browser/client/SilentFlowClient.d.ts.map +1 -0
- package/dist-browser/client/SilentFlowClient.mjs +125 -0
- package/dist-browser/client/SilentFlowClient.mjs.map +1 -0
- package/dist-browser/config/AppTokenProvider.d.ts +39 -0
- package/dist-browser/config/AppTokenProvider.d.ts.map +1 -0
- package/dist-browser/config/ClientConfiguration.d.ts +143 -0
- package/dist-browser/config/ClientConfiguration.d.ts.map +1 -0
- package/dist-browser/config/ClientConfiguration.mjs +107 -0
- package/dist-browser/config/ClientConfiguration.mjs.map +1 -0
- package/dist-browser/constants/AADServerParamKeys.d.ts +59 -0
- package/dist-browser/constants/AADServerParamKeys.d.ts.map +1 -0
- package/dist-browser/constants/AADServerParamKeys.mjs +67 -0
- package/dist-browser/constants/AADServerParamKeys.mjs.map +1 -0
- package/dist-browser/crypto/ICrypto.d.ts +71 -0
- package/dist-browser/crypto/ICrypto.d.ts.map +1 -0
- package/dist-browser/crypto/ICrypto.mjs +44 -0
- package/dist-browser/crypto/ICrypto.mjs.map +1 -0
- package/dist-browser/crypto/IGuidGenerator.d.ts +5 -0
- package/dist-browser/crypto/IGuidGenerator.d.ts.map +1 -0
- package/dist-browser/crypto/JoseHeader.d.ts +23 -0
- package/dist-browser/crypto/JoseHeader.d.ts.map +1 -0
- package/dist-browser/crypto/JoseHeader.mjs +46 -0
- package/dist-browser/crypto/JoseHeader.mjs.map +1 -0
- package/dist-browser/crypto/PopTokenGenerator.d.ts +60 -0
- package/dist-browser/crypto/PopTokenGenerator.d.ts.map +1 -0
- package/dist-browser/crypto/PopTokenGenerator.mjs +87 -0
- package/dist-browser/crypto/PopTokenGenerator.mjs.map +1 -0
- package/dist-browser/crypto/SignedHttpRequest.d.ts +16 -0
- package/dist-browser/crypto/SignedHttpRequest.d.ts.map +1 -0
- package/dist-browser/error/AuthError.d.ts +33 -0
- package/dist-browser/error/AuthError.d.ts.map +1 -0
- package/dist-browser/error/AuthError.mjs +34 -0
- package/dist-browser/error/AuthError.mjs.map +1 -0
- package/dist-browser/error/AuthErrorCodes.d.ts +6 -0
- package/dist-browser/error/AuthErrorCodes.d.ts.map +1 -0
- package/dist-browser/error/AuthErrorCodes.mjs +14 -0
- package/dist-browser/error/AuthErrorCodes.mjs.map +1 -0
- package/dist-browser/error/CacheError.d.ts +23 -0
- package/dist-browser/error/CacheError.d.ts.map +1 -0
- package/dist-browser/error/CacheError.mjs +45 -0
- package/dist-browser/error/CacheError.mjs.map +1 -0
- package/dist-browser/error/CacheErrorCodes.d.ts +3 -0
- package/dist-browser/error/CacheErrorCodes.d.ts.map +1 -0
- package/dist-browser/error/CacheErrorCodes.mjs +11 -0
- package/dist-browser/error/CacheErrorCodes.mjs.map +1 -0
- package/dist-browser/error/ClientAuthError.d.ts +14 -0
- package/dist-browser/error/ClientAuthError.d.ts.map +1 -0
- package/dist-browser/error/ClientAuthError.mjs +27 -0
- package/dist-browser/error/ClientAuthError.mjs.map +1 -0
- package/dist-browser/error/ClientAuthErrorCodes.d.ts +38 -0
- package/dist-browser/error/ClientAuthErrorCodes.d.ts.map +1 -0
- package/dist-browser/error/ClientAuthErrorCodes.mjs +46 -0
- package/dist-browser/error/ClientAuthErrorCodes.mjs.map +1 -0
- package/dist-browser/error/ClientConfigurationError.d.ts +11 -0
- package/dist-browser/error/ClientConfigurationError.d.ts.map +1 -0
- package/dist-browser/error/ClientConfigurationError.mjs +24 -0
- package/dist-browser/error/ClientConfigurationError.mjs.map +1 -0
- package/dist-browser/error/ClientConfigurationErrorCodes.d.ts +23 -0
- package/dist-browser/error/ClientConfigurationErrorCodes.d.ts.map +1 -0
- package/dist-browser/error/ClientConfigurationErrorCodes.mjs +31 -0
- package/dist-browser/error/ClientConfigurationErrorCodes.mjs.map +1 -0
- package/dist-browser/error/InteractionRequiredAuthError.d.ts +48 -0
- package/dist-browser/error/InteractionRequiredAuthError.d.ts.map +1 -0
- package/dist-browser/error/InteractionRequiredAuthError.mjs +73 -0
- package/dist-browser/error/InteractionRequiredAuthError.mjs.map +1 -0
- package/dist-browser/error/InteractionRequiredAuthErrorCodes.d.ts +9 -0
- package/dist-browser/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -0
- package/dist-browser/error/InteractionRequiredAuthErrorCodes.mjs +19 -0
- package/dist-browser/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -0
- package/dist-browser/error/JoseHeaderError.d.ts +12 -0
- package/dist-browser/error/JoseHeaderError.d.ts.map +1 -0
- package/dist-browser/error/JoseHeaderError.mjs +25 -0
- package/dist-browser/error/JoseHeaderError.mjs.map +1 -0
- package/dist-browser/error/JoseHeaderErrorCodes.d.ts +3 -0
- package/dist-browser/error/JoseHeaderErrorCodes.d.ts.map +1 -0
- package/dist-browser/error/JoseHeaderErrorCodes.mjs +11 -0
- package/dist-browser/error/JoseHeaderErrorCodes.mjs.map +1 -0
- package/dist-browser/error/NetworkError.d.ts +19 -0
- package/dist-browser/error/NetworkError.d.ts.map +1 -0
- package/dist-browser/error/NetworkError.mjs +35 -0
- package/dist-browser/error/NetworkError.mjs.map +1 -0
- package/dist-browser/error/PlatformBrokerError.d.ts +16 -0
- package/dist-browser/error/PlatformBrokerError.d.ts.map +1 -0
- package/dist-browser/error/PlatformBrokerError.mjs +49 -0
- package/dist-browser/error/PlatformBrokerError.mjs.map +1 -0
- package/dist-browser/error/ServerError.d.ts +16 -0
- package/dist-browser/error/ServerError.d.ts.map +1 -0
- package/dist-browser/error/ServerError.mjs +23 -0
- package/dist-browser/error/ServerError.mjs.map +1 -0
- package/dist-browser/exports-browser-only.d.ts +11 -0
- package/dist-browser/exports-browser-only.d.ts.map +1 -0
- package/dist-browser/exports-common.d.ts +86 -0
- package/dist-browser/exports-common.d.ts.map +1 -0
- package/dist-browser/exports-node-only.d.ts +16 -0
- package/dist-browser/exports-node-only.d.ts.map +1 -0
- package/dist-browser/index-browser.d.ts +7 -0
- package/dist-browser/index-browser.d.ts.map +1 -0
- package/dist-browser/index-browser.mjs +78 -0
- package/dist-browser/index-browser.mjs.map +1 -0
- package/dist-browser/index-node.d.ts +7 -0
- package/dist-browser/index-node.d.ts.map +1 -0
- package/dist-browser/index.d.ts +12 -0
- package/dist-browser/index.d.ts.map +1 -0
- package/dist-browser/index.mjs +82 -0
- package/dist-browser/index.mjs.map +1 -0
- package/dist-browser/log-strings-mapping.json +383 -0
- package/dist-browser/logger/Logger.d.ts +119 -0
- package/dist-browser/logger/Logger.d.ts.map +1 -0
- package/dist-browser/logger/Logger.mjs +278 -0
- package/dist-browser/logger/Logger.mjs.map +1 -0
- package/dist-browser/network/INetworkModule.d.ts +30 -0
- package/dist-browser/network/INetworkModule.d.ts.map +1 -0
- package/dist-browser/network/INetworkModule.mjs +20 -0
- package/dist-browser/network/INetworkModule.mjs.map +1 -0
- package/dist-browser/network/NetworkResponse.d.ts +6 -0
- package/dist-browser/network/NetworkResponse.d.ts.map +1 -0
- package/dist-browser/network/RequestThumbprint.d.ts +22 -0
- package/dist-browser/network/RequestThumbprint.d.ts.map +1 -0
- package/dist-browser/network/RequestThumbprint.mjs +24 -0
- package/dist-browser/network/RequestThumbprint.mjs.map +1 -0
- package/dist-browser/network/ThrottlingUtils.d.ts +43 -0
- package/dist-browser/network/ThrottlingUtils.d.ts.map +1 -0
- package/dist-browser/network/ThrottlingUtils.mjs +92 -0
- package/dist-browser/network/ThrottlingUtils.mjs.map +1 -0
- package/dist-browser/packageMetadata.d.ts +3 -0
- package/dist-browser/packageMetadata.d.ts.map +1 -0
- package/dist-browser/packageMetadata.mjs +8 -0
- package/dist-browser/packageMetadata.mjs.map +1 -0
- package/dist-browser/protocol/Authorize.d.ts +37 -0
- package/dist-browser/protocol/Authorize.d.ts.map +1 -0
- package/dist-browser/protocol/Authorize.mjs +237 -0
- package/dist-browser/protocol/Authorize.mjs.map +1 -0
- package/dist-browser/protocol/Token.d.ts +40 -0
- package/dist-browser/protocol/Token.d.ts.map +1 -0
- package/dist-browser/protocol/Token.mjs +129 -0
- package/dist-browser/protocol/Token.mjs.map +1 -0
- package/dist-browser/request/AuthenticationHeaderParser.d.ts +20 -0
- package/dist-browser/request/AuthenticationHeaderParser.d.ts.map +1 -0
- package/dist-browser/request/AuthenticationHeaderParser.mjs +64 -0
- package/dist-browser/request/AuthenticationHeaderParser.mjs.map +1 -0
- package/dist-browser/request/BaseAuthRequest.d.ts +95 -0
- package/dist-browser/request/BaseAuthRequest.d.ts.map +1 -0
- package/dist-browser/request/CommonAuthorizationCodeRequest.d.ts +32 -0
- package/dist-browser/request/CommonAuthorizationCodeRequest.d.ts.map +1 -0
- package/dist-browser/request/CommonAuthorizationUrlRequest.d.ts +71 -0
- package/dist-browser/request/CommonAuthorizationUrlRequest.d.ts.map +1 -0
- package/dist-browser/request/CommonEndSessionRequest.d.ts +36 -0
- package/dist-browser/request/CommonEndSessionRequest.d.ts.map +1 -0
- package/dist-browser/request/CommonRefreshTokenRequest.d.ts +24 -0
- package/dist-browser/request/CommonRefreshTokenRequest.d.ts.map +1 -0
- package/dist-browser/request/CommonSilentFlowRequest.d.ts +24 -0
- package/dist-browser/request/CommonSilentFlowRequest.d.ts.map +1 -0
- package/dist-browser/request/NativeRequest.d.ts +20 -0
- package/dist-browser/request/NativeRequest.d.ts.map +1 -0
- package/dist-browser/request/NativeSignOutRequest.d.ts +6 -0
- package/dist-browser/request/NativeSignOutRequest.d.ts.map +1 -0
- package/dist-browser/request/RequestParameterBuilder.d.ts +217 -0
- package/dist-browser/request/RequestParameterBuilder.d.ts.map +1 -0
- package/dist-browser/request/RequestParameterBuilder.mjs +410 -0
- package/dist-browser/request/RequestParameterBuilder.mjs.map +1 -0
- package/dist-browser/request/ScopeSet.d.ts +83 -0
- package/dist-browser/request/ScopeSet.d.ts.map +1 -0
- package/dist-browser/request/ScopeSet.mjs +204 -0
- package/dist-browser/request/ScopeSet.mjs.map +1 -0
- package/dist-browser/request/StoreInCache.d.ts +9 -0
- package/dist-browser/request/StoreInCache.d.ts.map +1 -0
- package/dist-browser/response/AuthenticationResult.d.ts +42 -0
- package/dist-browser/response/AuthenticationResult.d.ts.map +1 -0
- package/dist-browser/response/AuthorizationCodePayload.d.ts +14 -0
- package/dist-browser/response/AuthorizationCodePayload.d.ts.map +1 -0
- package/dist-browser/response/AuthorizeResponse.d.ts +76 -0
- package/dist-browser/response/AuthorizeResponse.d.ts.map +1 -0
- package/dist-browser/response/DeviceCodeResponse.d.ts +26 -0
- package/dist-browser/response/DeviceCodeResponse.d.ts.map +1 -0
- package/dist-browser/response/ExternalTokenResponse.d.ts +16 -0
- package/dist-browser/response/ExternalTokenResponse.d.ts.map +1 -0
- package/dist-browser/response/IMDSBadResponse.d.ts +5 -0
- package/dist-browser/response/IMDSBadResponse.d.ts.map +1 -0
- package/dist-browser/response/ResponseHandler.d.ts +63 -0
- package/dist-browser/response/ResponseHandler.d.ts.map +1 -0
- package/dist-browser/response/ResponseHandler.mjs +354 -0
- package/dist-browser/response/ResponseHandler.mjs.map +1 -0
- package/dist-browser/response/ServerAuthorizationTokenResponse.d.ts +48 -0
- package/dist-browser/response/ServerAuthorizationTokenResponse.d.ts.map +1 -0
- package/dist-browser/telemetry/performance/IPerformanceClient.d.ts +30 -0
- package/dist-browser/telemetry/performance/IPerformanceClient.d.ts.map +1 -0
- package/dist-browser/telemetry/performance/IPerformanceMeasurement.d.ts +6 -0
- package/dist-browser/telemetry/performance/IPerformanceMeasurement.d.ts.map +1 -0
- package/dist-browser/telemetry/performance/PerformanceClient.d.ts +170 -0
- package/dist-browser/telemetry/performance/PerformanceClient.d.ts.map +1 -0
- package/dist-browser/telemetry/performance/PerformanceClient.mjs +490 -0
- package/dist-browser/telemetry/performance/PerformanceClient.mjs.map +1 -0
- package/dist-browser/telemetry/performance/PerformanceEvent.d.ts +289 -0
- package/dist-browser/telemetry/performance/PerformanceEvent.d.ts.map +1 -0
- package/dist-browser/telemetry/performance/PerformanceEvent.mjs +45 -0
- package/dist-browser/telemetry/performance/PerformanceEvent.mjs.map +1 -0
- package/dist-browser/telemetry/performance/PerformanceEvents.d.ts +66 -0
- package/dist-browser/telemetry/performance/PerformanceEvents.d.ts.map +1 -0
- package/dist-browser/telemetry/performance/PerformanceEvents.mjs +74 -0
- package/dist-browser/telemetry/performance/PerformanceEvents.mjs.map +1 -0
- package/dist-browser/telemetry/performance/StubPerformanceClient.d.ts +21 -0
- package/dist-browser/telemetry/performance/StubPerformanceClient.d.ts.map +1 -0
- package/dist-browser/telemetry/performance/StubPerformanceClient.mjs +59 -0
- package/dist-browser/telemetry/performance/StubPerformanceClient.mjs.map +1 -0
- package/dist-browser/telemetry/server/ServerTelemetryManager.d.ts +79 -0
- package/dist-browser/telemetry/server/ServerTelemetryManager.d.ts.map +1 -0
- package/dist-browser/telemetry/server/ServerTelemetryManager.mjs +266 -0
- package/dist-browser/telemetry/server/ServerTelemetryManager.mjs.map +1 -0
- package/dist-browser/telemetry/server/ServerTelemetryRequest.d.ts +9 -0
- package/dist-browser/telemetry/server/ServerTelemetryRequest.d.ts.map +1 -0
- package/dist-browser/url/IUri.d.ts +13 -0
- package/dist-browser/url/IUri.d.ts.map +1 -0
- package/dist-browser/url/UrlString.d.ts +44 -0
- package/dist-browser/url/UrlString.d.ts.map +1 -0
- package/dist-browser/url/UrlString.mjs +164 -0
- package/dist-browser/url/UrlString.mjs.map +1 -0
- package/dist-browser/utils/ClientAssertionUtils.d.ts +3 -0
- package/dist-browser/utils/ClientAssertionUtils.d.ts.map +1 -0
- package/dist-browser/utils/ClientAssertionUtils.mjs +21 -0
- package/dist-browser/utils/ClientAssertionUtils.mjs.map +1 -0
- package/dist-browser/utils/Constants.d.ts +283 -0
- package/dist-browser/utils/Constants.d.ts.map +1 -0
- package/dist-browser/utils/Constants.mjs +298 -0
- package/dist-browser/utils/Constants.mjs.map +1 -0
- package/dist-browser/utils/FunctionWrappers.d.ts +28 -0
- package/dist-browser/utils/FunctionWrappers.d.ts.map +1 -0
- package/dist-browser/utils/FunctionWrappers.mjs +98 -0
- package/dist-browser/utils/FunctionWrappers.mjs.map +1 -0
- package/dist-browser/utils/MsalTypes.d.ts +7 -0
- package/dist-browser/utils/MsalTypes.d.ts.map +1 -0
- package/dist-browser/utils/ProtocolUtils.d.ts +22 -0
- package/dist-browser/utils/ProtocolUtils.d.ts.map +1 -0
- package/dist-browser/utils/ProtocolUtils.mjs +74 -0
- package/dist-browser/utils/ProtocolUtils.mjs.map +1 -0
- package/dist-browser/utils/StateTypes.d.ts +15 -0
- package/dist-browser/utils/StateTypes.d.ts.map +1 -0
- package/dist-browser/utils/StringUtils.d.ts +41 -0
- package/dist-browser/utils/StringUtils.d.ts.map +1 -0
- package/dist-browser/utils/StringUtils.mjs +100 -0
- package/dist-browser/utils/StringUtils.mjs.map +1 -0
- package/dist-browser/utils/TimeUtils.d.ts +43 -0
- package/dist-browser/utils/TimeUtils.d.ts.map +1 -0
- package/dist-browser/utils/TimeUtils.mjs +76 -0
- package/dist-browser/utils/TimeUtils.mjs.map +1 -0
- package/dist-browser/utils/UrlUtils.d.ts +23 -0
- package/dist-browser/utils/UrlUtils.d.ts.map +1 -0
- package/dist-browser/utils/UrlUtils.mjs +115 -0
- package/dist-browser/utils/UrlUtils.mjs.map +1 -0
- package/lib/index-browser.cjs +2 -2
- package/lib/{index-node-Dwr2_mSO.js → index-node-3rGK55Vo.js} +42 -22
- package/lib/index-node-3rGK55Vo.js.map +1 -0
- package/lib/index-node.cjs +2 -2
- package/lib/index.cjs +2 -2
- package/lib/types/cache/CacheManager.d.ts +2 -2
- package/lib/types/cache/CacheManager.d.ts.map +1 -1
- package/lib/types/cache/entities/AccountEntity.d.ts +2 -0
- package/lib/types/cache/entities/AccountEntity.d.ts.map +1 -1
- package/lib/types/cache/interface/ICacheManager.d.ts +2 -2
- package/lib/types/cache/interface/ICacheManager.d.ts.map +1 -1
- package/lib/types/cache/utils/AccountEntityUtils.d.ts.map +1 -1
- package/lib/types/client/AuthorizationCodeClient.d.ts +1 -1
- package/lib/types/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/lib/types/client/RefreshTokenClient.d.ts +2 -2
- package/lib/types/client/RefreshTokenClient.d.ts.map +1 -1
- package/lib/types/packageMetadata.d.ts +1 -1
- package/lib/types/response/ResponseHandler.d.ts +1 -1
- package/lib/types/response/ResponseHandler.d.ts.map +1 -1
- package/lib/types/telemetry/performance/PerformanceEvent.d.ts +3 -0
- package/lib/types/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
- package/package.json +5 -2
- package/src/cache/CacheManager.ts +9 -2
- package/src/cache/entities/AccountEntity.ts +2 -0
- package/src/cache/interface/ICacheManager.ts +3 -1
- package/src/cache/utils/AccountEntityUtils.ts +36 -2
- package/src/client/AuthorizationCodeClient.ts +2 -0
- package/src/client/RefreshTokenClient.ts +11 -7
- package/src/packageMetadata.ts +1 -1
- package/src/response/ResponseHandler.ts +15 -6
- package/src/telemetry/performance/PerformanceEvent.ts +3 -0
- package/lib/index-node-Dwr2_mSO.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerformanceClient.d.ts","sourceRoot":"","sources":["../../../src/telemetry/performance/PerformanceClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
/*! @azure/msal-common v16.0.3 2026-01-28 */
|
|
2
|
+
'use strict';
|
|
3
|
+
import { getAndFlushLogsFromCache } from '../../logger/Logger.mjs';
|
|
4
|
+
import { IntFields, PerformanceEventStatus } from './PerformanceEvent.mjs';
|
|
5
|
+
import { AuthError } from '../../error/AuthError.mjs';
|
|
6
|
+
import { CacheError } from '../../error/CacheError.mjs';
|
|
7
|
+
import { ServerError } from '../../error/ServerError.mjs';
|
|
8
|
+
import { InteractionRequiredAuthError } from '../../error/InteractionRequiredAuthError.mjs';
|
|
9
|
+
|
|
10
|
+
/*
|
|
11
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12
|
+
* Licensed under the MIT License.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Starts context by adding payload to the stack
|
|
16
|
+
* @param event {PerformanceEvent}
|
|
17
|
+
* @param stack {?PerformanceEventStackedContext[]} stack
|
|
18
|
+
*/
|
|
19
|
+
function startContext(event, stack) {
|
|
20
|
+
if (!stack) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
stack.push({
|
|
24
|
+
name: event.name,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Ends context by removing payload from the stack and returning parent or self, if stack is empty, payload
|
|
29
|
+
*
|
|
30
|
+
* @param event {PerformanceEvent}
|
|
31
|
+
* @param stack {?PerformanceEventStackedContext[]} stack
|
|
32
|
+
* @param error {?unknown} error
|
|
33
|
+
*/
|
|
34
|
+
function endContext(event, stack, error) {
|
|
35
|
+
if (!stack?.length) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const peek = (stack) => {
|
|
39
|
+
return stack.length ? stack[stack.length - 1] : undefined;
|
|
40
|
+
};
|
|
41
|
+
const abbrEventName = event.name;
|
|
42
|
+
const top = peek(stack);
|
|
43
|
+
if (top?.name !== abbrEventName) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const current = stack?.pop();
|
|
47
|
+
if (!current) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const errorCode = error instanceof AuthError
|
|
51
|
+
? error.errorCode
|
|
52
|
+
: error instanceof Error
|
|
53
|
+
? error.name
|
|
54
|
+
: undefined;
|
|
55
|
+
const subErr = error instanceof AuthError ? error.subError : undefined;
|
|
56
|
+
if (errorCode && current.childErr !== errorCode) {
|
|
57
|
+
current.err = errorCode;
|
|
58
|
+
if (subErr) {
|
|
59
|
+
current.subErr = subErr;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
delete current.name;
|
|
63
|
+
delete current.childErr;
|
|
64
|
+
const context = {
|
|
65
|
+
...current,
|
|
66
|
+
dur: event.durationMs,
|
|
67
|
+
};
|
|
68
|
+
if (!event.success) {
|
|
69
|
+
context.fail = 1;
|
|
70
|
+
}
|
|
71
|
+
const parent = peek(stack);
|
|
72
|
+
if (!parent) {
|
|
73
|
+
return { [abbrEventName]: context };
|
|
74
|
+
}
|
|
75
|
+
if (errorCode) {
|
|
76
|
+
parent.childErr = errorCode;
|
|
77
|
+
}
|
|
78
|
+
let childName;
|
|
79
|
+
if (!parent[abbrEventName]) {
|
|
80
|
+
childName = abbrEventName;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const siblings = Object.keys(parent).filter((key) => key.startsWith(abbrEventName)).length;
|
|
84
|
+
childName = `${abbrEventName}_${siblings + 1}`;
|
|
85
|
+
}
|
|
86
|
+
parent[childName] = context;
|
|
87
|
+
return parent;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Adds error name and stack trace to the telemetry event
|
|
91
|
+
* @param error {Error}
|
|
92
|
+
* @param logger {Logger}
|
|
93
|
+
* @param event {PerformanceEvent}
|
|
94
|
+
* @param stackMaxSize {number} max error stack size to capture
|
|
95
|
+
*/
|
|
96
|
+
function addError(error, logger, event, stackMaxSize = 5) {
|
|
97
|
+
if (!(error instanceof Error)) {
|
|
98
|
+
logger.trace("0gcyox", event.correlationId);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
else if (error instanceof AuthError) {
|
|
102
|
+
event.errorCode = error.errorCode;
|
|
103
|
+
event.subErrorCode = error.subError;
|
|
104
|
+
if (error instanceof ServerError ||
|
|
105
|
+
error instanceof InteractionRequiredAuthError) {
|
|
106
|
+
event.serverErrorNo = error.errorNo;
|
|
107
|
+
}
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
else if (error instanceof CacheError) {
|
|
111
|
+
event.errorCode = error.errorCode;
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
else if (event.errorStack?.length) {
|
|
115
|
+
logger.trace("0lmqrh", event.correlationId);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
else if (!error.stack?.length) {
|
|
119
|
+
logger.trace("1cnpwa", event.correlationId);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (error.stack) {
|
|
123
|
+
event.errorStack = compactStack(error.stack, stackMaxSize);
|
|
124
|
+
}
|
|
125
|
+
event.errorName = error.name;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Compacts error stack into array by fetching N first entries
|
|
129
|
+
* @param stack {string} error stack
|
|
130
|
+
* @param stackMaxSize {number} max error stack size to capture
|
|
131
|
+
* @returns {string[]}
|
|
132
|
+
*/
|
|
133
|
+
function compactStack(stack, stackMaxSize) {
|
|
134
|
+
if (stackMaxSize < 0) {
|
|
135
|
+
return [];
|
|
136
|
+
}
|
|
137
|
+
const stackArr = stack.split("\n") || [];
|
|
138
|
+
const res = [];
|
|
139
|
+
// Check for a handful of known, common runtime errors and log them (with redaction where applicable).
|
|
140
|
+
const firstLine = stackArr[0];
|
|
141
|
+
if (firstLine.startsWith("TypeError: Cannot read property") ||
|
|
142
|
+
firstLine.startsWith("TypeError: Cannot read properties of") ||
|
|
143
|
+
firstLine.startsWith("TypeError: Cannot set property") ||
|
|
144
|
+
firstLine.startsWith("TypeError: Cannot set properties of") ||
|
|
145
|
+
firstLine.endsWith("is not a function")) {
|
|
146
|
+
// These types of errors are not at risk of leaking PII. They will indicate unavailable APIs
|
|
147
|
+
res.push(compactStackLine(firstLine));
|
|
148
|
+
}
|
|
149
|
+
else if (firstLine.startsWith("SyntaxError") ||
|
|
150
|
+
firstLine.startsWith("TypeError")) {
|
|
151
|
+
// Prevent unintentional leaking of arbitrary info by redacting contents between both single and double quotes
|
|
152
|
+
res.push(compactStackLine(
|
|
153
|
+
// Example: SyntaxError: Unexpected token 'e', "test" is not valid JSON -> SyntaxError: Unexpected token <redacted>, <redacted> is not valid JSON
|
|
154
|
+
firstLine.replace(/['].*[']|["].*["]/g, "<redacted>")));
|
|
155
|
+
}
|
|
156
|
+
// Get top N stack lines
|
|
157
|
+
for (let ix = 1; ix < stackArr.length; ix++) {
|
|
158
|
+
if (res.length >= stackMaxSize) {
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
const line = stackArr[ix];
|
|
162
|
+
res.push(compactStackLine(line));
|
|
163
|
+
}
|
|
164
|
+
return res;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Compacts error stack line by shortening file path
|
|
168
|
+
* Example: https://localhost/msal-common/src/authority/Authority.js:100:1 -> Authority.js:100:1
|
|
169
|
+
* @param line {string} stack line
|
|
170
|
+
* @returns {string}
|
|
171
|
+
*/
|
|
172
|
+
function compactStackLine(line) {
|
|
173
|
+
const filePathIx = line.lastIndexOf(" ") + 1;
|
|
174
|
+
if (filePathIx < 1) {
|
|
175
|
+
return line;
|
|
176
|
+
}
|
|
177
|
+
const filePath = line.substring(filePathIx);
|
|
178
|
+
let fileNameIx = filePath.lastIndexOf("/");
|
|
179
|
+
fileNameIx = fileNameIx < 0 ? filePath.lastIndexOf("\\") : fileNameIx;
|
|
180
|
+
if (fileNameIx >= 0) {
|
|
181
|
+
return (line.substring(0, filePathIx) +
|
|
182
|
+
"(" +
|
|
183
|
+
filePath.substring(fileNameIx + 1) +
|
|
184
|
+
(filePath.charAt(filePath.length - 1) === ")" ? "" : ")")).trimStart();
|
|
185
|
+
}
|
|
186
|
+
return line.trimStart();
|
|
187
|
+
}
|
|
188
|
+
function getAccountType(account) {
|
|
189
|
+
const idTokenClaims = account?.idTokenClaims;
|
|
190
|
+
if (idTokenClaims?.tfp || idTokenClaims?.acr) {
|
|
191
|
+
return "B2C";
|
|
192
|
+
}
|
|
193
|
+
if (!idTokenClaims?.tid) {
|
|
194
|
+
return undefined;
|
|
195
|
+
}
|
|
196
|
+
else if (idTokenClaims?.tid === "9188040d-6c67-4c5b-b112-36a304b66dad") {
|
|
197
|
+
return "MSA";
|
|
198
|
+
}
|
|
199
|
+
return "AAD";
|
|
200
|
+
}
|
|
201
|
+
class PerformanceClient {
|
|
202
|
+
/**
|
|
203
|
+
* Creates an instance of PerformanceClient,
|
|
204
|
+
* an abstract class containing core performance telemetry logic.
|
|
205
|
+
*
|
|
206
|
+
* @constructor
|
|
207
|
+
* @param {string} clientId Client ID of the application
|
|
208
|
+
* @param {string} authority Authority used by the application
|
|
209
|
+
* @param {Logger} logger Logger used by the application
|
|
210
|
+
* @param {string} libraryName Name of the library
|
|
211
|
+
* @param {string} libraryVersion Version of the library
|
|
212
|
+
* @param {ApplicationTelemetry} applicationTelemetry application name and version
|
|
213
|
+
* @param {Set<String>} intFields integer fields to be truncated
|
|
214
|
+
*/
|
|
215
|
+
constructor(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry, intFields) {
|
|
216
|
+
this.authority = authority;
|
|
217
|
+
this.libraryName = libraryName;
|
|
218
|
+
this.libraryVersion = libraryVersion;
|
|
219
|
+
this.applicationTelemetry = applicationTelemetry;
|
|
220
|
+
this.clientId = clientId;
|
|
221
|
+
this.logger = logger;
|
|
222
|
+
this.callbacks = new Map();
|
|
223
|
+
this.eventsByCorrelationId = new Map();
|
|
224
|
+
this.eventStack = new Map();
|
|
225
|
+
this.intFields = intFields || new Set();
|
|
226
|
+
for (const item of IntFields) {
|
|
227
|
+
this.intFields.add(item);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.
|
|
232
|
+
*
|
|
233
|
+
* @param {PerformanceEvents} measureName
|
|
234
|
+
* @param {?string} [correlationId]
|
|
235
|
+
* @returns {InProgressPerformanceEvent}
|
|
236
|
+
*/
|
|
237
|
+
startMeasurement(measureName, correlationId) {
|
|
238
|
+
// Generate a placeholder correlation if the request does not provide one
|
|
239
|
+
const eventCorrelationId = correlationId || this.generateId();
|
|
240
|
+
const inProgressEvent = {
|
|
241
|
+
eventId: this.generateId(),
|
|
242
|
+
status: PerformanceEventStatus.InProgress,
|
|
243
|
+
authority: this.authority,
|
|
244
|
+
libraryName: this.libraryName,
|
|
245
|
+
libraryVersion: this.libraryVersion,
|
|
246
|
+
clientId: this.clientId,
|
|
247
|
+
name: measureName,
|
|
248
|
+
startTimeMs: Date.now(),
|
|
249
|
+
correlationId: eventCorrelationId,
|
|
250
|
+
appName: this.applicationTelemetry?.appName,
|
|
251
|
+
appVersion: this.applicationTelemetry?.appVersion,
|
|
252
|
+
};
|
|
253
|
+
// Store in progress events so they can be discarded if not ended properly
|
|
254
|
+
this.cacheEventByCorrelationId(inProgressEvent);
|
|
255
|
+
startContext(inProgressEvent, this.eventStack.get(eventCorrelationId));
|
|
256
|
+
// Return the event and functions the caller can use to properly end/flush the measurement
|
|
257
|
+
return {
|
|
258
|
+
end: (event, error, account) => {
|
|
259
|
+
return this.endMeasurement({
|
|
260
|
+
// Initial set of event properties
|
|
261
|
+
...inProgressEvent,
|
|
262
|
+
// Properties set when event ends
|
|
263
|
+
...event,
|
|
264
|
+
}, error, account);
|
|
265
|
+
},
|
|
266
|
+
discard: () => {
|
|
267
|
+
return this.discardMeasurements(inProgressEvent.correlationId);
|
|
268
|
+
},
|
|
269
|
+
add: (fields) => {
|
|
270
|
+
return this.addFields(fields, inProgressEvent.correlationId);
|
|
271
|
+
},
|
|
272
|
+
increment: (fields) => {
|
|
273
|
+
return this.incrementFields(fields, inProgressEvent.correlationId);
|
|
274
|
+
},
|
|
275
|
+
event: inProgressEvent,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Stops measuring the performance for an operation. Should only be called directly by PerformanceClient classes,
|
|
280
|
+
* as consumers should instead use the function returned by startMeasurement.
|
|
281
|
+
* Adds a new field named as "[event name]DurationMs" for sub-measurements, completes and emits an event
|
|
282
|
+
* otherwise.
|
|
283
|
+
*
|
|
284
|
+
* @param {PerformanceEvent} event
|
|
285
|
+
* @param {unknown} error
|
|
286
|
+
* @param {AccountInfo?} account
|
|
287
|
+
* @returns {(PerformanceEvent | null)}
|
|
288
|
+
*/
|
|
289
|
+
endMeasurement(event, error, account) {
|
|
290
|
+
const rootEvent = this.eventsByCorrelationId.get(event.correlationId);
|
|
291
|
+
if (!rootEvent) {
|
|
292
|
+
this.logger.trace("0k9ti8", event.correlationId);
|
|
293
|
+
return null;
|
|
294
|
+
}
|
|
295
|
+
const isRoot = event.eventId === rootEvent.eventId;
|
|
296
|
+
event.durationMs = Math.round(event.durationMs || this.getDurationMs(event.startTimeMs));
|
|
297
|
+
const context = JSON.stringify(endContext(event, this.eventStack.get(rootEvent.correlationId), error));
|
|
298
|
+
if (isRoot) {
|
|
299
|
+
this.discardMeasurements(rootEvent.correlationId);
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
rootEvent.incompleteSubMeasurements?.delete(event.eventId);
|
|
303
|
+
}
|
|
304
|
+
if (error) {
|
|
305
|
+
addError(error, this.logger, rootEvent);
|
|
306
|
+
}
|
|
307
|
+
// Add sub-measurement attribute to root event.
|
|
308
|
+
if (!isRoot) {
|
|
309
|
+
rootEvent[event.name + "DurationMs"] = Math.floor(event.durationMs);
|
|
310
|
+
return { ...rootEvent };
|
|
311
|
+
}
|
|
312
|
+
if (isRoot &&
|
|
313
|
+
!error &&
|
|
314
|
+
(rootEvent.errorCode || rootEvent.subErrorCode)) {
|
|
315
|
+
this.logger.trace("1fm1tm", event.correlationId);
|
|
316
|
+
rootEvent.errorCode = undefined;
|
|
317
|
+
rootEvent.subErrorCode = undefined;
|
|
318
|
+
}
|
|
319
|
+
let finalEvent = { ...rootEvent, ...event };
|
|
320
|
+
let incompleteSubsCount = 0;
|
|
321
|
+
// Incomplete sub-measurements are discarded. They are likely an instrumentation bug that should be fixed.
|
|
322
|
+
finalEvent.incompleteSubMeasurements?.forEach((subMeasurement) => {
|
|
323
|
+
this.logger.trace("0nxk52", finalEvent.correlationId);
|
|
324
|
+
incompleteSubsCount++;
|
|
325
|
+
});
|
|
326
|
+
finalEvent.incompleteSubMeasurements = undefined;
|
|
327
|
+
const logs = getAndFlushLogsFromCache(event.correlationId);
|
|
328
|
+
// Format logs: [millis1,hash1;millis2,hash2;...]
|
|
329
|
+
const formattedLogs = logs
|
|
330
|
+
.map((logMessage) => `${logMessage.milliseconds},${logMessage.hash}`)
|
|
331
|
+
.join(";");
|
|
332
|
+
finalEvent = {
|
|
333
|
+
...finalEvent,
|
|
334
|
+
status: PerformanceEventStatus.Completed,
|
|
335
|
+
incompleteSubsCount,
|
|
336
|
+
context,
|
|
337
|
+
logs: formattedLogs,
|
|
338
|
+
};
|
|
339
|
+
if (account) {
|
|
340
|
+
finalEvent.accountType = getAccountType(account);
|
|
341
|
+
finalEvent.dataBoundary = account.dataBoundary;
|
|
342
|
+
}
|
|
343
|
+
this.truncateIntegralFields(finalEvent);
|
|
344
|
+
this.emitEvents([finalEvent], event.correlationId);
|
|
345
|
+
return finalEvent;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Saves extra information to be emitted when the measurements are flushed
|
|
349
|
+
* @param fields
|
|
350
|
+
* @param correlationId
|
|
351
|
+
*/
|
|
352
|
+
addFields(fields, correlationId) {
|
|
353
|
+
const event = this.eventsByCorrelationId.get(correlationId);
|
|
354
|
+
if (event) {
|
|
355
|
+
this.eventsByCorrelationId.set(correlationId, {
|
|
356
|
+
...event,
|
|
357
|
+
...fields,
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
this.logger.trace("0thl6s", correlationId);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Increment counters to be emitted when the measurements are flushed
|
|
366
|
+
* @param fields {string[]}
|
|
367
|
+
* @param correlationId {string} correlation identifier
|
|
368
|
+
*/
|
|
369
|
+
incrementFields(fields, correlationId) {
|
|
370
|
+
const event = this.eventsByCorrelationId.get(correlationId);
|
|
371
|
+
if (event) {
|
|
372
|
+
for (const counter in fields) {
|
|
373
|
+
if (!event.hasOwnProperty(counter)) {
|
|
374
|
+
event[counter] = 0;
|
|
375
|
+
}
|
|
376
|
+
else if (isNaN(Number(event[counter]))) {
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
event[counter] += fields[counter];
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
this.logger.trace("0thl6s", correlationId);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Upserts event into event cache.
|
|
388
|
+
* First key is the correlation id, second key is the event id.
|
|
389
|
+
* Allows for events to be grouped by correlation id,
|
|
390
|
+
* and to easily allow for properties on them to be updated.
|
|
391
|
+
*
|
|
392
|
+
* @private
|
|
393
|
+
* @param {PerformanceEvent} event
|
|
394
|
+
*/
|
|
395
|
+
cacheEventByCorrelationId(event) {
|
|
396
|
+
const rootEvent = this.eventsByCorrelationId.get(event.correlationId);
|
|
397
|
+
if (rootEvent) {
|
|
398
|
+
rootEvent.incompleteSubMeasurements =
|
|
399
|
+
rootEvent.incompleteSubMeasurements || new Map();
|
|
400
|
+
rootEvent.incompleteSubMeasurements.set(event.eventId, {
|
|
401
|
+
name: event.name,
|
|
402
|
+
startTimeMs: event.startTimeMs,
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
this.eventsByCorrelationId.set(event.correlationId, { ...event });
|
|
407
|
+
this.eventStack.set(event.correlationId, []);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Removes measurements and aux data for a given correlation id.
|
|
412
|
+
*
|
|
413
|
+
* @param {string} correlationId
|
|
414
|
+
*/
|
|
415
|
+
discardMeasurements(correlationId) {
|
|
416
|
+
this.eventsByCorrelationId.delete(correlationId);
|
|
417
|
+
this.eventStack.delete(correlationId);
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Registers a callback function to receive performance events.
|
|
421
|
+
*
|
|
422
|
+
* @param {PerformanceCallbackFunction} callback
|
|
423
|
+
* @returns {string}
|
|
424
|
+
*/
|
|
425
|
+
addPerformanceCallback(callback) {
|
|
426
|
+
for (const [id, cb] of this.callbacks) {
|
|
427
|
+
if (cb.toString() === callback.toString()) {
|
|
428
|
+
this.logger.warning("1eap5p", "");
|
|
429
|
+
return id;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
const callbackId = this.generateId();
|
|
433
|
+
this.callbacks.set(callbackId, callback);
|
|
434
|
+
this.logger.verbose("0c9ujz", "");
|
|
435
|
+
return callbackId;
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Removes a callback registered with addPerformanceCallback.
|
|
439
|
+
*
|
|
440
|
+
* @param {string} callbackId
|
|
441
|
+
* @returns {boolean}
|
|
442
|
+
*/
|
|
443
|
+
removePerformanceCallback(callbackId) {
|
|
444
|
+
const result = this.callbacks.delete(callbackId);
|
|
445
|
+
if (result) {
|
|
446
|
+
this.logger.verbose("0253if", "");
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
this.logger.verbose("0iqk07", "");
|
|
450
|
+
}
|
|
451
|
+
return result;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Emits events to all registered callbacks.
|
|
455
|
+
*
|
|
456
|
+
* @param {PerformanceEvent[]} events
|
|
457
|
+
* @param {?string} [correlationId]
|
|
458
|
+
*/
|
|
459
|
+
emitEvents(events, correlationId) {
|
|
460
|
+
this.logger.verbose("11jb1y", correlationId);
|
|
461
|
+
this.callbacks.forEach((callback, callbackId) => {
|
|
462
|
+
this.logger.trace("0p2pjl", correlationId);
|
|
463
|
+
callback.apply(null, [events]);
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Enforce truncation of integral fields in performance event.
|
|
468
|
+
* @param {PerformanceEvent} event performance event to update.
|
|
469
|
+
*/
|
|
470
|
+
truncateIntegralFields(event) {
|
|
471
|
+
this.intFields.forEach((key) => {
|
|
472
|
+
if (key in event && typeof event[key] === "number") {
|
|
473
|
+
event[key] = Math.floor(event[key]);
|
|
474
|
+
}
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* Returns event duration in milliseconds
|
|
479
|
+
* @param startTimeMs {number}
|
|
480
|
+
* @returns {number}
|
|
481
|
+
*/
|
|
482
|
+
getDurationMs(startTimeMs) {
|
|
483
|
+
const durationMs = Date.now() - startTimeMs;
|
|
484
|
+
// Handle clock skew
|
|
485
|
+
return durationMs < 0 ? durationMs : 0;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
export { PerformanceClient, addError, compactStack, compactStackLine, endContext, getAccountType, startContext };
|
|
490
|
+
//# sourceMappingURL=PerformanceClient.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerformanceClient.mjs","sources":["../../../src/telemetry/performance/PerformanceClient.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|