{"version":3,"file":"signInWithUserAuth.mjs","sources":["../../../../../src/providers/cognito/apis/signInWithUserAuth.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { getActiveSignInUsername, getSignInResult, getSignInResultFromError, } from '../utils/signInHelpers';\nimport { autoSignInStore } from '../../../client/utils/store';\nimport { resetActiveSignInState, setActiveSignInState, } from '../../../client/utils/store/signInStore';\nimport { cacheCognitoTokens } from '../tokenProvider/cacheTokens';\nimport { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { handleUserAuthFlow, } from '../../../client/flows/userAuth/handleUserAuthFlow';\nimport { getNewDeviceMetadata } from '../utils/getNewDeviceMetadata';\nimport { resetAutoSignIn } from './autoSignIn';\n/**\n * Signs a user in through a registered email or phone number without a password by by receiving and entering an OTP.\n *\n * @param input - The SignInWithUserAuthInput object\n * @returns SignInWithUserAuthOutput\n * @throws service: {@link InitiateAuthException }, {@link RespondToAuthChallengeException } - Cognito service errors\n * thrown during the sign-in process.\n * @throws validation: {@link AuthValidationErrorCode  } - Validation errors thrown when either username or password -- needs to change\n *  are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signInWithUserAuth(input) {\n    const { username, password, options } = input;\n    const authConfig = Amplify.getConfig().Auth?.Cognito;\n    const signInDetails = {\n        loginId: username,\n        authFlowType: 'USER_AUTH',\n    };\n    assertTokenProviderConfig(authConfig);\n    const clientMetaData = options?.clientMetadata;\n    const preferredChallenge = options?.preferredChallenge ?? authConfig?.passwordless?.preferredChallenge;\n    assertValidationError(!!username, AuthValidationErrorCode.EmptySignInUsername);\n    try {\n        const handleUserAuthFlowInput = {\n            username,\n            config: authConfig,\n            tokenOrchestrator,\n            clientMetadata: clientMetaData,\n            preferredChallenge,\n            password,\n        };\n        const autoSignInStoreState = autoSignInStore.getState();\n        if (autoSignInStoreState.active &&\n            autoSignInStoreState.username === username) {\n            handleUserAuthFlowInput.session = autoSignInStoreState.session;\n        }\n        const response = await handleUserAuthFlow(handleUserAuthFlowInput);\n        const activeUsername = getActiveSignInUsername(username);\n        setActiveSignInState({\n            signInSession: response.Session,\n            username: activeUsername,\n            challengeName: response.ChallengeName,\n            signInDetails,\n        });\n        if (response.AuthenticationResult) {\n            await cacheCognitoTokens({\n                username: activeUsername,\n                ...response.AuthenticationResult,\n                NewDeviceMetadata: await getNewDeviceMetadata({\n                    userPoolId: authConfig.userPoolId,\n                    userPoolEndpoint: authConfig.userPoolEndpoint,\n                    newDeviceMetadata: response.AuthenticationResult.NewDeviceMetadata,\n                    accessToken: response.AuthenticationResult.AccessToken,\n                }),\n                signInDetails,\n            });\n            resetActiveSignInState();\n            await dispatchSignedInHubEvent();\n            resetAutoSignIn();\n            return {\n                isSignedIn: true,\n                nextStep: { signInStep: 'DONE' },\n            };\n        }\n        return getSignInResult({\n            challengeName: response.ChallengeName,\n            challengeParameters: response.ChallengeParameters,\n            availableChallenges: 'AvailableChallenges' in response\n                ? response.AvailableChallenges\n                : undefined,\n        });\n    }\n    catch (error) {\n        resetActiveSignInState();\n        resetAutoSignIn();\n        assertServiceError(error);\n        const result = getSignInResultFromError(error.name);\n        if (result)\n            return result;\n        throw error;\n    }\n}\n"],"names":[],"mappings":"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"}