{"version":3,"file":"signUp.mjs","sources":["../../../../../src/providers/cognito/apis/signUp.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 { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { getRegionFromUserPoolId } from '../../../foundation/parsers';\nimport { toAttributeType } from '../utils/apiHelpers';\nimport { autoSignInUserConfirmed, autoSignInWhenUserIsConfirmedWithLink, handleCodeAutoSignIn, } from '../utils/signUpHelpers';\nimport { getUserContextData } from '../utils/userContextData';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { createSignUpClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider';\nimport { createCognitoUserPoolEndpointResolver } from '../factories';\nimport { autoSignInStore } from '../../../client/utils/store';\nimport { setAutoSignIn } from './autoSignIn';\n/**\n * Creates a user\n *\n * @param input - The SignUpInput object\n * @returns SignUpOutput\n * @throws service: {@link SignUpException } - Cognito service errors thrown during the sign-up process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown either username or password\n *  are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signUp(input) {\n    const { username, password, options } = input;\n    const authConfig = Amplify.getConfig().Auth?.Cognito;\n    const signUpVerificationMethod = authConfig?.signUpVerificationMethod ?? 'code';\n    const { clientMetadata, validationData, autoSignIn } = input.options ?? {};\n    assertTokenProviderConfig(authConfig);\n    assertValidationError(!!username, AuthValidationErrorCode.EmptySignUpUsername);\n    const signInServiceOptions = typeof autoSignIn !== 'boolean' ? autoSignIn : undefined;\n    const signInInput = {\n        username,\n        options: signInServiceOptions,\n    };\n    // if the authFlowType is 'CUSTOM_WITHOUT_SRP' then we don't include the password\n    if (signInServiceOptions?.authFlowType !== 'CUSTOM_WITHOUT_SRP') {\n        signInInput.password = password;\n    }\n    const { userPoolId, userPoolClientId, userPoolEndpoint } = authConfig;\n    const signUpClient = createSignUpClient({\n        endpointResolver: createCognitoUserPoolEndpointResolver({\n            endpointOverride: userPoolEndpoint,\n        }),\n    });\n    const signUpClientInput = {\n        Username: username,\n        Password: undefined,\n        UserAttributes: options?.userAttributes && toAttributeType(options?.userAttributes),\n        ClientMetadata: clientMetadata,\n        ValidationData: validationData && toAttributeType(validationData),\n        ClientId: userPoolClientId,\n        UserContextData: getUserContextData({\n            username,\n            userPoolId,\n            userPoolClientId,\n        }),\n    };\n    if (password) {\n        signUpClientInput.Password = password;\n    }\n    const { UserSub: userId, CodeDeliveryDetails: cdd, UserConfirmed: userConfirmed, Session: session, } = await signUpClient({\n        region: getRegionFromUserPoolId(userPoolId),\n        userAgentValue: getAuthUserAgentValue(AuthAction.SignUp),\n    }, signUpClientInput);\n    if (signInServiceOptions || autoSignIn === true) {\n        autoSignInStore.dispatch({ type: 'START' });\n        autoSignInStore.dispatch({ type: 'SET_USERNAME', value: username });\n        autoSignInStore.dispatch({ type: 'SET_SESSION', value: session });\n    }\n    const codeDeliveryDetails = {\n        destination: cdd?.Destination,\n        deliveryMedium: cdd?.DeliveryMedium,\n        attributeName: cdd?.AttributeName,\n    };\n    const isSignUpComplete = !!userConfirmed;\n    const isAutoSignInStarted = autoSignInStore.getState().active;\n    // Sign Up Complete\n    // No Confirm Sign In Step Required\n    if (isSignUpComplete) {\n        if (isAutoSignInStarted) {\n            setAutoSignIn(autoSignInUserConfirmed(signInInput));\n            return {\n                isSignUpComplete: true,\n                nextStep: {\n                    signUpStep: 'COMPLETE_AUTO_SIGN_IN',\n                },\n                userId,\n            };\n        }\n        return {\n            isSignUpComplete: true,\n            nextStep: {\n                signUpStep: 'DONE',\n            },\n            userId,\n        };\n    }\n    // Sign Up Not Complete\n    // Confirm Sign Up Step Required\n    if (isAutoSignInStarted) {\n        // Confirmation Via Link Occurs In Separate Context\n        // AutoSignIn Fn Will Initiate Polling Once Executed\n        if (signUpVerificationMethod === 'link') {\n            setAutoSignIn(autoSignInWhenUserIsConfirmedWithLink(signInInput));\n            return {\n                isSignUpComplete: false,\n                nextStep: {\n                    signUpStep: 'COMPLETE_AUTO_SIGN_IN',\n                    codeDeliveryDetails,\n                },\n                userId,\n            };\n        }\n        // Confirmation Via Code Occurs In Same Context\n        // AutoSignIn Next Step Will Be Returned From Confirm Sign Up\n        handleCodeAutoSignIn(signInInput);\n    }\n    return {\n        isSignUpComplete: false,\n        nextStep: {\n            signUpStep: 'CONFIRM_SIGN_UP',\n            codeDeliveryDetails,\n        },\n        userId,\n    };\n}\n"],"names":[],"mappings":"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"}