@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":"recoverPassword.js","names":["recoverPassword","authClient","options","flowSpec","getFlowSpecification","run"],"sources":["../../../lib/idx/recoverPassword.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 { run } from './run';\nimport { getFlowSpecification } from './flow';\nimport { \n OktaAuthIdxInterface, \n PasswordRecoveryOptions, \n IdxTransaction,\n} from './types';\n\nexport async function recoverPassword(\n authClient: OktaAuthIdxInterface, options: PasswordRecoveryOptions = {}\n): Promise<IdxTransaction> {\n const flowSpec = getFlowSpecification(authClient, 'recoverPassword');\n return run(\n authClient, \n { \n ...options,\n ...flowSpec,\n }\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"recoverPassword.js","names":["recoverPassword","authClient","options","flowSpec","getFlowSpecification","run"],"sources":["../../../lib/idx/recoverPassword.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 { run } from './run';\nimport { getFlowSpecification } from './flow';\nimport { \n OktaAuthIdxInterface, \n PasswordRecoveryOptions, \n IdxTransaction,\n} from './types';\n\nexport async function recoverPassword(\n authClient: OktaAuthIdxInterface, options: PasswordRecoveryOptions = {}\n): Promise<IdxTransaction> {\n const flowSpec = getFlowSpecification(authClient, 'recoverPassword');\n return run(\n authClient, \n { \n ...options,\n ...flowSpec,\n }\n );\n}\n"],"mappings":";;;AAaA;AACA;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWO,eAAeA,eAAe,CACnCC,UAAgC,EAAEC,OAAgC,GAAG,CAAC,CAAC,EAC9C;EACzB,MAAMC,QAAQ,GAAG,IAAAC,0BAAoB,EAACH,UAAU,EAAE,iBAAiB,CAAC;EACpE,OAAO,IAAAI,QAAG,EACRJ,UAAU,EACV;IACE,GAAGC,OAAO;IACV,GAAGC;EACL,CAAC,CACF;AACH"}
|
package/cjs/idx/register.js
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.register = register;
|
|
4
|
-
|
|
5
4
|
var _run = require("./run");
|
|
6
|
-
|
|
7
5
|
var _transactionMeta = require("./transactionMeta");
|
|
8
|
-
|
|
9
6
|
var _startTransaction = require("./startTransaction");
|
|
10
|
-
|
|
11
7
|
var _errors = require("../errors");
|
|
12
|
-
|
|
13
8
|
var _types = require("./types");
|
|
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,29 +17,29 @@ var _types = require("./types");
|
|
|
23
17
|
*
|
|
24
18
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
25
19
|
*/
|
|
20
|
+
|
|
26
21
|
async function register(authClient, options = {}) {
|
|
27
22
|
// Only check at the beginning of the transaction
|
|
28
23
|
if (!(0, _transactionMeta.hasSavedInteractionHandle)(authClient)) {
|
|
29
24
|
const {
|
|
30
25
|
enabledFeatures,
|
|
31
26
|
availableSteps
|
|
32
|
-
} = await (0, _startTransaction.startTransaction)(authClient, {
|
|
27
|
+
} = await (0, _startTransaction.startTransaction)(authClient, {
|
|
28
|
+
...options,
|
|
33
29
|
flow: 'register',
|
|
34
30
|
autoRemediate: false
|
|
35
31
|
});
|
|
36
|
-
|
|
37
32
|
if (!options.activationToken && enabledFeatures && !enabledFeatures.includes(_types.IdxFeature.REGISTRATION)) {
|
|
38
33
|
throw new _errors.AuthSdkError('Registration is not supported based on your current org configuration.');
|
|
39
34
|
}
|
|
40
|
-
|
|
41
35
|
if (options.activationToken && availableSteps !== null && availableSteps !== void 0 && availableSteps.some(({
|
|
42
36
|
name
|
|
43
37
|
}) => name === 'identify')) {
|
|
44
38
|
throw new _errors.AuthSdkError('activationToken is not supported based on your current org configuration.');
|
|
45
39
|
}
|
|
46
40
|
}
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
return (0, _run.run)(authClient, {
|
|
42
|
+
...options,
|
|
49
43
|
flow: 'register'
|
|
50
44
|
});
|
|
51
45
|
}
|
package/cjs/idx/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","names":["register","authClient","options","hasSavedInteractionHandle","enabledFeatures","availableSteps","startTransaction","flow","autoRemediate","activationToken","includes","IdxFeature","REGISTRATION","AuthSdkError","some","name","run"],"sources":["../../../lib/idx/register.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 { run } from './run';\nimport { hasSavedInteractionHandle } from './transactionMeta';\nimport { startTransaction } from './startTransaction';\nimport { AuthSdkError } from '../errors';\nimport { \n RegistrationOptions, \n IdxTransaction, \n OktaAuthIdxInterface, \n IdxFeature,\n} from './types';\n\nexport async function register(\n authClient: OktaAuthIdxInterface, options: RegistrationOptions = {}\n): Promise<IdxTransaction> {\n\n // Only check at the beginning of the transaction\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures, availableSteps } = await startTransaction(authClient, {\n ...options,\n flow: 'register',\n autoRemediate: false\n });\n if (!options.activationToken && enabledFeatures && !enabledFeatures.includes(IdxFeature.REGISTRATION)) {\n throw new AuthSdkError('Registration is not supported based on your current org configuration.');\n }\n if (options.activationToken && availableSteps?.some(({ name }) => name === 'identify')) {\n throw new AuthSdkError('activationToken is not supported based on your current org configuration.');\n }\n }\n\n return run(authClient, {\n ...options,\n flow: 'register'\n });\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"register.js","names":["register","authClient","options","hasSavedInteractionHandle","enabledFeatures","availableSteps","startTransaction","flow","autoRemediate","activationToken","includes","IdxFeature","REGISTRATION","AuthSdkError","some","name","run"],"sources":["../../../lib/idx/register.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 { run } from './run';\nimport { hasSavedInteractionHandle } from './transactionMeta';\nimport { startTransaction } from './startTransaction';\nimport { AuthSdkError } from '../errors';\nimport { \n RegistrationOptions, \n IdxTransaction, \n OktaAuthIdxInterface, \n IdxFeature,\n} from './types';\n\nexport async function register(\n authClient: OktaAuthIdxInterface, options: RegistrationOptions = {}\n): Promise<IdxTransaction> {\n\n // Only check at the beginning of the transaction\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures, availableSteps } = await startTransaction(authClient, {\n ...options,\n flow: 'register',\n autoRemediate: false\n });\n if (!options.activationToken && enabledFeatures && !enabledFeatures.includes(IdxFeature.REGISTRATION)) {\n throw new AuthSdkError('Registration is not supported based on your current org configuration.');\n }\n if (options.activationToken && availableSteps?.some(({ name }) => name === 'identify')) {\n throw new AuthSdkError('activationToken is not supported based on your current org configuration.');\n }\n }\n\n return run(authClient, {\n ...options,\n flow: 'register'\n });\n}\n"],"mappings":";;;AAaA;AACA;AACA;AACA;AACA;AAjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcO,eAAeA,QAAQ,CAC5BC,UAAgC,EAAEC,OAA4B,GAAG,CAAC,CAAC,EAC1C;EAEzB;EACA,IAAI,CAAC,IAAAC,0CAAyB,EAACF,UAAU,CAAC,EAAE;IAC1C,MAAM;MAAEG,eAAe;MAAEC;IAAe,CAAC,GAAG,MAAM,IAAAC,kCAAgB,EAACL,UAAU,EAAE;MAC7E,GAAGC,OAAO;MACVK,IAAI,EAAE,UAAU;MAChBC,aAAa,EAAE;IACjB,CAAC,CAAC;IACF,IAAI,CAACN,OAAO,CAACO,eAAe,IAAIL,eAAe,IAAI,CAACA,eAAe,CAACM,QAAQ,CAACC,iBAAU,CAACC,YAAY,CAAC,EAAE;MACrG,MAAM,IAAIC,oBAAY,CAAC,wEAAwE,CAAC;IAClG;IACA,IAAIX,OAAO,CAACO,eAAe,IAAIJ,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAES,IAAI,CAAC,CAAC;MAAEC;IAAK,CAAC,KAAKA,IAAI,KAAK,UAAU,CAAC,EAAE;MACtF,MAAM,IAAIF,oBAAY,CAAC,2EAA2E,CAAC;IACrG;EACF;EAEA,OAAO,IAAAG,QAAG,EAACf,UAAU,EAAE;IACrB,GAAGC,OAAO;IACVK,IAAI,EAAE;EACR,CAAC,CAAC;AACJ"}
|
package/cjs/idx/remediate.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.remediate = remediate;
|
|
4
|
-
|
|
5
4
|
var _errors = require("../errors");
|
|
6
|
-
|
|
7
5
|
var _util = require("./util");
|
|
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.")
|
|
@@ -19,33 +16,33 @@ var _util = require("./util");
|
|
|
19
16
|
*/
|
|
20
17
|
|
|
21
18
|
/* eslint-disable max-statements, max-depth, complexity */
|
|
19
|
+
|
|
22
20
|
function getActionFromValues(values, idxResponse) {
|
|
23
21
|
// Currently support resend actions only
|
|
24
22
|
return Object.keys(idxResponse.actions).find(action => !!values.resend && action.includes('-resend'));
|
|
25
23
|
}
|
|
26
|
-
|
|
27
24
|
function removeActionFromValues(values) {
|
|
28
25
|
// Currently support resend actions only
|
|
29
|
-
return {
|
|
26
|
+
return {
|
|
27
|
+
...values,
|
|
30
28
|
resend: undefined
|
|
31
29
|
};
|
|
32
30
|
}
|
|
33
|
-
|
|
34
31
|
function removeActionFromOptions(options, actionName) {
|
|
35
32
|
let actions = options.actions || [];
|
|
36
33
|
actions = actions.filter(entry => {
|
|
37
34
|
if (typeof entry === 'string') {
|
|
38
35
|
return entry !== actionName;
|
|
39
36
|
}
|
|
40
|
-
|
|
41
37
|
return entry.name !== actionName;
|
|
42
38
|
});
|
|
43
|
-
return {
|
|
39
|
+
return {
|
|
40
|
+
...options,
|
|
44
41
|
actions
|
|
45
42
|
};
|
|
46
|
-
}
|
|
47
|
-
|
|
43
|
+
}
|
|
48
44
|
|
|
45
|
+
// This function is called recursively until it reaches success or cannot be remediated
|
|
49
46
|
async function remediate(authClient, idxResponse, values, options) {
|
|
50
47
|
let {
|
|
51
48
|
neededToProceed,
|
|
@@ -53,107 +50,92 @@ async function remediate(authClient, idxResponse, values, options) {
|
|
|
53
50
|
} = idxResponse;
|
|
54
51
|
const {
|
|
55
52
|
flow
|
|
56
|
-
} = options;
|
|
53
|
+
} = options;
|
|
57
54
|
|
|
55
|
+
// If the response contains an interaction code, there is no need to remediate
|
|
58
56
|
if (interactionCode) {
|
|
59
57
|
return {
|
|
60
58
|
idxResponse
|
|
61
59
|
};
|
|
62
60
|
}
|
|
61
|
+
const remediator = (0, _util.getRemediator)(neededToProceed, values, options);
|
|
63
62
|
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
// Try actions in idxResponse first
|
|
66
64
|
const actionFromValues = getActionFromValues(values, idxResponse);
|
|
67
65
|
const actionFromOptions = options.actions || [];
|
|
68
66
|
const actions = [...actionFromOptions, ...(actionFromValues && [actionFromValues] || [])];
|
|
69
|
-
|
|
70
67
|
if (actions) {
|
|
71
68
|
for (let action of actions) {
|
|
72
69
|
// Action can either be specified as a string, or as an object with name and optional params
|
|
73
70
|
let params = {};
|
|
74
|
-
|
|
75
71
|
if (typeof action !== 'string') {
|
|
76
72
|
params = action.params || {};
|
|
77
73
|
action = action.name;
|
|
78
74
|
}
|
|
79
|
-
|
|
80
75
|
let valuesWithoutExecutedAction = removeActionFromValues(values);
|
|
81
76
|
let optionsWithoutExecutedAction = removeActionFromOptions(options, action);
|
|
82
|
-
|
|
83
77
|
if (typeof idxResponse.actions[action] === 'function') {
|
|
84
78
|
idxResponse = await idxResponse.actions[action](params);
|
|
85
|
-
|
|
86
79
|
if (idxResponse.requestDidSucceed === false) {
|
|
87
80
|
return (0, _util.handleFailedResponse)(authClient, idxResponse, options);
|
|
88
81
|
}
|
|
89
|
-
|
|
90
82
|
if (action === 'cancel') {
|
|
91
83
|
return {
|
|
92
84
|
idxResponse,
|
|
93
85
|
canceled: true
|
|
94
86
|
};
|
|
95
87
|
}
|
|
96
|
-
|
|
97
88
|
return remediate(authClient, idxResponse, valuesWithoutExecutedAction, optionsWithoutExecutedAction); // recursive call
|
|
98
|
-
}
|
|
99
|
-
|
|
89
|
+
}
|
|
100
90
|
|
|
91
|
+
// search for action in remediation list
|
|
101
92
|
const remediationAction = neededToProceed.find(({
|
|
102
93
|
name
|
|
103
94
|
}) => name === action);
|
|
104
|
-
|
|
105
95
|
if (remediationAction) {
|
|
106
96
|
idxResponse = await idxResponse.proceed(action, params);
|
|
107
|
-
|
|
108
97
|
if (idxResponse.requestDidSucceed === false) {
|
|
109
98
|
return (0, _util.handleFailedResponse)(authClient, idxResponse, options);
|
|
110
99
|
}
|
|
111
|
-
|
|
112
100
|
return remediate(authClient, idxResponse, values, optionsWithoutExecutedAction); // recursive call
|
|
113
101
|
}
|
|
114
102
|
}
|
|
115
|
-
}
|
|
116
|
-
|
|
103
|
+
}
|
|
117
104
|
|
|
105
|
+
// Do not attempt to remediate if response is in terminal state
|
|
118
106
|
const terminal = (0, _util.isTerminalResponse)(idxResponse);
|
|
119
|
-
|
|
120
107
|
if (terminal) {
|
|
121
108
|
return {
|
|
122
109
|
idxResponse,
|
|
123
110
|
terminal
|
|
124
111
|
};
|
|
125
112
|
}
|
|
126
|
-
|
|
127
113
|
if (!remediator) {
|
|
128
114
|
// With options.step, remediator is not required
|
|
129
115
|
if (options.step) {
|
|
130
116
|
values = (0, _util.filterValuesForRemediation)(idxResponse, options.step, values); // include only requested values
|
|
131
|
-
|
|
132
117
|
idxResponse = await idxResponse.proceed(options.step, values);
|
|
133
|
-
|
|
134
118
|
if (idxResponse.requestDidSucceed === false) {
|
|
135
119
|
return (0, _util.handleFailedResponse)(authClient, idxResponse, options);
|
|
136
120
|
}
|
|
137
|
-
|
|
138
121
|
return {
|
|
139
122
|
idxResponse
|
|
140
123
|
};
|
|
141
|
-
}
|
|
142
|
-
|
|
124
|
+
}
|
|
143
125
|
|
|
126
|
+
// With default flow, remediator is not required
|
|
144
127
|
if (flow === 'default') {
|
|
145
128
|
return {
|
|
146
129
|
idxResponse
|
|
147
130
|
};
|
|
148
131
|
}
|
|
149
|
-
|
|
150
132
|
throw new _errors.AuthSdkError(`
|
|
151
133
|
No remediation can match current flow, check policy settings in your org.
|
|
152
134
|
Remediations: [${neededToProceed.reduce((acc, curr) => acc ? acc + ' ,' + curr.name : curr.name, '')}]
|
|
153
135
|
`);
|
|
154
|
-
}
|
|
155
|
-
|
|
136
|
+
}
|
|
156
137
|
|
|
138
|
+
// Return next step to the caller
|
|
157
139
|
if (!remediator.canRemediate()) {
|
|
158
140
|
const nextStep = (0, _util.getNextStep)(authClient, remediator, idxResponse);
|
|
159
141
|
return {
|
|
@@ -161,24 +143,22 @@ async function remediate(authClient, idxResponse, values, options) {
|
|
|
161
143
|
nextStep
|
|
162
144
|
};
|
|
163
145
|
}
|
|
164
|
-
|
|
165
146
|
const name = remediator.getName();
|
|
166
147
|
const data = remediator.getData();
|
|
167
148
|
idxResponse = await idxResponse.proceed(name, data);
|
|
168
|
-
|
|
169
149
|
if (idxResponse.requestDidSucceed === false) {
|
|
170
150
|
return (0, _util.handleFailedResponse)(authClient, idxResponse, options);
|
|
171
|
-
}
|
|
151
|
+
}
|
|
152
|
+
// We may want to trim the values bag for the next remediation
|
|
172
153
|
// Let the remediator decide what the values should be (default to current values)
|
|
173
|
-
|
|
174
|
-
|
|
175
154
|
values = remediator.getValuesAfterProceed();
|
|
176
|
-
options = {
|
|
155
|
+
options = {
|
|
156
|
+
...options,
|
|
177
157
|
step: undefined
|
|
178
158
|
}; // do not re-use the step
|
|
159
|
+
|
|
179
160
|
// generic remediator should not auto proceed in pending status
|
|
180
161
|
// return nextStep directly
|
|
181
|
-
|
|
182
162
|
if (options.useGenericRemediator && !idxResponse.interactionCode && !(0, _util.isTerminalResponse)(idxResponse)) {
|
|
183
163
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
184
164
|
const gr = (0, _util.getRemediator)(idxResponse.neededToProceed, values, options);
|
|
@@ -188,7 +168,6 @@ async function remediate(authClient, idxResponse, values, options) {
|
|
|
188
168
|
nextStep
|
|
189
169
|
};
|
|
190
170
|
}
|
|
191
|
-
|
|
192
171
|
return remediate(authClient, idxResponse, values, options); // recursive call
|
|
193
172
|
}
|
|
194
173
|
//# sourceMappingURL=remediate.js.map
|
package/cjs/idx/remediate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remediate.js","names":["getActionFromValues","values","idxResponse","Object","keys","actions","find","action","resend","includes","removeActionFromValues","undefined","removeActionFromOptions","options","actionName","filter","entry","name","remediate","authClient","neededToProceed","interactionCode","flow","remediator","getRemediator","actionFromValues","actionFromOptions","params","valuesWithoutExecutedAction","optionsWithoutExecutedAction","requestDidSucceed","handleFailedResponse","canceled","remediationAction","proceed","terminal","isTerminalResponse","step","filterValuesForRemediation","AuthSdkError","reduce","acc","curr","canRemediate","nextStep","getNextStep","getName","data","getData","getValuesAfterProceed","useGenericRemediator","gr"],"sources":["../../../lib/idx/remediate.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/* eslint-disable max-statements, max-depth, complexity */\nimport { AuthSdkError } from '../errors';\nimport { RemediationValues } from './remediators';\nimport { OktaAuthIdxInterface, RemediateOptions, RemediationResponse } from './types';\nimport { \n IdxResponse,\n IdxActionParams, \n} from './types/idx-js';\nimport {\n isTerminalResponse,\n filterValuesForRemediation,\n getRemediator,\n getNextStep,\n handleFailedResponse\n} from './util';\n\nexport interface RemediateActionWithOptionalParams {\n name: string;\n params?: IdxActionParams;\n}\n\nexport type RemediateAction = string | RemediateActionWithOptionalParams;\n\n\nfunction getActionFromValues(values: RemediationValues, idxResponse: IdxResponse): string | undefined {\n // Currently support resend actions only\n return Object.keys(idxResponse.actions).find(action => !!values.resend && action.includes('-resend'));\n}\n\nfunction removeActionFromValues(values: RemediationValues): RemediationValues {\n // Currently support resend actions only\n return {\n ...values,\n resend: undefined\n };\n}\n\nfunction removeActionFromOptions(options: RemediateOptions, actionName: string): RemediateOptions {\n let actions = options.actions || [];\n actions = actions.filter(entry => {\n if (typeof entry === 'string') {\n return entry !== actionName;\n }\n return entry.name !== actionName;\n });\n\n return { ...options, actions };\n}\n\n// This function is called recursively until it reaches success or cannot be remediated\nexport async function remediate(\n authClient: OktaAuthIdxInterface,\n idxResponse: IdxResponse,\n values: RemediationValues,\n options: RemediateOptions\n): Promise<RemediationResponse> {\n let { neededToProceed, interactionCode } = idxResponse;\n const { flow } = options;\n\n // If the response contains an interaction code, there is no need to remediate\n if (interactionCode) {\n return { idxResponse };\n }\n\n const remediator = getRemediator(neededToProceed, values, options);\n\n // Try actions in idxResponse first\n const actionFromValues = getActionFromValues(values, idxResponse);\n const actionFromOptions = options.actions || [];\n const actions = [\n ...actionFromOptions,\n ...(actionFromValues && [actionFromValues] || []),\n ];\n if (actions) {\n for (let action of actions) {\n // Action can either be specified as a string, or as an object with name and optional params\n let params: IdxActionParams = {};\n if (typeof action !== 'string') {\n params = action.params || {};\n action = action.name;\n }\n let valuesWithoutExecutedAction = removeActionFromValues(values);\n let optionsWithoutExecutedAction = removeActionFromOptions(options, action);\n\n if (typeof idxResponse.actions[action] === 'function') {\n idxResponse = await idxResponse.actions[action](params);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n if (action === 'cancel') {\n return { idxResponse, canceled: true };\n }\n return remediate(\n authClient, \n idxResponse, \n valuesWithoutExecutedAction, \n optionsWithoutExecutedAction\n ); // recursive call\n }\n\n // search for action in remediation list\n const remediationAction = neededToProceed.find(({ name }) => name === action);\n if (remediationAction) {\n idxResponse = await idxResponse.proceed(action, params);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n return remediate(authClient, idxResponse, values, optionsWithoutExecutedAction); // recursive call\n }\n }\n }\n\n // Do not attempt to remediate if response is in terminal state\n const terminal = isTerminalResponse(idxResponse);\n if (terminal) {\n return { idxResponse, terminal };\n }\n\n if (!remediator) {\n // With options.step, remediator is not required\n if (options.step) {\n values = filterValuesForRemediation(idxResponse, options.step, values); // include only requested values\n idxResponse = await idxResponse.proceed(options.step, values);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n return { idxResponse };\n }\n\n // With default flow, remediator is not required\n if (flow === 'default') {\n return { idxResponse };\n }\n throw new AuthSdkError(`\n No remediation can match current flow, check policy settings in your org.\n Remediations: [${neededToProceed.reduce((acc, curr) => acc ? acc + ' ,' + curr.name : curr.name, '')}]\n `);\n }\n\n // Return next step to the caller\n if (!remediator.canRemediate()) {\n const nextStep = getNextStep(authClient, remediator, idxResponse);\n return {\n idxResponse,\n nextStep,\n };\n }\n\n const name = remediator.getName();\n const data = remediator.getData();\n\n idxResponse = await idxResponse.proceed(name, data);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n // We may want to trim the values bag for the next remediation\n // Let the remediator decide what the values should be (default to current values)\n values = remediator.getValuesAfterProceed();\n options = { ...options, step: undefined }; // do not re-use the step\n\n // generic remediator should not auto proceed in pending status\n // return nextStep directly\n if (options.useGenericRemediator && !idxResponse.interactionCode && !isTerminalResponse(idxResponse)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const gr = getRemediator(idxResponse.neededToProceed, values, options)!;\n const nextStep = getNextStep(authClient, gr, idxResponse);\n return {\n idxResponse,\n nextStep,\n };\n }\n \n return remediate(authClient, idxResponse, values, options); // recursive call\n\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remediate.js","names":["getActionFromValues","values","idxResponse","Object","keys","actions","find","action","resend","includes","removeActionFromValues","undefined","removeActionFromOptions","options","actionName","filter","entry","name","remediate","authClient","neededToProceed","interactionCode","flow","remediator","getRemediator","actionFromValues","actionFromOptions","params","valuesWithoutExecutedAction","optionsWithoutExecutedAction","requestDidSucceed","handleFailedResponse","canceled","remediationAction","proceed","terminal","isTerminalResponse","step","filterValuesForRemediation","AuthSdkError","reduce","acc","curr","canRemediate","nextStep","getNextStep","getName","data","getData","getValuesAfterProceed","useGenericRemediator","gr"],"sources":["../../../lib/idx/remediate.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/* eslint-disable max-statements, max-depth, complexity */\nimport { AuthSdkError } from '../errors';\nimport { RemediationValues } from './remediators';\nimport { OktaAuthIdxInterface, RemediateOptions, RemediationResponse } from './types';\nimport { \n IdxResponse,\n IdxActionParams, \n} from './types/idx-js';\nimport {\n isTerminalResponse,\n filterValuesForRemediation,\n getRemediator,\n getNextStep,\n handleFailedResponse\n} from './util';\n\nexport interface RemediateActionWithOptionalParams {\n name: string;\n params?: IdxActionParams;\n}\n\nexport type RemediateAction = string | RemediateActionWithOptionalParams;\n\n\nfunction getActionFromValues(values: RemediationValues, idxResponse: IdxResponse): string | undefined {\n // Currently support resend actions only\n return Object.keys(idxResponse.actions).find(action => !!values.resend && action.includes('-resend'));\n}\n\nfunction removeActionFromValues(values: RemediationValues): RemediationValues {\n // Currently support resend actions only\n return {\n ...values,\n resend: undefined\n };\n}\n\nfunction removeActionFromOptions(options: RemediateOptions, actionName: string): RemediateOptions {\n let actions = options.actions || [];\n actions = actions.filter(entry => {\n if (typeof entry === 'string') {\n return entry !== actionName;\n }\n return entry.name !== actionName;\n });\n\n return { ...options, actions };\n}\n\n// This function is called recursively until it reaches success or cannot be remediated\nexport async function remediate(\n authClient: OktaAuthIdxInterface,\n idxResponse: IdxResponse,\n values: RemediationValues,\n options: RemediateOptions\n): Promise<RemediationResponse> {\n let { neededToProceed, interactionCode } = idxResponse;\n const { flow } = options;\n\n // If the response contains an interaction code, there is no need to remediate\n if (interactionCode) {\n return { idxResponse };\n }\n\n const remediator = getRemediator(neededToProceed, values, options);\n\n // Try actions in idxResponse first\n const actionFromValues = getActionFromValues(values, idxResponse);\n const actionFromOptions = options.actions || [];\n const actions = [\n ...actionFromOptions,\n ...(actionFromValues && [actionFromValues] || []),\n ];\n if (actions) {\n for (let action of actions) {\n // Action can either be specified as a string, or as an object with name and optional params\n let params: IdxActionParams = {};\n if (typeof action !== 'string') {\n params = action.params || {};\n action = action.name;\n }\n let valuesWithoutExecutedAction = removeActionFromValues(values);\n let optionsWithoutExecutedAction = removeActionFromOptions(options, action);\n\n if (typeof idxResponse.actions[action] === 'function') {\n idxResponse = await idxResponse.actions[action](params);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n if (action === 'cancel') {\n return { idxResponse, canceled: true };\n }\n return remediate(\n authClient, \n idxResponse, \n valuesWithoutExecutedAction, \n optionsWithoutExecutedAction\n ); // recursive call\n }\n\n // search for action in remediation list\n const remediationAction = neededToProceed.find(({ name }) => name === action);\n if (remediationAction) {\n idxResponse = await idxResponse.proceed(action, params);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n return remediate(authClient, idxResponse, values, optionsWithoutExecutedAction); // recursive call\n }\n }\n }\n\n // Do not attempt to remediate if response is in terminal state\n const terminal = isTerminalResponse(idxResponse);\n if (terminal) {\n return { idxResponse, terminal };\n }\n\n if (!remediator) {\n // With options.step, remediator is not required\n if (options.step) {\n values = filterValuesForRemediation(idxResponse, options.step, values); // include only requested values\n idxResponse = await idxResponse.proceed(options.step, values);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n return { idxResponse };\n }\n\n // With default flow, remediator is not required\n if (flow === 'default') {\n return { idxResponse };\n }\n throw new AuthSdkError(`\n No remediation can match current flow, check policy settings in your org.\n Remediations: [${neededToProceed.reduce((acc, curr) => acc ? acc + ' ,' + curr.name : curr.name, '')}]\n `);\n }\n\n // Return next step to the caller\n if (!remediator.canRemediate()) {\n const nextStep = getNextStep(authClient, remediator, idxResponse);\n return {\n idxResponse,\n nextStep,\n };\n }\n\n const name = remediator.getName();\n const data = remediator.getData();\n\n idxResponse = await idxResponse.proceed(name, data);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n // We may want to trim the values bag for the next remediation\n // Let the remediator decide what the values should be (default to current values)\n values = remediator.getValuesAfterProceed();\n options = { ...options, step: undefined }; // do not re-use the step\n\n // generic remediator should not auto proceed in pending status\n // return nextStep directly\n if (options.useGenericRemediator && !idxResponse.interactionCode && !isTerminalResponse(idxResponse)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const gr = getRemediator(idxResponse.neededToProceed, values, options)!;\n const nextStep = getNextStep(authClient, gr, idxResponse);\n return {\n idxResponse,\n nextStep,\n };\n }\n \n return remediate(authClient, idxResponse, values, options); // recursive call\n\n}\n"],"mappings":";;;AAcA;AAOA;AArBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;;AAwBA,SAASA,mBAAmB,CAACC,MAAyB,EAAEC,WAAwB,EAAsB;EACpG;EACA,OAAOC,MAAM,CAACC,IAAI,CAACF,WAAW,CAACG,OAAO,CAAC,CAACC,IAAI,CAACC,MAAM,IAAI,CAAC,CAACN,MAAM,CAACO,MAAM,IAAID,MAAM,CAACE,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvG;AAEA,SAASC,sBAAsB,CAACT,MAAyB,EAAqB;EAC5E;EACA,OAAO;IACL,GAAGA,MAAM;IACTO,MAAM,EAAEG;EACV,CAAC;AACH;AAEA,SAASC,uBAAuB,CAACC,OAAyB,EAAEC,UAAkB,EAAoB;EAChG,IAAIT,OAAO,GAAGQ,OAAO,CAACR,OAAO,IAAI,EAAE;EACnCA,OAAO,GAAGA,OAAO,CAACU,MAAM,CAACC,KAAK,IAAI;IAChC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAOA,KAAK,KAAKF,UAAU;IAC7B;IACA,OAAOE,KAAK,CAACC,IAAI,KAAKH,UAAU;EAClC,CAAC,CAAC;EAEF,OAAO;IAAE,GAAGD,OAAO;IAAER;EAAQ,CAAC;AAChC;;AAEA;AACO,eAAea,SAAS,CAC7BC,UAAgC,EAChCjB,WAAwB,EACxBD,MAAyB,EACzBY,OAAyB,EACK;EAC9B,IAAI;IAAEO,eAAe;IAAEC;EAAgB,CAAC,GAAGnB,WAAW;EACtD,MAAM;IAAEoB;EAAK,CAAC,GAAGT,OAAO;;EAExB;EACA,IAAIQ,eAAe,EAAE;IACnB,OAAO;MAAEnB;IAAY,CAAC;EACxB;EAEA,MAAMqB,UAAU,GAAG,IAAAC,mBAAa,EAACJ,eAAe,EAAEnB,MAAM,EAAEY,OAAO,CAAC;;EAElE;EACA,MAAMY,gBAAgB,GAAGzB,mBAAmB,CAACC,MAAM,EAAEC,WAAW,CAAC;EACjE,MAAMwB,iBAAiB,GAAGb,OAAO,CAACR,OAAO,IAAI,EAAE;EAC/C,MAAMA,OAAO,GAAG,CACd,GAAGqB,iBAAiB,EACpB,IAAID,gBAAgB,IAAI,CAACA,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAClD;EACD,IAAIpB,OAAO,EAAE;IACX,KAAK,IAAIE,MAAM,IAAIF,OAAO,EAAE;MAC1B;MACA,IAAIsB,MAAuB,GAAG,CAAC,CAAC;MAChC,IAAI,OAAOpB,MAAM,KAAK,QAAQ,EAAE;QAC9BoB,MAAM,GAAGpB,MAAM,CAACoB,MAAM,IAAI,CAAC,CAAC;QAC5BpB,MAAM,GAAGA,MAAM,CAACU,IAAI;MACtB;MACA,IAAIW,2BAA2B,GAAGlB,sBAAsB,CAACT,MAAM,CAAC;MAChE,IAAI4B,4BAA4B,GAAGjB,uBAAuB,CAACC,OAAO,EAAEN,MAAM,CAAC;MAE3E,IAAI,OAAOL,WAAW,CAACG,OAAO,CAACE,MAAM,CAAC,KAAK,UAAU,EAAE;QACrDL,WAAW,GAAG,MAAMA,WAAW,CAACG,OAAO,CAACE,MAAM,CAAC,CAACoB,MAAM,CAAC;QACvD,IAAIzB,WAAW,CAAC4B,iBAAiB,KAAK,KAAK,EAAE;UAC3C,OAAO,IAAAC,0BAAoB,EAACZ,UAAU,EAAEjB,WAAW,EAAEW,OAAO,CAAC;QAC/D;QACA,IAAIN,MAAM,KAAK,QAAQ,EAAE;UACvB,OAAO;YAAEL,WAAW;YAAE8B,QAAQ,EAAE;UAAK,CAAC;QACxC;QACA,OAAOd,SAAS,CACdC,UAAU,EACVjB,WAAW,EACX0B,2BAA2B,EAC3BC,4BAA4B,CAC7B,CAAC,CAAC;MACL;;MAEA;MACA,MAAMI,iBAAiB,GAAGb,eAAe,CAACd,IAAI,CAAC,CAAC;QAAEW;MAAK,CAAC,KAAKA,IAAI,KAAKV,MAAM,CAAC;MAC7E,IAAI0B,iBAAiB,EAAE;QACrB/B,WAAW,GAAG,MAAMA,WAAW,CAACgC,OAAO,CAAC3B,MAAM,EAAEoB,MAAM,CAAC;QACvD,IAAIzB,WAAW,CAAC4B,iBAAiB,KAAK,KAAK,EAAE;UAC3C,OAAO,IAAAC,0BAAoB,EAACZ,UAAU,EAAEjB,WAAW,EAAEW,OAAO,CAAC;QAC/D;QACA,OAAOK,SAAS,CAACC,UAAU,EAAEjB,WAAW,EAAED,MAAM,EAAE4B,4BAA4B,CAAC,CAAC,CAAC;MACnF;IACF;EACF;;EAEA;EACA,MAAMM,QAAQ,GAAG,IAAAC,wBAAkB,EAAClC,WAAW,CAAC;EAChD,IAAIiC,QAAQ,EAAE;IACZ,OAAO;MAAEjC,WAAW;MAAEiC;IAAS,CAAC;EAClC;EAEA,IAAI,CAACZ,UAAU,EAAE;IACf;IACA,IAAIV,OAAO,CAACwB,IAAI,EAAE;MAChBpC,MAAM,GAAG,IAAAqC,gCAA0B,EAACpC,WAAW,EAAEW,OAAO,CAACwB,IAAI,EAAEpC,MAAM,CAAC,CAAC,CAAC;MACxEC,WAAW,GAAG,MAAMA,WAAW,CAACgC,OAAO,CAACrB,OAAO,CAACwB,IAAI,EAAEpC,MAAM,CAAC;MAC7D,IAAIC,WAAW,CAAC4B,iBAAiB,KAAK,KAAK,EAAE;QAC3C,OAAO,IAAAC,0BAAoB,EAACZ,UAAU,EAAEjB,WAAW,EAAEW,OAAO,CAAC;MAC/D;MACA,OAAO;QAAEX;MAAY,CAAC;IACxB;;IAEA;IACA,IAAIoB,IAAI,KAAK,SAAS,EAAE;MACtB,OAAO;QAAEpB;MAAY,CAAC;IACxB;IACA,MAAM,IAAIqC,oBAAY,CAAE;AAC5B;AACA,uBAAuBnB,eAAe,CAACoB,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAKD,GAAG,GAAGA,GAAG,GAAG,IAAI,GAAGC,IAAI,CAACzB,IAAI,GAAGyB,IAAI,CAACzB,IAAI,EAAE,EAAE,CAAE;AAC3G,KAAK,CAAC;EACJ;;EAEA;EACA,IAAI,CAACM,UAAU,CAACoB,YAAY,EAAE,EAAE;IAC9B,MAAMC,QAAQ,GAAG,IAAAC,iBAAW,EAAC1B,UAAU,EAAEI,UAAU,EAAErB,WAAW,CAAC;IACjE,OAAO;MACLA,WAAW;MACX0C;IACF,CAAC;EACH;EAEA,MAAM3B,IAAI,GAAGM,UAAU,CAACuB,OAAO,EAAE;EACjC,MAAMC,IAAI,GAAGxB,UAAU,CAACyB,OAAO,EAAE;EAEjC9C,WAAW,GAAG,MAAMA,WAAW,CAACgC,OAAO,CAACjB,IAAI,EAAE8B,IAAI,CAAC;EACnD,IAAI7C,WAAW,CAAC4B,iBAAiB,KAAK,KAAK,EAAE;IAC3C,OAAO,IAAAC,0BAAoB,EAACZ,UAAU,EAAEjB,WAAW,EAAEW,OAAO,CAAC;EAC/D;EACA;EACA;EACAZ,MAAM,GAAGsB,UAAU,CAAC0B,qBAAqB,EAAE;EAC3CpC,OAAO,GAAG;IAAE,GAAGA,OAAO;IAAEwB,IAAI,EAAE1B;EAAU,CAAC,CAAC,CAAC;;EAE3C;EACA;EACA,IAAIE,OAAO,CAACqC,oBAAoB,IAAI,CAAChD,WAAW,CAACmB,eAAe,IAAI,CAAC,IAAAe,wBAAkB,EAAClC,WAAW,CAAC,EAAE;IACpG;IACA,MAAMiD,EAAE,GAAG,IAAA3B,mBAAa,EAACtB,WAAW,CAACkB,eAAe,EAAEnB,MAAM,EAAEY,OAAO,CAAE;IACvE,MAAM+B,QAAQ,GAAG,IAAAC,iBAAW,EAAC1B,UAAU,EAAEgC,EAAE,EAAEjD,WAAW,CAAC;IACzD,OAAO;MACLA,WAAW;MACX0C;IACF,CAAC;EACH;EAEA,OAAO1B,SAAS,CAACC,UAAU,EAAEjB,WAAW,EAAED,MAAM,EAAEY,OAAO,CAAC,CAAC,CAAC;AAE9D"}
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
exports.AuthenticatorEnrollmentData = void 0;
|
|
6
|
-
|
|
7
5
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
-
|
|
9
6
|
var _AuthenticatorData = require("./Base/AuthenticatorData");
|
|
10
|
-
|
|
11
7
|
var _util = require("./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,6 +17,7 @@ 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
|
class AuthenticatorEnrollmentData extends _AuthenticatorData.AuthenticatorData {
|
|
27
22
|
mapAuthenticator() {
|
|
28
23
|
const authenticatorData = this.getAuthenticatorData();
|
|
@@ -35,7 +30,6 @@ class AuthenticatorEnrollmentData extends _AuthenticatorData.AuthenticatorData {
|
|
|
35
30
|
phoneNumber: authenticatorData.phoneNumber
|
|
36
31
|
};
|
|
37
32
|
}
|
|
38
|
-
|
|
39
33
|
getInputAuthenticator(remediation) {
|
|
40
34
|
return [{
|
|
41
35
|
name: 'methodType',
|
|
@@ -46,33 +40,30 @@ class AuthenticatorEnrollmentData extends _AuthenticatorData.AuthenticatorData {
|
|
|
46
40
|
type: 'string'
|
|
47
41
|
}].map(item => {
|
|
48
42
|
const value = remediation.form.value.find(val => val.name === item.name);
|
|
49
|
-
return {
|
|
43
|
+
return {
|
|
44
|
+
...value,
|
|
50
45
|
...item
|
|
51
46
|
};
|
|
52
47
|
});
|
|
53
48
|
}
|
|
54
|
-
|
|
55
49
|
mapAuthenticatorDataFromValues(data) {
|
|
56
50
|
// get mapped authenticator from base class
|
|
57
|
-
data = super.mapAuthenticatorDataFromValues(data);
|
|
58
|
-
|
|
51
|
+
data = super.mapAuthenticatorDataFromValues(data);
|
|
52
|
+
// add phoneNumber to authenticator if it exists in values
|
|
59
53
|
const {
|
|
60
54
|
phoneNumber
|
|
61
55
|
} = this.values;
|
|
62
|
-
|
|
63
56
|
if (!data && !phoneNumber) {
|
|
64
57
|
return;
|
|
65
58
|
}
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
return {
|
|
60
|
+
...(data && data),
|
|
68
61
|
...(phoneNumber && {
|
|
69
62
|
phoneNumber
|
|
70
63
|
})
|
|
71
64
|
};
|
|
72
65
|
}
|
|
73
|
-
|
|
74
66
|
}
|
|
75
|
-
|
|
76
67
|
exports.AuthenticatorEnrollmentData = AuthenticatorEnrollmentData;
|
|
77
68
|
(0, _defineProperty2.default)(AuthenticatorEnrollmentData, "remediationName", 'authenticator-enrollment-data');
|
|
78
69
|
//# sourceMappingURL=AuthenticatorEnrollmentData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticatorEnrollmentData.js","names":["AuthenticatorEnrollmentData","AuthenticatorData","mapAuthenticator","authenticatorData","getAuthenticatorData","authenticatorFromRemediation","getAuthenticatorFromRemediation","remediation","id","form","value","find","name","methodType","phoneNumber","getInputAuthenticator","type","label","map","item","val","mapAuthenticatorDataFromValues","data","values"],"sources":["../../../../lib/idx/remediators/AuthenticatorEnrollmentData.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 { AuthenticatorData, AuthenticatorDataValues } from './Base/AuthenticatorData';\nimport { getAuthenticatorFromRemediation } from './util';\n\nexport type AuthenticatorEnrollmentDataValues = AuthenticatorDataValues & {\n phoneNumber?: string;\n resend?: boolean; // resend is not a remediator value - revise when IdxResponse structure is updated\n}\nexport class AuthenticatorEnrollmentData extends AuthenticatorData<AuthenticatorEnrollmentDataValues> {\n static remediationName = 'authenticator-enrollment-data';\n\n mapAuthenticator() {\n const authenticatorData = this.getAuthenticatorData();\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation)!;\n return { \n id: authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'id')!.value,\n methodType: authenticatorData!.methodType,\n phoneNumber: authenticatorData!.phoneNumber,\n };\n }\n\n getInputAuthenticator(remediation) {\n return [\n { name: 'methodType', type: 'string' }, \n { name: 'phoneNumber', label: 'Phone Number', type: 'string' }\n ].map(item => {\n const value = remediation.form.value.find(val => val.name === item.name);\n return { ...value, ...item };\n });\n }\n\n protected mapAuthenticatorDataFromValues(data?) {\n // get mapped authenticator from base class\n data = super.mapAuthenticatorDataFromValues(data);\n // add phoneNumber to authenticator if it exists in values\n const { phoneNumber } = this.values;\n if (!data && !phoneNumber) {\n return;\n }\n\n return { \n ...(data && data), \n ...(phoneNumber && { phoneNumber }) \n };\n }\n\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthenticatorEnrollmentData.js","names":["AuthenticatorEnrollmentData","AuthenticatorData","mapAuthenticator","authenticatorData","getAuthenticatorData","authenticatorFromRemediation","getAuthenticatorFromRemediation","remediation","id","form","value","find","name","methodType","phoneNumber","getInputAuthenticator","type","label","map","item","val","mapAuthenticatorDataFromValues","data","values"],"sources":["../../../../lib/idx/remediators/AuthenticatorEnrollmentData.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 { AuthenticatorData, AuthenticatorDataValues } from './Base/AuthenticatorData';\nimport { getAuthenticatorFromRemediation } from './util';\n\nexport type AuthenticatorEnrollmentDataValues = AuthenticatorDataValues & {\n phoneNumber?: string;\n resend?: boolean; // resend is not a remediator value - revise when IdxResponse structure is updated\n}\nexport class AuthenticatorEnrollmentData extends AuthenticatorData<AuthenticatorEnrollmentDataValues> {\n static remediationName = 'authenticator-enrollment-data';\n\n mapAuthenticator() {\n const authenticatorData = this.getAuthenticatorData();\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation)!;\n return { \n id: authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'id')!.value,\n methodType: authenticatorData!.methodType,\n phoneNumber: authenticatorData!.phoneNumber,\n };\n }\n\n getInputAuthenticator(remediation) {\n return [\n { name: 'methodType', type: 'string' }, \n { name: 'phoneNumber', label: 'Phone Number', type: 'string' }\n ].map(item => {\n const value = remediation.form.value.find(val => val.name === item.name);\n return { ...value, ...item };\n });\n }\n\n protected mapAuthenticatorDataFromValues(data?) {\n // get mapped authenticator from base class\n data = super.mapAuthenticatorDataFromValues(data);\n // add phoneNumber to authenticator if it exists in values\n const { phoneNumber } = this.values;\n if (!data && !phoneNumber) {\n return;\n }\n\n return { \n ...(data && data), \n ...(phoneNumber && { phoneNumber }) \n };\n }\n\n}\n"],"mappings":";;;;;AAcA;AACA;AAfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUO,MAAMA,2BAA2B,SAASC,oCAAiB,CAAoC;EAGpGC,gBAAgB,GAAG;IACjB,MAAMC,iBAAiB,GAAG,IAAI,CAACC,oBAAoB,EAAE;IACrD,MAAMC,4BAA4B,GAAG,IAAAC,qCAA+B,EAAC,IAAI,CAACC,WAAW,CAAE;IACvF,OAAO;MACLC,EAAE,EAAEH,4BAA4B,CAACI,IAAI,CAAEC,KAAK,CACzCC,IAAI,CAAC,CAAC;QAAEC;MAAK,CAAC,KAAKA,IAAI,KAAK,IAAI,CAAC,CAAEF,KAAK;MAC3CG,UAAU,EAAEV,iBAAiB,CAAEU,UAAU;MACzCC,WAAW,EAAEX,iBAAiB,CAAEW;IAClC,CAAC;EACH;EAEAC,qBAAqB,CAACR,WAAW,EAAE;IACjC,OAAO,CACL;MAAEK,IAAI,EAAE,YAAY;MAAEI,IAAI,EAAE;IAAS,CAAC,EACtC;MAAEJ,IAAI,EAAE,aAAa;MAAEK,KAAK,EAAE,cAAc;MAAED,IAAI,EAAE;IAAS,CAAC,CAC/D,CAACE,GAAG,CAACC,IAAI,IAAI;MACZ,MAAMT,KAAK,GAAGH,WAAW,CAACE,IAAI,CAACC,KAAK,CAACC,IAAI,CAACS,GAAG,IAAIA,GAAG,CAACR,IAAI,KAAKO,IAAI,CAACP,IAAI,CAAC;MACxE,OAAO;QAAE,GAAGF,KAAK;QAAE,GAAGS;MAAK,CAAC;IAC9B,CAAC,CAAC;EACJ;EAEUE,8BAA8B,CAACC,IAAK,EAAE;IAC9C;IACAA,IAAI,GAAG,KAAK,CAACD,8BAA8B,CAACC,IAAI,CAAC;IACjD;IACA,MAAM;MAAER;IAAY,CAAC,GAAG,IAAI,CAACS,MAAM;IACnC,IAAI,CAACD,IAAI,IAAI,CAACR,WAAW,EAAE;MACzB;IACF;IAEA,OAAO;MACL,IAAIQ,IAAI,IAAIA,IAAI,CAAC;MACjB,IAAIR,WAAW,IAAI;QAAEA;MAAY,CAAC;IACpC,CAAC;EACH;AAEF;AAAC;AAAA,8BAvCYd,2BAA2B,qBACb,+BAA+B"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
exports.AuthenticatorVerificationData = void 0;
|
|
6
|
-
|
|
7
5
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
-
|
|
9
6
|
var _AuthenticatorData = require("./Base/AuthenticatorData");
|
|
10
|
-
|
|
11
7
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
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,17 +16,17 @@ var _AuthenticatorData = require("./Base/AuthenticatorData");
|
|
|
21
16
|
*
|
|
22
17
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
23
18
|
*/
|
|
19
|
+
|
|
24
20
|
class AuthenticatorVerificationData extends _AuthenticatorData.AuthenticatorData {
|
|
25
21
|
mapAuthenticator() {
|
|
26
22
|
return this.getAuthenticatorData();
|
|
27
23
|
}
|
|
28
|
-
|
|
29
24
|
getInputAuthenticator() {
|
|
30
25
|
const authenticator = this.getAuthenticatorFromRemediation();
|
|
31
26
|
const methodType = authenticator.form.value.find(({
|
|
32
27
|
name
|
|
33
|
-
}) => name === 'methodType');
|
|
34
|
-
|
|
28
|
+
}) => name === 'methodType');
|
|
29
|
+
// if has methodType in form, let user select the methodType
|
|
35
30
|
if (methodType && methodType.options) {
|
|
36
31
|
return {
|
|
37
32
|
name: 'methodType',
|
|
@@ -39,23 +34,20 @@ class AuthenticatorVerificationData extends _AuthenticatorData.AuthenticatorData
|
|
|
39
34
|
required: true,
|
|
40
35
|
options: methodType.options
|
|
41
36
|
};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
37
|
+
}
|
|
38
|
+
// no methodType, then return form values
|
|
45
39
|
const inputs = [...authenticator.form.value];
|
|
46
40
|
return inputs;
|
|
47
41
|
}
|
|
48
|
-
|
|
49
42
|
getValuesAfterProceed() {
|
|
50
43
|
this.values = super.getValuesAfterProceed();
|
|
51
44
|
let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'authenticator');
|
|
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.AuthenticatorVerificationData = AuthenticatorVerificationData;
|
|
60
52
|
(0, _defineProperty2.default)(AuthenticatorVerificationData, "remediationName", 'authenticator-verification-data');
|
|
61
53
|
//# sourceMappingURL=AuthenticatorVerificationData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticatorVerificationData.js","names":["AuthenticatorVerificationData","AuthenticatorData","mapAuthenticator","getAuthenticatorData","getInputAuthenticator","authenticator","getAuthenticatorFromRemediation","methodType","form","value","find","name","options","type","required","inputs","getValuesAfterProceed","values","trimmedValues","Object","keys","filter","valueKey","reduce"],"sources":["../../../../lib/idx/remediators/AuthenticatorVerificationData.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 { AuthenticatorData, AuthenticatorDataValues } from './Base/AuthenticatorData';\n\nexport type AuthenticatorVerificationDataValues = AuthenticatorDataValues;\n\nexport class AuthenticatorVerificationData extends AuthenticatorData<AuthenticatorVerificationDataValues> {\n static remediationName = 'authenticator-verification-data';\n\n mapAuthenticator() {\n return this.getAuthenticatorData();\n }\n\n getInputAuthenticator() {\n const authenticator = this.getAuthenticatorFromRemediation();\n const methodType = authenticator.form!.value.find(({ name }) => name === 'methodType');\n // if has methodType in form, let user select the methodType\n if (methodType && methodType.options) {\n return { \n name: 'methodType', \n type: 'string', \n required: true, \n options: methodType.options \n };\n }\n // no methodType, then return form values\n const inputs = [...authenticator.form!.value];\n return inputs;\n }\n\n getValuesAfterProceed(): AuthenticatorVerificationDataValues {\n this.values = super.getValuesAfterProceed();\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'authenticator');\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthenticatorVerificationData.js","names":["AuthenticatorVerificationData","AuthenticatorData","mapAuthenticator","getAuthenticatorData","getInputAuthenticator","authenticator","getAuthenticatorFromRemediation","methodType","form","value","find","name","options","type","required","inputs","getValuesAfterProceed","values","trimmedValues","Object","keys","filter","valueKey","reduce"],"sources":["../../../../lib/idx/remediators/AuthenticatorVerificationData.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 { AuthenticatorData, AuthenticatorDataValues } from './Base/AuthenticatorData';\n\nexport type AuthenticatorVerificationDataValues = AuthenticatorDataValues;\n\nexport class AuthenticatorVerificationData extends AuthenticatorData<AuthenticatorVerificationDataValues> {\n static remediationName = 'authenticator-verification-data';\n\n mapAuthenticator() {\n return this.getAuthenticatorData();\n }\n\n getInputAuthenticator() {\n const authenticator = this.getAuthenticatorFromRemediation();\n const methodType = authenticator.form!.value.find(({ name }) => name === 'methodType');\n // if has methodType in form, let user select the methodType\n if (methodType && methodType.options) {\n return { \n name: 'methodType', \n type: 'string', \n required: true, \n options: methodType.options \n };\n }\n // no methodType, then return form values\n const inputs = [...authenticator.form!.value];\n return inputs;\n }\n\n getValuesAfterProceed(): AuthenticatorVerificationDataValues {\n this.values = super.getValuesAfterProceed();\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'authenticator');\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n"],"mappings":";;;;;AAaA;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,MAAMA,6BAA6B,SAASC,oCAAiB,CAAsC;EAGxGC,gBAAgB,GAAG;IACjB,OAAO,IAAI,CAACC,oBAAoB,EAAE;EACpC;EAEAC,qBAAqB,GAAG;IACtB,MAAMC,aAAa,GAAG,IAAI,CAACC,+BAA+B,EAAE;IAC5D,MAAMC,UAAU,GAAGF,aAAa,CAACG,IAAI,CAAEC,KAAK,CAACC,IAAI,CAAC,CAAC;MAAEC;IAAK,CAAC,KAAKA,IAAI,KAAK,YAAY,CAAC;IACtF;IACA,IAAIJ,UAAU,IAAIA,UAAU,CAACK,OAAO,EAAE;MACpC,OAAO;QACLD,IAAI,EAAE,YAAY;QAClBE,IAAI,EAAE,QAAQ;QACdC,QAAQ,EAAE,IAAI;QACdF,OAAO,EAAEL,UAAU,CAACK;MACtB,CAAC;IACH;IACA;IACA,MAAMG,MAAM,GAAG,CAAC,GAAGV,aAAa,CAACG,IAAI,CAAEC,KAAK,CAAC;IAC7C,OAAOM,MAAM;EACf;EAEAC,qBAAqB,GAAwC;IAC3D,IAAI,CAACC,MAAM,GAAG,KAAK,CAACD,qBAAqB,EAAE;IAC3C,IAAIE,aAAa,GAAGC,MAAM,CAACC,IAAI,CAAC,IAAI,CAACH,MAAM,CAAC,CAACI,MAAM,CAACC,QAAQ,IAAIA,QAAQ,KAAK,eAAe,CAAC;IAC7F,OAAOJ,aAAa,CAACK,MAAM,CAAC,CAACN,MAAM,EAAEK,QAAQ,MAAM;MAAC,GAAGL,MAAM;MAAE,CAACK,QAAQ,GAAG,IAAI,CAACL,MAAM,CAACK,QAAQ;IAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EACzG;AACF;AAAC;AAAA,8BA7BYtB,6BAA6B,qBACf,iCAAiC"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.AuthenticatorData = void 0;
|
|
4
|
-
|
|
5
4
|
var _Remediator = require("./Remediator");
|
|
6
|
-
|
|
7
5
|
var _api = require("../../types/api");
|
|
8
|
-
|
|
9
6
|
var _util = require("../../authenticator/util");
|
|
10
|
-
|
|
11
7
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
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,54 +16,47 @@ var _util = require("../../authenticator/util");
|
|
|
21
16
|
*
|
|
22
17
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
23
18
|
*/
|
|
19
|
+
|
|
24
20
|
// Base class - DO NOT expose static remediationName
|
|
25
21
|
class AuthenticatorData extends _Remediator.Remediator {
|
|
26
22
|
constructor(remediation, values = {}) {
|
|
27
|
-
super(remediation, values);
|
|
23
|
+
super(remediation, values);
|
|
28
24
|
|
|
25
|
+
// set before other data calculation
|
|
29
26
|
this.authenticator = this.getAuthenticator();
|
|
30
27
|
this.formatAuthenticatorData();
|
|
31
28
|
}
|
|
32
|
-
|
|
33
29
|
formatAuthenticatorData() {
|
|
34
30
|
const authenticatorData = this.getAuthenticatorData();
|
|
35
|
-
|
|
36
31
|
if (authenticatorData) {
|
|
37
32
|
this.values.authenticatorsData = this.values.authenticatorsData.map(data => {
|
|
38
33
|
if ((0, _util.compareAuthenticators)(this.authenticator, data)) {
|
|
39
34
|
return this.mapAuthenticatorDataFromValues(data);
|
|
40
35
|
}
|
|
41
|
-
|
|
42
36
|
return data;
|
|
43
37
|
});
|
|
44
38
|
} else {
|
|
45
39
|
const data = this.mapAuthenticatorDataFromValues();
|
|
46
|
-
|
|
47
40
|
if (data) {
|
|
48
41
|
this.values.authenticatorsData.push(data);
|
|
49
42
|
}
|
|
50
43
|
}
|
|
51
44
|
}
|
|
52
|
-
|
|
53
45
|
getAuthenticatorData() {
|
|
54
46
|
return this.values.authenticatorsData.find(data => (0, _util.compareAuthenticators)(this.authenticator, data));
|
|
55
47
|
}
|
|
56
|
-
|
|
57
48
|
canRemediate() {
|
|
58
49
|
return this.values.authenticatorsData.some(data => (0, _util.compareAuthenticators)(this.authenticator, data));
|
|
59
50
|
}
|
|
60
|
-
|
|
61
51
|
mapAuthenticatorDataFromValues(authenticatorData) {
|
|
62
52
|
// add methodType to authenticatorData if it exists in values
|
|
63
53
|
let {
|
|
64
54
|
methodType,
|
|
65
55
|
authenticator
|
|
66
56
|
} = this.values;
|
|
67
|
-
|
|
68
57
|
if (!methodType && (0, _api.isAuthenticator)(authenticator)) {
|
|
69
58
|
methodType = authenticator === null || authenticator === void 0 ? void 0 : authenticator.methodType;
|
|
70
59
|
}
|
|
71
|
-
|
|
72
60
|
const {
|
|
73
61
|
id,
|
|
74
62
|
enrollmentId
|
|
@@ -83,24 +71,21 @@ class AuthenticatorData extends _Remediator.Remediator {
|
|
|
83
71
|
};
|
|
84
72
|
return data.methodType ? data : null;
|
|
85
73
|
}
|
|
86
|
-
|
|
87
74
|
getAuthenticatorFromRemediation() {
|
|
88
75
|
const authenticator = this.remediation.value.find(({
|
|
89
76
|
name
|
|
90
77
|
}) => name === 'authenticator');
|
|
91
78
|
return authenticator;
|
|
92
79
|
}
|
|
93
|
-
|
|
94
80
|
getValuesAfterProceed() {
|
|
95
|
-
this.values = super.getValuesAfterProceed();
|
|
96
|
-
|
|
81
|
+
this.values = super.getValuesAfterProceed();
|
|
82
|
+
// remove used authenticatorData
|
|
97
83
|
const authenticatorsData = this.values.authenticatorsData.filter(data => (0, _util.compareAuthenticators)(this.authenticator, data) !== true);
|
|
98
|
-
return {
|
|
84
|
+
return {
|
|
85
|
+
...this.values,
|
|
99
86
|
authenticatorsData
|
|
100
87
|
};
|
|
101
88
|
}
|
|
102
|
-
|
|
103
89
|
}
|
|
104
|
-
|
|
105
90
|
exports.AuthenticatorData = AuthenticatorData;
|
|
106
91
|
//# sourceMappingURL=AuthenticatorData.js.map
|