@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
|
@@ -22,17 +22,48 @@ var _util = require("../util");
|
|
|
22
22
|
// Base class - DO NOT expose static remediationName
|
|
23
23
|
class Remediator {
|
|
24
24
|
constructor(remediation, values = {}) {
|
|
25
|
-
|
|
25
|
+
// assign fields to the instance
|
|
26
|
+
this.values = { ...values
|
|
27
|
+
};
|
|
28
|
+
this.formatAuthenticators();
|
|
29
|
+
this.remediation = remediation;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
formatAuthenticators() {
|
|
33
|
+
this.values.authenticators = this.values.authenticators || []; // add string authenticator from input to "authenticators" field
|
|
34
|
+
|
|
35
|
+
if (this.values.authenticator) {
|
|
36
|
+
const hasAuthenticatorInList = this.values.authenticators.some(authenticator => {
|
|
37
|
+
if (typeof authenticator === 'string') {
|
|
38
|
+
return authenticator === this.values.authenticator;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return authenticator.key === this.values.authenticator;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
if (!hasAuthenticatorInList) {
|
|
45
|
+
this.values.authenticators.push({
|
|
46
|
+
key: this.values.authenticator
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
} // transform items in "authenticators" into one format
|
|
50
|
+
|
|
26
51
|
|
|
27
|
-
|
|
28
|
-
values.authenticators = ((_values$authenticator = values.authenticators) === null || _values$authenticator === void 0 ? void 0 : _values$authenticator.map(authenticator => {
|
|
52
|
+
this.values.authenticators = this.values.authenticators.map(authenticator => {
|
|
29
53
|
return typeof authenticator === 'string' ? {
|
|
30
54
|
key: authenticator
|
|
31
55
|
} : authenticator;
|
|
32
|
-
})
|
|
56
|
+
}); // save non-key meta to "authenticatorsData" field
|
|
57
|
+
// authenticators will be removed after selection to avoid select-authenticator loop
|
|
33
58
|
|
|
34
|
-
this.values = values
|
|
35
|
-
|
|
59
|
+
this.values.authenticatorsData = this.values.authenticators.reduce((acc, authenticator) => {
|
|
60
|
+
if (typeof authenticator === 'object' && Object.keys(authenticator).length > 1) {
|
|
61
|
+
// save authenticator meta into authenticator data
|
|
62
|
+
acc.push(authenticator);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return acc;
|
|
66
|
+
}, this.values.authenticatorsData || []);
|
|
36
67
|
}
|
|
37
68
|
|
|
38
69
|
getName() {
|
|
@@ -107,7 +138,7 @@ class Remediator {
|
|
|
107
138
|
return !!data;
|
|
108
139
|
}
|
|
109
140
|
|
|
110
|
-
getNextStep() {
|
|
141
|
+
getNextStep(_context) {
|
|
111
142
|
const name = this.getName();
|
|
112
143
|
const inputs = this.getInputs();
|
|
113
144
|
const authenticator = this.getAuthenticator(); // TODO: remove type field in the next major version change
|
|
@@ -177,17 +208,16 @@ class Remediator {
|
|
|
177
208
|
|
|
178
209
|
return inputs;
|
|
179
210
|
}, []);
|
|
180
|
-
}
|
|
181
|
-
|
|
211
|
+
}
|
|
182
212
|
|
|
183
|
-
getMessages() {
|
|
184
|
-
var
|
|
213
|
+
static getMessages(remediation) {
|
|
214
|
+
var _remediation$value$, _remediation$value$$f;
|
|
185
215
|
|
|
186
|
-
if (!
|
|
216
|
+
if (!remediation.value) {
|
|
187
217
|
return;
|
|
188
218
|
}
|
|
189
219
|
|
|
190
|
-
return (
|
|
220
|
+
return (_remediation$value$ = remediation.value[0]) === null || _remediation$value$ === void 0 ? void 0 : (_remediation$value$$f = _remediation$value$.form) === null || _remediation$value$$f === void 0 ? void 0 : _remediation$value$$f.value.reduce((messages, field) => {
|
|
191
221
|
if (field.messages) {
|
|
192
222
|
messages = [...messages, ...field.messages.value];
|
|
193
223
|
}
|
|
@@ -195,17 +225,18 @@ class Remediator {
|
|
|
195
225
|
return messages;
|
|
196
226
|
}, []);
|
|
197
227
|
} // Prepare values for the next remediation
|
|
198
|
-
// In general, remove
|
|
228
|
+
// In general, remove used values from inputs for the current remediation
|
|
229
|
+
// Override this method if special cases need be handled
|
|
199
230
|
|
|
200
231
|
|
|
201
232
|
getValuesAfterProceed() {
|
|
202
|
-
|
|
233
|
+
const inputs = this.getInputs();
|
|
203
234
|
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
235
|
+
for (const input of inputs) {
|
|
236
|
+
delete this.values[input.name];
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
return this.values;
|
|
209
240
|
}
|
|
210
241
|
|
|
211
242
|
getAuthenticator() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../lib/idx/remediators/Base/Remediator.ts"],"names":["Remediator","constructor","remediation","values","authenticators","map","authenticator","key","getName","name","canRemediate","required","needed","find","hasData","getData","allValues","res","reduce","data","value","entry","i","length","val","Object","keys","getNextStep","inputs","getInputs","getAuthenticator","type","inputFromRemediation","item","input","aliases","includes","AuthSdkError","Array","isArray","forEach","push","getMessages","form","messages","field","getValuesAfterProceed","authenticatorKey","filter","relatesTo"],"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 complexity */\nimport { AuthSdkError } from '../../../errors';\nimport { NextStep, IdxMessage, Authenticator, Input } from '../../types';\nimport { IdxAuthenticator, IdxRemediation } from '../../types/idx-js';\nimport { getAllValues, getRequiredValues, titleCase } from '../util';\n\n// A map from IDX data values (server spec) to RemediationValues (client spec)\nexport type IdxToRemediationValueMap = Record<string, string[]>;\n\nexport interface RemediationValues {\n stateHandle?: string;\n authenticators?: Authenticator[] | string[];\n}\n\n// Base class - DO NOT expose static remediationName\nexport class Remediator {\n static remediationName: string;\n\n remediation: IdxRemediation;\n values: RemediationValues;\n map?: IdxToRemediationValueMap;\n\n constructor(remediation: IdxRemediation, values: RemediationValues = {}) {\n // map authenticators to Authenticator[] type\n values.authenticators = (values.authenticators?.map(authenticator => {\n return typeof authenticator === 'string' \n ? { key: authenticator } : authenticator;\n }) || []) as Authenticator[];\n \n // assign fields to the instance\n this.values = values;\n this.remediation = remediation;\n }\n\n getName(): string {\n return this.remediation.name;\n }\n\n // Override this method to provide custom check\n canRemediate(): boolean {\n if (!this.map) {\n return false;\n }\n const required = getRequiredValues(this.remediation);\n const needed = required.find((key) => !this.hasData(key));\n if (needed) {\n return false; // missing data for a required field\n }\n return true; // all required fields have available data\n }\n\n // returns an object for the entire remediation form, or just a part\n getData(key?: string) {\n\n if (!key) {\n let allValues = getAllValues(this.remediation);\n let res = allValues.reduce((data, key) => {\n data[key] = this.getData(key); // recursive\n return data;\n }, {});\n return res;\n }\n\n // Map value by \"map${Property}\" function in each subClass\n if (typeof this[`map${titleCase(key)}`] === 'function') {\n return this[`map${titleCase(key)}`](\n this.remediation.value.find(({name}) => name === key)\n );\n }\n\n if (!this.map) {\n return this.values[key];\n }\n\n // Handle general primitive types\n const entry = this.map[key];\n if (!entry) {\n return this.values[key];\n }\n\n // find the first aliased property that returns a truthy value\n for (let i = 0; i < entry.length; i++) {\n let val = this.values[entry[i]];\n if (val) {\n return val;\n }\n }\n }\n\n hasData(\n key: string // idx name\n ): boolean \n {\n // no attempt to format, we want simple true/false\n\n // First see if the remediation has a mapping for this vale\n const data = this.getData(key);\n if (typeof data === 'object') {\n return !!Object.keys(data).find(key => !!data[key]);\n }\n return !!data;\n }\n\n getNextStep(): NextStep {\n const name = this.getName();\n const inputs = this.getInputs();\n const authenticator = this.getAuthenticator();\n // TODO: remove type field in the next major version change\n // https://oktainc.atlassian.net/browse/OKTA-431749\n const type = authenticator?.type;\n return { \n name, \n inputs, \n ...(type && { type }),\n ...(authenticator && { authenticator }),\n };\n }\n\n // Get inputs for the next step\n private getInputs(): Input[] {\n if (!this.map) {\n return [];\n }\n\n return Object.keys(this.map).reduce((inputs, key) => {\n const inputFromRemediation = this.remediation.value.find(item => item.name === key);\n if (!inputFromRemediation) {\n return inputs;\n }\n\n let input: Input;\n const aliases = this.map[key];\n const { type } = inputFromRemediation;\n if (typeof this[`getInput${titleCase(key)}`] === 'function') {\n input = this[`getInput${titleCase(key)}`](inputFromRemediation);\n } else if (type !== 'object') {\n // handle general primitive types\n let name;\n if (aliases.length === 1) {\n name = aliases[0];\n } else {\n // try find key from values\n name = aliases.find(name => Object.keys(this.values).includes(name));\n }\n if (name) {\n input = { ...inputFromRemediation, name };\n }\n } \n\n if (!input) {\n throw new AuthSdkError(`Missing custom getInput${titleCase(key)} method in Remediator: ${this.getName()}`);\n }\n\n if (Array.isArray(input)) {\n input.forEach(i => inputs.push(i));\n } else {\n inputs.push(input);\n }\n return inputs;\n }, []);\n }\n\n // Override this method to grab messages per remediation\n getMessages(): IdxMessage[] | undefined {\n if (!this.remediation.value) {\n return;\n }\n return this.remediation.value[0]?.form?.value.reduce((messages, field) => {\n if (field.messages) {\n messages = [...messages, ...field.messages.value];\n }\n return messages;\n }, []);\n }\n\n // Prepare values for the next remediation\n // In general, remove finished authenticator from list\n getValuesAfterProceed(): unknown {\n const authenticatorKey = this.getAuthenticator()?.key;\n const authenticators = (this.values.authenticators as Authenticator[])\n ?.filter(authenticator => authenticator.key !== authenticatorKey);\n return { ...this.values, authenticators };\n }\n\n protected getAuthenticator(): IdxAuthenticator | undefined {\n return this.remediation.relatesTo?.value;\n }\n\n}\n"],"file":"Remediator.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../../lib/idx/remediators/Base/Remediator.ts"],"names":["Remediator","constructor","remediation","values","formatAuthenticators","authenticators","authenticator","hasAuthenticatorInList","some","key","push","map","authenticatorsData","reduce","acc","Object","keys","length","getName","name","canRemediate","required","needed","find","hasData","getData","allValues","res","data","value","entry","i","val","getNextStep","_context","inputs","getInputs","getAuthenticator","type","inputFromRemediation","item","input","aliases","includes","AuthSdkError","Array","isArray","forEach","getMessages","form","messages","field","getValuesAfterProceed","relatesTo"],"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 complexity */\nimport { AuthSdkError } from '../../../errors';\nimport { NextStep, IdxMessage, Authenticator, Input, IdxOptions } from '../../types';\nimport { IdxAuthenticator, IdxRemediation, IdxContext } from '../../types/idx-js';\nimport { getAllValues, getRequiredValues, titleCase } from '../util';\n\n// A map from IDX data values (server spec) to RemediationValues (client spec)\nexport type IdxToRemediationValueMap = Record<string, string[]>;\n\nexport interface RemediationValues extends IdxOptions {\n stateHandle?: string;\n authenticators?: Authenticator[] | string[];\n authenticator?: string;\n authenticatorsData?: Authenticator[];\n}\n\n// Base class - DO NOT expose static remediationName\nexport class Remediator {\n static remediationName: string;\n\n remediation: IdxRemediation;\n values: RemediationValues;\n map?: IdxToRemediationValueMap;\n\n constructor(remediation: IdxRemediation, values: RemediationValues = {}) {\n // assign fields to the instance\n this.values = { ...values };\n this.formatAuthenticators();\n this.remediation = remediation;\n }\n\n private formatAuthenticators() {\n this.values.authenticators = (this.values.authenticators || []) as Authenticator[];\n // add string authenticator from input to \"authenticators\" field\n if (this.values.authenticator) {\n const hasAuthenticatorInList = this.values.authenticators.some(authenticator => {\n if (typeof authenticator === 'string') {\n return authenticator === this.values.authenticator;\n }\n return authenticator.key === this.values.authenticator;\n });\n if (!hasAuthenticatorInList) {\n this.values.authenticators.push({\n key: this.values.authenticator \n });\n }\n }\n\n // transform items in \"authenticators\" into one format\n this.values.authenticators = this.values.authenticators.map(authenticator => {\n return typeof authenticator === 'string' ? { key: authenticator } : authenticator;\n });\n\n // save non-key meta to \"authenticatorsData\" field\n // authenticators will be removed after selection to avoid select-authenticator loop\n this.values.authenticatorsData = this.values.authenticators.reduce((acc, authenticator) => {\n if (typeof authenticator === 'object' && Object.keys(authenticator).length > 1) {\n // save authenticator meta into authenticator data\n acc.push(authenticator);\n }\n return acc;\n }, this.values.authenticatorsData || []);\n }\n\n getName(): string {\n return this.remediation.name;\n }\n\n // Override this method to provide custom check\n canRemediate(): boolean {\n if (!this.map) {\n return false;\n }\n const required = getRequiredValues(this.remediation);\n const needed = required.find((key) => !this.hasData(key));\n if (needed) {\n return false; // missing data for a required field\n }\n return true; // all required fields have available data\n }\n\n // returns an object for the entire remediation form, or just a part\n getData(key?: string) {\n\n if (!key) {\n let allValues = getAllValues(this.remediation);\n let res = allValues.reduce((data, key) => {\n data[key] = this.getData(key); // recursive\n return data;\n }, {});\n return res;\n }\n\n // Map value by \"map${Property}\" function in each subClass\n if (typeof this[`map${titleCase(key)}`] === 'function') {\n return this[`map${titleCase(key)}`](\n this.remediation.value.find(({name}) => name === key)\n );\n }\n\n if (!this.map) {\n return this.values[key];\n }\n\n // Handle general primitive types\n const entry = this.map[key];\n if (!entry) {\n return this.values[key];\n }\n\n // find the first aliased property that returns a truthy value\n for (let i = 0; i < entry.length; i++) {\n let val = this.values[entry[i]];\n if (val) {\n return val;\n }\n }\n }\n\n hasData(\n key: string // idx name\n ): boolean \n {\n // no attempt to format, we want simple true/false\n\n // First see if the remediation has a mapping for this vale\n const data = this.getData(key);\n if (typeof data === 'object') {\n return !!Object.keys(data).find(key => !!data[key]);\n }\n return !!data;\n }\n\n getNextStep(_context?: IdxContext): NextStep {\n const name = this.getName();\n const inputs = this.getInputs();\n const authenticator = this.getAuthenticator();\n // TODO: remove type field in the next major version change\n // https://oktainc.atlassian.net/browse/OKTA-431749\n const type = authenticator?.type;\n return { \n name, \n inputs, \n ...(type && { type }),\n ...(authenticator && { authenticator }),\n };\n }\n\n // Get inputs for the next step\n private getInputs(): Input[] {\n if (!this.map) {\n return [];\n }\n\n return Object.keys(this.map).reduce((inputs, key) => {\n const inputFromRemediation = this.remediation.value.find(item => item.name === key);\n if (!inputFromRemediation) {\n return inputs;\n }\n\n let input: Input;\n const aliases = this.map[key];\n const { type } = inputFromRemediation;\n if (typeof this[`getInput${titleCase(key)}`] === 'function') {\n input = this[`getInput${titleCase(key)}`](inputFromRemediation);\n } else if (type !== 'object') {\n // handle general primitive types\n let name;\n if (aliases.length === 1) {\n name = aliases[0];\n } else {\n // try find key from values\n name = aliases.find(name => Object.keys(this.values).includes(name));\n }\n if (name) {\n input = { ...inputFromRemediation, name };\n }\n } \n\n if (!input) {\n throw new AuthSdkError(`Missing custom getInput${titleCase(key)} method in Remediator: ${this.getName()}`);\n }\n\n if (Array.isArray(input)) {\n input.forEach(i => inputs.push(i));\n } else {\n inputs.push(input);\n }\n return inputs;\n }, []);\n }\n\n static getMessages(remediation: IdxRemediation): IdxMessage[] | undefined {\n if (!remediation.value) {\n return;\n }\n return remediation.value[0]?.form?.value.reduce((messages, field) => {\n if (field.messages) {\n messages = [...messages, ...field.messages.value];\n }\n return messages;\n }, []);\n }\n\n // Prepare values for the next remediation\n // In general, remove used values from inputs for the current remediation\n // Override this method if special cases need be handled\n getValuesAfterProceed(): RemediationValues {\n const inputs = this.getInputs();\n for (const input of inputs) {\n delete this.values[input.name];\n }\n return this.values;\n }\n\n protected getAuthenticator(): IdxAuthenticator | undefined {\n return this.remediation.relatesTo?.value;\n }\n\n}\n"],"file":"Remediator.js"}
|
|
@@ -40,24 +40,11 @@ function findMatchedOption(authenticators, options) {
|
|
|
40
40
|
|
|
41
41
|
// Base class - DO NOT expose static remediationName
|
|
42
42
|
class SelectAuthenticator extends _Remediator.Remediator {
|
|
43
|
-
constructor(
|
|
44
|
-
super(
|
|
45
|
-
|
|
43
|
+
constructor(...args) {
|
|
44
|
+
super(...args);
|
|
46
45
|
(0, _defineProperty2.default)(this, "map", {
|
|
47
46
|
authenticator: []
|
|
48
47
|
});
|
|
49
|
-
const {
|
|
50
|
-
authenticator: selectedAuthenticator,
|
|
51
|
-
authenticators
|
|
52
|
-
} = this.values;
|
|
53
|
-
const hasSelectedAuthenticatorInList = authenticators === null || authenticators === void 0 ? void 0 : authenticators.some(authenticator => authenticator.key === selectedAuthenticator);
|
|
54
|
-
|
|
55
|
-
if (selectedAuthenticator && !hasSelectedAuthenticatorInList) {
|
|
56
|
-
// add selected authenticator to list
|
|
57
|
-
this.values.authenticators = [...(authenticators || []), {
|
|
58
|
-
key: selectedAuthenticator
|
|
59
|
-
}];
|
|
60
|
-
}
|
|
61
48
|
}
|
|
62
49
|
|
|
63
50
|
canRemediate() {
|
|
@@ -110,7 +97,9 @@ class SelectAuthenticator extends _Remediator.Remediator {
|
|
|
110
97
|
const {
|
|
111
98
|
options
|
|
112
99
|
} = remediationValue;
|
|
113
|
-
const selectedOption = findMatchedOption(authenticators, options);
|
|
100
|
+
const selectedOption = findMatchedOption(authenticators, options); // track the selected authenticator
|
|
101
|
+
|
|
102
|
+
this.selectedAuthenticator = selectedOption.relatesTo;
|
|
114
103
|
return {
|
|
115
104
|
id: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value.form.value.find(({
|
|
116
105
|
name
|
|
@@ -125,6 +114,17 @@ class SelectAuthenticator extends _Remediator.Remediator {
|
|
|
125
114
|
};
|
|
126
115
|
}
|
|
127
116
|
|
|
117
|
+
getValuesAfterProceed() {
|
|
118
|
+
this.values = super.getValuesAfterProceed(); // remove used authenticators
|
|
119
|
+
|
|
120
|
+
const authenticators = this.values.authenticators.filter(authenticator => {
|
|
121
|
+
return authenticator.key !== this.selectedAuthenticator.key;
|
|
122
|
+
});
|
|
123
|
+
return { ...this.values,
|
|
124
|
+
authenticators
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
exports.SelectAuthenticator = SelectAuthenticator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../lib/idx/remediators/Base/SelectAuthenticator.ts"],"names":["findMatchedOption","authenticators","options","option","authenticator","find","relatesTo","key","SelectAuthenticator","Remediator","
|
|
1
|
+
{"version":3,"sources":["../../../../../lib/idx/remediators/Base/SelectAuthenticator.ts"],"names":["findMatchedOption","authenticators","options","option","authenticator","find","relatesTo","key","SelectAuthenticator","Remediator","canRemediate","values","authenticatorFromRemediation","remediation","length","matchedOption","getNextStep","common","map","label","value","mapAuthenticator","remediationValue","selectedOption","selectedAuthenticator","id","form","name","getInputAuthenticator","getValuesAfterProceed","filter"],"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\nimport { Remediator, RemediationValues } from './Remediator';\nimport { getAuthenticatorFromRemediation } from '../util';\nimport { IdxAuthenticator, IdxRemediationValue } from '../../types/idx-js';\nimport { Authenticator } from '../../types';\n\n// Find matched authenticator in provided order\nfunction findMatchedOption(authenticators, options) {\n let option;\n for (let authenticator of authenticators) {\n option = options\n .find(({ relatesTo }) => relatesTo.key === authenticator.key);\n if (option) {\n break;\n }\n }\n return option;\n}\n\nexport type SelectAuthenticatorValues = RemediationValues & {\n authenticator?: string;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class SelectAuthenticator extends Remediator {\n values: SelectAuthenticatorValues;\n selectedAuthenticator: IdxAuthenticator;\n \n map = {\n authenticator: []\n }\n\n canRemediate() {\n const { authenticators } = this.values;\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n const { options } = authenticatorFromRemediation;\n // Let users select authenticator if no input is provided\n if (!authenticators || !authenticators.length) {\n return false;\n }\n // Proceed with provided authenticators\n const matchedOption = findMatchedOption(authenticators, options);\n if (matchedOption) {\n return true;\n }\n \n return false;\n }\n\n getNextStep() {\n const common = super.getNextStep();\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n const options = authenticatorFromRemediation.options.map(option => {\n const { \n label, \n relatesTo: { key } \n } = option;\n return { label, value: key };\n });\n return { ...common, options };\n }\n\n mapAuthenticator(remediationValue: IdxRemediationValue) {\n const { authenticators } = this.values;\n const { options } = remediationValue;\n const selectedOption = findMatchedOption(authenticators, options);\n // track the selected authenticator\n this.selectedAuthenticator = selectedOption.relatesTo;\n return {\n id: selectedOption?.value.form.value.find(({ name }) => name === 'id').value\n };\n }\n\n getInputAuthenticator() {\n return { name: 'authenticator', key: 'string' };\n }\n\n getValuesAfterProceed(): RemediationValues {\n this.values = super.getValuesAfterProceed();\n // remove used authenticators\n const authenticators = (this.values.authenticators as Authenticator[])\n .filter(authenticator => {\n return authenticator.key !== this.selectedAuthenticator.key; \n });\n return { ...this.values, authenticators };\n }\n\n}\n"],"file":"SelectAuthenticator.js"}
|
|
@@ -8,6 +8,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
8
8
|
|
|
9
9
|
var _Remediator = require("./Remediator");
|
|
10
10
|
|
|
11
|
+
var _authenticator = require("../../authenticator");
|
|
12
|
+
|
|
11
13
|
/*!
|
|
12
14
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
13
15
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -21,46 +23,24 @@ var _Remediator = require("./Remediator");
|
|
|
21
23
|
*/
|
|
22
24
|
// Base class - DO NOT expose static remediationName
|
|
23
25
|
class VerifyAuthenticator extends _Remediator.Remediator {
|
|
24
|
-
constructor(
|
|
25
|
-
super(
|
|
26
|
+
constructor(remediation, values = {}) {
|
|
27
|
+
super(remediation, values);
|
|
26
28
|
(0, _defineProperty2.default)(this, "map", {
|
|
27
29
|
'credentials': []
|
|
28
30
|
});
|
|
31
|
+
this.authenticator = (0, _authenticator.getAuthenticator)(remediation);
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
canRemediate() {
|
|
32
|
-
return
|
|
35
|
+
return this.authenticator.canVerify(this.values);
|
|
33
36
|
}
|
|
34
37
|
|
|
35
38
|
mapCredentials() {
|
|
36
|
-
return
|
|
37
|
-
passcode: this.values.verificationCode || this.values.password
|
|
38
|
-
};
|
|
39
|
+
return this.authenticator.mapCredentials(this.values);
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
getInputCredentials(input) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const challengeType = this.getAuthenticator().type;
|
|
45
|
-
const name = challengeType === 'password' ? 'password' : 'verificationCode';
|
|
46
|
-
return { ...((_input$form = input.form) === null || _input$form === void 0 ? void 0 : _input$form.value[0]),
|
|
47
|
-
name,
|
|
48
|
-
type: 'string',
|
|
49
|
-
required: input.required
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
getValuesAfterProceed() {
|
|
54
|
-
let values = super.getValuesAfterProceed();
|
|
55
|
-
const authenticator = this.getAuthenticator();
|
|
56
|
-
|
|
57
|
-
if (authenticator.type === 'password') {
|
|
58
|
-
delete values.password;
|
|
59
|
-
} else {
|
|
60
|
-
delete values.verificationCode;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return values;
|
|
43
|
+
return this.authenticator.getInputs(input);
|
|
64
44
|
}
|
|
65
45
|
|
|
66
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../lib/idx/remediators/Base/VerifyAuthenticator.ts"],"names":["VerifyAuthenticator","Remediator","
|
|
1
|
+
{"version":3,"sources":["../../../../../lib/idx/remediators/Base/VerifyAuthenticator.ts"],"names":["VerifyAuthenticator","Remediator","constructor","remediation","values","authenticator","canRemediate","canVerify","mapCredentials","getInputCredentials","input","getInputs"],"mappings":";;;;;;;;AAaA;;AACA;;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAeA;AACO,MAAMA,mBAAN,SAAkCC,sBAAlC,CAA6C;AASlDC,EAAAA,WAAW,CAACC,WAAD,EAA8BC,MAAyB,GAAG,EAA1D,EAA8D;AACvE,UAAMD,WAAN,EAAmBC,MAAnB;AADuE,+CAJnE;AACJ,qBAAe;AADX,KAImE;AAEvE,SAAKC,aAAL,GAAqB,qCAAiBF,WAAjB,CAArB;AACD;;AAEDG,EAAAA,YAAY,GAAG;AACb,WAAO,KAAKD,aAAL,CAAmBE,SAAnB,CAA6B,KAAKH,MAAlC,CAAP;AACD;;AAEDI,EAAAA,cAAc,GAAG;AACf,WAAO,KAAKH,aAAL,CAAmBG,cAAnB,CAAkC,KAAKJ,MAAvC,CAAP;AACD;;AAEDK,EAAAA,mBAAmB,CAACC,KAAD,EAAQ;AACzB,WAAO,KAAKL,aAAL,CAAmBM,SAAnB,CAA6BD,KAA7B,CAAP;AACD;;AAxBiD","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 { getAuthenticator, Authenticator } from '../../authenticator';\nimport { IdxRemediation } from '../../types/idx-js';\n\nexport interface VerifyAuthenticatorValues extends RemediationValues {\n verificationCode?: string;\n password?: string;\n questionKey?: string;\n question?: string;\n answer?: string;\n}\n\n// Base class - DO NOT expose static remediationName\nexport class VerifyAuthenticator extends Remediator {\n\n authenticator: Authenticator;\n values: VerifyAuthenticatorValues;\n\n map = {\n 'credentials': []\n };\n\n constructor(remediation: IdxRemediation, values: RemediationValues = {}) {\n super(remediation, values);\n this.authenticator = getAuthenticator(remediation);\n }\n\n canRemediate() {\n return this.authenticator.canVerify(this.values);\n }\n\n mapCredentials() {\n return this.authenticator.mapCredentials(this.values);\n }\n\n getInputCredentials(input) {\n return this.authenticator.getInputs(input);\n }\n\n}\n"],"file":"VerifyAuthenticator.js"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.ChallengePoll = void 0;
|
|
6
|
+
|
|
7
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
+
|
|
9
|
+
var _EnrollPoll = require("./EnrollPoll");
|
|
2
10
|
|
|
3
11
|
/*!
|
|
4
12
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
@@ -11,28 +19,8 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
11
19
|
*
|
|
12
20
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
13
21
|
*/
|
|
14
|
-
|
|
15
|
-
export class RedirectIdp extends Remediator {
|
|
16
|
-
canRemediate() {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
getNextStep() {
|
|
21
|
-
var {
|
|
22
|
-
name,
|
|
23
|
-
type,
|
|
24
|
-
idp,
|
|
25
|
-
href
|
|
26
|
-
} = this.remediation;
|
|
27
|
-
return {
|
|
28
|
-
name,
|
|
29
|
-
type,
|
|
30
|
-
idp,
|
|
31
|
-
href
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
}
|
|
22
|
+
class ChallengePoll extends _EnrollPoll.EnrollPoll {}
|
|
36
23
|
|
|
37
|
-
|
|
38
|
-
|
|
24
|
+
exports.ChallengePoll = ChallengePoll;
|
|
25
|
+
(0, _defineProperty2.default)(ChallengePoll, "remediationName", 'challenge-poll');
|
|
26
|
+
//# sourceMappingURL=ChallengePoll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../lib/idx/remediators/ChallengePoll.ts"],"names":["ChallengePoll","EnrollPoll"],"mappings":";;;;;;;;AAYA;;AAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIO,MAAMA,aAAN,SAA4BC,sBAA5B,CAAsC;;;8BAAhCD,a,qBACc,gB","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\nimport { EnrollPoll } from './EnrollPoll';\n\nexport class ChallengePoll extends EnrollPoll{\n static remediationName = 'challenge-poll';\n}\n"],"file":"ChallengePoll.js"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.EnrollPoll = void 0;
|
|
6
|
+
|
|
7
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
+
|
|
9
|
+
var _Remediator = require("./Base/Remediator");
|
|
10
|
+
|
|
11
|
+
/*!
|
|
12
|
+
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
13
|
+
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
14
|
+
*
|
|
15
|
+
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
16
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
17
|
+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
18
|
+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
+
*
|
|
20
|
+
* See the License for the specific language governing permissions and limitations under the License.
|
|
21
|
+
*/
|
|
22
|
+
class EnrollPoll extends _Remediator.Remediator {
|
|
23
|
+
canRemediate() {
|
|
24
|
+
return Boolean(this.values.startPolling);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getNextStep(context) {
|
|
28
|
+
const name = this.getName();
|
|
29
|
+
let authenticator = this.getAuthenticator();
|
|
30
|
+
|
|
31
|
+
if (!authenticator && context !== null && context !== void 0 && context.currentAuthenticator) {
|
|
32
|
+
authenticator = context.currentAuthenticator.value;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
name,
|
|
37
|
+
authenticator,
|
|
38
|
+
poll: {
|
|
39
|
+
required: true,
|
|
40
|
+
refresh: this.remediation.refresh
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
getValuesAfterProceed() {
|
|
46
|
+
let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'startPolling');
|
|
47
|
+
return trimmedValues.reduce((values, valueKey) => ({ ...values,
|
|
48
|
+
[valueKey]: this.values[valueKey]
|
|
49
|
+
}), {});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
exports.EnrollPoll = EnrollPoll;
|
|
55
|
+
(0, _defineProperty2.default)(EnrollPoll, "remediationName", 'enroll-poll');
|
|
56
|
+
//# sourceMappingURL=EnrollPoll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../lib/idx/remediators/EnrollPoll.ts"],"names":["EnrollPoll","Remediator","canRemediate","Boolean","values","startPolling","getNextStep","context","name","getName","authenticator","getAuthenticator","currentAuthenticator","value","poll","required","refresh","remediation","getValuesAfterProceed","trimmedValues","Object","keys","filter","valueKey","reduce"],"mappings":";;;;;;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAWO,MAAMA,UAAN,SAAyBC,sBAAzB,CAAoC;AAKzCC,EAAAA,YAAY,GAAG;AACb,WAAOC,OAAO,CAAC,KAAKC,MAAL,CAAYC,YAAb,CAAd;AACD;;AAEDC,EAAAA,WAAW,CAACC,OAAD,EAAiC;AAC1C,UAAMC,IAAI,GAAG,KAAKC,OAAL,EAAb;AACA,QAAIC,aAAa,GAAG,KAAKC,gBAAL,EAApB;;AACA,QAAI,CAACD,aAAD,IAAkBH,OAAlB,aAAkBA,OAAlB,eAAkBA,OAAO,CAAEK,oBAA/B,EAAqD;AACnDF,MAAAA,aAAa,GAAGH,OAAO,CAACK,oBAAR,CAA6BC,KAA7C;AACD;;AACD,WAAO;AACLL,MAAAA,IADK;AAELE,MAAAA,aAFK;AAGLI,MAAAA,IAAI,EAAE;AACJC,QAAAA,QAAQ,EAAE,IADN;AAEJC,QAAAA,OAAO,EAAE,KAAKC,WAAL,CAAiBD;AAFtB;AAHD,KAAP;AAQD;;AAEDE,EAAAA,qBAAqB,GAAY;AAC/B,QAAIC,aAAa,GAAGC,MAAM,CAACC,IAAP,CAAY,KAAKjB,MAAjB,EAAyBkB,MAAzB,CAAgCC,QAAQ,IAAIA,QAAQ,KAAK,cAAzD,CAApB;AACA,WAAOJ,aAAa,CAACK,MAAd,CAAqB,CAACpB,MAAD,EAASmB,QAAT,MAAuB,EAAC,GAAGnB,MAAJ;AAAY,OAACmB,QAAD,GAAY,KAAKnB,MAAL,CAAYmB,QAAZ;AAAxB,KAAvB,CAArB,EAA6F,EAA7F,CAAP;AACD;;AA5BwC;;;8BAA9BvB,U,qBACc,a","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 './Base/Remediator';\nimport { NextStep } from '../../types';\nimport { IdxContext } from '../types/idx-js';\n\nexport interface EnrollPollValues extends RemediationValues {\n startPolling?: boolean;\n}\n\nexport class EnrollPoll extends Remediator {\n static remediationName = 'enroll-poll';\n\n values: EnrollPollValues;\n\n canRemediate() {\n return Boolean(this.values.startPolling);\n }\n\n getNextStep(context?: IdxContext): NextStep {\n const name = this.getName();\n let authenticator = this.getAuthenticator();\n if (!authenticator && context?.currentAuthenticator) {\n authenticator = context.currentAuthenticator.value;\n }\n return {\n name,\n authenticator,\n poll: {\n required: true,\n refresh: this.remediation.refresh\n },\n };\n }\n\n getValuesAfterProceed(): unknown {\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'startPolling');\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n"],"file":"EnrollPoll.js"}
|
|
@@ -8,8 +8,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
8
8
|
|
|
9
9
|
var _Remediator = require("./Base/Remediator");
|
|
10
10
|
|
|
11
|
-
var _types = require("../types");
|
|
12
|
-
|
|
13
11
|
/*!
|
|
14
12
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
15
13
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -22,26 +20,13 @@ var _types = require("../types");
|
|
|
22
20
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
23
21
|
*/
|
|
24
22
|
class Identify extends _Remediator.Remediator {
|
|
25
|
-
constructor(
|
|
26
|
-
super(
|
|
27
|
-
|
|
23
|
+
constructor(...args) {
|
|
24
|
+
super(...args);
|
|
28
25
|
(0, _defineProperty2.default)(this, "map", {
|
|
29
26
|
'identifier': ['username'],
|
|
30
|
-
'credentials': []
|
|
27
|
+
'credentials': [],
|
|
28
|
+
'rememberMe': ['rememberMe']
|
|
31
29
|
});
|
|
32
|
-
const {
|
|
33
|
-
password,
|
|
34
|
-
authenticators
|
|
35
|
-
} = this.values;
|
|
36
|
-
|
|
37
|
-
if (password && !authenticators.some(authenticator => authenticator.type === 'password')) {
|
|
38
|
-
this.values = { ...this.values,
|
|
39
|
-
authenticators: [{
|
|
40
|
-
type: 'password',
|
|
41
|
-
key: _types.AuthenticatorKey.OKTA_PASSWORD
|
|
42
|
-
}, ...authenticators]
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
30
|
}
|
|
46
31
|
|
|
47
32
|
canRemediate() {
|
|
@@ -64,23 +49,6 @@ class Identify extends _Remediator.Remediator {
|
|
|
64
49
|
};
|
|
65
50
|
}
|
|
66
51
|
|
|
67
|
-
getValuesAfterProceed() {
|
|
68
|
-
// Handle username + password scenario
|
|
69
|
-
// remove "password" from authenticator array when remediation is finished
|
|
70
|
-
if (this.remediation.value.some(({
|
|
71
|
-
name
|
|
72
|
-
}) => name === 'credentials')) {
|
|
73
|
-
var _this$values$authenti;
|
|
74
|
-
|
|
75
|
-
const authenticators = (_this$values$authenti = this.values.authenticators) === null || _this$values$authenti === void 0 ? void 0 : _this$values$authenti.filter(authenticator => authenticator.key !== _types.AuthenticatorKey.OKTA_PASSWORD);
|
|
76
|
-
return { ...this.values,
|
|
77
|
-
authenticators
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return super.getValuesAfterProceed();
|
|
82
|
-
}
|
|
83
|
-
|
|
84
52
|
}
|
|
85
53
|
|
|
86
54
|
exports.Identify = Identify;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../lib/idx/remediators/Identify.ts"],"names":["Identify","Remediator","
|
|
1
|
+
{"version":3,"sources":["../../../../lib/idx/remediators/Identify.ts"],"names":["Identify","Remediator","canRemediate","identifier","getData","mapCredentials","passcode","values","password","getInputCredentials","input","form","value","name","required"],"mappings":";;;;;;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUO,MAAMA,QAAN,SAAuBC,sBAAvB,CAAkC;AAAA;AAAA;AAAA,+CAKjC;AACJ,oBAAc,CAAC,UAAD,CADV;AAEJ,qBAAe,EAFX;AAGJ,oBAAc,CAAC,YAAD;AAHV,KALiC;AAAA;;AAWvCC,EAAAA,YAAY,GAAG;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAiB,KAAKC,OAAL,EAAvB;AACA,WAAO,CAAC,CAACD,UAAT;AACD;;AAEDE,EAAAA,cAAc,GAAG;AACf,WAAO;AAAEC,MAAAA,QAAQ,EAAE,KAAKC,MAAL,CAAYC;AAAxB,KAAP;AACD;;AAEDC,EAAAA,mBAAmB,CAACC,KAAD,EAAQ;AACzB,WAAO,EACL,GAAGA,KAAK,CAACC,IAAN,CAAWC,KAAX,CAAiB,CAAjB,CADE;AAELC,MAAAA,IAAI,EAAE,UAFD;AAGLC,MAAAA,QAAQ,EAAEJ,KAAK,CAACI;AAHX,KAAP;AAKD;;AA1BsC;;;8BAA5Bd,Q,qBACc,U","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 './Base/Remediator';\n\nexport interface IdentifyValues extends RemediationValues {\n username?: string;\n password?: string;\n}\n\nexport class Identify extends Remediator {\n static remediationName = 'identify';\n\n values: IdentifyValues;\n\n map = {\n 'identifier': ['username'],\n 'credentials': [],\n 'rememberMe': ['rememberMe'],\n };\n\n canRemediate() {\n const { identifier } = this.getData();\n return !!identifier;\n }\n\n mapCredentials() {\n return { passcode: this.values.password };\n }\n\n getInputCredentials(input) {\n return {\n ...input.form.value[0],\n name: 'password',\n required: input.required\n };\n }\n\n}\n"],"file":"Identify.js"}
|
|
@@ -6,7 +6,11 @@ exports.SelectAuthenticatorAuthenticate = void 0;
|
|
|
6
6
|
|
|
7
7
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
8
|
|
|
9
|
-
var _SelectAuthenticator = require("
|
|
9
|
+
var _SelectAuthenticator = require("./Base/SelectAuthenticator");
|
|
10
|
+
|
|
11
|
+
var _util = require("./util");
|
|
12
|
+
|
|
13
|
+
var _types = require("../types");
|
|
10
14
|
|
|
11
15
|
/*!
|
|
12
16
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
@@ -19,7 +23,24 @@ var _SelectAuthenticator = require(".//Base/SelectAuthenticator");
|
|
|
19
23
|
*
|
|
20
24
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
21
25
|
*/
|
|
22
|
-
class SelectAuthenticatorAuthenticate extends _SelectAuthenticator.SelectAuthenticator {
|
|
26
|
+
class SelectAuthenticatorAuthenticate extends _SelectAuthenticator.SelectAuthenticator {
|
|
27
|
+
constructor(remediation, values = {}) {
|
|
28
|
+
var _getAuthenticatorFrom;
|
|
29
|
+
|
|
30
|
+
super(remediation, values); // Preset password authenticator to trigger recover action
|
|
31
|
+
|
|
32
|
+
const hasPasswordInOptions = (_getAuthenticatorFrom = (0, _util.getAuthenticatorFromRemediation)(remediation).options) === null || _getAuthenticatorFrom === void 0 ? void 0 : _getAuthenticatorFrom.some(({
|
|
33
|
+
relatesTo
|
|
34
|
+
}) => relatesTo.key === _types.AuthenticatorKey.OKTA_PASSWORD);
|
|
35
|
+
|
|
36
|
+
if (hasPasswordInOptions && (this.values.flow === 'recoverPassword' || this.values.password)) {
|
|
37
|
+
this.values.authenticators = [...this.values.authenticators, {
|
|
38
|
+
key: _types.AuthenticatorKey.OKTA_PASSWORD
|
|
39
|
+
}];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
}
|
|
23
44
|
|
|
24
45
|
exports.SelectAuthenticatorAuthenticate = SelectAuthenticatorAuthenticate;
|
|
25
46
|
(0, _defineProperty2.default)(SelectAuthenticatorAuthenticate, "remediationName", 'select-authenticator-authenticate');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../lib/idx/remediators/SelectAuthenticatorAuthenticate.ts"],"names":["SelectAuthenticatorAuthenticate","SelectAuthenticator"],"mappings":";;;;;;;;AAaA;;
|
|
1
|
+
{"version":3,"sources":["../../../../lib/idx/remediators/SelectAuthenticatorAuthenticate.ts"],"names":["SelectAuthenticatorAuthenticate","SelectAuthenticator","constructor","remediation","values","hasPasswordInOptions","options","some","relatesTo","key","AuthenticatorKey","OKTA_PASSWORD","flow","password","authenticators"],"mappings":";;;;;;;;AAaA;;AACA;;AAEA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYO,MAAMA,+BAAN,SAA8CC,wCAA9C,CAAkE;AAIvEC,EAAAA,WAAW,CAACC,WAAD,EAA8BC,MAAiC,GAAG,EAAlE,EAAsE;AAAA;;AAC/E,UAAMD,WAAN,EAAmBC,MAAnB,EAD+E,CAG/E;;AACA,UAAMC,oBAAoB,4BAAG,2CAAgCF,WAAhC,EAC1BG,OADuB,0DAAG,sBACjBC,IADiB,CACZ,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAmBA,SAAS,CAACC,GAAV,KAAkBC,wBAAiBC,aAD1C,CAA7B;;AAEA,QAAIN,oBAAoB,KAAK,KAAKD,MAAL,CAAYQ,IAAZ,KAAqB,iBAArB,IAA0C,KAAKR,MAAL,CAAYS,QAA3D,CAAxB,EAA8F;AAC5F,WAAKT,MAAL,CAAYU,cAAZ,GAA6B,CAC3B,GAAG,KAAKV,MAAL,CAAYU,cADY,EAE3B;AAAEL,QAAAA,GAAG,EAAEC,wBAAiBC;AAAxB,OAF2B,CAA7B;AAID;AACF;;AAhBsE;;;8BAA5DX,+B,qBACc,mC","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 { SelectAuthenticator, SelectAuthenticatorValues } from './Base/SelectAuthenticator';\nimport { getAuthenticatorFromRemediation } from './util';\nimport { IdxRemediation } from '../types/idx-js';\nimport { AuthenticatorKey, Authenticator } from '../types';\n\nexport type SelectAuthenticatorAuthenticateValues = SelectAuthenticatorValues & {\n password?: string;\n};\n\nexport class SelectAuthenticatorAuthenticate extends SelectAuthenticator {\n static remediationName = 'select-authenticator-authenticate';\n values: SelectAuthenticatorAuthenticateValues;\n\n constructor(remediation: IdxRemediation, values: SelectAuthenticatorValues = {}) {\n super(remediation, values);\n\n // Preset password authenticator to trigger recover action\n const hasPasswordInOptions = getAuthenticatorFromRemediation(remediation)\n .options?.some(({ relatesTo }) => relatesTo.key === AuthenticatorKey.OKTA_PASSWORD);\n if (hasPasswordInOptions && (this.values.flow === 'recoverPassword' || this.values.password)) {\n this.values.authenticators = [\n ...this.values.authenticators,\n { key: AuthenticatorKey.OKTA_PASSWORD }\n ] as Authenticator[];\n }\n }\n}\n"],"file":"SelectAuthenticatorAuthenticate.js"}
|
|
@@ -20,6 +20,13 @@ var _Remediator = require("./Base/Remediator");
|
|
|
20
20
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
21
21
|
*/
|
|
22
22
|
class Skip extends _Remediator.Remediator {
|
|
23
|
+
constructor(...args) {
|
|
24
|
+
super(...args);
|
|
25
|
+
(0, _defineProperty2.default)(this, "map", {
|
|
26
|
+
skip: ['skip']
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
23
30
|
canRemediate() {
|
|
24
31
|
return !!this.values.skip;
|
|
25
32
|
}
|