@azure/msal-common 14.0.2 → 14.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account/AccountInfo.d.ts +32 -32
- package/dist/account/AuthToken.d.ts +17 -20
- package/dist/account/AuthToken.d.ts.map +1 -1
- package/dist/account/AuthToken.mjs +61 -51
- package/dist/account/AuthToken.mjs.map +1 -1
- package/dist/account/CcsCredential.d.ts +9 -9
- package/dist/account/CcsCredential.mjs +8 -8
- package/dist/account/CcsCredential.mjs.map +1 -1
- package/dist/account/ClientCredentials.d.ts +14 -14
- package/dist/account/ClientInfo.d.ts +19 -19
- package/dist/account/ClientInfo.d.ts.map +1 -1
- package/dist/account/ClientInfo.mjs +39 -39
- package/dist/account/ClientInfo.mjs.map +1 -1
- package/dist/account/TokenClaims.d.ts +65 -65
- package/dist/authority/Authority.d.ts +235 -235
- package/dist/authority/Authority.d.ts.map +1 -1
- package/dist/authority/Authority.mjs +743 -765
- package/dist/authority/Authority.mjs.map +1 -1
- package/dist/authority/AuthorityFactory.d.ts +31 -31
- package/dist/authority/AuthorityFactory.d.ts.map +1 -1
- package/dist/authority/AuthorityFactory.mjs +52 -51
- package/dist/authority/AuthorityFactory.mjs.map +1 -1
- package/dist/authority/AuthorityMetadata.d.ts +623 -623
- package/dist/authority/AuthorityMetadata.mjs +884 -884
- package/dist/authority/AuthorityMetadata.mjs.map +1 -1
- package/dist/authority/AuthorityOptions.d.ts +21 -21
- package/dist/authority/AuthorityOptions.mjs +18 -18
- package/dist/authority/AuthorityOptions.mjs.map +1 -1
- package/dist/authority/AuthorityType.d.ts +10 -10
- package/dist/authority/AuthorityType.mjs +13 -13
- package/dist/authority/AuthorityType.mjs.map +1 -1
- package/dist/authority/AzureRegion.d.ts +1 -1
- package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
- package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs.map +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs.map +1 -1
- package/dist/authority/ImdsOptions.d.ts +5 -5
- package/dist/authority/OIDCOptions.d.ts +8 -8
- package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
- package/dist/authority/OpenIdConfigResponse.mjs +10 -10
- package/dist/authority/OpenIdConfigResponse.mjs.map +1 -1
- package/dist/authority/ProtocolMode.d.ts +8 -8
- package/dist/authority/ProtocolMode.mjs +11 -11
- package/dist/authority/ProtocolMode.mjs.map +1 -1
- package/dist/authority/RegionDiscovery.d.ts +32 -30
- package/dist/authority/RegionDiscovery.d.ts.map +1 -1
- package/dist/authority/RegionDiscovery.mjs +107 -108
- package/dist/authority/RegionDiscovery.mjs.map +1 -1
- package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
- package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
- package/dist/cache/CacheManager.d.ts +446 -446
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.mjs +1001 -1025
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
- package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -1
- package/dist/cache/entities/AccessTokenEntity.mjs +112 -114
- package/dist/cache/entities/AccessTokenEntity.mjs.map +1 -1
- package/dist/cache/entities/AccountEntity.d.ts +101 -101
- package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
- package/dist/cache/entities/AccountEntity.mjs +222 -223
- package/dist/cache/entities/AccountEntity.mjs.map +1 -1
- package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
- package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
- package/dist/cache/entities/AppMetadataEntity.mjs.map +1 -1
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
- package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
- package/dist/cache/entities/AuthorityMetadataEntity.mjs.map +1 -1
- package/dist/cache/entities/CacheRecord.d.ts +14 -14
- package/dist/cache/entities/CacheRecord.mjs +14 -14
- package/dist/cache/entities/CacheRecord.mjs.map +1 -1
- package/dist/cache/entities/CredentialEntity.d.ts +88 -88
- package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
- package/dist/cache/entities/CredentialEntity.mjs +138 -137
- package/dist/cache/entities/CredentialEntity.mjs.map +1 -1
- package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
- package/dist/cache/entities/IdTokenEntity.mjs +56 -56
- package/dist/cache/entities/IdTokenEntity.mjs.map +1 -1
- package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
- package/dist/cache/entities/RefreshTokenEntity.mjs +59 -59
- package/dist/cache/entities/RefreshTokenEntity.mjs.map +1 -1
- package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
- package/dist/cache/entities/ServerTelemetryEntity.mjs +27 -27
- package/dist/cache/entities/ServerTelemetryEntity.mjs.map +1 -1
- package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
- package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
- package/dist/cache/entities/ThrottlingEntity.mjs.map +1 -1
- package/dist/cache/interface/ICacheManager.d.ts +166 -166
- package/dist/cache/interface/ICachePlugin.d.ts +5 -5
- package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
- package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
- package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
- package/dist/cache/persistence/TokenCacheContext.mjs.map +1 -1
- package/dist/cache/utils/CacheTypes.d.ts +69 -69
- package/dist/client/AuthorizationCodeClient.d.ts +73 -73
- package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +412 -440
- package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
- package/dist/client/BaseClient.d.ts +51 -51
- package/dist/client/BaseClient.d.ts.map +1 -1
- package/dist/client/BaseClient.mjs +101 -94
- package/dist/client/BaseClient.mjs.map +1 -1
- package/dist/client/RefreshTokenClient.d.ts +35 -35
- package/dist/client/RefreshTokenClient.d.ts.map +1 -1
- package/dist/client/RefreshTokenClient.mjs +185 -243
- package/dist/client/RefreshTokenClient.mjs.map +1 -1
- package/dist/client/SilentFlowClient.d.ts +26 -25
- package/dist/client/SilentFlowClient.d.ts.map +1 -1
- package/dist/client/SilentFlowClient.mjs +128 -104
- package/dist/client/SilentFlowClient.mjs.map +1 -1
- package/dist/config/AppTokenProvider.d.ts +38 -38
- package/dist/config/ClientConfiguration.d.ts +150 -150
- package/dist/config/ClientConfiguration.d.ts.map +1 -1
- package/dist/config/ClientConfiguration.mjs +99 -100
- package/dist/config/ClientConfiguration.mjs.map +1 -1
- package/dist/crypto/ICrypto.d.ts +62 -62
- package/dist/crypto/ICrypto.d.ts.map +1 -1
- package/dist/crypto/ICrypto.mjs +35 -43
- package/dist/crypto/ICrypto.mjs.map +1 -1
- package/dist/crypto/IGuidGenerator.d.ts +4 -4
- package/dist/crypto/JoseHeader.d.ts +22 -22
- package/dist/crypto/JoseHeader.d.ts.map +1 -1
- package/dist/crypto/JoseHeader.mjs +39 -38
- package/dist/crypto/JoseHeader.mjs.map +1 -1
- package/dist/crypto/PopTokenGenerator.d.ts +60 -59
- package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
- package/dist/crypto/PopTokenGenerator.mjs +83 -83
- package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
- package/dist/crypto/SignedHttpRequest.d.ts +11 -11
- package/dist/error/AuthError.d.ts +44 -47
- package/dist/error/AuthError.d.ts.map +1 -1
- package/dist/error/AuthError.mjs +50 -52
- package/dist/error/AuthError.mjs.map +1 -1
- package/dist/error/AuthErrorCodes.d.ts +6 -0
- package/dist/error/AuthErrorCodes.d.ts.map +1 -0
- package/dist/error/AuthErrorCodes.mjs +14 -0
- package/dist/error/AuthErrorCodes.mjs.map +1 -0
- package/dist/error/ClientAuthError.d.ts +232 -412
- package/dist/error/ClientAuthError.d.ts.map +1 -1
- package/dist/error/ClientAuthError.mjs +248 -520
- package/dist/error/ClientAuthError.mjs.map +1 -1
- package/dist/error/ClientAuthErrorCodes.d.ts +44 -0
- package/dist/error/ClientAuthErrorCodes.d.ts.map +1 -0
- package/dist/error/ClientAuthErrorCodes.mjs +52 -0
- package/dist/error/ClientAuthErrorCodes.mjs.map +1 -0
- package/dist/error/ClientConfigurationError.d.ts +128 -222
- package/dist/error/ClientConfigurationError.d.ts.map +1 -1
- package/dist/error/ClientConfigurationError.mjs +140 -281
- package/dist/error/ClientConfigurationError.mjs.map +1 -1
- package/dist/error/ClientConfigurationErrorCodes.d.ts +23 -0
- package/dist/error/ClientConfigurationErrorCodes.d.ts.map +1 -0
- package/dist/error/ClientConfigurationErrorCodes.mjs +31 -0
- package/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -0
- package/dist/error/InteractionRequiredAuthError.d.ts +57 -59
- package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthError.mjs +80 -79
- package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +6 -0
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -0
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +16 -0
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -0
- package/dist/error/JoseHeaderError.d.ts +15 -28
- package/dist/error/JoseHeaderError.d.ts.map +1 -1
- package/dist/error/JoseHeaderError.mjs +24 -40
- package/dist/error/JoseHeaderError.mjs.map +1 -1
- package/dist/error/JoseHeaderErrorCodes.d.ts +3 -0
- package/dist/error/JoseHeaderErrorCodes.d.ts.map +1 -0
- package/dist/error/JoseHeaderErrorCodes.mjs +11 -0
- package/dist/error/JoseHeaderErrorCodes.mjs.map +1 -0
- package/dist/error/ServerError.d.ts +7 -7
- package/dist/error/ServerError.mjs +14 -14
- package/dist/error/ServerError.mjs.map +1 -1
- package/dist/index.cjs +8727 -8978
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +96 -96
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +17 -7
- package/dist/index.mjs.map +1 -1
- package/dist/logger/Logger.d.ts +95 -95
- package/dist/logger/Logger.d.ts.map +1 -1
- package/dist/logger/Logger.mjs +188 -198
- package/dist/logger/Logger.mjs.map +1 -1
- package/dist/network/INetworkModule.d.ts +29 -29
- package/dist/network/INetworkModule.d.ts.map +1 -1
- package/dist/network/INetworkModule.mjs +14 -15
- package/dist/network/INetworkModule.mjs.map +1 -1
- package/dist/network/NetworkManager.d.ts +33 -33
- package/dist/network/NetworkManager.d.ts.map +1 -1
- package/dist/network/NetworkManager.mjs +36 -35
- package/dist/network/NetworkManager.mjs.map +1 -1
- package/dist/network/RequestThumbprint.d.ts +16 -16
- package/dist/network/ThrottlingUtils.d.ts +42 -42
- package/dist/network/ThrottlingUtils.mjs +95 -95
- package/dist/network/ThrottlingUtils.mjs.map +1 -1
- package/dist/packageMetadata.d.ts +2 -2
- package/dist/packageMetadata.mjs +4 -4
- package/dist/packageMetadata.mjs.map +1 -1
- package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
- package/dist/request/AuthenticationHeaderParser.d.ts.map +1 -1
- package/dist/request/AuthenticationHeaderParser.mjs +58 -57
- package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
- package/dist/request/BaseAuthRequest.d.ts +40 -40
- package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
- package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
- package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
- package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
- package/dist/request/CommonEndSessionRequest.d.ts +21 -21
- package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
- package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
- package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
- package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
- package/dist/request/NativeRequest.d.ts +19 -19
- package/dist/request/NativeSignOutRequest.d.ts +5 -5
- package/dist/request/RequestParameterBuilder.d.ts +217 -217
- package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
- package/dist/request/RequestParameterBuilder.mjs +383 -383
- package/dist/request/RequestParameterBuilder.mjs.map +1 -1
- package/dist/request/RequestValidator.d.ts +33 -33
- package/dist/request/RequestValidator.d.ts.map +1 -1
- package/dist/request/RequestValidator.mjs +83 -84
- package/dist/request/RequestValidator.mjs.map +1 -1
- package/dist/request/ScopeSet.d.ts +88 -88
- package/dist/request/ScopeSet.d.ts.map +1 -1
- package/dist/request/ScopeSet.mjs +201 -199
- package/dist/request/ScopeSet.mjs.map +1 -1
- package/dist/request/StoreInCache.d.ts +8 -8
- package/dist/response/AuthenticationResult.d.ts +41 -39
- package/dist/response/AuthenticationResult.d.ts.map +1 -1
- package/dist/response/AuthorizationCodePayload.d.ts +13 -13
- package/dist/response/DeviceCodeResponse.d.ts +25 -25
- package/dist/response/ExternalTokenResponse.d.ts +15 -15
- package/dist/response/IMDSBadResponse.d.ts +4 -4
- package/dist/response/ResponseHandler.d.ts +67 -66
- package/dist/response/ResponseHandler.d.ts.map +1 -1
- package/dist/response/ResponseHandler.mjs +316 -297
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
- package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -44
- package/dist/response/ServerAuthorizationTokenResponse.d.ts.map +1 -1
- package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
- package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
- package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
- package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceClient.mjs +409 -408
- package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
- package/dist/telemetry/performance/PerformanceEvent.d.ts +433 -426
- package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs +234 -226
- package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
- package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.mjs +77 -57
- package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
- package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.mjs +197 -198
- package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
- package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
- package/dist/url/IUri.d.ts +12 -12
- package/dist/url/UrlString.d.ts +83 -83
- package/dist/url/UrlString.d.ts.map +1 -1
- package/dist/url/UrlString.mjs +283 -283
- package/dist/url/UrlString.mjs.map +1 -1
- package/dist/utils/Constants.d.ts +366 -353
- package/dist/utils/Constants.d.ts.map +1 -1
- package/dist/utils/Constants.mjs +377 -360
- package/dist/utils/Constants.mjs.map +1 -1
- package/dist/utils/FunctionWrappers.d.ts +28 -0
- package/dist/utils/FunctionWrappers.d.ts.map +1 -0
- package/dist/utils/FunctionWrappers.mjs +90 -0
- package/dist/utils/FunctionWrappers.mjs.map +1 -0
- package/dist/utils/MsalTypes.d.ts +6 -6
- package/dist/utils/ProtocolUtils.d.ts +42 -42
- package/dist/utils/ProtocolUtils.d.ts.map +1 -1
- package/dist/utils/ProtocolUtils.mjs +71 -73
- package/dist/utils/ProtocolUtils.mjs.map +1 -1
- package/dist/utils/StringUtils.d.ts +40 -53
- package/dist/utils/StringUtils.d.ts.map +1 -1
- package/dist/utils/StringUtils.mjs +95 -126
- package/dist/utils/StringUtils.mjs.map +1 -1
- package/dist/utils/TimeUtils.d.ts +27 -27
- package/dist/utils/TimeUtils.mjs +45 -45
- package/dist/utils/TimeUtils.mjs.map +1 -1
- package/package.json +6 -4
- package/src/account/AccountInfo.ts +44 -0
- package/src/account/AuthToken.ts +71 -0
- package/src/account/CcsCredential.ts +16 -0
- package/src/account/ClientCredentials.ts +20 -0
- package/src/account/ClientInfo.ts +67 -0
- package/src/account/TokenClaims.ts +70 -0
- package/src/authority/Authority.ts +1207 -0
- package/src/authority/AuthorityFactory.ts +118 -0
- package/src/authority/AuthorityMetadata.ts +953 -0
- package/src/authority/AuthorityOptions.ts +40 -0
- package/src/authority/AuthorityType.ts +15 -0
- package/src/authority/AzureRegion.ts +7 -0
- package/src/authority/AzureRegionConfiguration.ts +16 -0
- package/src/authority/CloudDiscoveryMetadata.ts +10 -0
- package/src/authority/CloudInstanceDiscoveryErrorResponse.ts +26 -0
- package/src/authority/CloudInstanceDiscoveryResponse.ts +21 -0
- package/src/authority/ImdsOptions.ts +10 -0
- package/src/authority/OIDCOptions.ts +14 -0
- package/src/authority/OpenIdConfigResponse.ts +24 -0
- package/src/authority/ProtocolMode.ts +13 -0
- package/src/authority/RegionDiscovery.ts +196 -0
- package/src/authority/RegionDiscoveryMetadata.ts +15 -0
- package/src/broker/nativeBroker/INativeBrokerPlugin.ts +29 -0
- package/src/cache/CacheManager.ts +1579 -0
- package/src/cache/entities/AccessTokenEntity.ts +167 -0
- package/src/cache/entities/AccountEntity.ts +314 -0
- package/src/cache/entities/AppMetadataEntity.ts +91 -0
- package/src/cache/entities/AuthorityMetadataEntity.ts +112 -0
- package/src/cache/entities/CacheRecord.ts +33 -0
- package/src/cache/entities/CredentialEntity.ts +220 -0
- package/src/cache/entities/IdTokenEntity.ts +74 -0
- package/src/cache/entities/RefreshTokenEntity.ts +78 -0
- package/src/cache/entities/ServerTelemetryEntity.ts +38 -0
- package/src/cache/entities/ThrottlingEntity.ts +36 -0
- package/src/cache/interface/ICacheManager.ts +218 -0
- package/src/cache/interface/ICachePlugin.ts +11 -0
- package/src/cache/interface/ISerializableTokenCache.ts +9 -0
- package/src/cache/persistence/TokenCacheContext.ts +39 -0
- package/src/cache/utils/CacheTypes.ts +93 -0
- package/src/client/AuthorizationCodeClient.ts +736 -0
- package/src/client/BaseClient.ts +208 -0
- package/src/client/RefreshTokenClient.ts +399 -0
- package/src/client/SilentFlowClient.ts +239 -0
- package/src/config/AppTokenProvider.ts +47 -0
- package/src/config/ClientConfiguration.ts +286 -0
- package/src/crypto/ICrypto.ts +112 -0
- package/src/crypto/IGuidGenerator.ts +9 -0
- package/src/crypto/JoseHeader.ts +58 -0
- package/src/crypto/PopTokenGenerator.ts +160 -0
- package/src/crypto/SignedHttpRequest.ts +16 -0
- package/src/error/AuthError.ts +83 -0
- package/src/error/AuthErrorCodes.ts +10 -0
- package/src/error/ClientAuthError.ts +333 -0
- package/src/error/ClientAuthErrorCodes.ts +51 -0
- package/src/error/ClientConfigurationError.ts +210 -0
- package/src/error/ClientConfigurationErrorCodes.ts +28 -0
- package/src/error/InteractionRequiredAuthError.ts +139 -0
- package/src/error/InteractionRequiredAuthErrorCodes.ts +13 -0
- package/src/error/JoseHeaderError.ts +32 -0
- package/src/error/JoseHeaderErrorCodes.ts +7 -0
- package/src/error/ServerError.ts +18 -0
- package/src/index.ts +226 -0
- package/src/logger/Logger.ts +272 -0
- package/src/network/INetworkModule.ts +60 -0
- package/src/network/NetworkManager.ts +76 -0
- package/src/network/RequestThumbprint.ts +22 -0
- package/src/network/ThrottlingUtils.ts +156 -0
- package/src/packageMetadata.ts +3 -0
- package/src/request/AuthenticationHeaderParser.ts +92 -0
- package/src/request/BaseAuthRequest.ts +46 -0
- package/src/request/CommonAuthorizationCodeRequest.ts +33 -0
- package/src/request/CommonAuthorizationUrlRequest.ts +56 -0
- package/src/request/CommonClientCredentialRequest.ts +23 -0
- package/src/request/CommonDeviceCodeRequest.ts +31 -0
- package/src/request/CommonEndSessionRequest.ts +27 -0
- package/src/request/CommonOnBehalfOfRequest.ts +19 -0
- package/src/request/CommonRefreshTokenRequest.ts +25 -0
- package/src/request/CommonSilentFlowRequest.ts +24 -0
- package/src/request/CommonUsernamePasswordRequest.ts +23 -0
- package/src/request/NativeRequest.ts +25 -0
- package/src/request/NativeSignOutRequest.ts +10 -0
- package/src/request/RequestParameterBuilder.ts +613 -0
- package/src/request/RequestValidator.ts +116 -0
- package/src/request/ScopeSet.ts +246 -0
- package/src/request/StoreInCache.ts +16 -0
- package/src/response/AuthenticationResult.ts +47 -0
- package/src/response/AuthorizationCodePayload.ts +18 -0
- package/src/response/DeviceCodeResponse.ts +31 -0
- package/src/response/ExternalTokenResponse.ts +24 -0
- package/src/response/IMDSBadResponse.ts +9 -0
- package/src/response/ResponseHandler.ts +634 -0
- package/src/response/ServerAuthorizationCodeResponse.ts +33 -0
- package/src/response/ServerAuthorizationTokenResponse.ts +54 -0
- package/src/telemetry/performance/IPerformanceClient.ts +71 -0
- package/src/telemetry/performance/IPerformanceMeasurement.ts +10 -0
- package/src/telemetry/performance/PerformanceClient.ts +636 -0
- package/src/telemetry/performance/PerformanceEvent.ts +542 -0
- package/src/telemetry/performance/StubPerformanceClient.ts +101 -0
- package/src/telemetry/server/ServerTelemetryManager.ts +274 -0
- package/src/telemetry/server/ServerTelemetryRequest.ts +13 -0
- package/src/url/IUri.ts +17 -0
- package/src/url/UrlString.ts +373 -0
- package/src/utils/Constants.ts +444 -0
- package/src/utils/FunctionWrappers.ts +105 -0
- package/src/utils/MsalTypes.ts +9 -0
- package/src/utils/ProtocolUtils.ts +120 -0
- package/src/utils/StringUtils.ts +106 -0
- package/src/utils/TimeUtils.ts +51 -0
- package/dist/account/DecodedAuthToken.d.ts +0 -9
- package/dist/account/DecodedAuthToken.d.ts.map +0 -1
|
@@ -1,130 +1,99 @@
|
|
|
1
|
-
/*! @azure/msal-common v14.0.
|
|
1
|
+
/*! @azure/msal-common v14.1.0-alpha.0 2023-09-20 */
|
|
2
2
|
'use strict';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
*
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
static
|
|
57
|
-
return
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
*
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return
|
|
96
|
-
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Attempts to parse a string into JSON
|
|
101
|
-
* @param str
|
|
102
|
-
*/
|
|
103
|
-
static jsonParseHelper(str) {
|
|
104
|
-
try {
|
|
105
|
-
return JSON.parse(str);
|
|
106
|
-
}
|
|
107
|
-
catch (e) {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Tests if a given string matches a given pattern, with support for wildcards and queries.
|
|
113
|
-
* @param pattern Wildcard pattern to string match. Supports "*" for wildcards and "?" for queries
|
|
114
|
-
* @param input String to match against
|
|
115
|
-
*/
|
|
116
|
-
static matchPattern(pattern, input) {
|
|
117
|
-
/**
|
|
118
|
-
* Wildcard support: https://stackoverflow.com/a/3117248/4888559
|
|
119
|
-
* Queries: replaces "?" in string with escaped "\?" for regex test
|
|
120
|
-
*/
|
|
121
|
-
// eslint-disable-next-line security/detect-non-literal-regexp
|
|
122
|
-
const regex = new RegExp(pattern
|
|
123
|
-
.replace(/\\/g, "\\\\")
|
|
124
|
-
.replace(/\*/g, "[^ ]*")
|
|
125
|
-
.replace(/\?/g, "\\?"));
|
|
126
|
-
return regex.test(input);
|
|
127
|
-
}
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
5
|
+
* Licensed under the MIT License.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @hidden
|
|
9
|
+
*/
|
|
10
|
+
class StringUtils {
|
|
11
|
+
/**
|
|
12
|
+
* Check if stringified object is empty
|
|
13
|
+
* @param strObj
|
|
14
|
+
*/
|
|
15
|
+
static isEmptyObj(strObj) {
|
|
16
|
+
if (strObj) {
|
|
17
|
+
try {
|
|
18
|
+
const obj = JSON.parse(strObj);
|
|
19
|
+
return Object.keys(obj).length === 0;
|
|
20
|
+
}
|
|
21
|
+
catch (e) { }
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
static startsWith(str, search) {
|
|
26
|
+
return str.indexOf(search) === 0;
|
|
27
|
+
}
|
|
28
|
+
static endsWith(str, search) {
|
|
29
|
+
return (str.length >= search.length &&
|
|
30
|
+
str.lastIndexOf(search) === str.length - search.length);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parses string into an object.
|
|
34
|
+
*
|
|
35
|
+
* @param query
|
|
36
|
+
*/
|
|
37
|
+
static queryStringToObject(query) {
|
|
38
|
+
const obj = {};
|
|
39
|
+
const params = query.split("&");
|
|
40
|
+
const decode = (s) => decodeURIComponent(s.replace(/\+/g, " "));
|
|
41
|
+
params.forEach((pair) => {
|
|
42
|
+
if (pair.trim()) {
|
|
43
|
+
const [key, value] = pair.split(/=(.+)/g, 2); // Split on the first occurence of the '=' character
|
|
44
|
+
if (key && value) {
|
|
45
|
+
obj[decode(key)] = decode(value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
return obj;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Trims entries in an array.
|
|
53
|
+
*
|
|
54
|
+
* @param arr
|
|
55
|
+
*/
|
|
56
|
+
static trimArrayEntries(arr) {
|
|
57
|
+
return arr.map((entry) => entry.trim());
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Removes empty strings from array
|
|
61
|
+
* @param arr
|
|
62
|
+
*/
|
|
63
|
+
static removeEmptyStringsFromArray(arr) {
|
|
64
|
+
return arr.filter((entry) => {
|
|
65
|
+
return !!entry;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Attempts to parse a string into JSON
|
|
70
|
+
* @param str
|
|
71
|
+
*/
|
|
72
|
+
static jsonParseHelper(str) {
|
|
73
|
+
try {
|
|
74
|
+
return JSON.parse(str);
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Tests if a given string matches a given pattern, with support for wildcards and queries.
|
|
82
|
+
* @param pattern Wildcard pattern to string match. Supports "*" for wildcards and "?" for queries
|
|
83
|
+
* @param input String to match against
|
|
84
|
+
*/
|
|
85
|
+
static matchPattern(pattern, input) {
|
|
86
|
+
/**
|
|
87
|
+
* Wildcard support: https://stackoverflow.com/a/3117248/4888559
|
|
88
|
+
* Queries: replaces "?" in string with escaped "\?" for regex test
|
|
89
|
+
*/
|
|
90
|
+
// eslint-disable-next-line security/detect-non-literal-regexp
|
|
91
|
+
const regex = new RegExp(pattern
|
|
92
|
+
.replace(/\\/g, "\\\\")
|
|
93
|
+
.replace(/\*/g, "[^ ]*")
|
|
94
|
+
.replace(/\?/g, "\\?"));
|
|
95
|
+
return regex.test(input);
|
|
96
|
+
}
|
|
128
97
|
}
|
|
129
98
|
|
|
130
99
|
export { StringUtils };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringUtils.mjs","sources":["../../src/utils/StringUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StringUtils.mjs","sources":["../../src/utils/StringUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;AAEG;AACH;AACI;;;AAGG,MAAA,WAAA,CAAA;;;;AAsBH;;;;AAIG,gBAAA,MAAA,GAAA,GAAA,IAAA,CAAA,KAAA,CAAA,MAAA,CAAA,CAAA;8BACuB,IAAI,CAAK,GAAA,CAAA,CAAA,MAAQ,KAAI,CAAA,CAAA;AAe/C,aAAA;;;;AAIG,KAAA;AACH,IAAA,OAAO,UAAA,CAAA,GAAA,EAAgB,MAAM,EAAA;AAI7B,QAAA,OAAA,GAAA,CAAA,OAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA;;;AAGG,QAAA,QAAA,GAAA,CAAA,MAAA,IAAA,MAAA,CAAA,MAAA;AACH,YAAO,GAAA,CAAA,WAAA,CAAA,MAAA,CAAA,KAA4B,GAAK,CAAA,MAAM,GAAA,MAAO,CAAG,MAAM;AAM9D,KAAA;;;AAGG;;AASH;;;;AAIG,QAAA,MAAA,MAAA,GAAA,CAAA,CAAA,KAAA,kBAAA,CAAA,CAAA,CAAA,OAAA,CAAA,KAAA,EAAA,GAAA,CAAA,CAAA,CAAA;QACG,MAAa,CAAA,OAAA,CAAA,CAAC,IAAO,KAAE;AAehC,YAAA,IAAA,IAAA,CAAA,IAAA,EAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utility class which exposes functions for managing date and time operations.
|
|
3
|
-
*/
|
|
4
|
-
export declare class TimeUtils {
|
|
5
|
-
/**
|
|
6
|
-
* return the current time in Unix time (seconds).
|
|
7
|
-
*/
|
|
8
|
-
static nowSeconds(): number;
|
|
9
|
-
/**
|
|
10
|
-
* check if a token is expired based on given UTC time in seconds.
|
|
11
|
-
* @param expiresOn
|
|
12
|
-
*/
|
|
13
|
-
static isTokenExpired(expiresOn: string, offset: number): boolean;
|
|
14
|
-
/**
|
|
15
|
-
* If the current time is earlier than the time that a token was cached at, we must discard the token
|
|
16
|
-
* i.e. The system clock was turned back after acquiring the cached token
|
|
17
|
-
* @param cachedAt
|
|
18
|
-
* @param offset
|
|
19
|
-
*/
|
|
20
|
-
static wasClockTurnedBack(cachedAt: string): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Waits for t number of milliseconds
|
|
23
|
-
* @param t number
|
|
24
|
-
* @param value T
|
|
25
|
-
*/
|
|
26
|
-
static delay<T>(t: number, value?: T): Promise<T | void>;
|
|
27
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Utility class which exposes functions for managing date and time operations.
|
|
3
|
+
*/
|
|
4
|
+
export declare class TimeUtils {
|
|
5
|
+
/**
|
|
6
|
+
* return the current time in Unix time (seconds).
|
|
7
|
+
*/
|
|
8
|
+
static nowSeconds(): number;
|
|
9
|
+
/**
|
|
10
|
+
* check if a token is expired based on given UTC time in seconds.
|
|
11
|
+
* @param expiresOn
|
|
12
|
+
*/
|
|
13
|
+
static isTokenExpired(expiresOn: string, offset: number): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* If the current time is earlier than the time that a token was cached at, we must discard the token
|
|
16
|
+
* i.e. The system clock was turned back after acquiring the cached token
|
|
17
|
+
* @param cachedAt
|
|
18
|
+
* @param offset
|
|
19
|
+
*/
|
|
20
|
+
static wasClockTurnedBack(cachedAt: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Waits for t number of milliseconds
|
|
23
|
+
* @param t number
|
|
24
|
+
* @param value T
|
|
25
|
+
*/
|
|
26
|
+
static delay<T>(t: number, value?: T): Promise<T | void>;
|
|
27
|
+
}
|
|
28
28
|
//# sourceMappingURL=TimeUtils.d.ts.map
|
package/dist/utils/TimeUtils.mjs
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
/*! @azure/msal-common v14.0.
|
|
1
|
+
/*! @azure/msal-common v14.1.0-alpha.0 2023-09-20 */
|
|
2
2
|
'use strict';
|
|
3
|
-
/*
|
|
4
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
5
|
-
* Licensed under the MIT License.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Utility class which exposes functions for managing date and time operations.
|
|
9
|
-
*/
|
|
10
|
-
class TimeUtils {
|
|
11
|
-
/**
|
|
12
|
-
* return the current time in Unix time (seconds).
|
|
13
|
-
*/
|
|
14
|
-
static nowSeconds() {
|
|
15
|
-
// Date.getTime() returns in milliseconds.
|
|
16
|
-
return Math.round(new Date().getTime() / 1000.0);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* check if a token is expired based on given UTC time in seconds.
|
|
20
|
-
* @param expiresOn
|
|
21
|
-
*/
|
|
22
|
-
static isTokenExpired(expiresOn, offset) {
|
|
23
|
-
// check for access token expiry
|
|
24
|
-
const expirationSec = Number(expiresOn) || 0;
|
|
25
|
-
const offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;
|
|
26
|
-
// If current time + offset is greater than token expiration time, then token is expired.
|
|
27
|
-
return offsetCurrentTimeSec > expirationSec;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* If the current time is earlier than the time that a token was cached at, we must discard the token
|
|
31
|
-
* i.e. The system clock was turned back after acquiring the cached token
|
|
32
|
-
* @param cachedAt
|
|
33
|
-
* @param offset
|
|
34
|
-
*/
|
|
35
|
-
static wasClockTurnedBack(cachedAt) {
|
|
36
|
-
const cachedAtSec = Number(cachedAt);
|
|
37
|
-
return cachedAtSec > TimeUtils.nowSeconds();
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Waits for t number of milliseconds
|
|
41
|
-
* @param t number
|
|
42
|
-
* @param value T
|
|
43
|
-
*/
|
|
44
|
-
static delay(t, value) {
|
|
45
|
-
return new Promise((resolve) => setTimeout(() => resolve(value), t));
|
|
46
|
-
}
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
5
|
+
* Licensed under the MIT License.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Utility class which exposes functions for managing date and time operations.
|
|
9
|
+
*/
|
|
10
|
+
class TimeUtils {
|
|
11
|
+
/**
|
|
12
|
+
* return the current time in Unix time (seconds).
|
|
13
|
+
*/
|
|
14
|
+
static nowSeconds() {
|
|
15
|
+
// Date.getTime() returns in milliseconds.
|
|
16
|
+
return Math.round(new Date().getTime() / 1000.0);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* check if a token is expired based on given UTC time in seconds.
|
|
20
|
+
* @param expiresOn
|
|
21
|
+
*/
|
|
22
|
+
static isTokenExpired(expiresOn, offset) {
|
|
23
|
+
// check for access token expiry
|
|
24
|
+
const expirationSec = Number(expiresOn) || 0;
|
|
25
|
+
const offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;
|
|
26
|
+
// If current time + offset is greater than token expiration time, then token is expired.
|
|
27
|
+
return offsetCurrentTimeSec > expirationSec;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* If the current time is earlier than the time that a token was cached at, we must discard the token
|
|
31
|
+
* i.e. The system clock was turned back after acquiring the cached token
|
|
32
|
+
* @param cachedAt
|
|
33
|
+
* @param offset
|
|
34
|
+
*/
|
|
35
|
+
static wasClockTurnedBack(cachedAt) {
|
|
36
|
+
const cachedAtSec = Number(cachedAt);
|
|
37
|
+
return cachedAtSec > TimeUtils.nowSeconds();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Waits for t number of milliseconds
|
|
41
|
+
* @param t number
|
|
42
|
+
* @param value T
|
|
43
|
+
*/
|
|
44
|
+
static delay(t, value) {
|
|
45
|
+
return new Promise((resolve) => setTimeout(() => resolve(value), t));
|
|
46
|
+
}
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
export { TimeUtils };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeUtils.mjs","sources":["../../src/utils/TimeUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"TimeUtils.mjs","sources":["../../src/utils/TimeUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;AAEG;AACH;AACI;;AAEG;AACG,MAAW,SAAA,CAAA;AAKjB;;;AAGG,IAAA,OAAA,UAAA,GAAA;;AAUH,QAAA,OAAA,IAAA,CAAA,KAAA,CAAA,IAAA,IAAA,EAAA,CAAA,OAAA,EAAA,GAAA,MAAA,CAAA,CAAA;;;;;AAKG;AACH,IAAA,OAAO,cAAkB,CAAA,iBAAW,EAAA;AAMpC;;;;AAIG,QAAA,OAAA,oBAAA,GAAA,aAAA,CAAA;AACH,KAAA;AAGH;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"type": "git",
|
|
11
11
|
"url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
|
|
12
12
|
},
|
|
13
|
-
"version": "14.0.
|
|
13
|
+
"version": "14.1.0-alpha.0",
|
|
14
14
|
"description": "Microsoft Authentication Library for js",
|
|
15
15
|
"keywords": [
|
|
16
16
|
"implicit",
|
|
@@ -41,13 +41,14 @@
|
|
|
41
41
|
"test": "test"
|
|
42
42
|
},
|
|
43
43
|
"files": [
|
|
44
|
-
"dist"
|
|
44
|
+
"dist",
|
|
45
|
+
"src"
|
|
45
46
|
],
|
|
46
47
|
"scripts": {
|
|
47
48
|
"clean": "shx rm -rf dist lib",
|
|
48
49
|
"clean:coverage": "rimraf ../../.nyc_output/*",
|
|
49
|
-
"lint": "
|
|
50
|
-
"lint:fix": "npm run lint -- --
|
|
50
|
+
"lint": "eslint src --ext .ts",
|
|
51
|
+
"lint:fix": "npm run lint -- --fix",
|
|
51
52
|
"test": "jest",
|
|
52
53
|
"test:coverage": "jest --coverage",
|
|
53
54
|
"test:coverage:only": "npm run clean:coverage && npm run test:coverage",
|
|
@@ -77,6 +78,7 @@
|
|
|
77
78
|
"@types/lodash": "^4.14.182",
|
|
78
79
|
"@types/node": "^20.3.1",
|
|
79
80
|
"@types/sinon": "^7.5.0",
|
|
81
|
+
"eslint-config-msal": "^0.0.0",
|
|
80
82
|
"jest": "^29.5.0",
|
|
81
83
|
"lodash": "^4.17.21",
|
|
82
84
|
"prettier": "2.8.7",
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { TokenClaims } from "./TokenClaims";
|
|
7
|
+
/**
|
|
8
|
+
* Account object with the following signature:
|
|
9
|
+
* - homeAccountId - Home account identifier for this account object
|
|
10
|
+
* - environment - Entity which issued the token represented by the domain of the issuer (e.g. login.microsoftonline.com)
|
|
11
|
+
* - tenantId - Full tenant or organizational id that this account belongs to
|
|
12
|
+
* - username - preferred_username claim of the id_token that represents this account
|
|
13
|
+
* - localAccountId - Local, tenant-specific account identifer for this account object, usually used in legacy cases
|
|
14
|
+
* - name - Full name for the account, including given name and family name
|
|
15
|
+
* - idToken - raw ID token
|
|
16
|
+
* - idTokenClaims - Object contains claims from ID token
|
|
17
|
+
* - localAccountId - The user's account ID
|
|
18
|
+
* - nativeAccountId - The user's native account ID
|
|
19
|
+
*/
|
|
20
|
+
export type AccountInfo = {
|
|
21
|
+
homeAccountId: string;
|
|
22
|
+
environment: string;
|
|
23
|
+
tenantId: string;
|
|
24
|
+
username: string;
|
|
25
|
+
localAccountId: string;
|
|
26
|
+
name?: string;
|
|
27
|
+
idToken?: string;
|
|
28
|
+
idTokenClaims?: TokenClaims & {
|
|
29
|
+
[key: string]:
|
|
30
|
+
| string
|
|
31
|
+
| number
|
|
32
|
+
| string[]
|
|
33
|
+
| object
|
|
34
|
+
| undefined
|
|
35
|
+
| unknown;
|
|
36
|
+
};
|
|
37
|
+
nativeAccountId?: string;
|
|
38
|
+
authorityType?: string;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export type ActiveAccountFilters = {
|
|
42
|
+
homeAccountId: string;
|
|
43
|
+
localAccountId: string;
|
|
44
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { TokenClaims } from "./TokenClaims";
|
|
7
|
+
import {
|
|
8
|
+
createClientAuthError,
|
|
9
|
+
ClientAuthErrorCodes,
|
|
10
|
+
} from "../error/ClientAuthError";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Extract token by decoding the rawToken
|
|
14
|
+
*
|
|
15
|
+
* @param encodedToken
|
|
16
|
+
*/
|
|
17
|
+
export function extractTokenClaims(
|
|
18
|
+
encodedToken: string,
|
|
19
|
+
base64Decode: (input: string) => string
|
|
20
|
+
): TokenClaims {
|
|
21
|
+
const jswPayload = getJWSPayload(encodedToken);
|
|
22
|
+
|
|
23
|
+
// token will be decoded to get the username
|
|
24
|
+
try {
|
|
25
|
+
// base64Decode() should throw an error if there is an issue
|
|
26
|
+
const base64Decoded = base64Decode(jswPayload);
|
|
27
|
+
return JSON.parse(base64Decoded) as TokenClaims;
|
|
28
|
+
} catch (err) {
|
|
29
|
+
throw createClientAuthError(ClientAuthErrorCodes.tokenParsingError);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* decode a JWT
|
|
35
|
+
*
|
|
36
|
+
* @param authToken
|
|
37
|
+
*/
|
|
38
|
+
export function getJWSPayload(authToken: string): string {
|
|
39
|
+
if (!authToken) {
|
|
40
|
+
throw createClientAuthError(ClientAuthErrorCodes.nullOrEmptyToken);
|
|
41
|
+
}
|
|
42
|
+
const tokenPartsRegex = /^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/;
|
|
43
|
+
const matches = tokenPartsRegex.exec(authToken);
|
|
44
|
+
if (!matches || matches.length < 4) {
|
|
45
|
+
throw createClientAuthError(ClientAuthErrorCodes.tokenParsingError);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* const crackedToken = {
|
|
49
|
+
* header: matches[1],
|
|
50
|
+
* JWSPayload: matches[2],
|
|
51
|
+
* JWSSig: matches[3],
|
|
52
|
+
* };
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
return matches[2];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Determine if the token's max_age has transpired
|
|
60
|
+
*/
|
|
61
|
+
export function checkMaxAge(authTime: number, maxAge: number): void {
|
|
62
|
+
/*
|
|
63
|
+
* per https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest
|
|
64
|
+
* To force an immediate re-authentication: If an app requires that a user re-authenticate prior to access,
|
|
65
|
+
* provide a value of 0 for the max_age parameter and the AS will force a fresh login.
|
|
66
|
+
*/
|
|
67
|
+
const fiveMinuteSkew = 300000; // five minutes in milliseconds
|
|
68
|
+
if (maxAge === 0 || Date.now() - fiveMinuteSkew > authTime + maxAge) {
|
|
69
|
+
throw createClientAuthError(ClientAuthErrorCodes.maxAgeTranspired);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export type CcsCredential = {
|
|
7
|
+
credential: string;
|
|
8
|
+
type: CcsCredentialType;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const CcsCredentialType = {
|
|
12
|
+
HOME_ACCOUNT_ID: "home_account_id",
|
|
13
|
+
UPN: "UPN",
|
|
14
|
+
} as const;
|
|
15
|
+
export type CcsCredentialType =
|
|
16
|
+
(typeof CcsCredentialType)[keyof typeof CcsCredentialType];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Client Assertion credential for Confidential Clients
|
|
8
|
+
*/
|
|
9
|
+
export type ClientAssertion = {
|
|
10
|
+
assertion: string;
|
|
11
|
+
assertionType: string;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Client Credentials set for Confidential Clients
|
|
16
|
+
*/
|
|
17
|
+
export type ClientCredentials = {
|
|
18
|
+
clientSecret?: string;
|
|
19
|
+
clientAssertion?: ClientAssertion;
|
|
20
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
createClientAuthError,
|
|
8
|
+
ClientAuthErrorCodes,
|
|
9
|
+
} from "../error/ClientAuthError";
|
|
10
|
+
import { ICrypto } from "../crypto/ICrypto";
|
|
11
|
+
import { Separators, Constants } from "../utils/Constants";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Client info object which consists of two IDs. Need to add more info here.
|
|
15
|
+
*/
|
|
16
|
+
export type ClientInfo = {
|
|
17
|
+
uid: string;
|
|
18
|
+
utid: string;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Function to build a client info object from server clientInfo string
|
|
23
|
+
* @param rawClientInfo
|
|
24
|
+
* @param crypto
|
|
25
|
+
*/
|
|
26
|
+
export function buildClientInfo(
|
|
27
|
+
rawClientInfo: string,
|
|
28
|
+
crypto: ICrypto
|
|
29
|
+
): ClientInfo {
|
|
30
|
+
if (!rawClientInfo) {
|
|
31
|
+
throw createClientAuthError(ClientAuthErrorCodes.clientInfoEmptyError);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
try {
|
|
35
|
+
const decodedClientInfo: string = crypto.base64Decode(rawClientInfo);
|
|
36
|
+
return JSON.parse(decodedClientInfo) as ClientInfo;
|
|
37
|
+
} catch (e) {
|
|
38
|
+
throw createClientAuthError(
|
|
39
|
+
ClientAuthErrorCodes.clientInfoDecodingError
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Function to build a client info object from cached homeAccountId string
|
|
46
|
+
* @param homeAccountId
|
|
47
|
+
*/
|
|
48
|
+
export function buildClientInfoFromHomeAccountId(
|
|
49
|
+
homeAccountId: string
|
|
50
|
+
): ClientInfo {
|
|
51
|
+
if (!homeAccountId) {
|
|
52
|
+
throw createClientAuthError(
|
|
53
|
+
ClientAuthErrorCodes.clientInfoDecodingError
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
const clientInfoParts: string[] = homeAccountId.split(
|
|
57
|
+
Separators.CLIENT_INFO_SEPARATOR,
|
|
58
|
+
2
|
|
59
|
+
);
|
|
60
|
+
return {
|
|
61
|
+
uid: clientInfoParts[0],
|
|
62
|
+
utid:
|
|
63
|
+
clientInfoParts.length < 2
|
|
64
|
+
? Constants.EMPTY_STRING
|
|
65
|
+
: clientInfoParts[1],
|
|
66
|
+
};
|
|
67
|
+
}
|