@okta/okta-auth-js 7.0.1 → 7.1.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/README.md +2 -0
- package/cjs/authn/AuthnTransactionImpl.js +6 -8
- package/cjs/authn/AuthnTransactionImpl.js.map +1 -1
- package/cjs/authn/api.js +3 -18
- package/cjs/authn/api.js.map +1 -1
- package/cjs/authn/factory.js +1 -7
- package/cjs/authn/factory.js.map +1 -1
- package/cjs/authn/index.js +0 -5
- package/cjs/authn/index.js.map +1 -1
- package/cjs/authn/mixin.js +14 -22
- package/cjs/authn/mixin.js.map +1 -1
- package/cjs/authn/util/flattenEmbedded.js +5 -12
- package/cjs/authn/util/flattenEmbedded.js.map +1 -1
- package/cjs/authn/util/link2fn.js +0 -22
- package/cjs/authn/util/link2fn.js.map +1 -1
- package/cjs/authn/util/links2fns.js +0 -12
- package/cjs/authn/util/links2fns.js.map +1 -1
- package/cjs/authn/util/poll.js +9 -27
- package/cjs/authn/util/poll.js.map +1 -1
- package/cjs/authn/util/stateToken.js +3 -4
- package/cjs/authn/util/stateToken.js.map +1 -1
- package/cjs/base/factory.js +6 -14
- package/cjs/base/factory.js.map +1 -1
- package/cjs/base/index.js +0 -5
- package/cjs/base/index.js.map +1 -1
- package/cjs/base/options.js +1 -2
- package/cjs/base/options.js.map +1 -1
- package/cjs/browser/browserStorage.js +15 -43
- package/cjs/browser/browserStorage.js.map +1 -1
- package/cjs/browser/fingerprint.js +3 -15
- package/cjs/browser/fingerprint.js.map +1 -1
- package/cjs/clock.js +5 -7
- package/cjs/clock.js.map +1 -1
- package/cjs/constants.js +4 -3
- package/cjs/constants.js.map +1 -1
- package/cjs/core/AuthStateManager.js +24 -48
- package/cjs/core/AuthStateManager.js.map +1 -1
- package/cjs/core/ServiceManager/browser.js +13 -33
- package/cjs/core/ServiceManager/browser.js.map +1 -1
- package/cjs/core/ServiceManager/index.js +0 -1
- package/cjs/core/ServiceManager/index.js.map +1 -1
- package/cjs/core/ServiceManager/node.js +3 -9
- package/cjs/core/ServiceManager/node.js.map +1 -1
- package/cjs/core/factory.js +0 -7
- package/cjs/core/factory.js.map +1 -1
- package/cjs/core/index.js +0 -13
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/mixin.js +16 -20
- package/cjs/core/mixin.js.map +1 -1
- package/cjs/core/options.js +1 -3
- package/cjs/core/options.js.map +1 -1
- package/cjs/core/storage.js +0 -2
- package/cjs/core/storage.js.map +1 -1
- package/cjs/core/types/index.js +0 -5
- package/cjs/core/types/index.js.map +1 -1
- package/cjs/crypto/base64.js +9 -22
- package/cjs/crypto/base64.js.map +1 -1
- package/cjs/crypto/browser.js +0 -4
- package/cjs/crypto/browser.js.map +1 -1
- package/cjs/crypto/index.js +0 -9
- package/cjs/crypto/index.js.map +1 -1
- package/cjs/crypto/node.js +0 -13
- package/cjs/crypto/node.js.map +1 -1
- package/cjs/crypto/oidcHash.js +1 -4
- package/cjs/crypto/oidcHash.js.map +1 -1
- package/cjs/crypto/verifyToken.js +6 -7
- package/cjs/crypto/verifyToken.js.map +1 -1
- package/cjs/crypto/webcrypto.js +0 -1
- package/cjs/crypto/webcrypto.js.map +1 -1
- package/cjs/errors/AuthApiError.js +1 -7
- package/cjs/errors/AuthApiError.js.map +1 -1
- package/cjs/errors/AuthPollStopError.js +1 -5
- package/cjs/errors/AuthPollStopError.js.map +1 -1
- package/cjs/errors/AuthSdkError.js +1 -6
- package/cjs/errors/AuthSdkError.js.map +1 -1
- package/cjs/errors/CustomError.js +1 -4
- package/cjs/errors/CustomError.js.map +1 -1
- package/cjs/errors/OAuthError.js +4 -7
- package/cjs/errors/OAuthError.js.map +1 -1
- package/cjs/errors/index.js +1 -9
- package/cjs/errors/index.js.map +1 -1
- package/cjs/exports/authn.js +0 -9
- package/cjs/exports/authn.js.map +1 -1
- package/cjs/exports/cdn/authn.js +0 -2
- package/cjs/exports/cdn/authn.js.map +1 -1
- package/cjs/exports/cdn/core.js +0 -2
- package/cjs/exports/cdn/core.js.map +1 -1
- package/cjs/exports/cdn/default.js +0 -2
- package/cjs/exports/cdn/default.js.map +1 -1
- package/cjs/exports/cdn/idx.js +0 -2
- package/cjs/exports/cdn/idx.js.map +1 -1
- package/cjs/exports/cdn/myaccount.js +0 -2
- package/cjs/exports/cdn/myaccount.js.map +1 -1
- package/cjs/exports/common.js +0 -22
- package/cjs/exports/common.js.map +1 -1
- package/cjs/exports/core.js +0 -9
- package/cjs/exports/core.js.map +1 -1
- package/cjs/exports/default.js +2 -12
- package/cjs/exports/default.js.map +1 -1
- package/cjs/exports/idx.js +3 -7
- package/cjs/exports/idx.js.map +1 -1
- package/cjs/exports/myaccount.js +0 -9
- package/cjs/exports/myaccount.js.map +1 -1
- package/cjs/features.js +1 -18
- package/cjs/features.js.map +1 -1
- package/cjs/fetch/fetchRequest.js +6 -20
- package/cjs/fetch/fetchRequest.js.map +1 -1
- package/cjs/http/OktaUserAgent.js +3 -11
- package/cjs/http/OktaUserAgent.js.map +1 -1
- package/cjs/http/headers.js +1 -1
- package/cjs/http/headers.js.map +1 -1
- package/cjs/http/index.js +0 -11
- package/cjs/http/index.js.map +1 -1
- package/cjs/http/mixin.js +2 -10
- package/cjs/http/mixin.js.map +1 -1
- package/cjs/http/options.js +1 -5
- package/cjs/http/options.js.map +1 -1
- package/cjs/http/request.js +75 -57
- package/cjs/http/request.js.map +1 -1
- package/cjs/idx/IdxTransactionManager.js +2 -22
- package/cjs/idx/IdxTransactionManager.js.map +1 -1
- package/cjs/idx/authenticate.js +3 -5
- package/cjs/idx/authenticate.js.map +1 -1
- package/cjs/idx/authenticator/Authenticator.js +2 -4
- package/cjs/idx/authenticator/Authenticator.js.map +1 -1
- package/cjs/idx/authenticator/OktaPassword.js +2 -10
- package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
- package/cjs/idx/authenticator/OktaVerifyTotp.js +0 -6
- package/cjs/idx/authenticator/OktaVerifyTotp.js.map +1 -1
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +0 -10
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -1
- package/cjs/idx/authenticator/SecurityQuestionVerification.js +1 -10
- package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -1
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +2 -10
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -1
- package/cjs/idx/authenticator/WebauthnEnrollment.js +0 -8
- package/cjs/idx/authenticator/WebauthnEnrollment.js.map +1 -1
- package/cjs/idx/authenticator/WebauthnVerification.js +0 -8
- package/cjs/idx/authenticator/WebauthnVerification.js.map +1 -1
- package/cjs/idx/authenticator/getAuthenticator.js +0 -15
- package/cjs/idx/authenticator/getAuthenticator.js.map +1 -1
- package/cjs/idx/authenticator/index.js +0 -15
- package/cjs/idx/authenticator/index.js.map +1 -1
- package/cjs/idx/authenticator/util.js +8 -18
- package/cjs/idx/authenticator/util.js.map +1 -1
- package/cjs/idx/cancel.js +3 -4
- package/cjs/idx/cancel.js.map +1 -1
- package/cjs/idx/emailVerify.js +5 -13
- package/cjs/idx/emailVerify.js.map +1 -1
- package/cjs/idx/factory/OktaAuthIdx.js +0 -3
- package/cjs/idx/factory/OktaAuthIdx.js.map +1 -1
- package/cjs/idx/factory/api.js +1 -17
- package/cjs/idx/factory/api.js.map +1 -1
- package/cjs/idx/factory/index.js +0 -3
- package/cjs/idx/factory/index.js.map +1 -1
- package/cjs/idx/flow/AccountUnlockFlow.js +1 -2
- package/cjs/idx/flow/AccountUnlockFlow.js.map +1 -1
- package/cjs/idx/flow/AuthenticationFlow.js +1 -2
- package/cjs/idx/flow/AuthenticationFlow.js.map +1 -1
- package/cjs/idx/flow/FlowSpecification.js +2 -13
- package/cjs/idx/flow/FlowSpecification.js.map +1 -1
- package/cjs/idx/flow/PasswordRecoveryFlow.js +1 -2
- package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -1
- package/cjs/idx/flow/RegistrationFlow.js +1 -2
- package/cjs/idx/flow/RegistrationFlow.js.map +1 -1
- package/cjs/idx/flow/index.js +0 -11
- package/cjs/idx/flow/index.js.map +1 -1
- package/cjs/idx/handleInteractionCodeRedirect.js +7 -12
- package/cjs/idx/handleInteractionCodeRedirect.js.map +1 -1
- package/cjs/idx/idxState/index.js +1 -11
- package/cjs/idx/idxState/index.js.map +1 -1
- package/cjs/idx/idxState/v1/actionParser.js +1 -12
- package/cjs/idx/idxState/v1/actionParser.js.map +1 -1
- package/cjs/idx/idxState/v1/generateIdxAction.js +10 -15
- package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -1
- package/cjs/idx/idxState/v1/idxResponseParser.js +7 -23
- package/cjs/idx/idxState/v1/idxResponseParser.js.map +1 -1
- package/cjs/idx/idxState/v1/makeIdxState.js +2 -10
- package/cjs/idx/idxState/v1/makeIdxState.js.map +1 -1
- package/cjs/idx/idxState/v1/parsers.js +0 -2
- package/cjs/idx/idxState/v1/parsers.js.map +1 -1
- package/cjs/idx/idxState/v1/remediationParser.js +2 -4
- package/cjs/idx/idxState/v1/remediationParser.js.map +1 -1
- package/cjs/idx/index.js +0 -26
- package/cjs/idx/index.js.map +1 -1
- package/cjs/idx/interact.js +18 -18
- package/cjs/idx/interact.js.map +1 -1
- package/cjs/idx/introspect.js +5 -14
- package/cjs/idx/introspect.js.map +1 -1
- package/cjs/idx/mixin.js +0 -9
- package/cjs/idx/mixin.js.map +1 -1
- package/cjs/idx/options.js +2 -3
- package/cjs/idx/options.js.map +1 -1
- package/cjs/idx/poll.js +1 -10
- package/cjs/idx/poll.js.map +1 -1
- package/cjs/idx/proceed.js +3 -9
- package/cjs/idx/proceed.js.map +1 -1
- package/cjs/idx/recoverPassword.js +3 -4
- package/cjs/idx/recoverPassword.js.map +1 -1
- package/cjs/idx/register.js +5 -11
- package/cjs/idx/register.js.map +1 -1
- package/cjs/idx/remediate.js +24 -45
- package/cjs/idx/remediate.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +7 -16
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorVerificationData.js +7 -15
- package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
- package/cjs/idx/remediators/Base/AuthenticatorData.js +7 -22
- package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
- package/cjs/idx/remediators/Base/Remediator.js +38 -67
- package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
- package/cjs/idx/remediators/Base/SelectAuthenticator.js +13 -30
- package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js +5 -13
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/ChallengeAuthenticator.js +1 -5
- package/cjs/idx/remediators/ChallengeAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/ChallengePoll.js +1 -6
- package/cjs/idx/remediators/ChallengePoll.js.map +1 -1
- package/cjs/idx/remediators/EnrollAuthenticator.js +1 -5
- package/cjs/idx/remediators/EnrollAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/EnrollPoll.js +5 -12
- package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
- package/cjs/idx/remediators/EnrollProfile.js +8 -30
- package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
- package/cjs/idx/remediators/EnrollmentChannelData.js +5 -13
- package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
- package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js +13 -19
- package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -1
- package/cjs/idx/remediators/GenericRemediator/index.js +0 -1
- package/cjs/idx/remediators/GenericRemediator/index.js.map +1 -1
- package/cjs/idx/remediators/GenericRemediator/util.js +19 -31
- package/cjs/idx/remediators/GenericRemediator/util.js.map +1 -1
- package/cjs/idx/remediators/Identify.js +3 -12
- package/cjs/idx/remediators/Identify.js.map +1 -1
- package/cjs/idx/remediators/ReEnrollAuthenticator.js +3 -10
- package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/RedirectIdp.js +1 -7
- package/cjs/idx/remediators/RedirectIdp.js.map +1 -1
- package/cjs/idx/remediators/ResetAuthenticator.js +1 -5
- package/cjs/idx/remediators/ResetAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +3 -11
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorEnroll.js +1 -5
- package/cjs/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js +6 -15
- package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -1
- package/cjs/idx/remediators/SelectEnrollProfile.js +1 -6
- package/cjs/idx/remediators/SelectEnrollProfile.js.map +1 -1
- package/cjs/idx/remediators/SelectEnrollmentChannel.js +5 -16
- package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
- package/cjs/idx/remediators/Skip.js +1 -6
- package/cjs/idx/remediators/Skip.js.map +1 -1
- package/cjs/idx/remediators/index.js +0 -39
- package/cjs/idx/remediators/index.js.map +1 -1
- package/cjs/idx/remediators/util.js +1 -7
- package/cjs/idx/remediators/util.js.map +1 -1
- package/cjs/idx/run.js +37 -52
- package/cjs/idx/run.js.map +1 -1
- package/cjs/idx/startTransaction.js +1 -2
- package/cjs/idx/startTransaction.js.map +1 -1
- package/cjs/idx/storage.js +3 -22
- package/cjs/idx/storage.js.map +1 -1
- package/cjs/idx/transactionMeta.js +24 -42
- package/cjs/idx/transactionMeta.js.map +1 -1
- package/cjs/idx/types/api.js +1 -9
- package/cjs/idx/types/api.js.map +1 -1
- package/cjs/idx/types/idx-js.js +3 -3
- package/cjs/idx/types/idx-js.js.map +1 -1
- package/cjs/idx/types/index.js +0 -7
- package/cjs/idx/types/index.js.map +1 -1
- package/cjs/idx/types/meta.js.map +1 -1
- package/cjs/idx/types/options.js.map +1 -1
- package/cjs/idx/unlockAccount.js +7 -11
- package/cjs/idx/unlockAccount.js.map +1 -1
- package/cjs/idx/util.js +24 -76
- package/cjs/idx/util.js.map +1 -1
- package/cjs/idx/webauthn.js +13 -18
- package/cjs/idx/webauthn.js.map +1 -1
- package/cjs/myaccount/api.js +0 -5
- package/cjs/myaccount/api.js.map +1 -1
- package/cjs/myaccount/emailApi.js +6 -21
- package/cjs/myaccount/emailApi.js.map +1 -1
- package/cjs/myaccount/factory.js +0 -3
- package/cjs/myaccount/factory.js.map +1 -1
- package/cjs/myaccount/index.js +0 -7
- package/cjs/myaccount/index.js.map +1 -1
- package/cjs/myaccount/mixin.js +0 -5
- package/cjs/myaccount/mixin.js.map +1 -1
- package/cjs/myaccount/phoneApi.js +5 -18
- package/cjs/myaccount/phoneApi.js.map +1 -1
- package/cjs/myaccount/profileApi.js +2 -9
- package/cjs/myaccount/profileApi.js.map +1 -1
- package/cjs/myaccount/request.js +12 -78
- package/cjs/myaccount/request.js.map +1 -1
- package/cjs/myaccount/transactions/Base.js +5 -7
- package/cjs/myaccount/transactions/Base.js.map +1 -1
- package/cjs/myaccount/transactions/EmailChallengeTransaction.js +5 -10
- package/cjs/myaccount/transactions/EmailChallengeTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/EmailStatusTransaction.js +2 -7
- package/cjs/myaccount/transactions/EmailStatusTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/EmailTransaction.js +5 -13
- package/cjs/myaccount/transactions/EmailTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/PhoneTransaction.js +5 -12
- package/cjs/myaccount/transactions/PhoneTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/ProfileSchemaTransaction.js +0 -5
- package/cjs/myaccount/transactions/ProfileSchemaTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/ProfileTransaction.js +0 -5
- package/cjs/myaccount/transactions/ProfileTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/index.js +0 -8
- package/cjs/myaccount/transactions/index.js.map +1 -1
- package/cjs/myaccount/types.js +0 -5
- package/cjs/myaccount/types.js.map +1 -1
- package/cjs/oidc/TokenManager.js +39 -100
- package/cjs/oidc/TokenManager.js.map +1 -1
- package/cjs/oidc/TransactionManager.js +19 -26
- package/cjs/oidc/TransactionManager.js.map +1 -1
- package/cjs/oidc/decodeToken.js +1 -5
- package/cjs/oidc/decodeToken.js.map +1 -1
- package/cjs/oidc/endpoints/authorize.js +9 -13
- package/cjs/oidc/endpoints/authorize.js.map +1 -1
- package/cjs/oidc/endpoints/index.js +0 -5
- package/cjs/oidc/endpoints/index.js.map +1 -1
- package/cjs/oidc/endpoints/token.js +5 -17
- package/cjs/oidc/endpoints/token.js.map +1 -1
- package/cjs/oidc/endpoints/well-known.js +7 -14
- package/cjs/oidc/endpoints/well-known.js.map +1 -1
- package/cjs/oidc/exchangeCodeForTokens.js +7 -12
- package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
- package/cjs/oidc/factory/OktaAuthOAuth.js +0 -6
- package/cjs/oidc/factory/OktaAuthOAuth.js.map +1 -1
- package/cjs/oidc/factory/api.js +6 -20
- package/cjs/oidc/factory/api.js.map +1 -1
- package/cjs/oidc/factory/index.js +0 -3
- package/cjs/oidc/factory/index.js.map +1 -1
- package/cjs/oidc/getToken.js +18 -30
- package/cjs/oidc/getToken.js.map +1 -1
- package/cjs/oidc/getUserInfo.js +1 -15
- package/cjs/oidc/getUserInfo.js.map +1 -1
- package/cjs/oidc/getWithPopup.js +4 -8
- package/cjs/oidc/getWithPopup.js.map +1 -1
- package/cjs/oidc/getWithRedirect.js +1 -8
- package/cjs/oidc/getWithRedirect.js.map +1 -1
- package/cjs/oidc/getWithoutPrompt.js +1 -5
- package/cjs/oidc/getWithoutPrompt.js.map +1 -1
- package/cjs/oidc/handleOAuthResponse.js +23 -40
- package/cjs/oidc/handleOAuthResponse.js.map +1 -1
- package/cjs/oidc/index.js +0 -32
- package/cjs/oidc/index.js.map +1 -1
- package/cjs/oidc/mixin/browser.js +6 -18
- package/cjs/oidc/mixin/browser.js.map +1 -1
- package/cjs/oidc/mixin/index.js +37 -89
- package/cjs/oidc/mixin/index.js.map +1 -1
- package/cjs/oidc/mixin/node.js +2 -9
- package/cjs/oidc/mixin/node.js.map +1 -1
- package/cjs/oidc/options/OAuthOptionsConstructor.js +17 -24
- package/cjs/oidc/options/OAuthOptionsConstructor.js.map +1 -1
- package/cjs/oidc/options/browser.js.map +1 -1
- package/cjs/oidc/options/index.js +0 -1
- package/cjs/oidc/options/index.js.map +1 -1
- package/cjs/oidc/options/node.js.map +1 -1
- package/cjs/oidc/parseFromUrl.js +1 -32
- package/cjs/oidc/parseFromUrl.js.map +1 -1
- package/cjs/oidc/renewToken.js +5 -16
- package/cjs/oidc/renewToken.js.map +1 -1
- package/cjs/oidc/renewTokens.js +3 -15
- package/cjs/oidc/renewTokens.js.map +1 -1
- package/cjs/oidc/renewTokensWithRefresh.js +3 -13
- package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
- package/cjs/oidc/revokeToken.js +3 -14
- package/cjs/oidc/revokeToken.js.map +1 -1
- package/cjs/oidc/storage.js +0 -8
- package/cjs/oidc/storage.js.map +1 -1
- package/cjs/oidc/types/Token.js +1 -5
- package/cjs/oidc/types/Token.js.map +1 -1
- package/cjs/oidc/types/TokenManager.js +1 -1
- package/cjs/oidc/types/TokenManager.js.map +1 -1
- package/cjs/oidc/types/Transaction.js +1 -12
- package/cjs/oidc/types/Transaction.js.map +1 -1
- package/cjs/oidc/types/UserClaims.js.map +1 -1
- package/cjs/oidc/types/api.js.map +1 -1
- package/cjs/oidc/types/index.js +0 -21
- package/cjs/oidc/types/index.js.map +1 -1
- package/cjs/oidc/types/meta.js.map +1 -1
- package/cjs/oidc/types/options.js.map +1 -1
- package/cjs/oidc/types/proto.js.map +1 -1
- package/cjs/oidc/util/browser.js +4 -13
- package/cjs/oidc/util/browser.js.map +1 -1
- package/cjs/oidc/util/defaultTokenParams.js +5 -5
- package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
- package/cjs/oidc/util/errors.js +3 -8
- package/cjs/oidc/util/errors.js.map +1 -1
- package/cjs/oidc/util/index.js +0 -24
- package/cjs/oidc/util/index.js.map +1 -1
- package/cjs/oidc/util/loginRedirect.js +11 -25
- package/cjs/oidc/util/loginRedirect.js.map +1 -1
- package/cjs/oidc/util/oauth.js +3 -12
- package/cjs/oidc/util/oauth.js.map +1 -1
- package/cjs/oidc/util/oauthMeta.js +5 -6
- package/cjs/oidc/util/oauthMeta.js.map +1 -1
- package/cjs/oidc/util/pkce.js +1 -12
- package/cjs/oidc/util/pkce.js.map +1 -1
- package/cjs/oidc/util/prepareTokenParams.js +13 -26
- package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
- package/cjs/oidc/util/refreshToken.js +0 -7
- package/cjs/oidc/util/refreshToken.js.map +1 -1
- package/cjs/oidc/util/sharedStorage.js +0 -8
- package/cjs/oidc/util/sharedStorage.js.map +1 -1
- package/cjs/oidc/util/urlParams.js +9 -12
- package/cjs/oidc/util/urlParams.js.map +1 -1
- package/cjs/oidc/util/validateClaims.js +9 -17
- package/cjs/oidc/util/validateClaims.js.map +1 -1
- package/cjs/oidc/util/validateToken.js +1 -6
- package/cjs/oidc/util/validateToken.js.map +1 -1
- package/cjs/oidc/verifyToken.js +13 -23
- package/cjs/oidc/verifyToken.js.map +1 -1
- package/cjs/server/serverStorage.js +9 -27
- package/cjs/server/serverStorage.js.map +1 -1
- package/cjs/services/AutoRenewService.js +1 -17
- package/cjs/services/AutoRenewService.js.map +1 -1
- package/cjs/services/LeaderElectionService.js +1 -23
- package/cjs/services/LeaderElectionService.js.map +1 -1
- package/cjs/services/SyncStorageService.js +3 -37
- package/cjs/services/SyncStorageService.js.map +1 -1
- package/cjs/services/index.js +0 -5
- package/cjs/services/index.js.map +1 -1
- package/cjs/session/api.js +1 -12
- package/cjs/session/api.js.map +1 -1
- package/cjs/session/factory.js +0 -2
- package/cjs/session/factory.js.map +1 -1
- package/cjs/session/index.js +0 -7
- package/cjs/session/index.js.map +1 -1
- package/cjs/session/mixin.js +2 -6
- package/cjs/session/mixin.js.map +1 -1
- package/cjs/storage/BaseStorageManager.js +13 -25
- package/cjs/storage/BaseStorageManager.js.map +1 -1
- package/cjs/storage/SavedObject.js +7 -19
- package/cjs/storage/SavedObject.js.map +1 -1
- package/cjs/storage/index.js +0 -9
- package/cjs/storage/index.js.map +1 -1
- package/cjs/storage/mixin.js +2 -4
- package/cjs/storage/mixin.js.map +1 -1
- package/cjs/storage/options/StorageOptionsConstructor.js +3 -6
- package/cjs/storage/options/StorageOptionsConstructor.js.map +1 -1
- package/cjs/storage/options/browser.js +7 -15
- package/cjs/storage/options/browser.js.map +1 -1
- package/cjs/storage/options/node.js +3 -6
- package/cjs/storage/options/node.js.map +1 -1
- package/cjs/util/PromiseQueue.js +7 -15
- package/cjs/util/PromiseQueue.js.map +1 -1
- package/cjs/util/console.js +3 -7
- package/cjs/util/console.js.map +1 -1
- package/cjs/util/index.js +0 -11
- package/cjs/util/index.js.map +1 -1
- package/cjs/util/misc.js +3 -8
- package/cjs/util/misc.js.map +1 -1
- package/cjs/util/object.js +9 -23
- package/cjs/util/object.js.map +1 -1
- package/cjs/util/types.js +1 -5
- package/cjs/util/types.js.map +1 -1
- package/cjs/util/url.js +5 -14
- package/cjs/util/url.js.map +1 -1
- package/dist/okta-auth-js.authn.min.analyzer.html +3 -3
- package/dist/okta-auth-js.authn.min.js +1 -1
- package/dist/okta-auth-js.authn.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.authn.min.js.map +1 -1
- package/dist/okta-auth-js.core.min.analyzer.html +3 -3
- package/dist/okta-auth-js.core.min.js +1 -1
- package/dist/okta-auth-js.core.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.core.min.js.map +1 -1
- package/dist/okta-auth-js.idx.min.analyzer.html +3 -3
- package/dist/okta-auth-js.idx.min.js +1 -1
- package/dist/okta-auth-js.idx.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.idx.min.js.map +1 -1
- package/dist/okta-auth-js.min.analyzer.html +3 -3
- package/dist/okta-auth-js.min.js +1 -1
- package/dist/okta-auth-js.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.min.js.map +1 -1
- package/dist/okta-auth-js.myaccount.min.analyzer.html +3 -3
- package/dist/okta-auth-js.myaccount.min.js +1 -1
- package/dist/okta-auth-js.myaccount.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.myaccount.min.js.map +1 -1
- package/dist/okta-auth-js.polyfill.js +1 -1
- package/dist/okta-auth-js.polyfill.js.map +1 -1
- package/esm/browser/http/OktaUserAgent.js +2 -2
- package/esm/browser/http/request.js +56 -23
- package/esm/browser/http/request.js.map +1 -1
- package/esm/browser/idx/interact.js +2 -2
- package/esm/browser/idx/interact.js.map +1 -1
- package/esm/browser/idx/run.js +2 -1
- package/esm/browser/idx/run.js.map +1 -1
- package/esm/browser/idx/transactionMeta.js +3 -2
- package/esm/browser/idx/transactionMeta.js.map +1 -1
- package/esm/browser/myaccount/request.js +2 -43
- package/esm/browser/myaccount/request.js.map +1 -1
- package/esm/browser/oidc/endpoints/authorize.js +1 -0
- package/esm/browser/oidc/endpoints/authorize.js.map +1 -1
- package/esm/browser/oidc/exchangeCodeForTokens.js +2 -1
- package/esm/browser/oidc/exchangeCodeForTokens.js.map +1 -1
- package/esm/browser/oidc/handleOAuthResponse.js +17 -16
- package/esm/browser/oidc/handleOAuthResponse.js.map +1 -1
- package/esm/browser/oidc/options/OAuthOptionsConstructor.js +2 -0
- package/esm/browser/oidc/options/OAuthOptionsConstructor.js.map +1 -1
- package/esm/browser/oidc/util/defaultTokenParams.js +3 -1
- package/esm/browser/oidc/util/defaultTokenParams.js.map +1 -1
- package/esm/browser/oidc/util/oauthMeta.js +1 -0
- package/esm/browser/oidc/util/oauthMeta.js.map +1 -1
- package/esm/browser/oidc/util/validateClaims.js +9 -4
- package/esm/browser/oidc/util/validateClaims.js.map +1 -1
- package/esm/browser/oidc/verifyToken.js +2 -2
- package/esm/browser/oidc/verifyToken.js.map +1 -1
- package/esm/browser/package.json +1 -1
- package/esm/node/http/OktaUserAgent.js +2 -2
- package/esm/node/http/request.js +56 -23
- package/esm/node/http/request.js.map +1 -1
- package/esm/node/idx/interact.js +2 -2
- package/esm/node/idx/interact.js.map +1 -1
- package/esm/node/idx/run.js +2 -1
- package/esm/node/idx/run.js.map +1 -1
- package/esm/node/idx/transactionMeta.js +3 -2
- package/esm/node/idx/transactionMeta.js.map +1 -1
- package/esm/node/myaccount/request.js +2 -43
- package/esm/node/myaccount/request.js.map +1 -1
- package/esm/node/oidc/endpoints/authorize.js +1 -0
- package/esm/node/oidc/endpoints/authorize.js.map +1 -1
- package/esm/node/oidc/exchangeCodeForTokens.js +2 -1
- package/esm/node/oidc/exchangeCodeForTokens.js.map +1 -1
- package/esm/node/oidc/handleOAuthResponse.js +17 -16
- package/esm/node/oidc/handleOAuthResponse.js.map +1 -1
- package/esm/node/oidc/options/OAuthOptionsConstructor.js +2 -0
- package/esm/node/oidc/options/OAuthOptionsConstructor.js.map +1 -1
- package/esm/node/oidc/util/defaultTokenParams.js +3 -1
- package/esm/node/oidc/util/defaultTokenParams.js.map +1 -1
- package/esm/node/oidc/util/oauthMeta.js +1 -0
- package/esm/node/oidc/util/oauthMeta.js.map +1 -1
- package/esm/node/oidc/util/validateClaims.js +9 -4
- package/esm/node/oidc/util/validateClaims.js.map +1 -1
- package/esm/node/oidc/verifyToken.js +2 -2
- package/esm/node/oidc/verifyToken.js.map +1 -1
- package/esm/node/package.json +1 -1
- package/package.json +12 -13
- package/polyfill/index.js +8 -5
- package/types/lib/core/options.d.ts +2 -0
- package/types/lib/idx/interact.d.ts +1 -0
- package/types/lib/idx/options.d.ts +2 -0
- package/types/lib/idx/types/meta.d.ts +1 -0
- package/types/lib/idx/types/options.d.ts +1 -0
- package/types/lib/oidc/options/OAuthOptionsConstructor.d.ts +2 -0
- package/types/lib/oidc/types/UserClaims.d.ts +1 -0
- package/types/lib/oidc/types/api.d.ts +1 -0
- package/types/lib/oidc/types/meta.d.ts +1 -1
- package/types/lib/oidc/types/options.d.ts +2 -1
- package/types/lib/oidc/types/proto.d.ts +1 -0
- package/umd/authn.js +1 -1
- package/umd/authn.js.LICENSE.txt +2 -0
- package/umd/authn.js.map +1 -1
- package/umd/core.js +1 -1
- package/umd/core.js.LICENSE.txt +2 -0
- package/umd/core.js.map +1 -1
- package/umd/default.js +1 -1
- package/umd/default.js.LICENSE.txt +2 -0
- package/umd/default.js.map +1 -1
- package/umd/idx.js +1 -1
- package/umd/idx.js.LICENSE.txt +2 -0
- package/umd/idx.js.map +1 -1
- package/umd/myaccount.js +1 -1
- package/umd/myaccount.js.LICENSE.txt +2 -0
- package/umd/myaccount.js.map +1 -1
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
exports.INITIAL_AUTH_STATE = exports.AuthStateManager = void 0;
|
|
6
|
-
|
|
7
5
|
var _pCancelable = _interopRequireDefault(require("p-cancelable"));
|
|
8
|
-
|
|
9
6
|
var _errors = require("../errors");
|
|
10
|
-
|
|
11
7
|
var _oidc = require("../oidc");
|
|
12
|
-
|
|
13
8
|
var _util = require("../util");
|
|
14
|
-
|
|
15
9
|
/*!
|
|
16
10
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
17
11
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -23,9 +17,11 @@ var _util = require("../util");
|
|
|
23
17
|
*
|
|
24
18
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
25
19
|
*/
|
|
20
|
+
|
|
26
21
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
27
22
|
// @ts-ignore
|
|
28
23
|
// Do not use this type in code, so it won't be emitted in the declaration output
|
|
24
|
+
|
|
29
25
|
const INITIAL_AUTH_STATE = null;
|
|
30
26
|
exports.INITIAL_AUTH_STATE = INITIAL_AUTH_STATE;
|
|
31
27
|
const DEFAULT_PENDING = {
|
|
@@ -33,42 +29,41 @@ const DEFAULT_PENDING = {
|
|
|
33
29
|
canceledTimes: 0
|
|
34
30
|
};
|
|
35
31
|
const EVENT_AUTH_STATE_CHANGE = 'authStateChange';
|
|
36
|
-
const MAX_PROMISE_CANCEL_TIMES = 10;
|
|
32
|
+
const MAX_PROMISE_CANCEL_TIMES = 10;
|
|
37
33
|
|
|
34
|
+
// only compare first level of authState
|
|
38
35
|
const isSameAuthState = (prevState, state) => {
|
|
39
36
|
// initial state is null
|
|
40
37
|
if (!prevState) {
|
|
41
38
|
return false;
|
|
42
39
|
}
|
|
43
|
-
|
|
44
40
|
return prevState.isAuthenticated === state.isAuthenticated && JSON.stringify(prevState.idToken) === JSON.stringify(state.idToken) && JSON.stringify(prevState.accessToken) === JSON.stringify(state.accessToken) && prevState.error === state.error;
|
|
45
41
|
};
|
|
46
|
-
|
|
47
42
|
class AuthStateManager {
|
|
48
43
|
constructor(sdk) {
|
|
49
44
|
if (!sdk.emitter) {
|
|
50
45
|
throw new _errors.AuthSdkError('Emitter should be initialized before AuthStateManager');
|
|
51
46
|
}
|
|
52
|
-
|
|
53
47
|
this._sdk = sdk;
|
|
54
|
-
this._pending = {
|
|
48
|
+
this._pending = {
|
|
49
|
+
...DEFAULT_PENDING
|
|
55
50
|
};
|
|
56
51
|
this._authState = INITIAL_AUTH_STATE;
|
|
57
52
|
this._logOptions = {};
|
|
58
53
|
this._prevAuthState = null;
|
|
59
54
|
this._transformQueue = new _util.PromiseQueue({
|
|
60
55
|
quiet: true
|
|
61
|
-
});
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
// Listen on tokenManager events to start updateState process
|
|
62
59
|
// "added" event is emitted in both add and renew process
|
|
63
60
|
// Only listen on "added" event to update auth state
|
|
64
|
-
|
|
65
61
|
sdk.tokenManager.on(_oidc.EVENT_ADDED, (key, token) => {
|
|
66
62
|
this._setLogOptions({
|
|
67
63
|
event: _oidc.EVENT_ADDED,
|
|
68
64
|
key,
|
|
69
65
|
token
|
|
70
66
|
});
|
|
71
|
-
|
|
72
67
|
this.updateAuthState();
|
|
73
68
|
});
|
|
74
69
|
sdk.tokenManager.on(_oidc.EVENT_REMOVED, (key, token) => {
|
|
@@ -77,29 +72,23 @@ class AuthStateManager {
|
|
|
77
72
|
key,
|
|
78
73
|
token
|
|
79
74
|
});
|
|
80
|
-
|
|
81
75
|
this.updateAuthState();
|
|
82
76
|
});
|
|
83
77
|
}
|
|
84
|
-
|
|
85
78
|
_setLogOptions(options) {
|
|
86
79
|
this._logOptions = options;
|
|
87
80
|
}
|
|
88
|
-
|
|
89
81
|
getAuthState() {
|
|
90
82
|
return this._authState;
|
|
91
83
|
}
|
|
92
|
-
|
|
93
84
|
getPreviousAuthState() {
|
|
94
85
|
return this._prevAuthState;
|
|
95
86
|
}
|
|
96
|
-
|
|
97
87
|
async updateAuthState() {
|
|
98
88
|
const {
|
|
99
89
|
transformAuthState,
|
|
100
90
|
devMode
|
|
101
91
|
} = this._sdk.options;
|
|
102
|
-
|
|
103
92
|
const log = status => {
|
|
104
93
|
const {
|
|
105
94
|
event,
|
|
@@ -109,38 +98,33 @@ class AuthStateManager {
|
|
|
109
98
|
(0, _util.getConsole)().group(`OKTA-AUTH-JS:updateAuthState: Event:${event} Status:${status}`);
|
|
110
99
|
(0, _util.getConsole)().log(key, token);
|
|
111
100
|
(0, _util.getConsole)().log('Current authState', this._authState);
|
|
112
|
-
(0, _util.getConsole)().groupEnd();
|
|
101
|
+
(0, _util.getConsole)().groupEnd();
|
|
113
102
|
|
|
103
|
+
// clear log options after logging
|
|
114
104
|
this._logOptions = {};
|
|
115
105
|
};
|
|
116
|
-
|
|
117
106
|
const emitAuthStateChange = authState => {
|
|
118
107
|
if (isSameAuthState(this._authState, authState)) {
|
|
119
108
|
devMode && log('unchanged');
|
|
120
109
|
return;
|
|
121
110
|
}
|
|
122
|
-
|
|
123
111
|
this._prevAuthState = this._authState;
|
|
124
|
-
this._authState = authState;
|
|
125
|
-
|
|
126
|
-
this._sdk.emitter.emit(EVENT_AUTH_STATE_CHANGE, {
|
|
112
|
+
this._authState = authState;
|
|
113
|
+
// emit new authState object
|
|
114
|
+
this._sdk.emitter.emit(EVENT_AUTH_STATE_CHANGE, {
|
|
115
|
+
...authState
|
|
127
116
|
});
|
|
128
|
-
|
|
129
117
|
devMode && log('emitted');
|
|
130
118
|
};
|
|
131
|
-
|
|
132
119
|
const finalPromise = origPromise => {
|
|
133
120
|
return this._pending.updateAuthStatePromise.then(() => {
|
|
134
121
|
const curPromise = this._pending.updateAuthStatePromise;
|
|
135
|
-
|
|
136
122
|
if (curPromise && curPromise !== origPromise) {
|
|
137
123
|
return finalPromise(curPromise);
|
|
138
124
|
}
|
|
139
|
-
|
|
140
125
|
return this.getAuthState();
|
|
141
126
|
});
|
|
142
127
|
};
|
|
143
|
-
|
|
144
128
|
if (this._pending.updateAuthStatePromise) {
|
|
145
129
|
if (this._pending.canceledTimes >= MAX_PROMISE_CANCEL_TIMES) {
|
|
146
130
|
// stop canceling then starting a new promise
|
|
@@ -151,9 +135,8 @@ class AuthStateManager {
|
|
|
151
135
|
this._pending.updateAuthStatePromise.cancel();
|
|
152
136
|
}
|
|
153
137
|
}
|
|
154
|
-
/* eslint-disable complexity */
|
|
155
|
-
|
|
156
138
|
|
|
139
|
+
/* eslint-disable complexity */
|
|
157
140
|
const cancelablePromise = new _pCancelable.default((resolve, _, onCancel) => {
|
|
158
141
|
onCancel.shouldReject = false;
|
|
159
142
|
onCancel(() => {
|
|
@@ -161,40 +144,38 @@ class AuthStateManager {
|
|
|
161
144
|
this._pending.canceledTimes = this._pending.canceledTimes + 1;
|
|
162
145
|
devMode && log('canceled');
|
|
163
146
|
});
|
|
164
|
-
|
|
165
147
|
const emitAndResolve = authState => {
|
|
166
148
|
if (cancelablePromise.isCanceled) {
|
|
167
149
|
resolve();
|
|
168
150
|
return;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
|
|
151
|
+
}
|
|
152
|
+
// emit event and resolve promise
|
|
172
153
|
emitAuthStateChange(authState);
|
|
173
|
-
resolve();
|
|
154
|
+
resolve();
|
|
174
155
|
|
|
175
|
-
|
|
156
|
+
// clear pending states after resolve
|
|
157
|
+
this._pending = {
|
|
158
|
+
...DEFAULT_PENDING
|
|
176
159
|
};
|
|
177
160
|
};
|
|
178
|
-
|
|
179
161
|
this._sdk.isAuthenticated().then(() => {
|
|
180
162
|
if (cancelablePromise.isCanceled) {
|
|
181
163
|
resolve();
|
|
182
164
|
return;
|
|
183
165
|
}
|
|
184
|
-
|
|
185
166
|
const {
|
|
186
167
|
accessToken,
|
|
187
168
|
idToken,
|
|
188
169
|
refreshToken
|
|
189
170
|
} = this._sdk.tokenManager.getTokensSync();
|
|
190
|
-
|
|
191
171
|
const authState = {
|
|
192
172
|
accessToken,
|
|
193
173
|
idToken,
|
|
194
174
|
refreshToken,
|
|
195
175
|
isAuthenticated: !!(accessToken && idToken)
|
|
196
|
-
};
|
|
176
|
+
};
|
|
197
177
|
|
|
178
|
+
// Enqueue transformAuthState so that it does not run concurrently
|
|
198
179
|
const promise = transformAuthState ? this._transformQueue.push(transformAuthState, null, this._sdk, authState) : Promise.resolve(authState);
|
|
199
180
|
promise.then(authState => emitAndResolve(authState)).catch(error => emitAndResolve({
|
|
200
181
|
accessToken,
|
|
@@ -206,20 +187,15 @@ class AuthStateManager {
|
|
|
206
187
|
});
|
|
207
188
|
});
|
|
208
189
|
/* eslint-enable complexity */
|
|
209
|
-
|
|
210
190
|
this._pending.updateAuthStatePromise = cancelablePromise;
|
|
211
191
|
return finalPromise(cancelablePromise);
|
|
212
192
|
}
|
|
213
|
-
|
|
214
193
|
subscribe(handler) {
|
|
215
194
|
this._sdk.emitter.on(EVENT_AUTH_STATE_CHANGE, handler);
|
|
216
195
|
}
|
|
217
|
-
|
|
218
196
|
unsubscribe(handler) {
|
|
219
197
|
this._sdk.emitter.off(EVENT_AUTH_STATE_CHANGE, handler);
|
|
220
198
|
}
|
|
221
|
-
|
|
222
199
|
}
|
|
223
|
-
|
|
224
200
|
exports.AuthStateManager = AuthStateManager;
|
|
225
201
|
//# sourceMappingURL=AuthStateManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthStateManager.js","names":["INITIAL_AUTH_STATE","DEFAULT_PENDING","updateAuthStatePromise","canceledTimes","EVENT_AUTH_STATE_CHANGE","MAX_PROMISE_CANCEL_TIMES","isSameAuthState","prevState","state","isAuthenticated","JSON","stringify","idToken","accessToken","error","AuthStateManager","constructor","sdk","emitter","AuthSdkError","_sdk","_pending","_authState","_logOptions","_prevAuthState","_transformQueue","PromiseQueue","quiet","tokenManager","on","EVENT_ADDED","key","token","_setLogOptions","event","updateAuthState","EVENT_REMOVED","options","getAuthState","getPreviousAuthState","transformAuthState","devMode","log","status","getConsole","group","groupEnd","emitAuthStateChange","authState","emit","finalPromise","origPromise","then","curPromise","cancel","cancelablePromise","PCancelable","resolve","_","onCancel","shouldReject","emitAndResolve","isCanceled","refreshToken","getTokensSync","promise","push","Promise","catch","subscribe","handler","unsubscribe","off"],"sources":["../../../lib/core/AuthStateManager.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n \n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport PCancelable from 'p-cancelable';\nimport { AuthSdkError } from '../errors';\nimport {\n EVENT_ADDED,\n EVENT_REMOVED,\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthInterface\n} from '../oidc';\nimport {\n AuthState,\n AuthStateLogOptions,\n OktaAuthCoreOptions,\n} from './types';\nimport { PromiseQueue, getConsole } from '../util';\n\nexport const INITIAL_AUTH_STATE = null;\nconst DEFAULT_PENDING = {\n updateAuthStatePromise: null,\n canceledTimes: 0\n};\nconst EVENT_AUTH_STATE_CHANGE = 'authStateChange';\nconst MAX_PROMISE_CANCEL_TIMES = 10;\n\n// only compare first level of authState\nconst isSameAuthState = (prevState: AuthState | null, state: AuthState) => {\n // initial state is null\n if (!prevState) {\n return false;\n }\n\n return prevState.isAuthenticated === state.isAuthenticated \n && JSON.stringify(prevState.idToken) === JSON.stringify(state.idToken)\n && JSON.stringify(prevState.accessToken) === JSON.stringify(state.accessToken)\n && prevState.error === state.error;\n};\n\n\nexport class AuthStateManager\n<\n M extends OAuthTransactionMeta,\n S extends OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions\n>\n{\n _sdk: OktaAuthOAuthInterface<M, S, O>;\n _pending: { \n updateAuthStatePromise: any;\n canceledTimes: number; \n };\n _authState: AuthState | null;\n _prevAuthState: AuthState | null;\n _logOptions: AuthStateLogOptions;\n _transformQueue: PromiseQueue;\n\n constructor(sdk: OktaAuthOAuthInterface<M, S, O>) {\n if (!sdk.emitter) {\n throw new AuthSdkError('Emitter should be initialized before AuthStateManager');\n }\n\n this._sdk = sdk;\n this._pending = { ...DEFAULT_PENDING };\n this._authState = INITIAL_AUTH_STATE;\n this._logOptions = {};\n this._prevAuthState = null;\n this._transformQueue = new PromiseQueue({\n quiet: true\n });\n\n // Listen on tokenManager events to start updateState process\n // \"added\" event is emitted in both add and renew process\n // Only listen on \"added\" event to update auth state\n sdk.tokenManager.on(EVENT_ADDED, (key, token) => {\n this._setLogOptions({ event: EVENT_ADDED, key, token });\n this.updateAuthState();\n });\n sdk.tokenManager.on(EVENT_REMOVED, (key, token) => {\n this._setLogOptions({ event: EVENT_REMOVED, key, token });\n this.updateAuthState();\n });\n }\n\n _setLogOptions(options) {\n this._logOptions = options;\n }\n\n getAuthState(): AuthState | null {\n return this._authState;\n }\n\n getPreviousAuthState(): AuthState | null {\n return this._prevAuthState;\n }\n\n async updateAuthState(): Promise<AuthState> {\n const { transformAuthState, devMode } = this._sdk.options;\n\n const log = (status) => {\n const { event, key, token } = this._logOptions;\n getConsole().group(`OKTA-AUTH-JS:updateAuthState: Event:${event} Status:${status}`);\n getConsole().log(key, token);\n getConsole().log('Current authState', this._authState);\n getConsole().groupEnd();\n \n // clear log options after logging\n this._logOptions = {};\n };\n\n const emitAuthStateChange = (authState) => {\n if (isSameAuthState(this._authState, authState)) {\n devMode && log('unchanged'); \n return;\n }\n this._prevAuthState = this._authState;\n this._authState = authState;\n // emit new authState object\n this._sdk.emitter.emit(EVENT_AUTH_STATE_CHANGE, { ...authState });\n devMode && log('emitted');\n };\n\n const finalPromise = (origPromise) => { \n return this._pending.updateAuthStatePromise.then(() => {\n const curPromise = this._pending.updateAuthStatePromise;\n if (curPromise && curPromise !== origPromise) {\n return finalPromise(curPromise);\n }\n return this.getAuthState();\n });\n };\n\n if (this._pending.updateAuthStatePromise) {\n if (this._pending.canceledTimes >= MAX_PROMISE_CANCEL_TIMES) {\n // stop canceling then starting a new promise\n // let existing promise finish to prevent running into loops\n devMode && log('terminated');\n return finalPromise(this._pending.updateAuthStatePromise);\n } else {\n this._pending.updateAuthStatePromise.cancel();\n }\n }\n\n /* eslint-disable complexity */\n const cancelablePromise = new PCancelable((resolve, _, onCancel) => {\n onCancel.shouldReject = false;\n onCancel(() => {\n this._pending.updateAuthStatePromise = null;\n this._pending.canceledTimes = this._pending.canceledTimes + 1;\n devMode && log('canceled');\n });\n\n const emitAndResolve = (authState) => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n // emit event and resolve promise \n emitAuthStateChange(authState);\n resolve();\n\n // clear pending states after resolve\n this._pending = { ...DEFAULT_PENDING };\n };\n\n this._sdk.isAuthenticated()\n .then(() => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n\n const { accessToken, idToken, refreshToken } = this._sdk.tokenManager.getTokensSync();\n const authState = {\n accessToken,\n idToken,\n refreshToken,\n isAuthenticated: !!(accessToken && idToken)\n };\n\n // Enqueue transformAuthState so that it does not run concurrently\n const promise: Promise<AuthState> = transformAuthState\n ? this._transformQueue.push(transformAuthState, null, this._sdk, authState) as Promise<AuthState>\n : Promise.resolve(authState);\n\n promise\n .then(authState => emitAndResolve(authState))\n .catch(error => emitAndResolve({\n accessToken, \n idToken, \n refreshToken,\n isAuthenticated: false, \n error\n }));\n });\n });\n /* eslint-enable complexity */\n this._pending.updateAuthStatePromise = cancelablePromise;\n\n return finalPromise(cancelablePromise);\n }\n\n subscribe(handler): void {\n this._sdk.emitter.on(EVENT_AUTH_STATE_CHANGE, handler);\n }\n\n unsubscribe(handler?): void {\n this._sdk.emitter.off(EVENT_AUTH_STATE_CHANGE, handler);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuthStateManager.js","names":["INITIAL_AUTH_STATE","DEFAULT_PENDING","updateAuthStatePromise","canceledTimes","EVENT_AUTH_STATE_CHANGE","MAX_PROMISE_CANCEL_TIMES","isSameAuthState","prevState","state","isAuthenticated","JSON","stringify","idToken","accessToken","error","AuthStateManager","constructor","sdk","emitter","AuthSdkError","_sdk","_pending","_authState","_logOptions","_prevAuthState","_transformQueue","PromiseQueue","quiet","tokenManager","on","EVENT_ADDED","key","token","_setLogOptions","event","updateAuthState","EVENT_REMOVED","options","getAuthState","getPreviousAuthState","transformAuthState","devMode","log","status","getConsole","group","groupEnd","emitAuthStateChange","authState","emit","finalPromise","origPromise","then","curPromise","cancel","cancelablePromise","PCancelable","resolve","_","onCancel","shouldReject","emitAndResolve","isCanceled","refreshToken","getTokensSync","promise","push","Promise","catch","subscribe","handler","unsubscribe","off"],"sources":["../../../lib/core/AuthStateManager.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n \n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport PCancelable from 'p-cancelable';\nimport { AuthSdkError } from '../errors';\nimport {\n EVENT_ADDED,\n EVENT_REMOVED,\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthInterface\n} from '../oidc';\nimport {\n AuthState,\n AuthStateLogOptions,\n OktaAuthCoreOptions,\n} from './types';\nimport { PromiseQueue, getConsole } from '../util';\n\nexport const INITIAL_AUTH_STATE = null;\nconst DEFAULT_PENDING = {\n updateAuthStatePromise: null,\n canceledTimes: 0\n};\nconst EVENT_AUTH_STATE_CHANGE = 'authStateChange';\nconst MAX_PROMISE_CANCEL_TIMES = 10;\n\n// only compare first level of authState\nconst isSameAuthState = (prevState: AuthState | null, state: AuthState) => {\n // initial state is null\n if (!prevState) {\n return false;\n }\n\n return prevState.isAuthenticated === state.isAuthenticated \n && JSON.stringify(prevState.idToken) === JSON.stringify(state.idToken)\n && JSON.stringify(prevState.accessToken) === JSON.stringify(state.accessToken)\n && prevState.error === state.error;\n};\n\n\nexport class AuthStateManager\n<\n M extends OAuthTransactionMeta,\n S extends OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions\n>\n{\n _sdk: OktaAuthOAuthInterface<M, S, O>;\n _pending: { \n updateAuthStatePromise: any;\n canceledTimes: number; \n };\n _authState: AuthState | null;\n _prevAuthState: AuthState | null;\n _logOptions: AuthStateLogOptions;\n _transformQueue: PromiseQueue;\n\n constructor(sdk: OktaAuthOAuthInterface<M, S, O>) {\n if (!sdk.emitter) {\n throw new AuthSdkError('Emitter should be initialized before AuthStateManager');\n }\n\n this._sdk = sdk;\n this._pending = { ...DEFAULT_PENDING };\n this._authState = INITIAL_AUTH_STATE;\n this._logOptions = {};\n this._prevAuthState = null;\n this._transformQueue = new PromiseQueue({\n quiet: true\n });\n\n // Listen on tokenManager events to start updateState process\n // \"added\" event is emitted in both add and renew process\n // Only listen on \"added\" event to update auth state\n sdk.tokenManager.on(EVENT_ADDED, (key, token) => {\n this._setLogOptions({ event: EVENT_ADDED, key, token });\n this.updateAuthState();\n });\n sdk.tokenManager.on(EVENT_REMOVED, (key, token) => {\n this._setLogOptions({ event: EVENT_REMOVED, key, token });\n this.updateAuthState();\n });\n }\n\n _setLogOptions(options) {\n this._logOptions = options;\n }\n\n getAuthState(): AuthState | null {\n return this._authState;\n }\n\n getPreviousAuthState(): AuthState | null {\n return this._prevAuthState;\n }\n\n async updateAuthState(): Promise<AuthState> {\n const { transformAuthState, devMode } = this._sdk.options;\n\n const log = (status) => {\n const { event, key, token } = this._logOptions;\n getConsole().group(`OKTA-AUTH-JS:updateAuthState: Event:${event} Status:${status}`);\n getConsole().log(key, token);\n getConsole().log('Current authState', this._authState);\n getConsole().groupEnd();\n \n // clear log options after logging\n this._logOptions = {};\n };\n\n const emitAuthStateChange = (authState) => {\n if (isSameAuthState(this._authState, authState)) {\n devMode && log('unchanged'); \n return;\n }\n this._prevAuthState = this._authState;\n this._authState = authState;\n // emit new authState object\n this._sdk.emitter.emit(EVENT_AUTH_STATE_CHANGE, { ...authState });\n devMode && log('emitted');\n };\n\n const finalPromise = (origPromise) => { \n return this._pending.updateAuthStatePromise.then(() => {\n const curPromise = this._pending.updateAuthStatePromise;\n if (curPromise && curPromise !== origPromise) {\n return finalPromise(curPromise);\n }\n return this.getAuthState();\n });\n };\n\n if (this._pending.updateAuthStatePromise) {\n if (this._pending.canceledTimes >= MAX_PROMISE_CANCEL_TIMES) {\n // stop canceling then starting a new promise\n // let existing promise finish to prevent running into loops\n devMode && log('terminated');\n return finalPromise(this._pending.updateAuthStatePromise);\n } else {\n this._pending.updateAuthStatePromise.cancel();\n }\n }\n\n /* eslint-disable complexity */\n const cancelablePromise = new PCancelable((resolve, _, onCancel) => {\n onCancel.shouldReject = false;\n onCancel(() => {\n this._pending.updateAuthStatePromise = null;\n this._pending.canceledTimes = this._pending.canceledTimes + 1;\n devMode && log('canceled');\n });\n\n const emitAndResolve = (authState) => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n // emit event and resolve promise \n emitAuthStateChange(authState);\n resolve();\n\n // clear pending states after resolve\n this._pending = { ...DEFAULT_PENDING };\n };\n\n this._sdk.isAuthenticated()\n .then(() => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n\n const { accessToken, idToken, refreshToken } = this._sdk.tokenManager.getTokensSync();\n const authState = {\n accessToken,\n idToken,\n refreshToken,\n isAuthenticated: !!(accessToken && idToken)\n };\n\n // Enqueue transformAuthState so that it does not run concurrently\n const promise: Promise<AuthState> = transformAuthState\n ? this._transformQueue.push(transformAuthState, null, this._sdk, authState) as Promise<AuthState>\n : Promise.resolve(authState);\n\n promise\n .then(authState => emitAndResolve(authState))\n .catch(error => emitAndResolve({\n accessToken, \n idToken, \n refreshToken,\n isAuthenticated: false, \n error\n }));\n });\n });\n /* eslint-enable complexity */\n this._pending.updateAuthStatePromise = cancelablePromise;\n\n return finalPromise(cancelablePromise);\n }\n\n subscribe(handler): void {\n this._sdk.emitter.on(EVENT_AUTH_STATE_CHANGE, handler);\n }\n\n unsubscribe(handler?): void {\n this._sdk.emitter.off(EVENT_AUTH_STATE_CHANGE, handler);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
exports.ServiceManager = void 0;
|
|
6
|
-
|
|
7
5
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
-
|
|
9
6
|
var _services = require("../../services");
|
|
10
|
-
|
|
11
7
|
var _util = require("../../util");
|
|
12
|
-
|
|
13
8
|
/*!
|
|
14
9
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
15
10
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -21,15 +16,16 @@ var _util = require("../../util");
|
|
|
21
16
|
*
|
|
22
17
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
23
18
|
*/
|
|
19
|
+
|
|
24
20
|
const AUTO_RENEW = 'autoRenew';
|
|
25
21
|
const SYNC_STORAGE = 'syncStorage';
|
|
26
22
|
const LEADER_ELECTION = 'leaderElection';
|
|
27
|
-
|
|
28
23
|
class ServiceManager {
|
|
29
24
|
constructor(sdk, options = {}) {
|
|
30
25
|
this.sdk = sdk;
|
|
31
|
-
this.onLeader = this.onLeader.bind(this);
|
|
26
|
+
this.onLeader = this.onLeader.bind(this);
|
|
32
27
|
|
|
28
|
+
// TODO: backwards compatibility, remove in next major version - OKTA-473815
|
|
33
29
|
const {
|
|
34
30
|
autoRenew,
|
|
35
31
|
autoRemove,
|
|
@@ -48,30 +44,24 @@ class ServiceManager {
|
|
|
48
44
|
this.services = new Map();
|
|
49
45
|
ServiceManager.knownServices.forEach(name => {
|
|
50
46
|
const svc = this.createService(name);
|
|
51
|
-
|
|
52
47
|
if (svc) {
|
|
53
48
|
this.services.set(name, svc);
|
|
54
49
|
}
|
|
55
50
|
});
|
|
56
51
|
}
|
|
57
|
-
|
|
58
52
|
async onLeader() {
|
|
59
53
|
if (this.started) {
|
|
60
54
|
// Start services that requires leadership
|
|
61
55
|
await this.startServices();
|
|
62
56
|
}
|
|
63
57
|
}
|
|
64
|
-
|
|
65
58
|
isLeader() {
|
|
66
59
|
var _this$getService;
|
|
67
|
-
|
|
68
60
|
return (_this$getService = this.getService(LEADER_ELECTION)) === null || _this$getService === void 0 ? void 0 : _this$getService.isLeader();
|
|
69
61
|
}
|
|
70
|
-
|
|
71
62
|
isLeaderRequired() {
|
|
72
63
|
return [...this.services.values()].some(srv => srv.canStart() && srv.requiresLeadership());
|
|
73
64
|
}
|
|
74
|
-
|
|
75
65
|
async start() {
|
|
76
66
|
if (this.started) {
|
|
77
67
|
return; // noop if services have already started
|
|
@@ -80,16 +70,13 @@ class ServiceManager {
|
|
|
80
70
|
await this.startServices();
|
|
81
71
|
this.started = true;
|
|
82
72
|
}
|
|
83
|
-
|
|
84
73
|
async stop() {
|
|
85
74
|
await this.stopServices();
|
|
86
75
|
this.started = false;
|
|
87
76
|
}
|
|
88
|
-
|
|
89
77
|
getService(name) {
|
|
90
78
|
return this.services.get(name);
|
|
91
79
|
}
|
|
92
|
-
|
|
93
80
|
async startServices() {
|
|
94
81
|
for (const [name, srv] of this.services.entries()) {
|
|
95
82
|
if (this.canStartService(name, srv)) {
|
|
@@ -97,56 +84,49 @@ class ServiceManager {
|
|
|
97
84
|
}
|
|
98
85
|
}
|
|
99
86
|
}
|
|
100
|
-
|
|
101
87
|
async stopServices() {
|
|
102
88
|
for (const srv of this.services.values()) {
|
|
103
89
|
await srv.stop();
|
|
104
90
|
}
|
|
105
|
-
}
|
|
106
|
-
|
|
91
|
+
}
|
|
107
92
|
|
|
93
|
+
// eslint-disable-next-line complexity
|
|
108
94
|
canStartService(name, srv) {
|
|
109
|
-
let canStart = srv.canStart() && !srv.isStarted();
|
|
110
|
-
|
|
95
|
+
let canStart = srv.canStart() && !srv.isStarted();
|
|
96
|
+
// only start election if a leader is required
|
|
111
97
|
if (name === LEADER_ELECTION) {
|
|
112
98
|
canStart && (canStart = this.isLeaderRequired());
|
|
113
99
|
} else if (srv.requiresLeadership()) {
|
|
114
100
|
canStart && (canStart = this.isLeader());
|
|
115
101
|
}
|
|
116
|
-
|
|
117
102
|
return canStart;
|
|
118
103
|
}
|
|
119
|
-
|
|
120
104
|
createService(name) {
|
|
121
105
|
const tokenManager = this.sdk.tokenManager;
|
|
122
106
|
let service;
|
|
123
|
-
|
|
124
107
|
switch (name) {
|
|
125
108
|
case LEADER_ELECTION:
|
|
126
|
-
service = new _services.LeaderElectionService({
|
|
109
|
+
service = new _services.LeaderElectionService({
|
|
110
|
+
...this.options,
|
|
127
111
|
onLeader: this.onLeader
|
|
128
112
|
});
|
|
129
113
|
break;
|
|
130
|
-
|
|
131
114
|
case AUTO_RENEW:
|
|
132
|
-
service = new _services.AutoRenewService(tokenManager, {
|
|
115
|
+
service = new _services.AutoRenewService(tokenManager, {
|
|
116
|
+
...this.options
|
|
133
117
|
});
|
|
134
118
|
break;
|
|
135
|
-
|
|
136
119
|
case SYNC_STORAGE:
|
|
137
|
-
service = new _services.SyncStorageService(tokenManager, {
|
|
120
|
+
service = new _services.SyncStorageService(tokenManager, {
|
|
121
|
+
...this.options
|
|
138
122
|
});
|
|
139
123
|
break;
|
|
140
|
-
|
|
141
124
|
default:
|
|
142
125
|
throw new Error(`Unknown service ${name}`);
|
|
143
126
|
}
|
|
144
|
-
|
|
145
127
|
return service;
|
|
146
128
|
}
|
|
147
|
-
|
|
148
129
|
}
|
|
149
|
-
|
|
150
130
|
exports.ServiceManager = ServiceManager;
|
|
151
131
|
(0, _defineProperty2.default)(ServiceManager, "knownServices", [AUTO_RENEW, SYNC_STORAGE, LEADER_ELECTION]);
|
|
152
132
|
(0, _defineProperty2.default)(ServiceManager, "defaultOptions", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","names":["AUTO_RENEW","SYNC_STORAGE","LEADER_ELECTION","ServiceManager","constructor","sdk","options","onLeader","bind","autoRenew","autoRemove","syncStorage","tokenManager","getOptions","electionChannelName","broadcastChannelName","Object","assign","defaultOptions","clientId","syncChannelName","removeNils","started","services","Map","knownServices","forEach","name","svc","createService","set","startServices","isLeader","getService","isLeaderRequired","values","some","srv","canStart","requiresLeadership","start","stop","stopServices","get","entries","canStartService","isStarted","service","LeaderElectionService","AutoRenewService","SyncStorageService","Error"],"sources":["../../../../lib/core/ServiceManager/browser.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport {\n OAuthTransactionMeta,\n OAuthStorageManagerInterface,\n} from '../../oidc';\n\nimport {\n ServiceManagerInterface,\n ServiceInterface,\n ServiceManagerOptions,\n OktaAuthCoreInterface,\n OktaAuthCoreOptions\n} from '../types';\nimport { AutoRenewService, SyncStorageService, LeaderElectionService } from '../../services';\nimport { removeNils } from '../../util';\n\nconst AUTO_RENEW = 'autoRenew';\nconst SYNC_STORAGE = 'syncStorage';\nconst LEADER_ELECTION = 'leaderElection';\n\nexport class ServiceManager\n<\n M extends OAuthTransactionMeta,\n S extends OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions\n>\nimplements ServiceManagerInterface \n{\n private sdk: OktaAuthCoreInterface<M, S, O>;\n private options: ServiceManagerOptions;\n private services: Map<string, ServiceInterface>;\n private started: boolean;\n\n private static knownServices = [AUTO_RENEW, SYNC_STORAGE, LEADER_ELECTION];\n\n private static defaultOptions = {\n autoRenew: true,\n autoRemove: true,\n syncStorage: true\n };\n\n constructor(sdk: OktaAuthCoreInterface<M, S, O>, options: ServiceManagerOptions = {}) {\n this.sdk = sdk;\n this.onLeader = this.onLeader.bind(this);\n\n // TODO: backwards compatibility, remove in next major version - OKTA-473815\n const { autoRenew, autoRemove, syncStorage } = sdk.tokenManager.getOptions();\n options.electionChannelName = options.electionChannelName || options.broadcastChannelName;\n this.options = Object.assign({}, \n ServiceManager.defaultOptions,\n { autoRenew, autoRemove, syncStorage }, \n {\n electionChannelName: `${sdk.options.clientId}-election`,\n syncChannelName: `${sdk.options.clientId}-sync`,\n },\n removeNils(options)\n );\n\n this.started = false;\n this.services = new Map();\n\n ServiceManager.knownServices.forEach(name => {\n const svc = this.createService(name);\n if (svc) {\n this.services.set(name, svc);\n }\n });\n }\n\n private async onLeader() {\n if (this.started) {\n // Start services that requires leadership\n await this.startServices();\n }\n }\n\n isLeader() {\n return (this.getService(LEADER_ELECTION) as LeaderElectionService)?.isLeader();\n }\n\n isLeaderRequired() {\n return [...this.services.values()].some(srv => srv.canStart() && srv.requiresLeadership());\n }\n\n async start() {\n if (this.started) {\n return; // noop if services have already started\n }\n await this.startServices();\n this.started = true;\n }\n \n async stop() {\n await this.stopServices();\n this.started = false;\n }\n\n getService(name: string): ServiceInterface | undefined {\n return this.services.get(name);\n }\n\n private async startServices() {\n for (const [name, srv] of this.services.entries()) {\n if (this.canStartService(name, srv)) {\n await srv.start();\n }\n }\n }\n\n private async stopServices() {\n for (const srv of this.services.values()) {\n await srv.stop();\n }\n }\n\n // eslint-disable-next-line complexity\n private canStartService(name: string, srv: ServiceInterface): boolean {\n let canStart = srv.canStart() && !srv.isStarted();\n // only start election if a leader is required\n if (name === LEADER_ELECTION) {\n canStart &&= this.isLeaderRequired();\n } else if (srv.requiresLeadership()) {\n canStart &&= this.isLeader();\n }\n return canStart;\n }\n\n private createService(name: string): ServiceInterface {\n const tokenManager = this.sdk.tokenManager;\n\n let service: ServiceInterface;\n switch (name) {\n case LEADER_ELECTION:\n service = new LeaderElectionService({...this.options, onLeader: this.onLeader});\n break;\n case AUTO_RENEW:\n service = new AutoRenewService(tokenManager, {...this.options});\n break;\n case SYNC_STORAGE:\n service = new SyncStorageService(tokenManager, {...this.options});\n break;\n default:\n throw new Error(`Unknown service ${name}`);\n }\n return service;\n }\n\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"browser.js","names":["AUTO_RENEW","SYNC_STORAGE","LEADER_ELECTION","ServiceManager","constructor","sdk","options","onLeader","bind","autoRenew","autoRemove","syncStorage","tokenManager","getOptions","electionChannelName","broadcastChannelName","Object","assign","defaultOptions","clientId","syncChannelName","removeNils","started","services","Map","knownServices","forEach","name","svc","createService","set","startServices","isLeader","getService","isLeaderRequired","values","some","srv","canStart","requiresLeadership","start","stop","stopServices","get","entries","canStartService","isStarted","service","LeaderElectionService","AutoRenewService","SyncStorageService","Error"],"sources":["../../../../lib/core/ServiceManager/browser.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport {\n OAuthTransactionMeta,\n OAuthStorageManagerInterface,\n} from '../../oidc';\n\nimport {\n ServiceManagerInterface,\n ServiceInterface,\n ServiceManagerOptions,\n OktaAuthCoreInterface,\n OktaAuthCoreOptions\n} from '../types';\nimport { AutoRenewService, SyncStorageService, LeaderElectionService } from '../../services';\nimport { removeNils } from '../../util';\n\nconst AUTO_RENEW = 'autoRenew';\nconst SYNC_STORAGE = 'syncStorage';\nconst LEADER_ELECTION = 'leaderElection';\n\nexport class ServiceManager\n<\n M extends OAuthTransactionMeta,\n S extends OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions\n>\nimplements ServiceManagerInterface \n{\n private sdk: OktaAuthCoreInterface<M, S, O>;\n private options: ServiceManagerOptions;\n private services: Map<string, ServiceInterface>;\n private started: boolean;\n\n private static knownServices = [AUTO_RENEW, SYNC_STORAGE, LEADER_ELECTION];\n\n private static defaultOptions = {\n autoRenew: true,\n autoRemove: true,\n syncStorage: true\n };\n\n constructor(sdk: OktaAuthCoreInterface<M, S, O>, options: ServiceManagerOptions = {}) {\n this.sdk = sdk;\n this.onLeader = this.onLeader.bind(this);\n\n // TODO: backwards compatibility, remove in next major version - OKTA-473815\n const { autoRenew, autoRemove, syncStorage } = sdk.tokenManager.getOptions();\n options.electionChannelName = options.electionChannelName || options.broadcastChannelName;\n this.options = Object.assign({}, \n ServiceManager.defaultOptions,\n { autoRenew, autoRemove, syncStorage }, \n {\n electionChannelName: `${sdk.options.clientId}-election`,\n syncChannelName: `${sdk.options.clientId}-sync`,\n },\n removeNils(options)\n );\n\n this.started = false;\n this.services = new Map();\n\n ServiceManager.knownServices.forEach(name => {\n const svc = this.createService(name);\n if (svc) {\n this.services.set(name, svc);\n }\n });\n }\n\n private async onLeader() {\n if (this.started) {\n // Start services that requires leadership\n await this.startServices();\n }\n }\n\n isLeader() {\n return (this.getService(LEADER_ELECTION) as LeaderElectionService)?.isLeader();\n }\n\n isLeaderRequired() {\n return [...this.services.values()].some(srv => srv.canStart() && srv.requiresLeadership());\n }\n\n async start() {\n if (this.started) {\n return; // noop if services have already started\n }\n await this.startServices();\n this.started = true;\n }\n \n async stop() {\n await this.stopServices();\n this.started = false;\n }\n\n getService(name: string): ServiceInterface | undefined {\n return this.services.get(name);\n }\n\n private async startServices() {\n for (const [name, srv] of this.services.entries()) {\n if (this.canStartService(name, srv)) {\n await srv.start();\n }\n }\n }\n\n private async stopServices() {\n for (const srv of this.services.values()) {\n await srv.stop();\n }\n }\n\n // eslint-disable-next-line complexity\n private canStartService(name: string, srv: ServiceInterface): boolean {\n let canStart = srv.canStart() && !srv.isStarted();\n // only start election if a leader is required\n if (name === LEADER_ELECTION) {\n canStart &&= this.isLeaderRequired();\n } else if (srv.requiresLeadership()) {\n canStart &&= this.isLeader();\n }\n return canStart;\n }\n\n private createService(name: string): ServiceInterface {\n const tokenManager = this.sdk.tokenManager;\n\n let service: ServiceInterface;\n switch (name) {\n case LEADER_ELECTION:\n service = new LeaderElectionService({...this.options, onLeader: this.onLeader});\n break;\n case AUTO_RENEW:\n service = new AutoRenewService(tokenManager, {...this.options});\n break;\n case SYNC_STORAGE:\n service = new SyncStorageService(tokenManager, {...this.options});\n break;\n default:\n throw new Error(`Unknown service ${name}`);\n }\n return service;\n }\n\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../lib/core/ServiceManager/index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n// ./node is swapped for ./browser in webpack config\nexport * from './node';"],"mappings":";;AAcA
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../lib/core/ServiceManager/index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n// ./node is swapped for ./browser in webpack config\nexport * from './node';"],"mappings":";;AAcA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.ServiceManager = void 0;
|
|
4
|
-
|
|
5
4
|
/*!
|
|
6
5
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
7
6
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -13,30 +12,25 @@ exports.ServiceManager = void 0;
|
|
|
13
12
|
*
|
|
14
13
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
15
14
|
*/
|
|
15
|
+
|
|
16
16
|
class ServiceManager {
|
|
17
17
|
constructor(sdk, options = {}) {
|
|
18
18
|
this.sdk = sdk;
|
|
19
19
|
this.options = options;
|
|
20
20
|
}
|
|
21
|
-
|
|
22
21
|
isLeader() {
|
|
23
22
|
return false;
|
|
24
23
|
}
|
|
25
|
-
|
|
26
24
|
isLeaderRequired() {
|
|
27
25
|
return false;
|
|
28
26
|
}
|
|
29
|
-
|
|
30
27
|
async start() {}
|
|
28
|
+
async stop() {}
|
|
31
29
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
35
31
|
getService(name) {
|
|
36
32
|
return undefined;
|
|
37
33
|
}
|
|
38
|
-
|
|
39
34
|
}
|
|
40
|
-
|
|
41
35
|
exports.ServiceManager = ServiceManager;
|
|
42
36
|
//# sourceMappingURL=node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","names":["ServiceManager","constructor","sdk","options","isLeader","isLeaderRequired","start","stop","getService","name","undefined"],"sources":["../../../../lib/core/ServiceManager/node.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport {\n OAuthTransactionMeta,\n OAuthStorageManagerInterface,\n} from '../../oidc';\n\nimport {\n ServiceManagerInterface,\n ServiceInterface,\n ServiceManagerOptions,\n OktaAuthCoreInterface,\n OktaAuthCoreOptions\n} from '../types';\n\nexport class ServiceManager\n<\n M extends OAuthTransactionMeta,\n S extends OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions\n>\nimplements ServiceManagerInterface \n{\n private sdk: OktaAuthCoreInterface<M, S, O>;\n private options: ServiceManagerOptions;\n\n constructor(sdk: OktaAuthCoreInterface<M, S, O>, options: ServiceManagerOptions = {}) {\n this.sdk = sdk;\n this.options = options;\n }\n\n isLeader() {\n return false;\n }\n\n isLeaderRequired() {\n return false;\n }\n\n async start() {\n }\n \n async stop() {\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getService(name: string): ServiceInterface | undefined {\n return undefined;\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.js","names":["ServiceManager","constructor","sdk","options","isLeader","isLeaderRequired","start","stop","getService","name","undefined"],"sources":["../../../../lib/core/ServiceManager/node.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport {\n OAuthTransactionMeta,\n OAuthStorageManagerInterface,\n} from '../../oidc';\n\nimport {\n ServiceManagerInterface,\n ServiceInterface,\n ServiceManagerOptions,\n OktaAuthCoreInterface,\n OktaAuthCoreOptions\n} from '../types';\n\nexport class ServiceManager\n<\n M extends OAuthTransactionMeta,\n S extends OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions\n>\nimplements ServiceManagerInterface \n{\n private sdk: OktaAuthCoreInterface<M, S, O>;\n private options: ServiceManagerOptions;\n\n constructor(sdk: OktaAuthCoreInterface<M, S, O>, options: ServiceManagerOptions = {}) {\n this.sdk = sdk;\n this.options = options;\n }\n\n isLeader() {\n return false;\n }\n\n isLeaderRequired() {\n return false;\n }\n\n async start() {\n }\n \n async stop() {\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getService(name: string): ServiceInterface | undefined {\n return undefined;\n }\n}\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBO,MAAMA,cAAc,CAO3B;EAIEC,WAAW,CAACC,GAAmC,EAAEC,OAA8B,GAAG,CAAC,CAAC,EAAE;IACpF,IAAI,CAACD,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,OAAO,GAAGA,OAAO;EACxB;EAEAC,QAAQ,GAAG;IACT,OAAO,KAAK;EACd;EAEAC,gBAAgB,GAAG;IACjB,OAAO,KAAK;EACd;EAEA,MAAMC,KAAK,GAAG,CACd;EAEA,MAAMC,IAAI,GAAG,CACb;;EAEA;EACAC,UAAU,CAACC,IAAY,EAAgC;IACrD,OAAOC,SAAS;EAClB;AACF;AAAC"}
|
package/cjs/core/factory.js
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.createOktaAuthCore = createOktaAuthCore;
|
|
4
|
-
|
|
5
4
|
var _base = require("../base");
|
|
6
|
-
|
|
7
5
|
var _mixin = require("../storage/mixin");
|
|
8
|
-
|
|
9
6
|
var _mixin2 = require("../http/mixin");
|
|
10
|
-
|
|
11
7
|
var _mixin3 = require("../oidc/mixin");
|
|
12
|
-
|
|
13
8
|
var _mixin4 = require("./mixin");
|
|
14
|
-
|
|
15
9
|
var _mixin5 = require("../session/mixin");
|
|
16
|
-
|
|
17
10
|
function createOktaAuthCore(StorageManagerConstructor, OptionsConstructor, TransactionManagerConstructor) {
|
|
18
11
|
const Base = (0, _base.createOktaAuthBase)(OptionsConstructor);
|
|
19
12
|
const WithStorage = (0, _mixin.mixinStorage)(Base, StorageManagerConstructor);
|
package/cjs/core/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","names":["createOktaAuthCore","StorageManagerConstructor","OptionsConstructor","TransactionManagerConstructor","Base","createOktaAuthBase","WithStorage","mixinStorage","WithHttp","mixinHttp","WithSession","mixinSession","WithOAuth","mixinOAuth","Core","mixinCore"],"sources":["../../../lib/core/factory.ts"],"sourcesContent":["import { StorageManagerConstructor } from '../storage/types';\nimport { OktaAuthConstructor, OktaAuthOptionsConstructor } from '../base/types';\n\nimport { OktaAuthCoreInterface, OktaAuthCoreOptions } from './types';\nimport { createOktaAuthBase } from '../base';\nimport { mixinStorage } from '../storage/mixin';\nimport { mixinHttp } from '../http/mixin';\nimport { mixinOAuth } from '../oidc/mixin';\nimport {\n OAuthStorageManagerInterface,\n PKCETransactionMeta,\n TransactionManagerConstructor,\n TransactionManagerInterface\n} from '../oidc/types';\nimport { mixinCore } from './mixin';\nimport { mixinSession } from '../session/mixin';\n\nexport function createOktaAuthCore<\n M extends PKCETransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions = OktaAuthCoreOptions,\n TM extends TransactionManagerInterface = TransactionManagerInterface\n>(\n StorageManagerConstructor: StorageManagerConstructor<S>,\n OptionsConstructor: OktaAuthOptionsConstructor<O>,\n TransactionManagerConstructor: TransactionManagerConstructor<TM>\n): OktaAuthConstructor<OktaAuthCoreInterface<M, S, O, TM>>\n{\n const Base = createOktaAuthBase(OptionsConstructor);\n const WithStorage = mixinStorage<S, O>(Base, StorageManagerConstructor);\n const WithHttp = mixinHttp<S, O>(WithStorage);\n const WithSession = mixinSession<S, O>(WithHttp);\n const WithOAuth = mixinOAuth<M, S, O, TM>(WithSession, TransactionManagerConstructor);\n const Core = mixinCore<M, S, O, TM>(WithOAuth);\n return Core;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.js","names":["createOktaAuthCore","StorageManagerConstructor","OptionsConstructor","TransactionManagerConstructor","Base","createOktaAuthBase","WithStorage","mixinStorage","WithHttp","mixinHttp","WithSession","mixinSession","WithOAuth","mixinOAuth","Core","mixinCore"],"sources":["../../../lib/core/factory.ts"],"sourcesContent":["import { StorageManagerConstructor } from '../storage/types';\nimport { OktaAuthConstructor, OktaAuthOptionsConstructor } from '../base/types';\n\nimport { OktaAuthCoreInterface, OktaAuthCoreOptions } from './types';\nimport { createOktaAuthBase } from '../base';\nimport { mixinStorage } from '../storage/mixin';\nimport { mixinHttp } from '../http/mixin';\nimport { mixinOAuth } from '../oidc/mixin';\nimport {\n OAuthStorageManagerInterface,\n PKCETransactionMeta,\n TransactionManagerConstructor,\n TransactionManagerInterface\n} from '../oidc/types';\nimport { mixinCore } from './mixin';\nimport { mixinSession } from '../session/mixin';\n\nexport function createOktaAuthCore<\n M extends PKCETransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions = OktaAuthCoreOptions,\n TM extends TransactionManagerInterface = TransactionManagerInterface\n>(\n StorageManagerConstructor: StorageManagerConstructor<S>,\n OptionsConstructor: OktaAuthOptionsConstructor<O>,\n TransactionManagerConstructor: TransactionManagerConstructor<TM>\n): OktaAuthConstructor<OktaAuthCoreInterface<M, S, O, TM>>\n{\n const Base = createOktaAuthBase(OptionsConstructor);\n const WithStorage = mixinStorage<S, O>(Base, StorageManagerConstructor);\n const WithHttp = mixinHttp<S, O>(WithStorage);\n const WithSession = mixinSession<S, O>(WithHttp);\n const WithOAuth = mixinOAuth<M, S, O, TM>(WithSession, TransactionManagerConstructor);\n const Core = mixinCore<M, S, O, TM>(WithOAuth);\n return Core;\n}\n"],"mappings":";;;AAIA;AACA;AACA;AACA;AAOA;AACA;AAEO,SAASA,kBAAkB,CAMhCC,yBAAuD,EACvDC,kBAAiD,EACjDC,6BAAgE,EAElE;EACE,MAAMC,IAAI,GAAG,IAAAC,wBAAkB,EAACH,kBAAkB,CAAC;EACnD,MAAMI,WAAW,GAAG,IAAAC,mBAAY,EAAOH,IAAI,EAAEH,yBAAyB,CAAC;EACvE,MAAMO,QAAQ,GAAG,IAAAC,iBAAS,EAAOH,WAAW,CAAC;EAC7C,MAAMI,WAAW,GAAG,IAAAC,oBAAY,EAAOH,QAAQ,CAAC;EAChD,MAAMI,SAAS,GAAG,IAAAC,kBAAU,EAAcH,WAAW,EAAEP,6BAA6B,CAAC;EACrF,MAAMW,IAAI,GAAG,IAAAC,iBAAS,EAAcH,SAAS,CAAC;EAC9C,OAAOE,IAAI;AACb"}
|