@okta/okta-auth-js 5.7.0 → 5.10.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 +47 -0
- package/README.md +12 -2
- package/cjs/OktaAuth.js +88 -43
- package/cjs/OktaAuth.js.map +1 -1
- package/cjs/OktaUserAgent.js +2 -2
- package/cjs/OktaUserAgent.js.map +1 -1
- package/cjs/StorageManager.js +8 -0
- package/cjs/StorageManager.js.map +1 -1
- package/cjs/TokenManager.js +24 -2
- package/cjs/TokenManager.js.map +1 -1
- package/cjs/TransactionManager.js +24 -12
- package/cjs/TransactionManager.js.map +1 -1
- package/cjs/constants.js +3 -1
- package/cjs/constants.js.map +1 -1
- package/cjs/features.js +1 -1
- package/cjs/features.js.map +1 -1
- package/cjs/idx/authenticate.js +3 -18
- package/cjs/idx/authenticate.js.map +1 -1
- package/cjs/idx/authenticator/Authenticator.js +14 -0
- package/cjs/idx/authenticator/Authenticator.js.map +1 -0
- package/cjs/idx/authenticator/OktaPassword.js +31 -0
- package/cjs/idx/authenticator/OktaPassword.js.map +1 -0
- package/cjs/idx/authenticator/OktaVerifyTotp.js +17 -0
- package/cjs/idx/authenticator/OktaVerifyTotp.js.map +1 -0
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +50 -0
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -0
- package/cjs/idx/authenticator/SecurityQuestionVerification.js +31 -0
- package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -0
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +34 -0
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -0
- package/cjs/idx/authenticator/getAuthenticator.js +42 -0
- package/cjs/idx/authenticator/getAuthenticator.js.map +1 -0
- package/cjs/idx/authenticator/index.js +80 -0
- package/cjs/idx/authenticator/index.js.map +1 -0
- package/cjs/idx/cancel.js +5 -0
- package/cjs/idx/cancel.js.map +1 -1
- package/cjs/idx/flow/AuthenticationFlow.js +32 -0
- package/cjs/idx/flow/AuthenticationFlow.js.map +1 -0
- package/cjs/idx/flow/FlowSpecification.js +39 -0
- package/cjs/idx/flow/FlowSpecification.js.map +1 -0
- package/cjs/idx/flow/PasswordRecoveryFlow.js +28 -0
- package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -0
- package/{esm/crypto/browser.js → cjs/idx/flow/RegistrationFlow.js} +16 -12
- package/cjs/idx/flow/RegistrationFlow.js.map +1 -0
- package/cjs/idx/flow/RemediationFlow.js +2 -0
- package/{esm/types/Cookies.js.map → cjs/idx/flow/RemediationFlow.js.map} +1 -1
- package/cjs/idx/flow/index.js +67 -0
- package/cjs/idx/flow/index.js.map +1 -0
- package/cjs/idx/index.js +39 -0
- package/cjs/idx/index.js.map +1 -1
- package/cjs/idx/interact.js +13 -4
- package/cjs/idx/interact.js.map +1 -1
- package/cjs/idx/introspect.js +24 -7
- package/cjs/idx/introspect.js.map +1 -1
- package/cjs/idx/poll.js +59 -0
- package/cjs/idx/poll.js.map +1 -0
- package/cjs/idx/proceed.js +49 -0
- package/cjs/idx/proceed.js.map +1 -0
- package/cjs/idx/recoverPassword.js +3 -17
- package/cjs/idx/recoverPassword.js.map +1 -1
- package/cjs/idx/register.js +22 -20
- package/cjs/idx/register.js.map +1 -1
- package/cjs/idx/remediate.js +61 -118
- package/cjs/idx/remediate.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +9 -12
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorVerificationData.js +6 -9
- package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
- package/cjs/idx/remediators/Base/AuthenticatorData.js +43 -32
- package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
- package/cjs/idx/remediators/Base/Remediator.js +51 -20
- package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
- package/cjs/idx/remediators/Base/SelectAuthenticator.js +16 -16
- package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js +8 -28
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
- package/{esm/idx/remediators/RedirectIdp.js → cjs/idx/remediators/ChallengePoll.js} +13 -25
- package/cjs/idx/remediators/ChallengePoll.js.map +1 -0
- package/cjs/idx/remediators/EnrollPoll.js +56 -0
- package/cjs/idx/remediators/EnrollPoll.js.map +1 -0
- package/cjs/idx/remediators/Identify.js +4 -36
- package/cjs/idx/remediators/Identify.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +23 -2
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
- package/cjs/idx/remediators/Skip.js +7 -0
- package/cjs/idx/remediators/Skip.js.map +1 -1
- package/cjs/idx/remediators/index.js +26 -0
- package/cjs/idx/remediators/index.js.map +1 -1
- package/cjs/idx/run.js +36 -16
- package/cjs/idx/run.js.map +1 -1
- package/cjs/idx/startTransaction.js +2 -0
- package/cjs/idx/startTransaction.js.map +1 -1
- package/cjs/idx/transactionMeta.js +77 -39
- package/cjs/idx/transactionMeta.js.map +1 -1
- package/cjs/idx/types/FlowIdentifier.js +2 -0
- package/{esm/types/AuthState.js.map → cjs/idx/types/FlowIdentifier.js.map} +1 -1
- package/cjs/idx/types/idx-js.js +5 -0
- package/cjs/idx/types/idx-js.js.map +1 -1
- package/cjs/idx/types/index.js +18 -1
- package/cjs/idx/types/index.js.map +1 -1
- package/cjs/oidc/endpoints/authorize.js +4 -1
- package/cjs/oidc/endpoints/authorize.js.map +1 -1
- package/cjs/oidc/getWithRedirect.js +2 -6
- package/cjs/oidc/getWithRedirect.js.map +1 -1
- package/cjs/oidc/util/loginRedirect.js +9 -5
- package/cjs/oidc/util/loginRedirect.js.map +1 -1
- package/cjs/oidc/util/urlParams.js +1 -1
- package/cjs/oidc/util/urlParams.js.map +1 -1
- package/cjs/options.js +12 -2
- package/cjs/options.js.map +1 -1
- package/cjs/server/serverStorage.js +2 -1
- package/cjs/server/serverStorage.js.map +1 -1
- package/cjs/types/Token.js.map +1 -1
- package/cjs/types/Transaction.js.map +1 -1
- package/{esm/clock.js → cjs/util/emailVerify.js} +14 -18
- package/cjs/util/emailVerify.js.map +1 -0
- package/cjs/util/index.js +13 -0
- package/cjs/util/index.js.map +1 -1
- package/dist/okta-auth-js.min.js +2 -74
- package/dist/okta-auth-js.min.js.LICENSE.txt +32 -0
- package/dist/okta-auth-js.min.js.map +1 -1
- package/dist/okta-auth-js.polyfill.js +2 -18
- package/{esm/crypto/webcrypto.js → dist/okta-auth-js.polyfill.js.LICENSE.txt} +8 -4
- package/dist/okta-auth-js.polyfill.js.map +1 -1
- package/dist/okta-auth-js.umd.js +2 -74
- package/dist/okta-auth-js.umd.js.LICENSE.txt +32 -0
- package/dist/okta-auth-js.umd.js.map +1 -1
- package/esm/index.js +8580 -16
- package/esm/index.js.map +1 -1
- package/lib/OktaAuth.d.ts +6 -3
- package/lib/StorageManager.d.ts +1 -0
- package/lib/TokenManager.d.ts +2 -0
- package/lib/TransactionManager.d.ts +5 -1
- package/lib/constants.d.ts +1 -0
- package/lib/crypto/base64.d.ts +2 -2
- package/lib/crypto/oidcHash.d.ts +1 -1
- package/lib/crypto/verifyToken.d.ts +1 -1
- package/lib/idx/authenticator/Authenticator.d.ts +12 -0
- package/lib/idx/authenticator/OktaPassword.d.ts +11 -0
- package/lib/idx/authenticator/OktaVerifyTotp.d.ts +9 -0
- package/lib/idx/authenticator/SecurityQuestionEnrollment.d.ts +28 -0
- package/lib/idx/authenticator/SecurityQuestionVerification.d.ts +14 -0
- package/lib/idx/authenticator/VerificationCodeAuthenticator.d.ts +10 -0
- package/lib/idx/authenticator/getAuthenticator.d.ts +3 -0
- package/lib/idx/authenticator/index.d.ts +6 -0
- package/{esm/oidc/endpoints/index.js → lib/idx/flow/AuthenticationFlow.d.ts} +3 -5
- package/lib/idx/flow/FlowSpecification.d.ts +8 -0
- package/{esm/crypto/index.js → lib/idx/flow/PasswordRecoveryFlow.d.ts} +3 -6
- package/{esm/tx/TransactionState.js → lib/idx/flow/RegistrationFlow.d.ts} +3 -3
- package/lib/idx/flow/RemediationFlow.d.ts +13 -0
- package/lib/idx/{flowMonitors → flow}/index.d.ts +5 -4
- package/lib/idx/index.d.ts +3 -0
- package/lib/idx/interact.d.ts +1 -0
- package/lib/idx/introspect.d.ts +2 -1
- package/lib/idx/poll.d.ts +13 -0
- package/lib/idx/proceed.d.ts +21 -0
- package/lib/idx/register.d.ts +1 -1
- package/lib/idx/remediators/AuthenticatorEnrollmentData.d.ts +9 -5
- package/lib/idx/remediators/AuthenticatorVerificationData.d.ts +0 -1
- package/lib/idx/remediators/Base/AuthenticatorData.d.ts +8 -3
- package/lib/idx/remediators/Base/Remediator.d.ts +9 -6
- package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +5 -4
- package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +8 -4
- package/lib/idx/remediators/ChallengePoll.d.ts +15 -0
- package/{esm/tx/util.js → lib/idx/remediators/EnrollPoll.d.ts} +11 -13
- package/lib/idx/remediators/Identify.d.ts +1 -3
- package/lib/idx/remediators/SelectAuthenticatorAuthenticate.d.ts +6 -2
- package/lib/idx/remediators/Skip.d.ts +3 -0
- package/lib/idx/remediators/index.d.ts +2 -0
- package/lib/idx/run.d.ts +8 -9
- package/lib/idx/transactionMeta.d.ts +28 -4
- package/lib/idx/types/FlowIdentifier.d.ts +1 -0
- package/lib/idx/types/idx-js.d.ts +53 -1
- package/lib/idx/types/index.d.ts +18 -4
- package/lib/oidc/util/loginRedirect.d.ts +1 -1
- package/lib/types/OktaAuthOptions.d.ts +3 -0
- package/lib/types/Token.d.ts +1 -0
- package/lib/types/Transaction.d.ts +2 -0
- package/lib/types/api.d.ts +15 -2
- package/lib/{idx/flowMonitors/AuthenticationFlowMonitor.d.ts → util/emailVerify.d.ts} +5 -3
- package/lib/util/index.d.ts +1 -0
- package/package.json +22 -13
- package/cjs/idx/flowMonitors/AuthenticationFlowMonitor.js +0 -45
- package/cjs/idx/flowMonitors/AuthenticationFlowMonitor.js.map +0 -1
- package/cjs/idx/flowMonitors/FlowMonitor.js +0 -69
- package/cjs/idx/flowMonitors/FlowMonitor.js.map +0 -1
- package/cjs/idx/flowMonitors/PasswordRecoveryFlowMonitor.js +0 -55
- package/cjs/idx/flowMonitors/PasswordRecoveryFlowMonitor.js.map +0 -1
- package/cjs/idx/flowMonitors/RegistrationFlowMonitor.js +0 -35
- package/cjs/idx/flowMonitors/RegistrationFlowMonitor.js.map +0 -1
- package/cjs/idx/flowMonitors/index.js +0 -54
- package/cjs/idx/flowMonitors/index.js.map +0 -1
- package/esm/AuthStateManager.js +0 -214
- package/esm/AuthStateManager.js.map +0 -1
- package/esm/OktaAuth.js +0 -681
- package/esm/OktaAuth.js.map +0 -1
- package/esm/OktaUserAgent.js +0 -49
- package/esm/OktaUserAgent.js.map +0 -1
- package/esm/PromiseQueue.js +0 -71
- package/esm/PromiseQueue.js.map +0 -1
- package/esm/SavedObject.js +0 -91
- package/esm/SavedObject.js.map +0 -1
- package/esm/StorageManager.js +0 -182
- package/esm/StorageManager.js.map +0 -1
- package/esm/TokenManager.js +0 -455
- package/esm/TokenManager.js.map +0 -1
- package/esm/TransactionManager.js +0 -316
- package/esm/TransactionManager.js.map +0 -1
- package/esm/browser/browserStorage.js +0 -256
- package/esm/browser/browserStorage.js.map +0 -1
- package/esm/browser/fingerprint.js +0 -74
- package/esm/browser/fingerprint.js.map +0 -1
- package/esm/builderUtil.js +0 -56
- package/esm/builderUtil.js.map +0 -1
- package/esm/clock.js.map +0 -1
- package/esm/constants.js +0 -35
- package/esm/constants.js.map +0 -1
- package/esm/crypto/base64.js +0 -66
- package/esm/crypto/base64.js.map +0 -1
- package/esm/crypto/browser.js.map +0 -1
- package/esm/crypto/index.js.map +0 -1
- package/esm/crypto/node.js +0 -54
- package/esm/crypto/node.js.map +0 -1
- package/esm/crypto/oidcHash.js +0 -27
- package/esm/crypto/oidcHash.js.map +0 -1
- package/esm/crypto/verifyToken.js +0 -39
- package/esm/crypto/verifyToken.js.map +0 -1
- package/esm/crypto/webcrypto.js.map +0 -1
- package/esm/errors/AuthApiError.js +0 -30
- package/esm/errors/AuthApiError.js.map +0 -1
- package/esm/errors/AuthPollStopError.js +0 -20
- package/esm/errors/AuthPollStopError.js.map +0 -1
- package/esm/errors/AuthSdkError.js +0 -29
- package/esm/errors/AuthSdkError.js.map +0 -1
- package/esm/errors/CustomError.js +0 -21
- package/esm/errors/CustomError.js.map +0 -1
- package/esm/errors/OAuthError.js +0 -22
- package/esm/errors/OAuthError.js.map +0 -1
- package/esm/errors/index.js +0 -22
- package/esm/errors/index.js.map +0 -1
- package/esm/features.js +0 -64
- package/esm/features.js.map +0 -1
- package/esm/fetch/fetchRequest.js +0 -92
- package/esm/fetch/fetchRequest.js.map +0 -1
- package/esm/http/headers.js +0 -17
- package/esm/http/headers.js.map +0 -1
- package/esm/http/index.js +0 -3
- package/esm/http/index.js.map +0 -1
- package/esm/http/request.js +0 -145
- package/esm/http/request.js.map +0 -1
- package/esm/idx/authenticate.js +0 -47
- package/esm/idx/authenticate.js.map +0 -1
- package/esm/idx/cancel.js +0 -32
- package/esm/idx/cancel.js.map +0 -1
- package/esm/idx/flowMonitors/AuthenticationFlowMonitor.js +0 -41
- package/esm/idx/flowMonitors/AuthenticationFlowMonitor.js.map +0 -1
- package/esm/idx/flowMonitors/FlowMonitor.js +0 -73
- package/esm/idx/flowMonitors/FlowMonitor.js.map +0 -1
- package/esm/idx/flowMonitors/PasswordRecoveryFlowMonitor.js +0 -57
- package/esm/idx/flowMonitors/PasswordRecoveryFlowMonitor.js.map +0 -1
- package/esm/idx/flowMonitors/RegistrationFlowMonitor.js +0 -28
- package/esm/idx/flowMonitors/RegistrationFlowMonitor.js.map +0 -1
- package/esm/idx/flowMonitors/index.js +0 -16
- package/esm/idx/flowMonitors/index.js.map +0 -1
- package/esm/idx/handleInteractionCodeRedirect.js +0 -64
- package/esm/idx/handleInteractionCodeRedirect.js.map +0 -1
- package/esm/idx/headers.js +0 -39
- package/esm/idx/headers.js.map +0 -1
- package/esm/idx/index.js +0 -20
- package/esm/idx/index.js.map +0 -1
- package/esm/idx/interact.js +0 -83
- package/esm/idx/interact.js.map +0 -1
- package/esm/idx/introspect.js +0 -45
- package/esm/idx/introspect.js.map +0 -1
- package/esm/idx/recoverPassword.js +0 -46
- package/esm/idx/recoverPassword.js.map +0 -1
- package/esm/idx/register.js +0 -63
- package/esm/idx/register.js.map +0 -1
- package/esm/idx/remediate.js +0 -302
- package/esm/idx/remediate.js.map +0 -1
- package/esm/idx/remediators/AuthenticatorEnrollmentData.js +0 -68
- package/esm/idx/remediators/AuthenticatorEnrollmentData.js.map +0 -1
- package/esm/idx/remediators/AuthenticatorVerificationData.js +0 -66
- package/esm/idx/remediators/AuthenticatorVerificationData.js.map +0 -1
- package/esm/idx/remediators/Base/AuthenticatorData.js +0 -105
- package/esm/idx/remediators/Base/AuthenticatorData.js.map +0 -1
- package/esm/idx/remediators/Base/Remediator.js +0 -221
- package/esm/idx/remediators/Base/Remediator.js.map +0 -1
- package/esm/idx/remediators/Base/SelectAuthenticator.js +0 -140
- package/esm/idx/remediators/Base/SelectAuthenticator.js.map +0 -1
- package/esm/idx/remediators/Base/VerifyAuthenticator.js +0 -65
- package/esm/idx/remediators/Base/VerifyAuthenticator.js.map +0 -1
- package/esm/idx/remediators/ChallengeAuthenticator.js +0 -18
- package/esm/idx/remediators/ChallengeAuthenticator.js.map +0 -1
- package/esm/idx/remediators/EnrollAuthenticator.js +0 -18
- package/esm/idx/remediators/EnrollAuthenticator.js.map +0 -1
- package/esm/idx/remediators/EnrollProfile.js +0 -79
- package/esm/idx/remediators/EnrollProfile.js.map +0 -1
- package/esm/idx/remediators/Identify.js +0 -87
- package/esm/idx/remediators/Identify.js.map +0 -1
- package/esm/idx/remediators/ReEnrollAuthenticator.js +0 -45
- package/esm/idx/remediators/ReEnrollAuthenticator.js.map +0 -1
- package/esm/idx/remediators/RedirectIdp.js.map +0 -1
- package/esm/idx/remediators/ResetAuthenticator.js +0 -18
- package/esm/idx/remediators/ResetAuthenticator.js.map +0 -1
- package/esm/idx/remediators/SelectAuthenticatorAuthenticate.js +0 -18
- package/esm/idx/remediators/SelectAuthenticatorAuthenticate.js.map +0 -1
- package/esm/idx/remediators/SelectAuthenticatorEnroll.js +0 -18
- package/esm/idx/remediators/SelectAuthenticatorEnroll.js.map +0 -1
- package/esm/idx/remediators/SelectEnrollProfile.js +0 -24
- package/esm/idx/remediators/SelectEnrollProfile.js.map +0 -1
- package/esm/idx/remediators/Skip.js +0 -23
- package/esm/idx/remediators/Skip.js.map +0 -1
- package/esm/idx/remediators/index.js +0 -26
- package/esm/idx/remediators/index.js.map +0 -1
- package/esm/idx/remediators/util.js +0 -35
- package/esm/idx/remediators/util.js.map +0 -1
- package/esm/idx/run.js +0 -201
- package/esm/idx/run.js.map +0 -1
- package/esm/idx/startTransaction.js +0 -27
- package/esm/idx/startTransaction.js.map +0 -1
- package/esm/idx/transactionMeta.js +0 -114
- package/esm/idx/transactionMeta.js.map +0 -1
- package/esm/idx/types/idx-js.js +0 -17
- package/esm/idx/types/idx-js.js.map +0 -1
- package/esm/idx/types/index.js +0 -44
- package/esm/idx/types/index.js.map +0 -1
- package/esm/oidc/decodeToken.js +0 -31
- package/esm/oidc/decodeToken.js.map +0 -1
- package/esm/oidc/endpoints/authorize.js +0 -61
- package/esm/oidc/endpoints/authorize.js.map +0 -1
- package/esm/oidc/endpoints/index.js.map +0 -1
- package/esm/oidc/endpoints/token.js +0 -97
- package/esm/oidc/endpoints/token.js.map +0 -1
- package/esm/oidc/endpoints/well-known.js +0 -58
- package/esm/oidc/endpoints/well-known.js.map +0 -1
- package/esm/oidc/exchangeCodeForTokens.js +0 -69
- package/esm/oidc/exchangeCodeForTokens.js.map +0 -1
- package/esm/oidc/getToken.js +0 -180
- package/esm/oidc/getToken.js.map +0 -1
- package/esm/oidc/getUserInfo.js +0 -82
- package/esm/oidc/getUserInfo.js.map +0 -1
- package/esm/oidc/getWithPopup.js +0 -34
- package/esm/oidc/getWithPopup.js.map +0 -1
- package/esm/oidc/getWithRedirect.js +0 -65
- package/esm/oidc/getWithRedirect.js.map +0 -1
- package/esm/oidc/getWithoutPrompt.js +0 -29
- package/esm/oidc/getWithoutPrompt.js.map +0 -1
- package/esm/oidc/handleOAuthResponse.js +0 -148
- package/esm/oidc/handleOAuthResponse.js.map +0 -1
- package/esm/oidc/index.js +0 -29
- package/esm/oidc/index.js.map +0 -1
- package/esm/oidc/parseFromUrl.js +0 -144
- package/esm/oidc/parseFromUrl.js.map +0 -1
- package/esm/oidc/renewToken.js +0 -85
- package/esm/oidc/renewToken.js.map +0 -1
- package/esm/oidc/renewTokens.js +0 -74
- package/esm/oidc/renewTokens.js.map +0 -1
- package/esm/oidc/renewTokensWithRefresh.js +0 -55
- package/esm/oidc/renewTokensWithRefresh.js.map +0 -1
- package/esm/oidc/revokeToken.js +0 -57
- package/esm/oidc/revokeToken.js.map +0 -1
- package/esm/oidc/util/browser.js +0 -74
- package/esm/oidc/util/browser.js.map +0 -1
- package/esm/oidc/util/defaultTokenParams.js +0 -42
- package/esm/oidc/util/defaultTokenParams.js.map +0 -1
- package/esm/oidc/util/errors.js +0 -31
- package/esm/oidc/util/errors.js.map +0 -1
- package/esm/oidc/util/index.js +0 -25
- package/esm/oidc/util/index.js.map +0 -1
- package/esm/oidc/util/loginRedirect.js +0 -84
- package/esm/oidc/util/loginRedirect.js.map +0 -1
- package/esm/oidc/util/oauth.js +0 -70
- package/esm/oidc/util/oauth.js.map +0 -1
- package/esm/oidc/util/pkce.js +0 -55
- package/esm/oidc/util/pkce.js.map +0 -1
- package/esm/oidc/util/prepareTokenParams.js +0 -75
- package/esm/oidc/util/prepareTokenParams.js.map +0 -1
- package/esm/oidc/util/refreshToken.js +0 -24
- package/esm/oidc/util/refreshToken.js.map +0 -1
- package/esm/oidc/util/urlParams.js +0 -54
- package/esm/oidc/util/urlParams.js.map +0 -1
- package/esm/oidc/util/validateClaims.js +0 -53
- package/esm/oidc/util/validateClaims.js.map +0 -1
- package/esm/oidc/util/validateToken.js +0 -21
- package/esm/oidc/util/validateToken.js.map +0 -1
- package/esm/oidc/verifyToken.js +0 -78
- package/esm/oidc/verifyToken.js.map +0 -1
- package/esm/options.js +0 -134
- package/esm/options.js.map +0 -1
- package/esm/server/serverStorage.js +0 -110
- package/esm/server/serverStorage.js.map +0 -1
- package/esm/services/TokenService.js +0 -103
- package/esm/services/TokenService.js.map +0 -1
- package/esm/session.js +0 -81
- package/esm/session.js.map +0 -1
- package/esm/tx/AuthTransaction.js +0 -213
- package/esm/tx/AuthTransaction.js.map +0 -1
- package/esm/tx/TransactionState.js.map +0 -1
- package/esm/tx/api.js +0 -87
- package/esm/tx/api.js.map +0 -1
- package/esm/tx/index.js +0 -18
- package/esm/tx/index.js.map +0 -1
- package/esm/tx/poll.js +0 -124
- package/esm/tx/poll.js.map +0 -1
- package/esm/tx/util.js.map +0 -1
- package/esm/types/AuthState.js +0 -3
- package/esm/types/Cookies.js +0 -3
- package/esm/types/EventEmitter.js +0 -3
- package/esm/types/EventEmitter.js.map +0 -1
- package/esm/types/JWT.js +0 -3
- package/esm/types/JWT.js.map +0 -1
- package/esm/types/OAuth.js +0 -3
- package/esm/types/OAuth.js.map +0 -1
- package/esm/types/OktaAuthOptions.js +0 -3
- package/esm/types/OktaAuthOptions.js.map +0 -1
- package/esm/types/Storage.js +0 -3
- package/esm/types/Storage.js.map +0 -1
- package/esm/types/Token.js +0 -29
- package/esm/types/Token.js.map +0 -1
- package/esm/types/TokenManager.js +0 -3
- package/esm/types/TokenManager.js.map +0 -1
- package/esm/types/Transaction.js +0 -57
- package/esm/types/Transaction.js.map +0 -1
- package/esm/types/UserClaims.js +0 -3
- package/esm/types/UserClaims.js.map +0 -1
- package/esm/types/api.js +0 -3
- package/esm/types/api.js.map +0 -1
- package/esm/types/http.js +0 -3
- package/esm/types/http.js.map +0 -1
- package/esm/types/index.js +0 -27
- package/esm/types/index.js.map +0 -1
- package/esm/util/console.js +0 -53
- package/esm/util/console.js.map +0 -1
- package/esm/util/index.js +0 -17
- package/esm/util/index.js.map +0 -1
- package/esm/util/misc.js +0 -33
- package/esm/util/misc.js.map +0 -1
- package/esm/util/object.js +0 -117
- package/esm/util/object.js.map +0 -1
- package/esm/util/sharedStorage.js +0 -43
- package/esm/util/sharedStorage.js.map +0 -1
- package/esm/util/types.js +0 -27
- package/esm/util/types.js.map +0 -1
- package/esm/util/url.js +0 -64
- package/esm/util/url.js.map +0 -1
- package/lib/idx/flowMonitors/FlowMonitor.d.ts +0 -23
- package/lib/idx/flowMonitors/PasswordRecoveryFlowMonitor.d.ts +0 -16
- package/lib/idx/flowMonitors/RegistrationFlowMonitor.d.ts +0 -15
package/esm/idx/remediate.js
DELETED
|
@@ -1,302 +0,0 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
|
|
4
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
5
|
-
|
|
6
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
7
|
-
|
|
8
|
-
/*!
|
|
9
|
-
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
10
|
-
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
11
|
-
*
|
|
12
|
-
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
15
|
-
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
*
|
|
17
|
-
* See the License for the specific language governing permissions and limitations under the License.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
/* eslint-disable max-statements, max-depth, complexity */
|
|
21
|
-
import idx from '@okta/okta-idx-js';
|
|
22
|
-
import { AuthSdkError } from '../errors';
|
|
23
|
-
import { isRawIdxResponse } from './types/idx-js';
|
|
24
|
-
// Return first match idxRemediation in allowed remediators
|
|
25
|
-
export function getRemediator(idxRemediations, values, options) {
|
|
26
|
-
var {
|
|
27
|
-
flow,
|
|
28
|
-
flowMonitor
|
|
29
|
-
} = options;
|
|
30
|
-
var remediator;
|
|
31
|
-
var remediatorCandidates = [];
|
|
32
|
-
|
|
33
|
-
for (var remediation of idxRemediations) {
|
|
34
|
-
var isRemeditionInFlow = Object.keys(flow).includes(remediation.name);
|
|
35
|
-
|
|
36
|
-
if (!isRemeditionInFlow) {
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
var T = flow[remediation.name];
|
|
41
|
-
remediator = new T(remediation, values);
|
|
42
|
-
|
|
43
|
-
if (flowMonitor.isRemediatorCandidate(remediator, idxRemediations, values)) {
|
|
44
|
-
if (remediator.canRemediate()) {
|
|
45
|
-
// found the remediator
|
|
46
|
-
return remediator;
|
|
47
|
-
} // remediator cannot handle the current values
|
|
48
|
-
// maybe return for next step
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
remediatorCandidates.push(remediator);
|
|
52
|
-
}
|
|
53
|
-
} // TODO: why is it a problem to have multiple remediations?
|
|
54
|
-
// JIRA: https://oktainc.atlassian.net/browse/OKTA-400758
|
|
55
|
-
// if (remediatorCandidates.length > 1) {
|
|
56
|
-
// const remediationNames = remediatorCandidates.reduce((acc, curr) => {
|
|
57
|
-
// const name = curr.getName();
|
|
58
|
-
// return acc ? `${acc}, ${name}` : name;
|
|
59
|
-
// }, '');
|
|
60
|
-
// throw new AuthSdkError(`
|
|
61
|
-
// More than one remediation can match the current input, remediations: ${remediationNames}
|
|
62
|
-
// `);
|
|
63
|
-
// }
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return remediatorCandidates[0];
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function isTerminalResponse(idxResponse) {
|
|
70
|
-
var {
|
|
71
|
-
neededToProceed,
|
|
72
|
-
interactionCode
|
|
73
|
-
} = idxResponse;
|
|
74
|
-
return !neededToProceed.length && !interactionCode;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function canSkipFn(idxResponse) {
|
|
78
|
-
return idxResponse.neededToProceed.some(_ref => {
|
|
79
|
-
var {
|
|
80
|
-
name
|
|
81
|
-
} = _ref;
|
|
82
|
-
return name === 'skip';
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
function canResendFn(idxResponse) {
|
|
87
|
-
return Object.keys(idxResponse.actions).some(actionName => actionName.includes('resend'));
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function getIdxMessages(idxResponse, flow) {
|
|
91
|
-
var _rawIdxState$messages;
|
|
92
|
-
|
|
93
|
-
var messages = [];
|
|
94
|
-
|
|
95
|
-
if (!flow) {
|
|
96
|
-
return messages;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
var {
|
|
100
|
-
rawIdxState,
|
|
101
|
-
neededToProceed
|
|
102
|
-
} = idxResponse; // Handle global messages
|
|
103
|
-
|
|
104
|
-
var globalMessages = (_rawIdxState$messages = rawIdxState.messages) === null || _rawIdxState$messages === void 0 ? void 0 : _rawIdxState$messages.value.map(message => message);
|
|
105
|
-
|
|
106
|
-
if (globalMessages) {
|
|
107
|
-
messages = [...messages, ...globalMessages];
|
|
108
|
-
} // Handle field messages for current flow
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
for (var remediation of neededToProceed) {
|
|
112
|
-
var T = flow[remediation.name];
|
|
113
|
-
|
|
114
|
-
if (!T) {
|
|
115
|
-
continue;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
var remediator = new T(remediation);
|
|
119
|
-
var fieldMessages = remediator.getMessages();
|
|
120
|
-
|
|
121
|
-
if (fieldMessages) {
|
|
122
|
-
messages = [...messages, ...fieldMessages];
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return messages;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
function getNextStep(remediator, idxResponse) {
|
|
130
|
-
var nextStep = remediator.getNextStep();
|
|
131
|
-
var canSkip = canSkipFn(idxResponse);
|
|
132
|
-
var canResend = canResendFn(idxResponse);
|
|
133
|
-
return _objectSpread(_objectSpread(_objectSpread({}, nextStep), canSkip && {
|
|
134
|
-
canSkip
|
|
135
|
-
}), canResend && {
|
|
136
|
-
canResend
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
function handleIdxError(e, flow, remediator) {
|
|
141
|
-
// Handle idx messages
|
|
142
|
-
if (isRawIdxResponse(e)) {
|
|
143
|
-
var idxState = idx.makeIdxState(e);
|
|
144
|
-
var terminal = isTerminalResponse(idxState);
|
|
145
|
-
var messages = getIdxMessages(idxState, flow);
|
|
146
|
-
|
|
147
|
-
if (terminal) {
|
|
148
|
-
return {
|
|
149
|
-
terminal,
|
|
150
|
-
messages
|
|
151
|
-
};
|
|
152
|
-
} else {
|
|
153
|
-
var nextStep = remediator && getNextStep(remediator, idxState);
|
|
154
|
-
return _objectSpread({
|
|
155
|
-
messages
|
|
156
|
-
}, nextStep && {
|
|
157
|
-
nextStep
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
} // Thrown error terminates the interaction with idx
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
throw e;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
function getActionFromValues(values, idxResponse) {
|
|
167
|
-
// Currently support resend actions only
|
|
168
|
-
return Object.keys(idxResponse.actions).find(action => !!values.resend && action.includes('-resend'));
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
function removeActionFromValues(values) {
|
|
172
|
-
// Currently support resend actions only
|
|
173
|
-
values.resend = undefined;
|
|
174
|
-
return values;
|
|
175
|
-
} // This function is called recursively until it reaches success or cannot be remediated
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
export function remediate(_x, _x2, _x3) {
|
|
179
|
-
return _remediate.apply(this, arguments);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
function _remediate() {
|
|
183
|
-
_remediate = _asyncToGenerator(function* (idxResponse, values, options) {
|
|
184
|
-
var {
|
|
185
|
-
neededToProceed,
|
|
186
|
-
interactionCode
|
|
187
|
-
} = idxResponse;
|
|
188
|
-
var {
|
|
189
|
-
flow,
|
|
190
|
-
flowMonitor
|
|
191
|
-
} = options; // If the response contains an interaction code, there is no need to remediate
|
|
192
|
-
|
|
193
|
-
if (interactionCode) {
|
|
194
|
-
return {
|
|
195
|
-
idxResponse
|
|
196
|
-
};
|
|
197
|
-
} // Reach to terminal state
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
var terminal = isTerminalResponse(idxResponse);
|
|
201
|
-
var messages = getIdxMessages(idxResponse, flow);
|
|
202
|
-
|
|
203
|
-
if (terminal) {
|
|
204
|
-
return {
|
|
205
|
-
terminal,
|
|
206
|
-
messages
|
|
207
|
-
};
|
|
208
|
-
} // Try actions in idxResponse first
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
var actionFromValues = getActionFromValues(values, idxResponse);
|
|
212
|
-
var actions = [...(options.actions || []), ...(actionFromValues && [actionFromValues] || [])];
|
|
213
|
-
|
|
214
|
-
if (actions) {
|
|
215
|
-
for (var action of actions) {
|
|
216
|
-
var valuesWithoutExecutedAction = removeActionFromValues(values);
|
|
217
|
-
|
|
218
|
-
if (typeof idxResponse.actions[action] === 'function') {
|
|
219
|
-
try {
|
|
220
|
-
idxResponse = yield idxResponse.actions[action]();
|
|
221
|
-
} catch (e) {
|
|
222
|
-
return handleIdxError(e, flow);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
if (action === 'cancel') {
|
|
226
|
-
return {
|
|
227
|
-
canceled: true
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
return remediate(idxResponse, valuesWithoutExecutedAction, options); // recursive call
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
var remediator = getRemediator(neededToProceed, values, options);
|
|
237
|
-
|
|
238
|
-
if (!remediator) {
|
|
239
|
-
throw new AuthSdkError("\n No remediation can match current flow, check policy settings in your org.\n Remediations: [".concat(neededToProceed.reduce((acc, curr) => acc ? acc + ' ,' + curr.name : curr.name, ''), "]\n "));
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
if (flowMonitor.loopDetected(remediator)) {
|
|
243
|
-
throw new AuthSdkError("\n Remediation run into loop, break!!! remediation: ".concat(remediator.getName(), "\n "));
|
|
244
|
-
} // Recursive loop breaker
|
|
245
|
-
// Return next step to the caller
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
if (!remediator.canRemediate()) {
|
|
249
|
-
var nextStep = getNextStep(remediator, idxResponse);
|
|
250
|
-
return {
|
|
251
|
-
idxResponse,
|
|
252
|
-
nextStep
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
var name = remediator.getName();
|
|
257
|
-
var data = remediator.getData();
|
|
258
|
-
|
|
259
|
-
try {
|
|
260
|
-
idxResponse = yield idxResponse.proceed(name, data); // Track succeed remediations in the current transaction
|
|
261
|
-
|
|
262
|
-
yield flowMonitor.trackRemediations(name); // Successfully get interaction code
|
|
263
|
-
|
|
264
|
-
if (idxResponse.interactionCode) {
|
|
265
|
-
return {
|
|
266
|
-
idxResponse
|
|
267
|
-
};
|
|
268
|
-
} // Reach to terminal state
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
var _terminal = isTerminalResponse(idxResponse);
|
|
272
|
-
|
|
273
|
-
var _messages = getIdxMessages(idxResponse, flow);
|
|
274
|
-
|
|
275
|
-
if (_terminal) {
|
|
276
|
-
return {
|
|
277
|
-
terminal: _terminal,
|
|
278
|
-
messages: _messages
|
|
279
|
-
};
|
|
280
|
-
} // Handle idx message in nextStep
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
if (_messages.length) {
|
|
284
|
-
var _nextStep = getNextStep(remediator, idxResponse);
|
|
285
|
-
|
|
286
|
-
return {
|
|
287
|
-
nextStep: _nextStep,
|
|
288
|
-
messages: _messages
|
|
289
|
-
};
|
|
290
|
-
} // We may want to trim the values bag for the next remediation
|
|
291
|
-
// Let the remediator decide what the values should be (default to current values)
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
values = remediator.getValuesAfterProceed();
|
|
295
|
-
return remediate(idxResponse, values, options); // recursive call
|
|
296
|
-
} catch (e) {
|
|
297
|
-
return handleIdxError(e, flow, remediator);
|
|
298
|
-
}
|
|
299
|
-
});
|
|
300
|
-
return _remediate.apply(this, arguments);
|
|
301
|
-
}
|
|
302
|
-
//# sourceMappingURL=remediate.js.map
|
package/esm/idx/remediate.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/idx/remediate.ts"],"names":["idx","AuthSdkError","isRawIdxResponse","getRemediator","idxRemediations","values","options","flow","flowMonitor","remediator","remediatorCandidates","remediation","isRemeditionInFlow","Object","keys","includes","name","T","isRemediatorCandidate","canRemediate","push","isTerminalResponse","idxResponse","neededToProceed","interactionCode","length","canSkipFn","some","canResendFn","actions","actionName","getIdxMessages","messages","rawIdxState","globalMessages","value","map","message","fieldMessages","getMessages","getNextStep","nextStep","canSkip","canResend","handleIdxError","e","idxState","makeIdxState","terminal","getActionFromValues","find","action","resend","removeActionFromValues","undefined","remediate","actionFromValues","valuesWithoutExecutedAction","canceled","reduce","acc","curr","loopDetected","getName","data","getData","proceed","trackRemediations","getValuesAfterProceed"],"mappings":"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","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 idx from '@okta/okta-idx-js';\nimport { AuthSdkError } from '../errors';\nimport { Remediator, RemediationValues } from './remediators';\nimport { RunOptions, RemediationFlow } from './run';\nimport { NextStep, IdxMessage } from './types';\nimport { \n IdxResponse, \n isRawIdxResponse, \n IdxRemediation, \n} from './types/idx-js';\n\ninterface RemediationResponse {\n idxResponse?: IdxResponse;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n terminal?: boolean;\n canceled?: boolean;\n}\n// Return first match idxRemediation in allowed remediators\nexport function getRemediator(\n idxRemediations: IdxRemediation[],\n values: RemediationValues,\n options: RunOptions,\n): Remediator {\n const { flow, flowMonitor } = options;\n\n let remediator;\n const remediatorCandidates = [];\n for (let remediation of idxRemediations) {\n const isRemeditionInFlow = Object.keys(flow).includes(remediation.name);\n if (!isRemeditionInFlow) {\n continue;\n }\n \n const T = flow[remediation.name];\n remediator = new T(remediation, values);\n if (flowMonitor.isRemediatorCandidate(remediator, idxRemediations, values)) {\n if (remediator.canRemediate()) {\n // found the remediator\n return remediator;\n }\n // remediator cannot handle the current values\n // maybe return for next step\n remediatorCandidates.push(remediator); \n }\n }\n \n // TODO: why is it a problem to have multiple remediations? \n // JIRA: https://oktainc.atlassian.net/browse/OKTA-400758\n // if (remediatorCandidates.length > 1) {\n // const remediationNames = remediatorCandidates.reduce((acc, curr) => {\n // const name = curr.getName();\n // return acc ? `${acc}, ${name}` : name;\n // }, '');\n // throw new AuthSdkError(`\n // More than one remediation can match the current input, remediations: ${remediationNames}\n // `);\n // }\n\n return remediatorCandidates[0];\n}\n\nfunction isTerminalResponse(idxResponse: IdxResponse) {\n const { neededToProceed, interactionCode } = idxResponse;\n return !neededToProceed.length && !interactionCode;\n}\n\nfunction canSkipFn(idxResponse: IdxResponse) {\n return idxResponse.neededToProceed.some(({ name }) => name === 'skip');\n}\n\nfunction canResendFn(idxResponse: IdxResponse) {\n return Object.keys(idxResponse.actions).some(actionName => actionName.includes('resend'));\n}\n\nfunction getIdxMessages(\n idxResponse: IdxResponse, flow: RemediationFlow\n): IdxMessage[] {\n let messages = [];\n if (!flow) {\n return messages;\n }\n\n const { rawIdxState, neededToProceed } = idxResponse;\n\n // Handle global messages\n const globalMessages = rawIdxState.messages?.value.map(message => message);\n if (globalMessages) {\n messages = [...messages, ...globalMessages];\n }\n\n // Handle field messages for current flow\n for (let remediation of neededToProceed) {\n const T = flow[remediation.name];\n if (!T) {\n continue;\n }\n const remediator = new T(remediation);\n const fieldMessages = remediator.getMessages();\n if (fieldMessages) {\n messages = [...messages, ...fieldMessages];\n }\n }\n\n return messages;\n}\n\nfunction getNextStep(\n remediator: Remediator, idxResponse: IdxResponse\n): NextStep {\n const nextStep = remediator.getNextStep();\n const canSkip = canSkipFn(idxResponse);\n const canResend = canResendFn(idxResponse);\n return {\n ...nextStep,\n ...(canSkip && {canSkip}),\n ...(canResend && {canResend}),\n };\n}\n\nfunction handleIdxError(e, flow, remediator?) {\n // Handle idx messages\n if (isRawIdxResponse(e)) {\n const idxState = idx.makeIdxState(e);\n const terminal = isTerminalResponse(idxState);\n const messages = getIdxMessages(idxState, flow);\n if (terminal) {\n return { terminal, messages };\n } else {\n const nextStep = remediator && getNextStep(remediator, idxState);\n return { \n messages, \n ...(nextStep && { nextStep }) \n };\n }\n }\n // Thrown error terminates the interaction with idx\n throw e;\n}\n\nfunction getActionFromValues(values, 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) {\n // Currently support resend actions only\n values.resend = undefined;\n return values;\n}\n\n// This function is called recursively until it reaches success or cannot be remediated\nexport async function remediate(\n idxResponse: IdxResponse,\n values: RemediationValues,\n options: RunOptions\n): Promise<RemediationResponse> {\n let { neededToProceed, interactionCode } = idxResponse;\n const { flow, flowMonitor } = 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 // Reach to terminal state\n const terminal = isTerminalResponse(idxResponse);\n const messages = getIdxMessages(idxResponse, flow);\n if (terminal) {\n return { terminal, messages };\n }\n \n // Try actions in idxResponse first\n const actionFromValues = getActionFromValues(values, idxResponse);\n const actions = [\n ...options.actions || [],\n ...(actionFromValues && [actionFromValues] || []),\n ];\n if (actions) {\n for (let action of actions) {\n let valuesWithoutExecutedAction = removeActionFromValues(values);\n if (typeof idxResponse.actions[action] === 'function') {\n try {\n idxResponse = await idxResponse.actions[action]();\n } catch (e) {\n return handleIdxError(e, flow);\n }\n if (action === 'cancel') {\n return { canceled: true };\n }\n return remediate(idxResponse, valuesWithoutExecutedAction, options); // recursive call\n }\n }\n }\n\n const remediator = getRemediator(neededToProceed, values, options);\n \n if (!remediator) {\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 if (flowMonitor.loopDetected(remediator)) {\n throw new AuthSdkError(`\n Remediation run into loop, break!!! remediation: ${remediator.getName()}\n `);\n }\n\n // Recursive loop breaker\n // Return next step to the caller\n if (!remediator.canRemediate()) {\n const nextStep = getNextStep(remediator, idxResponse);\n return { idxResponse, nextStep };\n }\n\n const name = remediator.getName();\n const data = remediator.getData();\n try {\n idxResponse = await idxResponse.proceed(name, data);\n\n // Track succeed remediations in the current transaction\n await flowMonitor.trackRemediations(name);\n \n // Successfully get interaction code\n if (idxResponse.interactionCode) {\n return { idxResponse };\n }\n\n // Reach to terminal state\n const terminal = isTerminalResponse(idxResponse);\n const messages = getIdxMessages(idxResponse, flow);\n if (terminal) {\n return { terminal, messages };\n }\n\n // Handle idx message in nextStep\n if (messages.length) {\n const nextStep = getNextStep(remediator, idxResponse);\n return { nextStep, messages };\n }\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 return remediate(idxResponse, values, options); // recursive call\n } catch (e) {\n return handleIdxError(e, flow, remediator);\n }\n}\n"],"file":"remediate.js"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
|
|
3
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
-
|
|
5
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
-
|
|
7
|
-
/*!
|
|
8
|
-
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
9
|
-
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
10
|
-
*
|
|
11
|
-
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
12
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
14
|
-
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
*
|
|
16
|
-
* See the License for the specific language governing permissions and limitations under the License.
|
|
17
|
-
*/
|
|
18
|
-
import { AuthenticatorData } from './Base/AuthenticatorData';
|
|
19
|
-
import { getAuthenticatorFromRemediation } from './util';
|
|
20
|
-
export class AuthenticatorEnrollmentData extends AuthenticatorData {
|
|
21
|
-
canRemediate() {
|
|
22
|
-
var authenticator = this.getAuthenticatorFromValues();
|
|
23
|
-
return !!(authenticator && authenticator.methodType && authenticator.phoneNumber);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
mapAuthenticator() {
|
|
27
|
-
var authenticatorFromValues = this.getAuthenticatorFromValues();
|
|
28
|
-
var authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);
|
|
29
|
-
return {
|
|
30
|
-
id: authenticatorFromRemediation.form.value.find(_ref => {
|
|
31
|
-
var {
|
|
32
|
-
name
|
|
33
|
-
} = _ref;
|
|
34
|
-
return name === 'id';
|
|
35
|
-
}).value,
|
|
36
|
-
methodType: authenticatorFromValues.methodType,
|
|
37
|
-
phoneNumber: authenticatorFromValues.phoneNumber
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
getInputAuthenticator() {
|
|
42
|
-
return [{
|
|
43
|
-
name: 'methodType',
|
|
44
|
-
type: 'string',
|
|
45
|
-
required: true
|
|
46
|
-
}, {
|
|
47
|
-
name: 'phoneNumber',
|
|
48
|
-
type: 'string',
|
|
49
|
-
required: true
|
|
50
|
-
}];
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
mapAuthenticatorFromValues(authenticator) {
|
|
54
|
-
// get mapped authenticator from base class
|
|
55
|
-
authenticator = super.mapAuthenticatorFromValues(authenticator); // add phoneNumber to authenticator if it exists in values
|
|
56
|
-
|
|
57
|
-
var {
|
|
58
|
-
phoneNumber
|
|
59
|
-
} = this.values;
|
|
60
|
-
return _objectSpread(_objectSpread({}, authenticator), phoneNumber && {
|
|
61
|
-
phoneNumber
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
_defineProperty(AuthenticatorEnrollmentData, "remediationName", 'authenticator-enrollment-data');
|
|
68
|
-
//# sourceMappingURL=AuthenticatorEnrollmentData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../lib/idx/remediators/AuthenticatorEnrollmentData.ts"],"names":["AuthenticatorData","getAuthenticatorFromRemediation","AuthenticatorEnrollmentData","canRemediate","authenticator","getAuthenticatorFromValues","methodType","phoneNumber","mapAuthenticator","authenticatorFromValues","authenticatorFromRemediation","remediation","id","form","value","find","name","getInputAuthenticator","type","required","mapAuthenticatorFromValues","values"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,SAASA,iBAAT,QAA2D,0BAA3D;AACA,SAASC,+BAAT,QAAgD,QAAhD;AAOA,OAAO,MAAMC,2BAAN,SAA0CF,iBAA1C,CAA4D;AAKjEG,EAAAA,YAAY,GAAG;AACb,QAAMC,aAAa,GAAG,KAAKC,0BAAL,EAAtB;AACA,WAAO,CAAC,EAAED,aAAa,IAAIA,aAAa,CAACE,UAA/B,IAA6CF,aAAa,CAACG,WAA7D,CAAR;AACD;;AAEDC,EAAAA,gBAAgB,GAAG;AACjB,QAAMC,uBAAuB,GAAG,KAAKJ,0BAAL,EAAhC;AACA,QAAMK,4BAA4B,GAAGT,+BAA+B,CAAC,KAAKU,WAAN,CAApE;AACA,WAAO;AACLC,MAAAA,EAAE,EAAEF,4BAA4B,CAACG,IAA7B,CAAkCC,KAAlC,CACDC,IADC,CACI;AAAA,YAAC;AAAEC,UAAAA;AAAF,SAAD;AAAA,eAAcA,IAAI,KAAK,IAAvB;AAAA,OADJ,EACiCF,KAFhC;AAGLR,MAAAA,UAAU,EAAEG,uBAAuB,CAACH,UAH/B;AAILC,MAAAA,WAAW,EAAEE,uBAAuB,CAACF;AAJhC,KAAP;AAMD;;AAEDU,EAAAA,qBAAqB,GAAG;AACtB,WAAO,CACL;AAAED,MAAAA,IAAI,EAAE,YAAR;AAAsBE,MAAAA,IAAI,EAAE,QAA5B;AAAsCC,MAAAA,QAAQ,EAAE;AAAhD,KADK,EAEL;AAAEH,MAAAA,IAAI,EAAE,aAAR;AAAuBE,MAAAA,IAAI,EAAE,QAA7B;AAAuCC,MAAAA,QAAQ,EAAE;AAAjD,KAFK,CAAP;AAID;;AAESC,EAAAA,0BAA0B,CAAChB,aAAD,EAA+C;AACjF;AACAA,IAAAA,aAAa,GAAG,MAAMgB,0BAAN,CAAiChB,aAAjC,CAAhB,CAFiF,CAIjF;;AACA,QAAM;AAAEG,MAAAA;AAAF,QAAkB,KAAKc,MAA7B;AACA,2CACKjB,aADL,GAEMG,WAAW,IAAI;AAAEA,MAAAA;AAAF,KAFrB;AAID;;AAtCgE;;gBAAtDL,2B,qBACc,+B","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 { AuthenticatorData, AuthenticatorDataValues } from './Base/AuthenticatorData';\nimport { getAuthenticatorFromRemediation } from './util';\nimport { Authenticator } from '../types';\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 {\n static remediationName = 'authenticator-enrollment-data';\n\n values: AuthenticatorEnrollmentDataValues;\n\n canRemediate() {\n const authenticator = this.getAuthenticatorFromValues();\n return !!(authenticator && authenticator.methodType && authenticator.phoneNumber);\n }\n\n mapAuthenticator() {\n const authenticatorFromValues = this.getAuthenticatorFromValues();\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n return { \n id: authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'id').value,\n methodType: authenticatorFromValues.methodType,\n phoneNumber: authenticatorFromValues.phoneNumber,\n };\n }\n\n getInputAuthenticator() {\n return [\n { name: 'methodType', type: 'string', required: true },\n { name: 'phoneNumber', type: 'string', required: true },\n ];\n }\n\n protected mapAuthenticatorFromValues(authenticator?: Authenticator): Authenticator {\n // get mapped authenticator from base class\n authenticator = super.mapAuthenticatorFromValues(authenticator);\n\n // add phoneNumber to authenticator if it exists in values\n const { phoneNumber } = this.values;\n return { \n ...authenticator, \n ...(phoneNumber && { phoneNumber }) \n };\n }\n\n}\n"],"file":"AuthenticatorEnrollmentData.js"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
|
|
3
|
-
/*!
|
|
4
|
-
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
5
|
-
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
6
|
-
*
|
|
7
|
-
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
8
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
9
|
-
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
10
|
-
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
-
*
|
|
12
|
-
* See the License for the specific language governing permissions and limitations under the License.
|
|
13
|
-
*/
|
|
14
|
-
import { AuthenticatorData } from './Base/AuthenticatorData';
|
|
15
|
-
export class AuthenticatorVerificationData extends AuthenticatorData {
|
|
16
|
-
canRemediate() {
|
|
17
|
-
var authenticator = this.getAuthenticatorFromValues();
|
|
18
|
-
return !!(authenticator && authenticator.methodType);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
mapAuthenticator() {
|
|
22
|
-
var authenticatorFromRemediation = this.getAuthenticatorFromRemediation();
|
|
23
|
-
var authenticatorFromValues = this.getAuthenticatorFromValues();
|
|
24
|
-
return {
|
|
25
|
-
id: authenticatorFromRemediation.form.value.find(_ref => {
|
|
26
|
-
var {
|
|
27
|
-
name
|
|
28
|
-
} = _ref;
|
|
29
|
-
return name === 'id';
|
|
30
|
-
}).value,
|
|
31
|
-
enrollmentId: authenticatorFromRemediation.form.value.find(_ref2 => {
|
|
32
|
-
var {
|
|
33
|
-
name
|
|
34
|
-
} = _ref2;
|
|
35
|
-
return name === 'enrollmentId';
|
|
36
|
-
}).value,
|
|
37
|
-
methodType: authenticatorFromValues.methodType
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
getInputAuthenticator() {
|
|
42
|
-
var authenticator = this.getAuthenticatorFromRemediation();
|
|
43
|
-
var methodType = authenticator.form.value.find(_ref3 => {
|
|
44
|
-
var {
|
|
45
|
-
name
|
|
46
|
-
} = _ref3;
|
|
47
|
-
return name === 'methodType';
|
|
48
|
-
}); // if has methodType in form, let user select the methodType
|
|
49
|
-
|
|
50
|
-
if (methodType && methodType.options) {
|
|
51
|
-
return {
|
|
52
|
-
name: 'methodType',
|
|
53
|
-
type: 'string',
|
|
54
|
-
required: true
|
|
55
|
-
};
|
|
56
|
-
} // no methodType, then return form values
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
var inputs = [...authenticator.form.value];
|
|
60
|
-
return inputs;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
_defineProperty(AuthenticatorVerificationData, "remediationName", 'authenticator-verification-data');
|
|
66
|
-
//# sourceMappingURL=AuthenticatorVerificationData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../lib/idx/remediators/AuthenticatorVerificationData.ts"],"names":["AuthenticatorData","AuthenticatorVerificationData","canRemediate","authenticator","getAuthenticatorFromValues","methodType","mapAuthenticator","authenticatorFromRemediation","getAuthenticatorFromRemediation","authenticatorFromValues","id","form","value","find","name","enrollmentId","getInputAuthenticator","options","type","required","inputs"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,SAASA,iBAAT,QAA2D,0BAA3D;AAIA,OAAO,MAAMC,6BAAN,SAA4CD,iBAA5C,CAA8D;AAKnEE,EAAAA,YAAY,GAAG;AACb,QAAMC,aAAa,GAAG,KAAKC,0BAAL,EAAtB;AACA,WAAO,CAAC,EAAED,aAAa,IAAIA,aAAa,CAACE,UAAjC,CAAR;AACD;;AAEDC,EAAAA,gBAAgB,GAAG;AACjB,QAAMC,4BAA4B,GAAG,KAAKC,+BAAL,EAArC;AACA,QAAMC,uBAAuB,GAAG,KAAKL,0BAAL,EAAhC;AACA,WAAO;AACLM,MAAAA,EAAE,EAAEH,4BAA4B,CAACI,IAA7B,CAAkCC,KAAlC,CACDC,IADC,CACI;AAAA,YAAC;AAAEC,UAAAA;AAAF,SAAD;AAAA,eAAcA,IAAI,KAAK,IAAvB;AAAA,OADJ,EACiCF,KAFhC;AAGLG,MAAAA,YAAY,EAAER,4BAA4B,CAACI,IAA7B,CAAkCC,KAAlC,CACXC,IADW,CACN;AAAA,YAAC;AAAEC,UAAAA;AAAF,SAAD;AAAA,eAAcA,IAAI,KAAK,cAAvB;AAAA,OADM,EACiCF,KAJ1C;AAKLP,MAAAA,UAAU,EAAEI,uBAAuB,CAACJ;AAL/B,KAAP;AAOD;;AAEDW,EAAAA,qBAAqB,GAAG;AACtB,QAAMb,aAAa,GAAG,KAAKK,+BAAL,EAAtB;AACA,QAAMH,UAAU,GAAGF,aAAa,CAACQ,IAAd,CAAmBC,KAAnB,CAAyBC,IAAzB,CAA8B;AAAA,UAAC;AAAEC,QAAAA;AAAF,OAAD;AAAA,aAAcA,IAAI,KAAK,YAAvB;AAAA,KAA9B,CAAnB,CAFsB,CAGtB;;AACA,QAAIT,UAAU,IAAIA,UAAU,CAACY,OAA7B,EAAsC;AACpC,aAAO;AAAEH,QAAAA,IAAI,EAAE,YAAR;AAAsBI,QAAAA,IAAI,EAAE,QAA5B;AAAsCC,QAAAA,QAAQ,EAAE;AAAhD,OAAP;AACD,KANqB,CAOtB;;;AACA,QAAMC,MAAM,GAAG,CAAC,GAAGjB,aAAa,CAACQ,IAAd,CAAmBC,KAAvB,CAAf;AACA,WAAOQ,MAAP;AACD;;AAhCkE;;gBAAxDnB,6B,qBACc,iC","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 { AuthenticatorData, AuthenticatorDataValues } from './Base/AuthenticatorData';\n\nexport type AuthenticatorVerificationDataValues = AuthenticatorDataValues;\n\nexport class AuthenticatorVerificationData extends AuthenticatorData {\n static remediationName = 'authenticator-verification-data';\n\n values: AuthenticatorVerificationDataValues;\n\n canRemediate() {\n const authenticator = this.getAuthenticatorFromValues();\n return !!(authenticator && authenticator.methodType);\n }\n\n mapAuthenticator() {\n const authenticatorFromRemediation = this.getAuthenticatorFromRemediation();\n const authenticatorFromValues = this.getAuthenticatorFromValues();\n return { \n id: authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'id').value,\n enrollmentId: authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'enrollmentId').value,\n methodType: authenticatorFromValues.methodType,\n };\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 { name: 'methodType', type: 'string', required: true };\n }\n // no methodType, then return form values\n const inputs = [...authenticator.form.value];\n return inputs;\n }\n\n}\n"],"file":"AuthenticatorVerificationData.js"}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
|
|
3
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
-
|
|
5
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
-
|
|
7
|
-
/*!
|
|
8
|
-
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
9
|
-
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
10
|
-
*
|
|
11
|
-
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
12
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
14
|
-
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
*
|
|
16
|
-
* See the License for the specific language governing permissions and limitations under the License.
|
|
17
|
-
*/
|
|
18
|
-
import { Remediator } from './Remediator';
|
|
19
|
-
// Base class - DO NOT expose static remediationName
|
|
20
|
-
export class AuthenticatorData extends Remediator {
|
|
21
|
-
constructor(remediation) {
|
|
22
|
-
var values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
23
|
-
super(remediation, values); // Unify authenticator input type
|
|
24
|
-
|
|
25
|
-
_defineProperty(this, "map", {
|
|
26
|
-
'authenticator': []
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
var {
|
|
30
|
-
authenticators
|
|
31
|
-
} = this.values;
|
|
32
|
-
var authenticatorKey = this.getAuthenticator().key;
|
|
33
|
-
var authenticator = authenticators === null || authenticators === void 0 ? void 0 : authenticators.find(authenticator => authenticator.key === authenticatorKey);
|
|
34
|
-
|
|
35
|
-
if (authenticator) {
|
|
36
|
-
// map
|
|
37
|
-
this.values.authenticators = authenticators.map(authenticator => {
|
|
38
|
-
if (authenticatorKey === authenticator.type) {
|
|
39
|
-
return this.mapAuthenticatorFromValues(authenticator);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return authenticator;
|
|
43
|
-
});
|
|
44
|
-
} else {
|
|
45
|
-
// add
|
|
46
|
-
this.values.authenticators = [...authenticators, this.mapAuthenticatorFromValues()];
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
getNextStep() {
|
|
51
|
-
var common = super.getNextStep();
|
|
52
|
-
var options = this.getMethodTypes();
|
|
53
|
-
return _objectSpread(_objectSpread({}, common), options && {
|
|
54
|
-
options
|
|
55
|
-
});
|
|
56
|
-
} // Grab authenticator from authenticators list
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
getAuthenticatorFromValues() {
|
|
60
|
-
if (!this.values.authenticators) {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
var authenticatorKey = this.getAuthenticator().key;
|
|
65
|
-
var authenticator = this.values.authenticators.find(authenticator => authenticator.key === authenticatorKey);
|
|
66
|
-
return authenticator;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
mapAuthenticatorFromValues(authenticator) {
|
|
70
|
-
// add methodType to authenticator if it exists in values
|
|
71
|
-
var key = this.getAuthenticator().key;
|
|
72
|
-
var {
|
|
73
|
-
methodType
|
|
74
|
-
} = this.values;
|
|
75
|
-
return _objectSpread(_objectSpread({
|
|
76
|
-
key
|
|
77
|
-
}, authenticator && authenticator), methodType && {
|
|
78
|
-
methodType
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
getAuthenticatorFromRemediation() {
|
|
83
|
-
var authenticator = this.remediation.value.find(_ref => {
|
|
84
|
-
var {
|
|
85
|
-
name
|
|
86
|
-
} = _ref;
|
|
87
|
-
return name === 'authenticator';
|
|
88
|
-
});
|
|
89
|
-
return authenticator;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
getMethodTypes() {
|
|
93
|
-
var _authenticator$form$v;
|
|
94
|
-
|
|
95
|
-
var authenticator = this.getAuthenticatorFromRemediation();
|
|
96
|
-
return (_authenticator$form$v = authenticator.form.value.find(_ref2 => {
|
|
97
|
-
var {
|
|
98
|
-
name
|
|
99
|
-
} = _ref2;
|
|
100
|
-
return name === 'methodType';
|
|
101
|
-
})) === null || _authenticator$form$v === void 0 ? void 0 : _authenticator$form$v.options;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=AuthenticatorData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../lib/idx/remediators/Base/AuthenticatorData.ts"],"names":["Remediator","AuthenticatorData","constructor","remediation","values","authenticators","authenticatorKey","getAuthenticator","key","authenticator","find","map","type","mapAuthenticatorFromValues","getNextStep","common","options","getMethodTypes","getAuthenticatorFromValues","methodType","getAuthenticatorFromRemediation","value","name","form"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,SAASA,UAAT,QAA8C,cAA9C;AAQA;AACA,OAAO,MAAMC,iBAAN,SAAgCD,UAAhC,CAA2C;AAQhDE,EAAAA,WAAW,CAACC,WAAD,EAAoE;AAAA,QAAtCC,MAAsC,uEAAJ,EAAI;AAC7E,UAAMD,WAAN,EAAmBC,MAAnB,EAD6E,CAG7E;;AAH6E,iCANzE;AACJ,uBAAiB;AADb,KAMyE;;AAI7E,QAAM;AAAEC,MAAAA;AAAF,QAAqB,KAAKD,MAAhC;AACA,QAAME,gBAAgB,GAAG,KAAKC,gBAAL,GAAwBC,GAAjD;AACA,QAAMC,aAAa,GAAIJ,cAAJ,aAAIA,cAAJ,uBAAIA,cAAD,CAChBK,IADgB,CACXD,aAAa,IAAIA,aAAa,CAACD,GAAd,KAAsBF,gBAD5B,CAAtB;;AAEA,QAAIG,aAAJ,EAAmB;AACjB;AACA,WAAKL,MAAL,CAAYC,cAAZ,GAA6BA,cAAc,CAACM,GAAf,CAAmBF,aAAa,IAAI;AAC/D,YAAIH,gBAAgB,KAAKG,aAAa,CAACG,IAAvC,EAA6C;AAC3C,iBAAO,KAAKC,0BAAL,CAAgCJ,aAAhC,CAAP;AACD;;AACD,eAAOA,aAAP;AACD,OAL4B,CAA7B;AAMD,KARD,MAQO;AACL;AACA,WAAKL,MAAL,CAAYC,cAAZ,GAA6B,CAC3B,GAAGA,cADwB,EAE3B,KAAKQ,0BAAL,EAF2B,CAA7B;AAID;AACF;;AAEDC,EAAAA,WAAW,GAAG;AACZ,QAAMC,MAAM,GAAG,MAAMD,WAAN,EAAf;AACA,QAAME,OAAO,GAAG,KAAKC,cAAL,EAAhB;AACA,2CACKF,MADL,GAEMC,OAAO,IAAI;AAAEA,MAAAA;AAAF,KAFjB;AAID,GAxC+C,CA0ChD;;;AACUE,EAAAA,0BAA0B,GAAkB;AACpD,QAAI,CAAC,KAAKd,MAAL,CAAYC,cAAjB,EAAiC;AAC/B,aAAO,IAAP;AACD;;AAED,QAAMC,gBAAgB,GAAG,KAAKC,gBAAL,GAAwBC,GAAjD;AACA,QAAMC,aAAa,GAAI,KAAKL,MAAL,CAAYC,cAAb,CACnBK,IADmB,CACdD,aAAa,IAAIA,aAAa,CAACD,GAAd,KAAsBF,gBADzB,CAAtB;AAEA,WAAOG,aAAP;AACD;;AAESI,EAAAA,0BAA0B,CAACJ,aAAD,EAA+C;AACjF;AACA,QAAMD,GAAG,GAAG,KAAKD,gBAAL,GAAwBC,GAApC;AACA,QAAM;AAAEW,MAAAA;AAAF,QAAiB,KAAKf,MAA5B;AACA;AACEI,MAAAA;AADF,OAEMC,aAAa,IAAIA,aAFvB,GAGMU,UAAU,IAAI;AAAEA,MAAAA;AAAF,KAHpB;AAKD;;AAESC,EAAAA,+BAA+B,GAAwB;AAC/D,QAAMX,aAAa,GAAG,KAAKN,WAAL,CAAiBkB,KAAjB,CACnBX,IADmB,CACd;AAAA,UAAC;AAAEY,QAAAA;AAAF,OAAD;AAAA,aAAcA,IAAI,KAAK,eAAvB;AAAA,KADc,CAAtB;AAEA,WAAOb,aAAP;AACD;;AAEOQ,EAAAA,cAAc,GAAgB;AAAA;;AACpC,QAAMR,aAAkC,GAAG,KAAKW,+BAAL,EAA3C;AACA,oCAAOX,aAAa,CAACc,IAAd,CAAmBF,KAAnB,CAAyBX,IAAzB,CAA8B;AAAA,UAAC;AAAEY,QAAAA;AAAF,OAAD;AAAA,aAAcA,IAAI,KAAK,YAAvB;AAAA,KAA9B,CAAP,0DAAO,sBAAoEN,OAA3E;AACD;;AA1E+C","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 { Remediator, RemediationValues } from './Remediator';\nimport { Authenticator } from '../../types';\nimport { IdxRemediationValue, IdxOption, IdxRemediation } from '../../types/idx-js';\n\nexport type AuthenticatorDataValues = RemediationValues & {\n methodType?: string;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class AuthenticatorData extends Remediator {\n\n map = {\n 'authenticator': []\n };\n\n values: AuthenticatorDataValues;\n\n constructor(remediation: IdxRemediation, values: AuthenticatorDataValues = {}) {\n super(remediation, values);\n\n // Unify authenticator input type\n const { authenticators } = this.values;\n const authenticatorKey = this.getAuthenticator().key;\n const authenticator = (authenticators as Authenticator[])\n ?.find(authenticator => authenticator.key === authenticatorKey);\n if (authenticator) {\n // map\n this.values.authenticators = authenticators.map(authenticator => {\n if (authenticatorKey === authenticator.type) {\n return this.mapAuthenticatorFromValues(authenticator);\n }\n return authenticator;\n });\n } else {\n // add\n this.values.authenticators = [\n ...authenticators, \n this.mapAuthenticatorFromValues()\n ] as Authenticator[];\n }\n }\n\n getNextStep() {\n const common = super.getNextStep();\n const options = this.getMethodTypes();\n return { \n ...common, \n ...(options && { options }) \n };\n }\n\n // Grab authenticator from authenticators list\n protected getAuthenticatorFromValues(): Authenticator {\n if (!this.values.authenticators) {\n return null;\n }\n\n const authenticatorKey = this.getAuthenticator().key;\n const authenticator = (this.values.authenticators as Authenticator[])\n .find(authenticator => authenticator.key === authenticatorKey);\n return authenticator;\n }\n\n protected mapAuthenticatorFromValues(authenticator?: Authenticator): Authenticator {\n // add methodType to authenticator if it exists in values\n const key = this.getAuthenticator().key;\n const { methodType } = this.values;\n return { \n key, \n ...(authenticator && authenticator),\n ...(methodType && { methodType }) \n };\n }\n\n protected getAuthenticatorFromRemediation(): IdxRemediationValue {\n const authenticator = this.remediation.value\n .find(({ name }) => name === 'authenticator');\n return authenticator;\n }\n\n private getMethodTypes(): IdxOption[] {\n const authenticator: IdxRemediationValue = this.getAuthenticatorFromRemediation();\n return authenticator.form.value.find(({ name }) => name === 'methodType')?.options;\n }\n}\n"],"file":"AuthenticatorData.js"}
|