@okta/okta-auth-js 7.0.0 → 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/CHANGELOG.md +6 -0
- 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 +39 -54
- 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 +3 -2
- 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 +3 -2
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticatorData.js","names":["AuthenticatorData","Remediator","constructor","remediation","values","authenticator","getAuthenticator","formatAuthenticatorData","authenticatorData","getAuthenticatorData","authenticatorsData","map","data","compareAuthenticators","mapAuthenticatorDataFromValues","push","find","canRemediate","some","methodType","isAuthenticator","id","enrollmentId","getAuthenticatorFromRemediation","value","name","getValuesAfterProceed","filter"],"sources":["../../../../../lib/idx/remediators/Base/AuthenticatorData.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\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\nimport { Remediator, RemediationValues } from './Remediator';\nimport { IdxRemediationValue, IdxRemediation, IdxAuthenticator } from '../../types/idx-js';\nimport { isAuthenticator } from '../../types/api';\nimport { compareAuthenticators } from '../../authenticator/util';\n\nexport type AuthenticatorDataValues = RemediationValues & {\n methodType?: string;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class AuthenticatorData<T extends AuthenticatorDataValues = AuthenticatorDataValues> extends Remediator<T> {\n authenticator: IdxAuthenticator;\n\n constructor(remediation: IdxRemediation, values: T = {} as T) {\n super(remediation, values);\n\n // set before other data calculation\n this.authenticator = this.getAuthenticator()!;\n\n this.formatAuthenticatorData();\n }\n\n protected formatAuthenticatorData() {\n const authenticatorData = this.getAuthenticatorData();\n if (authenticatorData) {\n this.values.authenticatorsData = this.values.authenticatorsData!.map(data => {\n if (compareAuthenticators(this.authenticator, data)) {\n return this.mapAuthenticatorDataFromValues(data);\n }\n return data;\n });\n } else {\n const data = this.mapAuthenticatorDataFromValues();\n if (data) {\n this.values.authenticatorsData!.push(data);\n }\n }\n }\n\n protected getAuthenticatorData() {\n return this.values.authenticatorsData!\n .find((data) => compareAuthenticators(this.authenticator, data));\n }\n\n canRemediate() {\n return this.values.authenticatorsData!\n .some(data => compareAuthenticators(this.authenticator, data));\n }\n\n protected mapAuthenticatorDataFromValues(authenticatorData?) {\n // add methodType to authenticatorData if it exists in values\n let { methodType, authenticator } = this.values;\n if (!methodType && isAuthenticator(authenticator)) {\n methodType = authenticator?.methodType;\n }\n \n const { id, enrollmentId } = this.authenticator;\n const data = { \n id,\n enrollmentId,\n ...(authenticatorData && authenticatorData),\n ...(methodType && { methodType }) \n };\n\n return data.methodType ? data : null;\n }\n\n protected getAuthenticatorFromRemediation(): IdxRemediationValue {\n const authenticator = this.remediation.value!\n .find(({ name }) => name === 'authenticator') as IdxRemediationValue;\n return authenticator;\n }\n\n getValuesAfterProceed(): T {\n this.values = super.getValuesAfterProceed();\n // remove used authenticatorData\n const authenticatorsData = this.values.authenticatorsData!\n .filter(data => compareAuthenticators(this.authenticator, data) !== true);\n return { ...this.values, authenticatorsData };\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthenticatorData.js","names":["AuthenticatorData","Remediator","constructor","remediation","values","authenticator","getAuthenticator","formatAuthenticatorData","authenticatorData","getAuthenticatorData","authenticatorsData","map","data","compareAuthenticators","mapAuthenticatorDataFromValues","push","find","canRemediate","some","methodType","isAuthenticator","id","enrollmentId","getAuthenticatorFromRemediation","value","name","getValuesAfterProceed","filter"],"sources":["../../../../../lib/idx/remediators/Base/AuthenticatorData.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\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\nimport { Remediator, RemediationValues } from './Remediator';\nimport { IdxRemediationValue, IdxRemediation, IdxAuthenticator } from '../../types/idx-js';\nimport { isAuthenticator } from '../../types/api';\nimport { compareAuthenticators } from '../../authenticator/util';\n\nexport type AuthenticatorDataValues = RemediationValues & {\n methodType?: string;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class AuthenticatorData<T extends AuthenticatorDataValues = AuthenticatorDataValues> extends Remediator<T> {\n authenticator: IdxAuthenticator;\n\n constructor(remediation: IdxRemediation, values: T = {} as T) {\n super(remediation, values);\n\n // set before other data calculation\n this.authenticator = this.getAuthenticator()!;\n\n this.formatAuthenticatorData();\n }\n\n protected formatAuthenticatorData() {\n const authenticatorData = this.getAuthenticatorData();\n if (authenticatorData) {\n this.values.authenticatorsData = this.values.authenticatorsData!.map(data => {\n if (compareAuthenticators(this.authenticator, data)) {\n return this.mapAuthenticatorDataFromValues(data);\n }\n return data;\n });\n } else {\n const data = this.mapAuthenticatorDataFromValues();\n if (data) {\n this.values.authenticatorsData!.push(data);\n }\n }\n }\n\n protected getAuthenticatorData() {\n return this.values.authenticatorsData!\n .find((data) => compareAuthenticators(this.authenticator, data));\n }\n\n canRemediate() {\n return this.values.authenticatorsData!\n .some(data => compareAuthenticators(this.authenticator, data));\n }\n\n protected mapAuthenticatorDataFromValues(authenticatorData?) {\n // add methodType to authenticatorData if it exists in values\n let { methodType, authenticator } = this.values;\n if (!methodType && isAuthenticator(authenticator)) {\n methodType = authenticator?.methodType;\n }\n \n const { id, enrollmentId } = this.authenticator;\n const data = { \n id,\n enrollmentId,\n ...(authenticatorData && authenticatorData),\n ...(methodType && { methodType }) \n };\n\n return data.methodType ? data : null;\n }\n\n protected getAuthenticatorFromRemediation(): IdxRemediationValue {\n const authenticator = this.remediation.value!\n .find(({ name }) => name === 'authenticator') as IdxRemediationValue;\n return authenticator;\n }\n\n getValuesAfterProceed(): T {\n this.values = super.getValuesAfterProceed();\n // remove used authenticatorData\n const authenticatorsData = this.values.authenticatorsData!\n .filter(data => compareAuthenticators(this.authenticator, data) !== true);\n return { ...this.values, authenticatorsData };\n }\n}\n"],"mappings":";;;AAaA;AAEA;AACA;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACO,MAAMA,iBAAiB,SAAsEC,sBAAU,CAAI;EAGhHC,WAAW,CAACC,WAA2B,EAAEC,MAAS,GAAG,CAAC,CAAM,EAAE;IAC5D,KAAK,CAACD,WAAW,EAAEC,MAAM,CAAC;;IAE1B;IACA,IAAI,CAACC,aAAa,GAAG,IAAI,CAACC,gBAAgB,EAAG;IAE7C,IAAI,CAACC,uBAAuB,EAAE;EAChC;EAEUA,uBAAuB,GAAG;IAClC,MAAMC,iBAAiB,GAAG,IAAI,CAACC,oBAAoB,EAAE;IACrD,IAAID,iBAAiB,EAAE;MACrB,IAAI,CAACJ,MAAM,CAACM,kBAAkB,GAAG,IAAI,CAACN,MAAM,CAACM,kBAAkB,CAAEC,GAAG,CAACC,IAAI,IAAI;QAC3E,IAAI,IAAAC,2BAAqB,EAAC,IAAI,CAACR,aAAa,EAAEO,IAAI,CAAC,EAAE;UACnD,OAAO,IAAI,CAACE,8BAA8B,CAACF,IAAI,CAAC;QAClD;QACA,OAAOA,IAAI;MACb,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,MAAMA,IAAI,GAAG,IAAI,CAACE,8BAA8B,EAAE;MAClD,IAAIF,IAAI,EAAE;QACR,IAAI,CAACR,MAAM,CAACM,kBAAkB,CAAEK,IAAI,CAACH,IAAI,CAAC;MAC5C;IACF;EACF;EAEUH,oBAAoB,GAAG;IAC/B,OAAO,IAAI,CAACL,MAAM,CAACM,kBAAkB,CAClCM,IAAI,CAAEJ,IAAI,IAAK,IAAAC,2BAAqB,EAAC,IAAI,CAACR,aAAa,EAAEO,IAAI,CAAC,CAAC;EACpE;EAEAK,YAAY,GAAG;IACb,OAAO,IAAI,CAACb,MAAM,CAACM,kBAAkB,CAClCQ,IAAI,CAACN,IAAI,IAAI,IAAAC,2BAAqB,EAAC,IAAI,CAACR,aAAa,EAAEO,IAAI,CAAC,CAAC;EAClE;EAEUE,8BAA8B,CAACN,iBAAkB,EAAE;IAC3D;IACA,IAAI;MAAEW,UAAU;MAAEd;IAAc,CAAC,GAAG,IAAI,CAACD,MAAM;IAC/C,IAAI,CAACe,UAAU,IAAI,IAAAC,oBAAe,EAACf,aAAa,CAAC,EAAE;MAClDc,UAAU,GAAGd,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEc,UAAU;IACvC;IAEA,MAAM;MAAEE,EAAE;MAAEC;IAAa,CAAC,GAAG,IAAI,CAACjB,aAAa;IAC/C,MAAMO,IAAI,GAAG;MACXS,EAAE;MACFC,YAAY;MACZ,IAAId,iBAAiB,IAAIA,iBAAiB,CAAC;MAC3C,IAAIW,UAAU,IAAI;QAAEA;MAAW,CAAC;IAClC,CAAC;IAED,OAAOP,IAAI,CAACO,UAAU,GAAGP,IAAI,GAAG,IAAI;EACtC;EAEUW,+BAA+B,GAAwB;IAC/D,MAAMlB,aAAa,GAAG,IAAI,CAACF,WAAW,CAACqB,KAAK,CACzCR,IAAI,CAAC,CAAC;MAAES;IAAK,CAAC,KAAKA,IAAI,KAAK,eAAe,CAAwB;IACtE,OAAOpB,aAAa;EACtB;EAEAqB,qBAAqB,GAAM;IACzB,IAAI,CAACtB,MAAM,GAAG,KAAK,CAACsB,qBAAqB,EAAE;IAC3C;IACA,MAAMhB,kBAAkB,GAAG,IAAI,CAACN,MAAM,CAACM,kBAAkB,CACtDiB,MAAM,CAACf,IAAI,IAAI,IAAAC,2BAAqB,EAAC,IAAI,CAACR,aAAa,EAAEO,IAAI,CAAC,KAAK,IAAI,CAAC;IAC3E,OAAO;MAAE,GAAG,IAAI,CAACR,MAAM;MAAEM;IAAmB,CAAC;EAC/C;AACF;AAAC"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.Remediator = void 0;
|
|
4
|
-
|
|
5
4
|
var _util = require("../util");
|
|
6
|
-
|
|
7
5
|
var _util2 = require("../../authenticator/util");
|
|
8
|
-
|
|
9
6
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
10
|
-
|
|
11
7
|
/*!
|
|
12
8
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
13
9
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -21,117 +17,110 @@ var _util2 = require("../../authenticator/util");
|
|
|
21
17
|
*/
|
|
22
18
|
|
|
23
19
|
/* eslint-disable complexity */
|
|
20
|
+
|
|
24
21
|
// Base class - DO NOT expose static remediationName
|
|
25
22
|
class Remediator {
|
|
26
23
|
constructor(remediation, values = {}, options = {}) {
|
|
27
24
|
// assign fields to the instance
|
|
28
|
-
this.values = {
|
|
25
|
+
this.values = {
|
|
26
|
+
...values
|
|
29
27
|
};
|
|
30
|
-
this.options = {
|
|
28
|
+
this.options = {
|
|
29
|
+
...options
|
|
31
30
|
};
|
|
32
31
|
this.formatAuthenticators();
|
|
33
32
|
this.remediation = remediation;
|
|
34
33
|
}
|
|
35
|
-
|
|
36
34
|
formatAuthenticators() {
|
|
37
|
-
this.values.authenticators = this.values.authenticators || [];
|
|
35
|
+
this.values.authenticators = this.values.authenticators || [];
|
|
38
36
|
|
|
37
|
+
// ensure authenticators are in the correct format
|
|
39
38
|
this.values.authenticators = this.values.authenticators.map(authenticator => {
|
|
40
39
|
return (0, _util2.formatAuthenticator)(authenticator);
|
|
41
|
-
});
|
|
40
|
+
});
|
|
42
41
|
|
|
42
|
+
// add authenticator (if any) to "authenticators"
|
|
43
43
|
if (this.values.authenticator) {
|
|
44
44
|
const authenticator = (0, _util2.formatAuthenticator)(this.values.authenticator);
|
|
45
45
|
const hasAuthenticatorInList = this.values.authenticators.some(existing => {
|
|
46
46
|
return (0, _util2.compareAuthenticators)(authenticator, existing);
|
|
47
47
|
});
|
|
48
|
-
|
|
49
48
|
if (!hasAuthenticatorInList) {
|
|
50
49
|
this.values.authenticators.push(authenticator);
|
|
51
50
|
}
|
|
52
|
-
}
|
|
53
|
-
// authenticators will be removed after selection to avoid select-authenticator loop
|
|
54
|
-
|
|
51
|
+
}
|
|
55
52
|
|
|
53
|
+
// save non-key meta to "authenticatorsData" field
|
|
54
|
+
// authenticators will be removed after selection to avoid select-authenticator loop
|
|
56
55
|
this.values.authenticatorsData = this.values.authenticators.reduce((acc, authenticator) => {
|
|
57
56
|
if (typeof authenticator === 'object' && Object.keys(authenticator).length > 1) {
|
|
58
57
|
// save authenticator meta into authenticator data
|
|
59
58
|
acc.push(authenticator);
|
|
60
59
|
}
|
|
61
|
-
|
|
62
60
|
return acc;
|
|
63
61
|
}, this.values.authenticatorsData || []);
|
|
64
62
|
}
|
|
65
|
-
|
|
66
63
|
getName() {
|
|
67
64
|
return this.remediation.name;
|
|
68
|
-
}
|
|
65
|
+
}
|
|
69
66
|
|
|
67
|
+
// Override this method to provide custom check
|
|
70
68
|
/* eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars */
|
|
71
|
-
|
|
72
|
-
|
|
73
69
|
canRemediate() {
|
|
74
70
|
const required = (0, _util.getRequiredValues)(this.remediation);
|
|
75
71
|
const needed = required.find(key => !this.hasData(key));
|
|
76
|
-
|
|
77
72
|
if (needed) {
|
|
78
73
|
return false; // missing data for a required field
|
|
79
74
|
}
|
|
80
75
|
|
|
81
76
|
return true; // all required fields have available data
|
|
82
|
-
}
|
|
83
|
-
|
|
77
|
+
}
|
|
84
78
|
|
|
79
|
+
// returns an object for the entire remediation form, or just a part
|
|
85
80
|
getData(key) {
|
|
86
81
|
if (!key) {
|
|
87
82
|
let allValues = (0, _util.getAllValues)(this.remediation);
|
|
88
83
|
let res = allValues.reduce((data, key) => {
|
|
89
84
|
data[key] = this.getData(key); // recursive
|
|
90
|
-
|
|
91
85
|
return data;
|
|
92
86
|
}, {});
|
|
93
87
|
return res;
|
|
94
|
-
}
|
|
95
|
-
|
|
88
|
+
}
|
|
96
89
|
|
|
90
|
+
// Map value by "map${Property}" function in each subClass
|
|
97
91
|
if (typeof this[`map${(0, _util.titleCase)(key)}`] === 'function') {
|
|
98
92
|
const val = this[`map${(0, _util.titleCase)(key)}`](this.remediation.value.find(({
|
|
99
93
|
name
|
|
100
94
|
}) => name === key));
|
|
101
|
-
|
|
102
95
|
if (val) {
|
|
103
96
|
return val;
|
|
104
97
|
}
|
|
105
|
-
}
|
|
106
|
-
|
|
98
|
+
}
|
|
107
99
|
|
|
100
|
+
// If a map is defined for this key, return the first aliased property that returns a truthy value
|
|
108
101
|
if (this.map && this.map[key]) {
|
|
109
102
|
const entry = this.map[key];
|
|
110
|
-
|
|
111
103
|
for (let i = 0; i < entry.length; i++) {
|
|
112
104
|
let val = this.values[entry[i]];
|
|
113
|
-
|
|
114
105
|
if (val) {
|
|
115
106
|
return val;
|
|
116
107
|
}
|
|
117
108
|
}
|
|
118
|
-
}
|
|
119
|
-
|
|
109
|
+
}
|
|
120
110
|
|
|
111
|
+
// fallback: return the value by key
|
|
121
112
|
return this.values[key];
|
|
122
113
|
}
|
|
123
|
-
|
|
124
114
|
hasData(key) {
|
|
125
115
|
// no attempt to format, we want simple true/false
|
|
126
116
|
return !!this.getData(key);
|
|
127
117
|
}
|
|
128
|
-
|
|
129
118
|
getNextStep(_authClient, _context) {
|
|
130
119
|
const name = this.getName();
|
|
131
120
|
const inputs = this.getInputs();
|
|
132
|
-
const authenticator = this.getAuthenticator();
|
|
121
|
+
const authenticator = this.getAuthenticator();
|
|
122
|
+
// TODO: remove type field in the next major version change
|
|
133
123
|
// https://oktainc.atlassian.net/browse/OKTA-431749
|
|
134
|
-
|
|
135
124
|
const type = authenticator === null || authenticator === void 0 ? void 0 : authenticator.type;
|
|
136
125
|
return {
|
|
137
126
|
name,
|
|
@@ -143,9 +132,9 @@ class Remediator {
|
|
|
143
132
|
authenticator
|
|
144
133
|
})
|
|
145
134
|
};
|
|
146
|
-
}
|
|
147
|
-
|
|
135
|
+
}
|
|
148
136
|
|
|
137
|
+
// Get inputs for the next step
|
|
149
138
|
getInputs() {
|
|
150
139
|
const inputs = [];
|
|
151
140
|
const inputsFromRemediation = this.remediation.value || [];
|
|
@@ -157,7 +146,6 @@ class Remediator {
|
|
|
157
146
|
visible,
|
|
158
147
|
messages
|
|
159
148
|
} = inputFromRemediation;
|
|
160
|
-
|
|
161
149
|
if (visible === false) {
|
|
162
150
|
return; // Filter out invisible inputs, like stateHandle
|
|
163
151
|
}
|
|
@@ -168,25 +156,22 @@ class Remediator {
|
|
|
168
156
|
// handle general primitive types
|
|
169
157
|
let alias;
|
|
170
158
|
const aliases = (this.map ? this.map[name] : null) || [];
|
|
171
|
-
|
|
172
159
|
if (aliases.length === 1) {
|
|
173
160
|
alias = aliases[0];
|
|
174
161
|
} else {
|
|
175
162
|
// try find key from values
|
|
176
163
|
alias = aliases.find(name => Object.keys(this.values).includes(name));
|
|
177
164
|
}
|
|
178
|
-
|
|
179
165
|
if (alias) {
|
|
180
|
-
input = {
|
|
166
|
+
input = {
|
|
167
|
+
...inputFromRemediation,
|
|
181
168
|
name: alias
|
|
182
169
|
};
|
|
183
170
|
}
|
|
184
171
|
}
|
|
185
|
-
|
|
186
172
|
if (!input) {
|
|
187
173
|
input = inputFromRemediation;
|
|
188
174
|
}
|
|
189
|
-
|
|
190
175
|
if (Array.isArray(input)) {
|
|
191
176
|
input.forEach(i => inputs.push(i));
|
|
192
177
|
} else {
|
|
@@ -194,78 +179,64 @@ class Remediator {
|
|
|
194
179
|
if (messages) {
|
|
195
180
|
input.messages = messages;
|
|
196
181
|
}
|
|
197
|
-
|
|
198
182
|
inputs.push(input);
|
|
199
183
|
}
|
|
200
184
|
});
|
|
201
185
|
return inputs;
|
|
202
186
|
}
|
|
203
|
-
|
|
204
187
|
static getMessages(remediation) {
|
|
205
188
|
var _remediation$value$, _remediation$value$$f;
|
|
206
|
-
|
|
207
189
|
if (!remediation.value) {
|
|
208
190
|
return;
|
|
209
191
|
}
|
|
210
|
-
|
|
211
192
|
return (_remediation$value$ = remediation.value[0]) === null || _remediation$value$ === void 0 ? void 0 : (_remediation$value$$f = _remediation$value$.form) === null || _remediation$value$$f === void 0 ? void 0 : _remediation$value$$f.value.reduce((messages, field) => {
|
|
212
193
|
if (field.messages) {
|
|
213
194
|
messages = [...messages, ...field.messages.value];
|
|
214
195
|
}
|
|
215
|
-
|
|
216
196
|
return messages;
|
|
217
197
|
}, []);
|
|
218
|
-
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Prepare values for the next remediation
|
|
219
201
|
// In general, remove used values from inputs for the current remediation
|
|
220
202
|
// Override this method if special cases need be handled
|
|
221
|
-
|
|
222
|
-
|
|
223
203
|
getValuesAfterProceed() {
|
|
224
204
|
const inputsFromRemediation = this.remediation.value || []; // "raw" inputs from server response
|
|
225
|
-
|
|
226
205
|
const inputsFromRemediator = this.getInputs(); // "aliased" inputs from SDK remediator
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
206
|
+
const inputs = [...inputsFromRemediation, ...inputsFromRemediator];
|
|
207
|
+
// scrub all values related to this remediation
|
|
230
208
|
for (const input of inputs) {
|
|
231
209
|
delete this.values[input.name];
|
|
232
210
|
}
|
|
233
|
-
|
|
234
211
|
return this.values;
|
|
235
212
|
}
|
|
236
|
-
|
|
237
213
|
getAuthenticator() {
|
|
238
214
|
var _this$remediation$rel, _value$find;
|
|
239
|
-
|
|
240
215
|
// relatesTo value may be an authenticator or an authenticatorEnrollment
|
|
241
216
|
const relatesTo = (_this$remediation$rel = this.remediation.relatesTo) === null || _this$remediation$rel === void 0 ? void 0 : _this$remediation$rel.value;
|
|
242
|
-
|
|
243
217
|
if (!relatesTo) {
|
|
244
218
|
return;
|
|
245
219
|
}
|
|
246
|
-
|
|
247
220
|
const authenticatorFromRemediation = (0, _util.getAuthenticatorFromRemediation)(this.remediation);
|
|
248
|
-
|
|
249
221
|
if (!authenticatorFromRemediation) {
|
|
250
222
|
// Hopefully value is an authenticator
|
|
251
223
|
return relatesTo;
|
|
252
|
-
}
|
|
253
|
-
// Let's get the correct authenticator id from the form value
|
|
254
|
-
|
|
224
|
+
}
|
|
255
225
|
|
|
226
|
+
// If relatesTo is an authenticatorEnrollment, the id is actually the enrollmentId
|
|
227
|
+
// Let's get the correct authenticator id from the form value
|
|
256
228
|
const id = authenticatorFromRemediation.form.value.find(({
|
|
257
229
|
name
|
|
258
230
|
}) => name === 'id').value;
|
|
259
231
|
const enrollmentId = (_value$find = authenticatorFromRemediation.form.value.find(({
|
|
260
232
|
name
|
|
261
233
|
}) => name === 'enrollmentId')) === null || _value$find === void 0 ? void 0 : _value$find.value;
|
|
262
|
-
return {
|
|
234
|
+
return {
|
|
235
|
+
...relatesTo,
|
|
263
236
|
id,
|
|
264
237
|
enrollmentId
|
|
265
238
|
};
|
|
266
239
|
}
|
|
267
|
-
|
|
268
240
|
}
|
|
269
|
-
|
|
270
241
|
exports.Remediator = Remediator;
|
|
271
242
|
//# sourceMappingURL=Remediator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Remediator.js","names":["Remediator","constructor","remediation","values","options","formatAuthenticators","authenticators","map","authenticator","formatAuthenticator","hasAuthenticatorInList","some","existing","compareAuthenticators","push","authenticatorsData","reduce","acc","Object","keys","length","getName","name","canRemediate","required","getRequiredValues","needed","find","key","hasData","getData","allValues","getAllValues","res","data","titleCase","val","value","entry","i","getNextStep","_authClient","_context","inputs","getInputs","getAuthenticator","type","inputsFromRemediation","forEach","inputFromRemediation","input","visible","messages","alias","aliases","includes","Array","isArray","getMessages","form","field","getValuesAfterProceed","inputsFromRemediator","relatesTo","authenticatorFromRemediation","getAuthenticatorFromRemediation","id","enrollmentId"],"sources":["../../../../../lib/idx/remediators/Base/Remediator.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\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/* eslint-disable complexity */\nimport { OktaAuthIdxInterface, NextStep, IdxMessage, Authenticator, Input, RemediateOptions } from '../../types';\nimport { IdxAuthenticator, IdxRemediation, IdxContext } from '../../types/idx-js';\nimport { getAllValues, getRequiredValues, titleCase, getAuthenticatorFromRemediation } from '../util';\nimport { formatAuthenticator, compareAuthenticators } from '../../authenticator/util';\n\n// A map from IDX data values (server spec) to RemediationValues (client spec)\nexport type IdxToRemediationValueMap = Record<string, string[]>;\n\nexport interface RemediationValues {\n stateHandle?: string;\n authenticators?: (Authenticator | string)[];\n authenticator?: string | Authenticator;\n authenticatorsData?: Authenticator[];\n resend?: boolean;\n}\n\nexport interface RemediatorConstructor {\n new<T extends RemediationValues>(\n remediation: IdxRemediation, \n values?: T, \n options?: RemediateOptions\n ): any;\n}\n\n// Base class - DO NOT expose static remediationName\nexport class Remediator<T extends RemediationValues = RemediationValues> {\n static remediationName: string;\n\n remediation: IdxRemediation;\n values: T;\n options: RemediateOptions;\n map?: IdxToRemediationValueMap;\n\n constructor(\n remediation: IdxRemediation, \n values: T = {} as T, \n options: RemediateOptions = {}\n ) {\n // assign fields to the instance\n this.values = { ...values };\n this.options = { ...options };\n this.formatAuthenticators();\n this.remediation = remediation;\n }\n\n private formatAuthenticators() {\n this.values.authenticators = (this.values.authenticators || []) as Authenticator[];\n\n // ensure authenticators are in the correct format\n this.values.authenticators = this.values.authenticators.map(authenticator => {\n return formatAuthenticator(authenticator);\n });\n\n // add authenticator (if any) to \"authenticators\"\n if (this.values.authenticator) {\n const authenticator = formatAuthenticator(this.values.authenticator);\n const hasAuthenticatorInList = this.values.authenticators.some(existing => {\n return compareAuthenticators(authenticator, existing);\n });\n if (!hasAuthenticatorInList) {\n this.values.authenticators.push(authenticator);\n }\n }\n\n // save non-key meta to \"authenticatorsData\" field\n // authenticators will be removed after selection to avoid select-authenticator loop\n this.values.authenticatorsData = this.values.authenticators.reduce((acc, authenticator) => {\n if (typeof authenticator === 'object' && Object.keys(authenticator).length > 1) {\n // save authenticator meta into authenticator data\n acc.push(authenticator);\n }\n return acc;\n }, this.values.authenticatorsData || []);\n }\n\n getName(): string {\n return this.remediation.name;\n }\n\n // Override this method to provide custom check\n /* eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars */\n canRemediate(): boolean {\n const required = getRequiredValues(this.remediation);\n const needed = required!.find((key) => !this.hasData(key));\n if (needed) {\n return false; // missing data for a required field\n }\n return true; // all required fields have available data\n }\n\n // returns an object for the entire remediation form, or just a part\n getData(key?: string) {\n if (!key) {\n let allValues = getAllValues(this.remediation);\n let res = allValues!.reduce((data, key) => {\n data[key] = this.getData(key); // recursive\n return data;\n }, {});\n return res;\n }\n\n // Map value by \"map${Property}\" function in each subClass\n if (typeof this[`map${titleCase(key)}`] === 'function') {\n const val = this[`map${titleCase(key)}`](\n this.remediation.value!.find(({name}) => name === key)\n );\n if (val) {\n return val;\n }\n }\n\n // If a map is defined for this key, return the first aliased property that returns a truthy value\n if (this.map && this.map[key]) {\n const entry = this.map[key];\n for (let i = 0; i < entry.length; i++) {\n let val = this.values[entry[i]];\n if (val) {\n return val;\n }\n }\n }\n\n // fallback: return the value by key\n return this.values[key];\n }\n\n hasData(\n key: string // idx name\n ): boolean \n {\n // no attempt to format, we want simple true/false\n return !!this.getData(key);\n }\n\n getNextStep(_authClient: OktaAuthIdxInterface, _context?: IdxContext): NextStep {\n const name = this.getName();\n const inputs = this.getInputs();\n const authenticator = this.getAuthenticator();\n // TODO: remove type field in the next major version change\n // https://oktainc.atlassian.net/browse/OKTA-431749\n const type = authenticator?.type;\n return { \n name, \n inputs, \n ...(type && { type }),\n ...(authenticator && { authenticator }),\n };\n }\n\n // Get inputs for the next step\n getInputs(): Input[] {\n const inputs: Input[] = [];\n const inputsFromRemediation = this.remediation.value || [];\n inputsFromRemediation.forEach(inputFromRemediation => {\n let input;\n let { name, type, visible, messages } = inputFromRemediation;\n if (visible === false) {\n return; // Filter out invisible inputs, like stateHandle\n }\n if (typeof this[`getInput${titleCase(name)}`] === 'function') {\n input = this[`getInput${titleCase(name)}`](inputFromRemediation);\n } else if (type !== 'object') {\n // handle general primitive types\n let alias;\n const aliases = (this.map ? this.map[name] : null) || [];\n if (aliases.length === 1) {\n alias = aliases[0];\n } else {\n // try find key from values\n alias = aliases.find(name => Object.keys(this.values).includes(name));\n }\n if (alias) {\n input = { ...inputFromRemediation, name: alias };\n }\n }\n if (!input) {\n input = inputFromRemediation;\n }\n if (Array.isArray(input)) {\n input.forEach(i => inputs.push(i));\n } else {\n // guarantees field-level messages are passed back\n if (messages) {\n input.messages = messages;\n }\n inputs.push(input);\n }\n });\n return inputs;\n }\n\n static getMessages(remediation: IdxRemediation): IdxMessage[] | undefined {\n if (!remediation.value) {\n return;\n }\n return remediation.value[0]?.form?.value.reduce((messages: IdxMessage[], field) => {\n if (field.messages) {\n messages = [...messages, ...field.messages.value];\n }\n return messages;\n }, []);\n }\n\n // Prepare values for the next remediation\n // In general, remove used values from inputs for the current remediation\n // Override this method if special cases need be handled\n getValuesAfterProceed(): T {\n const inputsFromRemediation = this.remediation.value || []; // \"raw\" inputs from server response\n const inputsFromRemediator = this.getInputs(); // \"aliased\" inputs from SDK remediator\n const inputs = [\n ...inputsFromRemediation,\n ...inputsFromRemediator\n ];\n // scrub all values related to this remediation\n for (const input of inputs) {\n delete this.values[input.name];\n }\n return this.values;\n }\n\n protected getAuthenticator(): IdxAuthenticator | undefined {\n // relatesTo value may be an authenticator or an authenticatorEnrollment\n const relatesTo = this.remediation.relatesTo?.value;\n if (!relatesTo) {\n return;\n }\n\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n if (!authenticatorFromRemediation) {\n // Hopefully value is an authenticator\n return relatesTo;\n }\n\n // If relatesTo is an authenticatorEnrollment, the id is actually the enrollmentId\n // Let's get the correct authenticator id from the form value\n const id = authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'id')!.value as string;\n const enrollmentId = authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'enrollmentId')?.value as string;\n\n return {\n ...relatesTo,\n id,\n enrollmentId\n };\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Remediator.js","names":["Remediator","constructor","remediation","values","options","formatAuthenticators","authenticators","map","authenticator","formatAuthenticator","hasAuthenticatorInList","some","existing","compareAuthenticators","push","authenticatorsData","reduce","acc","Object","keys","length","getName","name","canRemediate","required","getRequiredValues","needed","find","key","hasData","getData","allValues","getAllValues","res","data","titleCase","val","value","entry","i","getNextStep","_authClient","_context","inputs","getInputs","getAuthenticator","type","inputsFromRemediation","forEach","inputFromRemediation","input","visible","messages","alias","aliases","includes","Array","isArray","getMessages","form","field","getValuesAfterProceed","inputsFromRemediator","relatesTo","authenticatorFromRemediation","getAuthenticatorFromRemediation","id","enrollmentId"],"sources":["../../../../../lib/idx/remediators/Base/Remediator.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\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/* eslint-disable complexity */\nimport { OktaAuthIdxInterface, NextStep, IdxMessage, Authenticator, Input, RemediateOptions } from '../../types';\nimport { IdxAuthenticator, IdxRemediation, IdxContext } from '../../types/idx-js';\nimport { getAllValues, getRequiredValues, titleCase, getAuthenticatorFromRemediation } from '../util';\nimport { formatAuthenticator, compareAuthenticators } from '../../authenticator/util';\n\n// A map from IDX data values (server spec) to RemediationValues (client spec)\nexport type IdxToRemediationValueMap = Record<string, string[]>;\n\nexport interface RemediationValues {\n stateHandle?: string;\n authenticators?: (Authenticator | string)[];\n authenticator?: string | Authenticator;\n authenticatorsData?: Authenticator[];\n resend?: boolean;\n}\n\nexport interface RemediatorConstructor {\n new<T extends RemediationValues>(\n remediation: IdxRemediation, \n values?: T, \n options?: RemediateOptions\n ): any;\n}\n\n// Base class - DO NOT expose static remediationName\nexport class Remediator<T extends RemediationValues = RemediationValues> {\n static remediationName: string;\n\n remediation: IdxRemediation;\n values: T;\n options: RemediateOptions;\n map?: IdxToRemediationValueMap;\n\n constructor(\n remediation: IdxRemediation, \n values: T = {} as T, \n options: RemediateOptions = {}\n ) {\n // assign fields to the instance\n this.values = { ...values };\n this.options = { ...options };\n this.formatAuthenticators();\n this.remediation = remediation;\n }\n\n private formatAuthenticators() {\n this.values.authenticators = (this.values.authenticators || []) as Authenticator[];\n\n // ensure authenticators are in the correct format\n this.values.authenticators = this.values.authenticators.map(authenticator => {\n return formatAuthenticator(authenticator);\n });\n\n // add authenticator (if any) to \"authenticators\"\n if (this.values.authenticator) {\n const authenticator = formatAuthenticator(this.values.authenticator);\n const hasAuthenticatorInList = this.values.authenticators.some(existing => {\n return compareAuthenticators(authenticator, existing);\n });\n if (!hasAuthenticatorInList) {\n this.values.authenticators.push(authenticator);\n }\n }\n\n // save non-key meta to \"authenticatorsData\" field\n // authenticators will be removed after selection to avoid select-authenticator loop\n this.values.authenticatorsData = this.values.authenticators.reduce((acc, authenticator) => {\n if (typeof authenticator === 'object' && Object.keys(authenticator).length > 1) {\n // save authenticator meta into authenticator data\n acc.push(authenticator);\n }\n return acc;\n }, this.values.authenticatorsData || []);\n }\n\n getName(): string {\n return this.remediation.name;\n }\n\n // Override this method to provide custom check\n /* eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars */\n canRemediate(): boolean {\n const required = getRequiredValues(this.remediation);\n const needed = required!.find((key) => !this.hasData(key));\n if (needed) {\n return false; // missing data for a required field\n }\n return true; // all required fields have available data\n }\n\n // returns an object for the entire remediation form, or just a part\n getData(key?: string) {\n if (!key) {\n let allValues = getAllValues(this.remediation);\n let res = allValues!.reduce((data, key) => {\n data[key] = this.getData(key); // recursive\n return data;\n }, {});\n return res;\n }\n\n // Map value by \"map${Property}\" function in each subClass\n if (typeof this[`map${titleCase(key)}`] === 'function') {\n const val = this[`map${titleCase(key)}`](\n this.remediation.value!.find(({name}) => name === key)\n );\n if (val) {\n return val;\n }\n }\n\n // If a map is defined for this key, return the first aliased property that returns a truthy value\n if (this.map && this.map[key]) {\n const entry = this.map[key];\n for (let i = 0; i < entry.length; i++) {\n let val = this.values[entry[i]];\n if (val) {\n return val;\n }\n }\n }\n\n // fallback: return the value by key\n return this.values[key];\n }\n\n hasData(\n key: string // idx name\n ): boolean \n {\n // no attempt to format, we want simple true/false\n return !!this.getData(key);\n }\n\n getNextStep(_authClient: OktaAuthIdxInterface, _context?: IdxContext): NextStep {\n const name = this.getName();\n const inputs = this.getInputs();\n const authenticator = this.getAuthenticator();\n // TODO: remove type field in the next major version change\n // https://oktainc.atlassian.net/browse/OKTA-431749\n const type = authenticator?.type;\n return { \n name, \n inputs, \n ...(type && { type }),\n ...(authenticator && { authenticator }),\n };\n }\n\n // Get inputs for the next step\n getInputs(): Input[] {\n const inputs: Input[] = [];\n const inputsFromRemediation = this.remediation.value || [];\n inputsFromRemediation.forEach(inputFromRemediation => {\n let input;\n let { name, type, visible, messages } = inputFromRemediation;\n if (visible === false) {\n return; // Filter out invisible inputs, like stateHandle\n }\n if (typeof this[`getInput${titleCase(name)}`] === 'function') {\n input = this[`getInput${titleCase(name)}`](inputFromRemediation);\n } else if (type !== 'object') {\n // handle general primitive types\n let alias;\n const aliases = (this.map ? this.map[name] : null) || [];\n if (aliases.length === 1) {\n alias = aliases[0];\n } else {\n // try find key from values\n alias = aliases.find(name => Object.keys(this.values).includes(name));\n }\n if (alias) {\n input = { ...inputFromRemediation, name: alias };\n }\n }\n if (!input) {\n input = inputFromRemediation;\n }\n if (Array.isArray(input)) {\n input.forEach(i => inputs.push(i));\n } else {\n // guarantees field-level messages are passed back\n if (messages) {\n input.messages = messages;\n }\n inputs.push(input);\n }\n });\n return inputs;\n }\n\n static getMessages(remediation: IdxRemediation): IdxMessage[] | undefined {\n if (!remediation.value) {\n return;\n }\n return remediation.value[0]?.form?.value.reduce((messages: IdxMessage[], field) => {\n if (field.messages) {\n messages = [...messages, ...field.messages.value];\n }\n return messages;\n }, []);\n }\n\n // Prepare values for the next remediation\n // In general, remove used values from inputs for the current remediation\n // Override this method if special cases need be handled\n getValuesAfterProceed(): T {\n const inputsFromRemediation = this.remediation.value || []; // \"raw\" inputs from server response\n const inputsFromRemediator = this.getInputs(); // \"aliased\" inputs from SDK remediator\n const inputs = [\n ...inputsFromRemediation,\n ...inputsFromRemediator\n ];\n // scrub all values related to this remediation\n for (const input of inputs) {\n delete this.values[input.name];\n }\n return this.values;\n }\n\n protected getAuthenticator(): IdxAuthenticator | undefined {\n // relatesTo value may be an authenticator or an authenticatorEnrollment\n const relatesTo = this.remediation.relatesTo?.value;\n if (!relatesTo) {\n return;\n }\n\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n if (!authenticatorFromRemediation) {\n // Hopefully value is an authenticator\n return relatesTo;\n }\n\n // If relatesTo is an authenticatorEnrollment, the id is actually the enrollmentId\n // Let's get the correct authenticator id from the form value\n const id = authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'id')!.value as string;\n const enrollmentId = authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'enrollmentId')?.value as string;\n\n return {\n ...relatesTo,\n id,\n enrollmentId\n };\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.SelectAuthenticator = void 0;
|
|
4
|
-
|
|
5
4
|
var _Remediator = require("./Remediator");
|
|
6
|
-
|
|
7
5
|
var _util = require("../util");
|
|
8
|
-
|
|
9
6
|
var _api = require("../../types/api");
|
|
10
|
-
|
|
11
7
|
var _util2 = require("../../authenticator/util");
|
|
12
|
-
|
|
13
8
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
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,25 +17,22 @@ var _util2 = require("../../authenticator/util");
|
|
|
23
17
|
*
|
|
24
18
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
25
19
|
*/
|
|
20
|
+
|
|
26
21
|
// Base class - DO NOT expose static remediationName
|
|
27
22
|
class SelectAuthenticator extends _Remediator.Remediator {
|
|
28
23
|
// Find matched authenticator in provided order
|
|
29
24
|
findMatchedOption(authenticators, options) {
|
|
30
25
|
let option;
|
|
31
|
-
|
|
32
26
|
for (let authenticator of authenticators) {
|
|
33
27
|
option = options.find(({
|
|
34
28
|
relatesTo
|
|
35
29
|
}) => relatesTo.key === authenticator.key);
|
|
36
|
-
|
|
37
30
|
if (option) {
|
|
38
31
|
break;
|
|
39
32
|
}
|
|
40
33
|
}
|
|
41
|
-
|
|
42
34
|
return option;
|
|
43
35
|
}
|
|
44
|
-
|
|
45
36
|
canRemediate() {
|
|
46
37
|
const {
|
|
47
38
|
authenticators,
|
|
@@ -50,45 +41,40 @@ class SelectAuthenticator extends _Remediator.Remediator {
|
|
|
50
41
|
const authenticatorFromRemediation = (0, _util.getAuthenticatorFromRemediation)(this.remediation);
|
|
51
42
|
const {
|
|
52
43
|
options
|
|
53
|
-
} = authenticatorFromRemediation;
|
|
54
|
-
|
|
44
|
+
} = authenticatorFromRemediation;
|
|
45
|
+
// Let users select authenticator if no input is provided
|
|
55
46
|
if (!authenticators || !authenticators.length) {
|
|
56
47
|
return false;
|
|
57
|
-
}
|
|
58
|
-
|
|
48
|
+
}
|
|
59
49
|
|
|
50
|
+
// Authenticator is explicitly specified by id
|
|
60
51
|
if ((0, _api.isAuthenticator)(authenticator) && authenticator.id) {
|
|
61
52
|
return true;
|
|
62
|
-
}
|
|
63
|
-
|
|
53
|
+
}
|
|
64
54
|
|
|
55
|
+
// Proceed with provided authenticators
|
|
65
56
|
const matchedOption = this.findMatchedOption(authenticators, options);
|
|
66
|
-
|
|
67
57
|
if (matchedOption) {
|
|
68
58
|
return true;
|
|
69
59
|
}
|
|
70
|
-
|
|
71
60
|
return false;
|
|
72
61
|
}
|
|
73
|
-
|
|
74
62
|
mapAuthenticator(remediationValue) {
|
|
75
63
|
const {
|
|
76
64
|
authenticators,
|
|
77
65
|
authenticator
|
|
78
|
-
} = this.values;
|
|
66
|
+
} = this.values;
|
|
79
67
|
|
|
68
|
+
// Authenticator is explicitly specified by id
|
|
80
69
|
if ((0, _api.isAuthenticator)(authenticator) && authenticator.id) {
|
|
81
70
|
this.selectedAuthenticator = authenticator; // track the selected authenticator
|
|
82
|
-
|
|
83
71
|
return authenticator;
|
|
84
72
|
}
|
|
85
|
-
|
|
86
73
|
const {
|
|
87
74
|
options
|
|
88
75
|
} = remediationValue;
|
|
89
76
|
const selectedOption = (0, _util2.findMatchedOption)(authenticators, options);
|
|
90
77
|
this.selectedAuthenticator = selectedOption.relatesTo; // track the selected authenticator
|
|
91
|
-
|
|
92
78
|
this.selectedOption = selectedOption;
|
|
93
79
|
return {
|
|
94
80
|
id: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value.form.value.find(({
|
|
@@ -96,7 +82,6 @@ class SelectAuthenticator extends _Remediator.Remediator {
|
|
|
96
82
|
}) => name === 'id').value
|
|
97
83
|
};
|
|
98
84
|
}
|
|
99
|
-
|
|
100
85
|
getInputAuthenticator(remediation) {
|
|
101
86
|
const options = remediation.options.map(({
|
|
102
87
|
label,
|
|
@@ -113,19 +98,17 @@ class SelectAuthenticator extends _Remediator.Remediator {
|
|
|
113
98
|
options
|
|
114
99
|
};
|
|
115
100
|
}
|
|
116
|
-
|
|
117
101
|
getValuesAfterProceed() {
|
|
118
|
-
this.values = super.getValuesAfterProceed();
|
|
119
|
-
|
|
102
|
+
this.values = super.getValuesAfterProceed();
|
|
103
|
+
// remove used authenticators
|
|
120
104
|
const authenticators = this.values.authenticators.filter(authenticator => {
|
|
121
105
|
return (0, _util2.compareAuthenticators)(authenticator, this.selectedAuthenticator) !== true;
|
|
122
106
|
});
|
|
123
|
-
return {
|
|
107
|
+
return {
|
|
108
|
+
...this.values,
|
|
124
109
|
authenticators
|
|
125
110
|
};
|
|
126
111
|
}
|
|
127
|
-
|
|
128
112
|
}
|
|
129
|
-
|
|
130
113
|
exports.SelectAuthenticator = SelectAuthenticator;
|
|
131
114
|
//# sourceMappingURL=SelectAuthenticator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectAuthenticator.js","names":["SelectAuthenticator","Remediator","findMatchedOption","authenticators","options","option","authenticator","find","relatesTo","key","canRemediate","values","authenticatorFromRemediation","getAuthenticatorFromRemediation","remediation","length","isAuthenticator","id","matchedOption","mapAuthenticator","remediationValue","selectedAuthenticator","selectedOption","value","form","name","getInputAuthenticator","map","label","type","getValuesAfterProceed","filter","compareAuthenticators"],"sources":["../../../../../lib/idx/remediators/Base/SelectAuthenticator.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\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 { Remediator, RemediationValues } from './Remediator';\nimport { getAuthenticatorFromRemediation } from '../util';\nimport { IdxRemediationValue } from '../../types/idx-js';\nimport { Authenticator, isAuthenticator } from '../../types/api';\nimport { compareAuthenticators, findMatchedOption} from '../../authenticator/util';\n\nexport type SelectAuthenticatorValues = RemediationValues & {\n authenticator?: string | Authenticator;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class SelectAuthenticator<T extends SelectAuthenticatorValues = SelectAuthenticatorValues>\n extends Remediator<T> {\n selectedAuthenticator?: Authenticator;\n selectedOption?: any;\n\n // Find matched authenticator in provided order\n findMatchedOption(authenticators, options) {\n let option;\n for (let authenticator of authenticators) {\n option = options\n .find(({ relatesTo }) => relatesTo.key === authenticator.key);\n if (option) {\n break;\n }\n }\n return option;\n }\n\n canRemediate() {\n const { authenticators, authenticator } = this.values;\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n const { options } = authenticatorFromRemediation;\n // Let users select authenticator if no input is provided\n if (!authenticators || !authenticators.length) {\n return false;\n }\n\n // Authenticator is explicitly specified by id\n if (isAuthenticator(authenticator) && authenticator.id) {\n return true;\n }\n\n // Proceed with provided authenticators\n const matchedOption = this.findMatchedOption(authenticators, options);\n if (matchedOption) {\n return true;\n }\n \n return false;\n }\n\n mapAuthenticator(remediationValue: IdxRemediationValue) {\n const { authenticators, authenticator } = this.values;\n\n // Authenticator is explicitly specified by id\n if (isAuthenticator(authenticator) && authenticator.id) {\n this.selectedAuthenticator = authenticator; // track the selected authenticator\n return authenticator;\n }\n\n const { options } = remediationValue;\n const selectedOption = findMatchedOption(authenticators, options);\n this.selectedAuthenticator = selectedOption.relatesTo; // track the selected authenticator\n this.selectedOption = selectedOption;\n return {\n id: selectedOption?.value.form.value.find(({ name }) => name === 'id').value\n };\n }\n\n getInputAuthenticator(remediation) {\n const options = remediation.options.map(({ label, relatesTo }) => {\n return {\n label,\n value: relatesTo.key\n };\n });\n return { name: 'authenticator', type: 'string', options };\n }\n\n getValuesAfterProceed(): T {\n this.values = super.getValuesAfterProceed();\n // remove used authenticators\n const authenticators = (this.values.authenticators as Authenticator[])\n .filter(authenticator => {\n return compareAuthenticators(authenticator, this.selectedAuthenticator) !== true;\n });\n return { ...this.values, authenticators };\n }\n\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SelectAuthenticator.js","names":["SelectAuthenticator","Remediator","findMatchedOption","authenticators","options","option","authenticator","find","relatesTo","key","canRemediate","values","authenticatorFromRemediation","getAuthenticatorFromRemediation","remediation","length","isAuthenticator","id","matchedOption","mapAuthenticator","remediationValue","selectedAuthenticator","selectedOption","value","form","name","getInputAuthenticator","map","label","type","getValuesAfterProceed","filter","compareAuthenticators"],"sources":["../../../../../lib/idx/remediators/Base/SelectAuthenticator.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\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 { Remediator, RemediationValues } from './Remediator';\nimport { getAuthenticatorFromRemediation } from '../util';\nimport { IdxRemediationValue } from '../../types/idx-js';\nimport { Authenticator, isAuthenticator } from '../../types/api';\nimport { compareAuthenticators, findMatchedOption} from '../../authenticator/util';\n\nexport type SelectAuthenticatorValues = RemediationValues & {\n authenticator?: string | Authenticator;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class SelectAuthenticator<T extends SelectAuthenticatorValues = SelectAuthenticatorValues>\n extends Remediator<T> {\n selectedAuthenticator?: Authenticator;\n selectedOption?: any;\n\n // Find matched authenticator in provided order\n findMatchedOption(authenticators, options) {\n let option;\n for (let authenticator of authenticators) {\n option = options\n .find(({ relatesTo }) => relatesTo.key === authenticator.key);\n if (option) {\n break;\n }\n }\n return option;\n }\n\n canRemediate() {\n const { authenticators, authenticator } = this.values;\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n const { options } = authenticatorFromRemediation;\n // Let users select authenticator if no input is provided\n if (!authenticators || !authenticators.length) {\n return false;\n }\n\n // Authenticator is explicitly specified by id\n if (isAuthenticator(authenticator) && authenticator.id) {\n return true;\n }\n\n // Proceed with provided authenticators\n const matchedOption = this.findMatchedOption(authenticators, options);\n if (matchedOption) {\n return true;\n }\n \n return false;\n }\n\n mapAuthenticator(remediationValue: IdxRemediationValue) {\n const { authenticators, authenticator } = this.values;\n\n // Authenticator is explicitly specified by id\n if (isAuthenticator(authenticator) && authenticator.id) {\n this.selectedAuthenticator = authenticator; // track the selected authenticator\n return authenticator;\n }\n\n const { options } = remediationValue;\n const selectedOption = findMatchedOption(authenticators, options);\n this.selectedAuthenticator = selectedOption.relatesTo; // track the selected authenticator\n this.selectedOption = selectedOption;\n return {\n id: selectedOption?.value.form.value.find(({ name }) => name === 'id').value\n };\n }\n\n getInputAuthenticator(remediation) {\n const options = remediation.options.map(({ label, relatesTo }) => {\n return {\n label,\n value: relatesTo.key\n };\n });\n return { name: 'authenticator', type: 'string', options };\n }\n\n getValuesAfterProceed(): T {\n this.values = super.getValuesAfterProceed();\n // remove used authenticators\n const authenticators = (this.values.authenticators as Authenticator[])\n .filter(authenticator => {\n return compareAuthenticators(authenticator, this.selectedAuthenticator) !== true;\n });\n return { ...this.values, authenticators };\n }\n\n}\n"],"mappings":"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"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.VerifyAuthenticator = void 0;
|
|
4
|
-
|
|
5
4
|
var _Remediator = require("./Remediator");
|
|
6
|
-
|
|
7
5
|
var _authenticator = require("../../authenticator");
|
|
8
|
-
|
|
9
6
|
/*!
|
|
10
7
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
11
8
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -17,44 +14,39 @@ var _authenticator = require("../../authenticator");
|
|
|
17
14
|
*
|
|
18
15
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
19
16
|
*/
|
|
17
|
+
|
|
20
18
|
// Base class - DO NOT expose static remediationName
|
|
21
19
|
class VerifyAuthenticator extends _Remediator.Remediator {
|
|
22
20
|
constructor(remediation, values = {}) {
|
|
23
21
|
super(remediation, values);
|
|
24
22
|
this.authenticator = (0, _authenticator.getAuthenticator)(remediation);
|
|
25
23
|
}
|
|
26
|
-
|
|
27
24
|
getNextStep(authClient, context) {
|
|
28
25
|
var _context$authenticato;
|
|
29
|
-
|
|
30
26
|
const nextStep = super.getNextStep(authClient, context);
|
|
31
27
|
const authenticatorEnrollments = context === null || context === void 0 ? void 0 : (_context$authenticato = context.authenticatorEnrollments) === null || _context$authenticato === void 0 ? void 0 : _context$authenticato.value;
|
|
32
|
-
return {
|
|
28
|
+
return {
|
|
29
|
+
...nextStep,
|
|
33
30
|
authenticatorEnrollments
|
|
34
31
|
};
|
|
35
32
|
}
|
|
36
|
-
|
|
37
33
|
canRemediate() {
|
|
38
34
|
return this.authenticator.canVerify(this.values);
|
|
39
35
|
}
|
|
40
|
-
|
|
41
36
|
mapCredentials() {
|
|
42
37
|
return this.authenticator.mapCredentials(this.values);
|
|
43
38
|
}
|
|
44
|
-
|
|
45
39
|
getInputCredentials(input) {
|
|
46
40
|
return this.authenticator.getInputs(input);
|
|
47
41
|
}
|
|
48
|
-
|
|
49
42
|
getValuesAfterProceed() {
|
|
50
43
|
this.values = super.getValuesAfterProceed();
|
|
51
44
|
let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'credentials');
|
|
52
|
-
return trimmedValues.reduce((values, valueKey) => ({
|
|
45
|
+
return trimmedValues.reduce((values, valueKey) => ({
|
|
46
|
+
...values,
|
|
53
47
|
[valueKey]: this.values[valueKey]
|
|
54
48
|
}), {});
|
|
55
49
|
}
|
|
56
|
-
|
|
57
50
|
}
|
|
58
|
-
|
|
59
51
|
exports.VerifyAuthenticator = VerifyAuthenticator;
|
|
60
52
|
//# sourceMappingURL=VerifyAuthenticator.js.map
|