@okta/okta-auth-js 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +5 -4
- package/cjs/AuthStateManager.js +9 -2
- package/cjs/AuthStateManager.js.map +1 -1
- package/cjs/OktaAuth.js +67 -27
- package/cjs/OktaAuth.js.map +1 -1
- package/cjs/OktaUserAgent.js +2 -2
- package/cjs/PromiseQueue.js +5 -1
- package/cjs/PromiseQueue.js.map +1 -1
- package/cjs/SavedObject.js +4 -2
- package/cjs/SavedObject.js.map +1 -1
- package/cjs/StorageManager.js +13 -8
- package/cjs/StorageManager.js.map +1 -1
- package/cjs/TokenManager.js +29 -19
- package/cjs/TokenManager.js.map +1 -1
- package/cjs/TransactionManager.js +9 -3
- package/cjs/TransactionManager.js.map +1 -1
- package/cjs/browser/browserStorage.js +18 -9
- package/cjs/browser/browserStorage.js.map +1 -1
- package/cjs/browser/fingerprint.js +9 -3
- package/cjs/browser/fingerprint.js.map +1 -1
- package/cjs/builderUtil.js +4 -2
- package/cjs/builderUtil.js.map +1 -1
- package/cjs/clock.js +5 -1
- package/cjs/clock.js.map +1 -1
- package/cjs/crypto/base64.js +18 -0
- package/cjs/crypto/base64.js.map +1 -1
- package/cjs/crypto/index.js +6 -4
- package/cjs/crypto/index.js.map +1 -1
- package/cjs/crypto/oidcHash.js +5 -1
- package/cjs/crypto/oidcHash.js.map +1 -1
- package/cjs/crypto/webauthn.js +101 -0
- package/cjs/crypto/webauthn.js.map +1 -0
- package/cjs/crypto/webcrypto.js +3 -1
- package/cjs/crypto/webcrypto.js.map +1 -1
- package/cjs/errors/AuthApiError.js +1 -1
- package/cjs/errors/AuthPollStopError.js +1 -1
- package/cjs/errors/AuthSdkError.js +1 -1
- package/cjs/errors/CustomError.js +5 -1
- package/cjs/errors/CustomError.js.map +1 -1
- package/cjs/errors/OAuthError.js +1 -1
- package/cjs/errors/index.js +1 -1
- package/cjs/fetch/fetchRequest.js +18 -6
- package/cjs/fetch/fetchRequest.js.map +1 -1
- package/cjs/http/headers.js.map +1 -1
- package/cjs/http/index.js +4 -2
- package/cjs/http/index.js.map +1 -1
- package/cjs/http/request.js +9 -5
- package/cjs/http/request.js.map +1 -1
- package/cjs/idx/authenticate.js.map +1 -1
- package/cjs/idx/authenticator/Authenticator.js.map +1 -1
- package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +1 -1
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -1
- package/cjs/idx/authenticator/SecurityQuestionVerification.js +1 -1
- package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -1
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +1 -1
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -1
- package/cjs/idx/authenticator/WebauthnEnrollment.js +46 -0
- package/cjs/idx/authenticator/WebauthnEnrollment.js.map +1 -0
- package/cjs/idx/authenticator/WebauthnVerification.js +55 -0
- package/cjs/idx/authenticator/WebauthnVerification.js.map +1 -0
- package/cjs/idx/authenticator/getAuthenticator.js +13 -1
- package/cjs/idx/authenticator/getAuthenticator.js.map +1 -1
- package/cjs/idx/authenticator/index.js +34 -6
- package/cjs/idx/authenticator/index.js.map +1 -1
- package/cjs/idx/cancel.js.map +1 -1
- package/cjs/idx/emailVerify.js +1 -1
- package/cjs/idx/emailVerify.js.map +1 -1
- package/cjs/idx/flow/AccountUnlockFlow.js +30 -0
- package/cjs/idx/flow/AccountUnlockFlow.js.map +1 -0
- package/cjs/idx/flow/FlowSpecification.js +8 -0
- package/cjs/idx/flow/FlowSpecification.js.map +1 -1
- package/cjs/idx/flow/PasswordRecoveryFlow.js +4 -1
- package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -1
- package/cjs/idx/flow/index.js +20 -5
- package/cjs/idx/flow/index.js.map +1 -1
- package/cjs/idx/handleInteractionCodeRedirect.js +5 -1
- package/cjs/idx/handleInteractionCodeRedirect.js.map +1 -1
- package/cjs/idx/headers.js +21 -5
- package/cjs/idx/headers.js.map +1 -1
- package/cjs/idx/idx-js/client.js +91 -0
- package/cjs/idx/idx-js/client.js.map +1 -0
- package/cjs/idx/idx-js/index.js +162 -0
- package/cjs/idx/idx-js/index.js.map +1 -0
- package/cjs/idx/idx-js/interact.js +83 -0
- package/cjs/idx/idx-js/interact.js.map +1 -0
- package/cjs/idx/idx-js/introspect.js +58 -0
- package/cjs/idx/idx-js/introspect.js.map +1 -0
- package/cjs/idx/idx-js/parsers.js +41 -0
- package/cjs/idx/idx-js/parsers.js.map +1 -0
- package/cjs/idx/idx-js/util.js +34 -0
- package/cjs/idx/idx-js/util.js.map +1 -0
- package/cjs/idx/idx-js/v1/actionParser.js +90 -0
- package/cjs/idx/idx-js/v1/actionParser.js.map +1 -0
- package/cjs/idx/idx-js/v1/generateIdxAction.js +117 -0
- package/cjs/idx/idx-js/v1/generateIdxAction.js.map +1 -0
- package/cjs/idx/idx-js/v1/idxResponseParser.js +137 -0
- package/cjs/idx/idx-js/v1/idxResponseParser.js.map +1 -0
- package/cjs/idx/idx-js/v1/makeIdxState.js +64 -0
- package/cjs/idx/idx-js/v1/makeIdxState.js.map +1 -0
- package/cjs/idx/idx-js/v1/parsers.js +24 -0
- package/cjs/idx/idx-js/v1/parsers.js.map +1 -0
- package/cjs/idx/idx-js/v1/remediationParser.js +32 -0
- package/cjs/idx/idx-js/v1/remediationParser.js.map +1 -0
- package/cjs/idx/index.js +120 -121
- package/cjs/idx/index.js.map +1 -1
- package/cjs/idx/interact.js +9 -4
- package/cjs/idx/interact.js.map +1 -1
- package/cjs/idx/introspect.js +6 -6
- package/cjs/idx/introspect.js.map +1 -1
- package/cjs/idx/poll.js +13 -3
- package/cjs/idx/poll.js.map +1 -1
- package/cjs/idx/proceed.js.map +1 -1
- package/cjs/idx/recoverPassword.js.map +1 -1
- package/cjs/idx/register.js +5 -1
- package/cjs/idx/register.js.map +1 -1
- package/cjs/idx/remediate.js +60 -29
- package/cjs/idx/remediate.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +10 -4
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorVerificationData.js +10 -6
- package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
- package/cjs/idx/remediators/Base/AuthenticatorData.js +28 -12
- package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
- package/cjs/idx/remediators/Base/Remediator.js +65 -31
- package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
- package/cjs/idx/remediators/Base/SelectAuthenticator.js +42 -27
- package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js +16 -4
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/ChallengeAuthenticator.js +2 -2
- package/cjs/idx/remediators/ChallengePoll.js +2 -2
- package/cjs/idx/remediators/EnrollAuthenticator.js +2 -2
- package/cjs/idx/remediators/EnrollPoll.js +16 -6
- package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
- package/cjs/idx/remediators/EnrollProfile.js +20 -8
- package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
- package/cjs/idx/remediators/EnrollmentChannelData.js +25 -9
- package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
- package/cjs/idx/remediators/Identify.js +5 -3
- package/cjs/idx/remediators/Identify.js.map +1 -1
- package/cjs/idx/remediators/ReEnrollAuthenticator.js +5 -3
- package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/RedirectIdp.js +2 -2
- package/cjs/idx/remediators/ResetAuthenticator.js +2 -2
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +6 -4
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorEnroll.js +2 -2
- package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js +72 -0
- package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -0
- package/cjs/idx/remediators/SelectEnrollProfile.js +2 -2
- package/cjs/idx/remediators/SelectEnrollmentChannel.js +22 -10
- package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
- package/cjs/idx/remediators/Skip.js +5 -3
- package/cjs/idx/remediators/Skip.js.map +1 -1
- package/cjs/idx/remediators/index.js +33 -18
- package/cjs/idx/remediators/index.js.map +1 -1
- package/cjs/idx/remediators/util.js +13 -3
- package/cjs/idx/remediators/util.js.map +1 -1
- package/cjs/idx/run.js +30 -6
- package/cjs/idx/run.js.map +1 -1
- package/cjs/idx/startTransaction.js.map +1 -1
- package/cjs/idx/transactionMeta.js.map +1 -1
- package/cjs/idx/types/idx-js.js.map +1 -1
- package/cjs/idx/types/index.js +45 -9
- package/cjs/idx/types/index.js.map +1 -1
- package/cjs/idx/unlockAccount.js +48 -0
- package/cjs/idx/unlockAccount.js.map +1 -0
- package/cjs/index.js +20 -14
- package/cjs/index.js.map +1 -1
- package/cjs/oidc/endpoints/authorize.js +8 -2
- package/cjs/oidc/endpoints/authorize.js.map +1 -1
- package/cjs/oidc/endpoints/index.js +5 -3
- package/cjs/oidc/endpoints/index.js.map +1 -1
- package/cjs/oidc/endpoints/token.js +15 -3
- package/cjs/oidc/endpoints/token.js.map +1 -1
- package/cjs/oidc/endpoints/well-known.js +7 -3
- package/cjs/oidc/endpoints/well-known.js.map +1 -1
- package/cjs/oidc/exchangeCodeForTokens.js +10 -2
- package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
- package/cjs/oidc/getToken.js +9 -5
- package/cjs/oidc/getToken.js.map +1 -1
- package/cjs/oidc/getUserInfo.js +7 -3
- package/cjs/oidc/getUserInfo.js.map +1 -1
- package/cjs/oidc/getWithPopup.js +8 -2
- package/cjs/oidc/getWithPopup.js.map +1 -1
- package/cjs/oidc/getWithRedirect.js +5 -1
- package/cjs/oidc/getWithRedirect.js.map +1 -1
- package/cjs/oidc/getWithoutPrompt.js +8 -2
- package/cjs/oidc/getWithoutPrompt.js.map +1 -1
- package/cjs/oidc/handleOAuthResponse.js +9 -3
- package/cjs/oidc/handleOAuthResponse.js.map +1 -1
- package/cjs/oidc/index.js +4 -2
- package/cjs/oidc/index.js.map +1 -1
- package/cjs/oidc/parseFromUrl.js +9 -3
- package/cjs/oidc/parseFromUrl.js.map +1 -1
- package/cjs/oidc/renewToken.js.map +1 -1
- package/cjs/oidc/renewTokens.js +5 -1
- package/cjs/oidc/renewTokens.js.map +1 -1
- package/cjs/oidc/renewTokensWithRefresh.js +5 -1
- package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
- package/cjs/oidc/revokeToken.js +7 -3
- package/cjs/oidc/revokeToken.js.map +1 -1
- package/cjs/oidc/util/browser.js +5 -1
- package/cjs/oidc/util/browser.js.map +1 -1
- package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
- package/cjs/oidc/util/errors.js.map +1 -1
- package/cjs/oidc/util/index.js +14 -12
- package/cjs/oidc/util/index.js.map +1 -1
- package/cjs/oidc/util/loginRedirect.js +5 -1
- package/cjs/oidc/util/loginRedirect.js.map +1 -1
- package/cjs/oidc/util/oauth.js +4 -2
- package/cjs/oidc/util/oauth.js.map +1 -1
- package/cjs/oidc/util/oauthMeta.js.map +1 -1
- package/cjs/oidc/util/pkce.js +11 -3
- package/cjs/oidc/util/pkce.js.map +1 -1
- package/cjs/oidc/util/prepareTokenParams.js +7 -5
- package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
- package/cjs/oidc/util/validateClaims.js +1 -1
- package/cjs/oidc/util/validateClaims.js.map +1 -1
- package/cjs/oidc/verifyToken.js +11 -3
- package/cjs/oidc/verifyToken.js.map +1 -1
- package/cjs/options.js +6 -4
- package/cjs/options.js.map +1 -1
- package/cjs/server/serverStorage.js +1 -0
- package/cjs/server/serverStorage.js.map +1 -1
- package/cjs/tx/AuthTransaction.js +15 -9
- package/cjs/tx/AuthTransaction.js.map +1 -1
- package/cjs/tx/api.js +8 -4
- package/cjs/tx/api.js.map +1 -1
- package/cjs/tx/index.js +7 -5
- package/cjs/tx/index.js.map +1 -1
- package/cjs/tx/poll.js +6 -4
- package/cjs/tx/poll.js.map +1 -1
- package/cjs/tx/util.js +5 -1
- package/cjs/tx/util.js.map +1 -1
- package/cjs/types/Transaction.js +10 -2
- package/cjs/types/Transaction.js.map +1 -1
- package/cjs/types/index.js +16 -14
- package/cjs/types/index.js.map +1 -1
- package/cjs/util/index.js +7 -5
- package/cjs/util/index.js.map +1 -1
- package/cjs/util/misc.js +5 -1
- package/cjs/util/misc.js.map +1 -1
- package/cjs/util/object.js +16 -6
- package/cjs/util/object.js.map +1 -1
- package/cjs/util/sharedStorage.js +5 -1
- package/cjs/util/sharedStorage.js.map +1 -1
- package/dist/okta-auth-js.min.js +1 -1
- package/dist/okta-auth-js.min.js.LICENSE.txt +0 -12
- package/dist/okta-auth-js.min.js.map +1 -1
- package/dist/okta-auth-js.polyfill.js +1 -1
- package/dist/okta-auth-js.polyfill.js.map +1 -1
- package/dist/okta-auth-js.umd.js +1 -1
- package/dist/okta-auth-js.umd.js.LICENSE.txt +0 -12
- package/dist/okta-auth-js.umd.js.map +1 -1
- package/esm/index.js +1601 -377
- package/esm/index.js.map +1 -1
- package/lib/OktaAuth.d.ts +6 -3
- package/lib/StorageManager.d.ts +1 -1
- package/lib/TokenManager.d.ts +2 -2
- package/lib/TransactionManager.d.ts +1 -1
- package/lib/browser/fingerprint.d.ts +2 -3
- package/lib/crypto/base64.d.ts +2 -0
- package/lib/crypto/webauthn.d.ts +25 -0
- package/lib/http/headers.d.ts +2 -2
- package/lib/http/request.d.ts +4 -4
- package/lib/idx/authenticate.d.ts +2 -2
- package/lib/idx/authenticator/Authenticator.d.ts +4 -5
- package/lib/idx/authenticator/OktaPassword.d.ts +7 -9
- package/lib/idx/authenticator/SecurityQuestionEnrollment.d.ts +9 -8
- package/lib/idx/authenticator/SecurityQuestionVerification.d.ts +7 -7
- package/lib/idx/authenticator/VerificationCodeAuthenticator.d.ts +6 -2
- package/lib/idx/authenticator/WebauthnEnrollment.d.ts +16 -0
- package/lib/idx/authenticator/WebauthnVerification.d.ts +17 -0
- package/lib/idx/authenticator/getAuthenticator.d.ts +1 -1
- package/lib/idx/authenticator/index.d.ts +9 -0
- package/lib/idx/cancel.d.ts +2 -2
- package/lib/idx/emailVerify.d.ts +2 -2
- package/lib/idx/flow/AccountUnlockFlow.d.ts +13 -0
- package/lib/idx/flow/FlowSpecification.d.ts +2 -2
- package/lib/idx/flow/index.d.ts +1 -0
- package/lib/idx/headers.d.ts +3 -2
- package/lib/idx/idx-js/client.d.ts +36 -0
- package/lib/idx/idx-js/index.d.ts +51 -0
- package/lib/idx/idx-js/interact.d.ts +25 -0
- package/lib/idx/idx-js/introspect.d.ts +20 -0
- package/lib/idx/idx-js/parsers.d.ts +15 -0
- package/lib/idx/idx-js/util.d.ts +12 -0
- package/lib/idx/idx-js/v1/actionParser.d.ts +16 -0
- package/lib/idx/idx-js/v1/generateIdxAction.d.ts +13 -0
- package/lib/idx/idx-js/v1/idxResponseParser.d.ts +20 -0
- package/lib/idx/idx-js/v1/makeIdxState.d.ts +13 -0
- package/lib/idx/idx-js/v1/parsers.d.ts +16 -0
- package/lib/idx/idx-js/v1/remediationParser.d.ts +12 -0
- package/lib/idx/index.d.ts +12 -11
- package/lib/idx/interact.d.ts +3 -2
- package/lib/idx/introspect.d.ts +2 -2
- package/lib/idx/poll.d.ts +2 -2
- package/lib/idx/proceed.d.ts +5 -4
- package/lib/idx/recoverPassword.d.ts +2 -2
- package/lib/idx/register.d.ts +2 -2
- package/lib/idx/remediators/Base/AuthenticatorData.d.ts +2 -1
- package/lib/idx/remediators/Base/Remediator.d.ts +1 -1
- package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +3 -0
- package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +7 -12
- package/lib/idx/remediators/EnrollmentChannelData.d.ts +1 -0
- package/lib/idx/remediators/SelectAuthenticatorUnlockAccount.d.ts +38 -0
- package/lib/idx/remediators/SelectEnrollmentChannel.d.ts +1 -0
- package/lib/idx/remediators/index.d.ts +1 -0
- package/lib/idx/run.d.ts +2 -2
- package/lib/idx/startTransaction.d.ts +2 -2
- package/lib/idx/transactionMeta.d.ts +7 -7
- package/lib/idx/types/FlowIdentifier.d.ts +1 -1
- package/lib/idx/types/idx-js.d.ts +36 -0
- package/lib/idx/types/index.d.ts +21 -5
- package/lib/idx/unlockAccount.d.ts +15 -0
- package/lib/oidc/endpoints/well-known.d.ts +3 -3
- package/lib/oidc/exchangeCodeForTokens.d.ts +2 -2
- package/lib/oidc/getToken.d.ts +2 -2
- package/lib/oidc/getWithPopup.d.ts +2 -2
- package/lib/oidc/getWithRedirect.d.ts +2 -2
- package/lib/oidc/getWithoutPrompt.d.ts +2 -2
- package/lib/oidc/handleOAuthResponse.d.ts +2 -2
- package/lib/oidc/renewToken.d.ts +2 -2
- package/lib/oidc/renewTokensWithRefresh.d.ts +2 -2
- package/lib/oidc/revokeToken.d.ts +2 -2
- package/lib/oidc/util/browser.d.ts +2 -2
- package/lib/oidc/util/defaultTokenParams.d.ts +2 -2
- package/lib/oidc/util/errors.d.ts +2 -2
- package/lib/oidc/util/loginRedirect.d.ts +4 -4
- package/lib/oidc/util/oauth.d.ts +4 -4
- package/lib/oidc/util/oauthMeta.d.ts +2 -2
- package/lib/oidc/util/prepareTokenParams.d.ts +5 -5
- package/lib/oidc/util/validateClaims.d.ts +2 -2
- package/lib/oidc/verifyToken.d.ts +2 -2
- package/lib/types/OktaAuthOptions.d.ts +1 -2
- package/lib/types/Transaction.d.ts +2 -10
- package/lib/types/api.d.ts +17 -5
- package/lib/types/index.d.ts +0 -1
- package/lib/util/sharedStorage.d.ts +1 -1
- package/package.json +10 -7
- package/polyfill/index.js +1 -0
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
exports.Remediator = void 0;
|
|
4
6
|
|
|
7
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
|
|
8
|
+
|
|
9
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
10
|
+
|
|
11
|
+
var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
|
|
12
|
+
|
|
13
|
+
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
14
|
+
|
|
15
|
+
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
16
|
+
|
|
17
|
+
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
18
|
+
|
|
5
19
|
var _errors = require("../../../errors");
|
|
6
20
|
|
|
7
21
|
var _util = require("../util");
|
|
@@ -32,54 +46,60 @@ class Remediator {
|
|
|
32
46
|
}
|
|
33
47
|
|
|
34
48
|
formatAuthenticators() {
|
|
35
|
-
|
|
49
|
+
var _context2, _context3;
|
|
50
|
+
|
|
51
|
+
(0, _values.default)(this).authenticators = (0, _values.default)(this).authenticators || []; // add string authenticator from input to "authenticators" field
|
|
36
52
|
|
|
37
|
-
if (this.
|
|
38
|
-
const hasAuthenticatorInList = this.
|
|
53
|
+
if ((0, _values.default)(this).authenticator) {
|
|
54
|
+
const hasAuthenticatorInList = (0, _values.default)(this).authenticators.some(authenticator => {
|
|
39
55
|
if (typeof authenticator === 'string') {
|
|
40
|
-
return authenticator === this.
|
|
56
|
+
return authenticator === (0, _values.default)(this).authenticator;
|
|
41
57
|
}
|
|
42
58
|
|
|
43
|
-
return authenticator.key === this.
|
|
59
|
+
return authenticator.key === (0, _values.default)(this).authenticator;
|
|
44
60
|
});
|
|
45
61
|
|
|
46
62
|
if (!hasAuthenticatorInList) {
|
|
47
|
-
this.
|
|
48
|
-
key: this.
|
|
63
|
+
(0, _values.default)(this).authenticators.push({
|
|
64
|
+
key: (0, _values.default)(this).authenticator
|
|
49
65
|
});
|
|
50
66
|
}
|
|
51
67
|
} // transform items in "authenticators" into one format
|
|
52
68
|
|
|
53
69
|
|
|
54
|
-
this.
|
|
70
|
+
(0, _values.default)(this).authenticators = (0, _map.default)(_context2 = (0, _values.default)(this).authenticators).call(_context2, authenticator => {
|
|
55
71
|
return typeof authenticator === 'string' ? {
|
|
56
72
|
key: authenticator
|
|
57
73
|
} : authenticator;
|
|
58
74
|
}); // save non-key meta to "authenticatorsData" field
|
|
59
75
|
// authenticators will be removed after selection to avoid select-authenticator loop
|
|
60
76
|
|
|
61
|
-
this.
|
|
62
|
-
if (typeof authenticator === 'object' &&
|
|
77
|
+
(0, _values.default)(this).authenticatorsData = (0, _reduce.default)(_context3 = (0, _values.default)(this).authenticators).call(_context3, (acc, authenticator) => {
|
|
78
|
+
if (typeof authenticator === 'object' && (0, _keys.default)(authenticator).length > 1) {
|
|
63
79
|
// save authenticator meta into authenticator data
|
|
64
80
|
acc.push(authenticator);
|
|
65
81
|
}
|
|
66
82
|
|
|
67
83
|
return acc;
|
|
68
|
-
}, this.
|
|
84
|
+
}, (0, _values.default)(this).authenticatorsData || []);
|
|
69
85
|
}
|
|
70
86
|
|
|
71
87
|
getName() {
|
|
72
88
|
return this.remediation.name;
|
|
73
89
|
} // Override this method to provide custom check
|
|
74
90
|
|
|
91
|
+
/* eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars */
|
|
92
|
+
|
|
75
93
|
|
|
76
94
|
canRemediate() {
|
|
77
|
-
|
|
95
|
+
var _context4;
|
|
96
|
+
|
|
97
|
+
if (!(0, _map.default)(this)) {
|
|
78
98
|
return false;
|
|
79
99
|
}
|
|
80
100
|
|
|
81
101
|
const required = (0, _util.getRequiredValues)(this.remediation);
|
|
82
|
-
const needed = required.
|
|
102
|
+
const needed = (0, _find.default)(_context4 = required).call(_context4, key => !this.hasData(key));
|
|
83
103
|
|
|
84
104
|
if (needed) {
|
|
85
105
|
return false; // missing data for a required field
|
|
@@ -91,8 +111,10 @@ class Remediator {
|
|
|
91
111
|
|
|
92
112
|
getData(key) {
|
|
93
113
|
if (!key) {
|
|
114
|
+
var _context5;
|
|
115
|
+
|
|
94
116
|
let allValues = (0, _util.getAllValues)(this.remediation);
|
|
95
|
-
let res = allValues.
|
|
117
|
+
let res = (0, _reduce.default)(_context5 = allValues).call(_context5, (data, key) => {
|
|
96
118
|
data[key] = this.getData(key); // recursive
|
|
97
119
|
|
|
98
120
|
return data;
|
|
@@ -102,25 +124,27 @@ class Remediator {
|
|
|
102
124
|
|
|
103
125
|
|
|
104
126
|
if (typeof this[`map${(0, _util.titleCase)(key)}`] === 'function') {
|
|
105
|
-
|
|
127
|
+
var _context6;
|
|
128
|
+
|
|
129
|
+
return this[`map${(0, _util.titleCase)(key)}`]((0, _find.default)(_context6 = this.remediation.value).call(_context6, ({
|
|
106
130
|
name
|
|
107
131
|
}) => name === key));
|
|
108
132
|
}
|
|
109
133
|
|
|
110
|
-
if (!
|
|
111
|
-
return this
|
|
134
|
+
if (!(0, _map.default)(this)) {
|
|
135
|
+
return (0, _values.default)(this)[key];
|
|
112
136
|
} // Handle general primitive types
|
|
113
137
|
|
|
114
138
|
|
|
115
|
-
const entry = this
|
|
139
|
+
const entry = (0, _map.default)(this)[key];
|
|
116
140
|
|
|
117
141
|
if (!entry) {
|
|
118
|
-
return this
|
|
142
|
+
return (0, _values.default)(this)[key];
|
|
119
143
|
} // find the first aliased property that returns a truthy value
|
|
120
144
|
|
|
121
145
|
|
|
122
146
|
for (let i = 0; i < entry.length; i++) {
|
|
123
|
-
let val = this
|
|
147
|
+
let val = (0, _values.default)(this)[entry[i]];
|
|
124
148
|
|
|
125
149
|
if (val) {
|
|
126
150
|
return val;
|
|
@@ -130,11 +154,13 @@ class Remediator {
|
|
|
130
154
|
|
|
131
155
|
hasData(key) {
|
|
132
156
|
// no attempt to format, we want simple true/false
|
|
133
|
-
// First see if the remediation has a mapping for this
|
|
157
|
+
// First see if the remediation has a mapping for this value
|
|
134
158
|
const data = this.getData(key);
|
|
135
159
|
|
|
136
160
|
if (typeof data === 'object') {
|
|
137
|
-
|
|
161
|
+
var _context7;
|
|
162
|
+
|
|
163
|
+
return !!(0, _find.default)(_context7 = (0, _keys.default)(data)).call(_context7, key => !!data[key]);
|
|
138
164
|
}
|
|
139
165
|
|
|
140
166
|
return !!data;
|
|
@@ -161,19 +187,23 @@ class Remediator {
|
|
|
161
187
|
|
|
162
188
|
|
|
163
189
|
getInputs() {
|
|
164
|
-
|
|
190
|
+
var _context8;
|
|
191
|
+
|
|
192
|
+
if (!(0, _map.default)(this)) {
|
|
165
193
|
return [];
|
|
166
194
|
}
|
|
167
195
|
|
|
168
|
-
return
|
|
169
|
-
|
|
196
|
+
return (0, _reduce.default)(_context8 = (0, _keys.default)((0, _map.default)(this))).call(_context8, (inputs, key) => {
|
|
197
|
+
var _context9;
|
|
198
|
+
|
|
199
|
+
const inputFromRemediation = (0, _find.default)(_context9 = this.remediation.value).call(_context9, item => item.name === key);
|
|
170
200
|
|
|
171
201
|
if (!inputFromRemediation) {
|
|
172
202
|
return inputs;
|
|
173
203
|
}
|
|
174
204
|
|
|
175
205
|
let input;
|
|
176
|
-
const aliases = this
|
|
206
|
+
const aliases = (0, _map.default)(this)[key];
|
|
177
207
|
const {
|
|
178
208
|
type
|
|
179
209
|
} = inputFromRemediation;
|
|
@@ -188,7 +218,11 @@ class Remediator {
|
|
|
188
218
|
name = aliases[0];
|
|
189
219
|
} else {
|
|
190
220
|
// try find key from values
|
|
191
|
-
name =
|
|
221
|
+
name = (0, _find.default)(aliases).call(aliases, name => {
|
|
222
|
+
var _context10;
|
|
223
|
+
|
|
224
|
+
return (0, _includes.default)(_context10 = (0, _keys.default)((0, _values.default)(this))).call(_context10, name);
|
|
225
|
+
});
|
|
192
226
|
}
|
|
193
227
|
|
|
194
228
|
if (name) {
|
|
@@ -213,13 +247,13 @@ class Remediator {
|
|
|
213
247
|
}
|
|
214
248
|
|
|
215
249
|
static getMessages(remediation) {
|
|
216
|
-
var _remediation$value$, _remediation$value$$f;
|
|
250
|
+
var _remediation$value$, _remediation$value$$f, _context11;
|
|
217
251
|
|
|
218
252
|
if (!remediation.value) {
|
|
219
253
|
return;
|
|
220
254
|
}
|
|
221
255
|
|
|
222
|
-
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.
|
|
256
|
+
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 : (0, _reduce.default)(_context11 = _remediation$value$$f.value).call(_context11, (messages, field) => {
|
|
223
257
|
if (field.messages) {
|
|
224
258
|
messages = [...messages, ...field.messages.value];
|
|
225
259
|
}
|
|
@@ -235,10 +269,10 @@ class Remediator {
|
|
|
235
269
|
const inputs = this.getInputs();
|
|
236
270
|
|
|
237
271
|
for (const input of inputs) {
|
|
238
|
-
delete this
|
|
272
|
+
delete (0, _values.default)(this)[input.name];
|
|
239
273
|
}
|
|
240
274
|
|
|
241
|
-
return this
|
|
275
|
+
return (0, _values.default)(this);
|
|
242
276
|
}
|
|
243
277
|
|
|
244
278
|
getAuthenticator() {
|
|
@@ -1 +1 @@
|
|
|
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":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n/* eslint-disable complexity */\nimport { AuthSdkError } from '../../../errors';\nimport { NextStep, IdxMessage, Authenticator, Input, IdxOptions } from '../../types';\nimport { IdxAuthenticator, IdxContext, 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 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;\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 as never));\n } else {\n inputs.push(input as never);\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] as never;\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"],"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","authenticatorsData","acc","length","getName","name","canRemediate","required","needed","hasData","getData","allValues","res","data","value","entry","i","val","getNextStep","_context","inputs","getInputs","getAuthenticator","type","inputFromRemediation","item","input","aliases","AuthSdkError","Array","isArray","forEach","getMessages","form","messages","field","getValuesAfterProceed","relatesTo"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n/* eslint-disable complexity */\nimport { 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 /* eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars */\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 value\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;\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 as never));\n } else {\n inputs.push(input as never);\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] as never;\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"],"file":"Remediator.js"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
exports.SelectAuthenticator = void 0;
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
8
|
+
|
|
9
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
|
|
10
|
+
|
|
11
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
12
|
+
|
|
13
|
+
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
14
|
+
|
|
15
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
8
16
|
|
|
9
17
|
var _Remediator = require("./Remediator");
|
|
10
18
|
|
|
@@ -23,23 +31,6 @@ var _util = require("../util");
|
|
|
23
31
|
*
|
|
24
32
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
25
33
|
*/
|
|
26
|
-
// Find matched authenticator in provided order
|
|
27
|
-
function findMatchedOption(authenticators, options) {
|
|
28
|
-
let option;
|
|
29
|
-
|
|
30
|
-
for (let authenticator of authenticators) {
|
|
31
|
-
option = options.find(({
|
|
32
|
-
relatesTo
|
|
33
|
-
}) => relatesTo.key === authenticator.key);
|
|
34
|
-
|
|
35
|
-
if (option) {
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return option;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
34
|
// Base class - DO NOT expose static remediationName
|
|
44
35
|
class SelectAuthenticator extends _Remediator.Remediator {
|
|
45
36
|
constructor(...args) {
|
|
@@ -49,10 +40,27 @@ class SelectAuthenticator extends _Remediator.Remediator {
|
|
|
49
40
|
});
|
|
50
41
|
}
|
|
51
42
|
|
|
43
|
+
// Find matched authenticator in provided order
|
|
44
|
+
findMatchedOption(authenticators, options) {
|
|
45
|
+
let option;
|
|
46
|
+
|
|
47
|
+
for (let authenticator of authenticators) {
|
|
48
|
+
option = (0, _find.default)(options).call(options, ({
|
|
49
|
+
relatesTo
|
|
50
|
+
}) => relatesTo.key === authenticator.key);
|
|
51
|
+
|
|
52
|
+
if (option) {
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return option;
|
|
58
|
+
}
|
|
59
|
+
|
|
52
60
|
canRemediate() {
|
|
53
61
|
const {
|
|
54
62
|
authenticators
|
|
55
|
-
} = this
|
|
63
|
+
} = (0, _values.default)(this);
|
|
56
64
|
const authenticatorFromRemediation = (0, _util.getAuthenticatorFromRemediation)(this.remediation);
|
|
57
65
|
const {
|
|
58
66
|
options
|
|
@@ -63,7 +71,7 @@ class SelectAuthenticator extends _Remediator.Remediator {
|
|
|
63
71
|
} // Proceed with provided authenticators
|
|
64
72
|
|
|
65
73
|
|
|
66
|
-
const matchedOption = findMatchedOption(authenticators, options);
|
|
74
|
+
const matchedOption = this.findMatchedOption(authenticators, options);
|
|
67
75
|
|
|
68
76
|
if (matchedOption) {
|
|
69
77
|
return true;
|
|
@@ -73,9 +81,11 @@ class SelectAuthenticator extends _Remediator.Remediator {
|
|
|
73
81
|
}
|
|
74
82
|
|
|
75
83
|
getNextStep() {
|
|
84
|
+
var _context;
|
|
85
|
+
|
|
76
86
|
const common = super.getNextStep();
|
|
77
87
|
const authenticatorFromRemediation = (0, _util.getAuthenticatorFromRemediation)(this.remediation);
|
|
78
|
-
const options = authenticatorFromRemediation.options.
|
|
88
|
+
const options = (0, _map.default)(_context = authenticatorFromRemediation.options).call(_context, option => {
|
|
79
89
|
const {
|
|
80
90
|
label,
|
|
81
91
|
relatesTo
|
|
@@ -92,17 +102,20 @@ class SelectAuthenticator extends _Remediator.Remediator {
|
|
|
92
102
|
}
|
|
93
103
|
|
|
94
104
|
mapAuthenticator(remediationValue) {
|
|
105
|
+
var _context2;
|
|
106
|
+
|
|
95
107
|
const {
|
|
96
108
|
authenticators
|
|
97
|
-
} = this
|
|
109
|
+
} = (0, _values.default)(this);
|
|
98
110
|
const {
|
|
99
111
|
options
|
|
100
112
|
} = remediationValue;
|
|
101
|
-
const selectedOption = findMatchedOption(authenticators, options); // track the selected authenticator
|
|
113
|
+
const selectedOption = this.findMatchedOption(authenticators, options); // track the selected authenticator
|
|
102
114
|
|
|
103
115
|
this.selectedAuthenticator = selectedOption.relatesTo;
|
|
116
|
+
this.selectedOption = selectedOption;
|
|
104
117
|
return {
|
|
105
|
-
id: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value.form.value.
|
|
118
|
+
id: selectedOption === null || selectedOption === void 0 ? void 0 : (0, _find.default)(_context2 = selectedOption.value.form.value).call(_context2, ({
|
|
106
119
|
name
|
|
107
120
|
}) => name === 'id').value
|
|
108
121
|
};
|
|
@@ -116,12 +129,14 @@ class SelectAuthenticator extends _Remediator.Remediator {
|
|
|
116
129
|
}
|
|
117
130
|
|
|
118
131
|
getValuesAfterProceed() {
|
|
132
|
+
var _context3;
|
|
133
|
+
|
|
119
134
|
this.values = super.getValuesAfterProceed(); // remove used authenticators
|
|
120
135
|
|
|
121
|
-
const authenticators = this.
|
|
136
|
+
const authenticators = (0, _filter.default)(_context3 = (0, _values.default)(this).authenticators).call(_context3, authenticator => {
|
|
122
137
|
return authenticator.key !== this.selectedAuthenticator.key;
|
|
123
138
|
});
|
|
124
|
-
return { ...this
|
|
139
|
+
return { ...(0, _values.default)(this),
|
|
125
140
|
authenticators
|
|
126
141
|
};
|
|
127
142
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../lib/idx/remediators/Base/SelectAuthenticator.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../../../lib/idx/remediators/Base/SelectAuthenticator.ts"],"names":["SelectAuthenticator","Remediator","authenticator","findMatchedOption","authenticators","options","option","relatesTo","key","canRemediate","authenticatorFromRemediation","remediation","length","matchedOption","getNextStep","common","label","value","mapAuthenticator","remediationValue","selectedOption","selectedAuthenticator","id","form","name","getInputAuthenticator","getValuesAfterProceed","values"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Remediator';\nimport { getAuthenticatorFromRemediation } from '../util';\nimport { IdxAuthenticator, IdxOption, IdxRemediationValue } from '../../types/idx-js';\nimport { Authenticator } from '../../types';\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 selectedOption?: any;\n \n map = {\n authenticator: []\n }\n\n // Find matched authenticator in provided order\n findMatchedOption(authenticators, options) {\n let option;\n for (let authenticator of authenticators) {\n option = options\n .find(({ relatesTo }) => relatesTo.key === authenticator.key);\n if (option) {\n break;\n }\n }\n return option;\n }\n\n canRemediate() {\n const { authenticators } = 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 = this.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\n } = option as IdxOption;\n const key = relatesTo!.key!;\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 = this.findMatchedOption(authenticators, options);\n // track the selected authenticator\n this.selectedAuthenticator = selectedOption.relatesTo;\n this.selectedOption = selectedOption;\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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
exports.VerifyAuthenticator = void 0;
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
|
|
8
|
+
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
8
10
|
|
|
9
11
|
var _Remediator = require("./Remediator");
|
|
10
12
|
|
|
@@ -31,12 +33,22 @@ class VerifyAuthenticator extends _Remediator.Remediator {
|
|
|
31
33
|
this.authenticator = (0, _authenticator.getAuthenticator)(remediation);
|
|
32
34
|
}
|
|
33
35
|
|
|
36
|
+
getNextStep(context) {
|
|
37
|
+
var _context$authenticato;
|
|
38
|
+
|
|
39
|
+
const nextStep = super.getNextStep(context);
|
|
40
|
+
const authenticatorEnrollments = context === null || context === void 0 ? void 0 : (_context$authenticato = context.authenticatorEnrollments) === null || _context$authenticato === void 0 ? void 0 : _context$authenticato.value;
|
|
41
|
+
return { ...nextStep,
|
|
42
|
+
authenticatorEnrollments
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
34
46
|
canRemediate() {
|
|
35
|
-
return this.authenticator.canVerify(
|
|
47
|
+
return this.authenticator.canVerify((0, _values.default)(this));
|
|
36
48
|
}
|
|
37
49
|
|
|
38
50
|
mapCredentials() {
|
|
39
|
-
return this.authenticator.mapCredentials(
|
|
51
|
+
return this.authenticator.mapCredentials((0, _values.default)(this));
|
|
40
52
|
}
|
|
41
53
|
|
|
42
54
|
getInputCredentials(input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../lib/idx/remediators/Base/VerifyAuthenticator.ts"],"names":["VerifyAuthenticator","Remediator","constructor","remediation","values","authenticator","canRemediate","canVerify","mapCredentials","getInputCredentials","input","getInputs"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../lib/idx/remediators/Base/VerifyAuthenticator.ts"],"names":["VerifyAuthenticator","Remediator","constructor","remediation","values","authenticator","getNextStep","context","nextStep","authenticatorEnrollments","value","canRemediate","canVerify","mapCredentials","getInputCredentials","input","getInputs"],"mappings":";;;;;;;;;;AAaA;;AACA;;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUA;AACO,MAAMA,mBAAN,SAAkCC,sBAAlC,CAA6C;AASlDC,EAAAA,WAAW,CAACC,WAAD,EAA8BC,MAAiC,GAAG,EAAlE,EAAsE;AAC/E,UAAMD,WAAN,EAAmBC,MAAnB;AAD+E,+CAJ3E;AACJ,qBAAe;AADX,KAI2E;AAE/E,SAAKC,aAAL,GAAqB,qCAAiBF,WAAjB,CAArB;AACD;;AAEDG,EAAAA,WAAW,CAACC,OAAD,EAAiC;AAAA;;AAC1C,UAAMC,QAAQ,GAAG,MAAMF,WAAN,CAAkBC,OAAlB,CAAjB;AACA,UAAME,wBAAwB,GAAGF,OAAH,aAAGA,OAAH,gDAAGA,OAAO,CAAEE,wBAAZ,0DAAG,sBAAmCC,KAApE;AAEA,WAAO,EACL,GAAGF,QADE;AAELC,MAAAA;AAFK,KAAP;AAID;;AAEDE,EAAAA,YAAY,GAAG;AACb,WAAO,KAAKN,aAAL,CAAmBO,SAAnB,sBAA6B,IAA7B,EAAP;AACD;;AAEDC,EAAAA,cAAc,GAAG;AACf,WAAO,KAAKR,aAAL,CAAmBQ,cAAnB,sBAAkC,IAAlC,EAAP;AACD;;AAEDC,EAAAA,mBAAmB,CAACC,KAAD,EAAQ;AACzB,WAAO,KAAKV,aAAL,CAAmBW,SAAnB,CAA6BD,KAA7B,CAAP;AACD;;AAlCiD","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, AuthenticatorValues } from '../../authenticator';\nimport { IdxRemediation, IdxContext } from '../../types/idx-js';\nimport { NextStep } from '../../types';\n\nexport type VerifyAuthenticatorValues = AuthenticatorValues & RemediationValues;\n\n// Base class - DO NOT expose static remediationName\nexport class VerifyAuthenticator extends Remediator {\n\n authenticator: Authenticator<VerifyAuthenticatorValues>;\n values!: VerifyAuthenticatorValues;\n\n map = {\n 'credentials': []\n };\n\n constructor(remediation: IdxRemediation, values: VerifyAuthenticatorValues = {}) {\n super(remediation, values);\n this.authenticator = getAuthenticator(remediation);\n }\n\n getNextStep(context?: IdxContext): NextStep {\n const nextStep = super.getNextStep(context);\n const authenticatorEnrollments = context?.authenticatorEnrollments?.value;\n\n return {\n ...nextStep,\n authenticatorEnrollments\n };\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,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
exports.ChallengeAuthenticator = void 0;
|
|
6
6
|
|
|
7
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
8
8
|
|
|
9
9
|
var _VerifyAuthenticator = require("./Base/VerifyAuthenticator");
|
|
10
10
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
exports.ChallengePoll = void 0;
|
|
6
6
|
|
|
7
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
8
8
|
|
|
9
9
|
var _EnrollPoll = require("./EnrollPoll");
|
|
10
10
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
exports.EnrollAuthenticator = void 0;
|
|
6
6
|
|
|
7
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
8
8
|
|
|
9
9
|
var _VerifyAuthenticator = require("./Base/VerifyAuthenticator");
|
|
10
10
|
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
exports.EnrollPoll = void 0;
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
|
|
8
|
+
|
|
9
|
+
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
10
|
+
|
|
11
|
+
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
12
|
+
|
|
13
|
+
var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
|
|
14
|
+
|
|
15
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
8
16
|
|
|
9
17
|
var _Remediator = require("./Base/Remediator");
|
|
10
18
|
|
|
@@ -21,7 +29,7 @@ var _Remediator = require("./Base/Remediator");
|
|
|
21
29
|
*/
|
|
22
30
|
class EnrollPoll extends _Remediator.Remediator {
|
|
23
31
|
canRemediate() {
|
|
24
|
-
return Boolean(this.
|
|
32
|
+
return Boolean((0, _values.default)(this).startPolling);
|
|
25
33
|
}
|
|
26
34
|
|
|
27
35
|
getNextStep(context) {
|
|
@@ -42,9 +50,11 @@ class EnrollPoll extends _Remediator.Remediator {
|
|
|
42
50
|
}
|
|
43
51
|
|
|
44
52
|
getValuesAfterProceed() {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
53
|
+
var _context;
|
|
54
|
+
|
|
55
|
+
let trimmedValues = (0, _filter.default)(_context = (0, _keys.default)((0, _values.default)(this))).call(_context, valueKey => valueKey !== 'startPolling');
|
|
56
|
+
return (0, _reduce.default)(trimmedValues).call(trimmedValues, (values, valueKey) => ({ ...values,
|
|
57
|
+
[valueKey]: (0, _values.default)(this)[valueKey]
|
|
48
58
|
}), {});
|
|
49
59
|
}
|
|
50
60
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../lib/idx/remediators/EnrollPoll.ts"],"names":["EnrollPoll","Remediator","canRemediate","Boolean","
|
|
1
|
+
{"version":3,"sources":["../../../../lib/idx/remediators/EnrollPoll.ts"],"names":["EnrollPoll","Remediator","canRemediate","Boolean","startPolling","getNextStep","context","common","authenticator","getAuthenticator","currentAuthenticator","value","poll","required","refresh","remediation","getValuesAfterProceed","trimmedValues","valueKey","values"],"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,2BAAYC,YAAb,CAAd;AACD;;AAEDC,EAAAA,WAAW,CAACC,OAAD,EAAiC;AAC1C,UAAMC,MAAM,GAAG,MAAMF,WAAN,CAAkBC,OAAlB,CAAf;AACA,QAAIE,aAAa,GAAG,KAAKC,gBAAL,EAApB;;AACA,QAAI,CAACD,aAAD,IAAkBF,OAAlB,aAAkBA,OAAlB,eAAkBA,OAAO,CAAEI,oBAA/B,EAAqD;AACnDF,MAAAA,aAAa,GAAGF,OAAO,CAACI,oBAAR,CAA6BC,KAA7C;AACD;;AACD,WAAO,EACL,GAAGJ,MADE;AAELC,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,GAAqB;AAAA;;AACxC,QAAIC,aAAa,GAAG,wEAAY,IAAZ,mBAAgCC,QAAQ,IAAIA,QAAQ,KAAK,cAAzD,CAApB;AACA,WAAO,qBAAAD,aAAa,MAAb,CAAAA,aAAa,EAAQ,CAACE,MAAD,EAASD,QAAT,MAAuB,EAAC,GAAGC,MAAJ;AAAY,OAACD,QAAD,GAAY,2BAAYA,QAAZ;AAAxB,KAAvB,CAAR,EAAgF,EAAhF,CAApB;AACD;;AA5BwC;;;8BAA9BlB,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 common = super.getNextStep(context);\n let authenticator = this.getAuthenticator();\n if (!authenticator && context?.currentAuthenticator) {\n authenticator = context.currentAuthenticator.value;\n }\n return {\n ...common,\n authenticator,\n poll: {\n required: true,\n refresh: this.remediation.refresh\n },\n };\n }\n\n getValuesAfterProceed(): EnrollPollValues {\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"}
|