{"version":3,"file":"signUpHelpers.mjs","sources":["../../../../../src/providers/cognito/utils/signUpHelpers.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { HubInternal } from '@aws-amplify/core/internals/utils';\nimport { signIn } from '../apis/signIn';\nimport { AuthError } from '../../../errors/AuthError';\nimport { resetAutoSignIn, setAutoSignIn } from '../apis/autoSignIn';\nimport { AUTO_SIGN_IN_EXCEPTION } from '../../../errors/constants';\nimport { signInWithUserAuth } from '../apis/signInWithUserAuth';\nconst MAX_AUTOSIGNIN_POLLING_MS = 3 * 60 * 1000;\nexport function handleCodeAutoSignIn(signInInput) {\n    const stopHubListener = HubInternal.listen('auth-internal', async ({ payload }) => {\n        switch (payload.event) {\n            case 'confirmSignUp': {\n                const response = payload.data;\n                if (response?.isSignUpComplete) {\n                    HubInternal.dispatch('auth-internal', {\n                        event: 'autoSignIn',\n                    });\n                    setAutoSignIn(autoSignInWithCode(signInInput));\n                    stopHubListener();\n                }\n            }\n        }\n    });\n    // This will stop the listener if confirmSignUp is not resolved.\n    const timeOutId = setTimeout(() => {\n        stopHubListener();\n        clearTimeout(timeOutId);\n        resetAutoSignIn();\n    }, MAX_AUTOSIGNIN_POLLING_MS);\n}\nfunction debounce(fun, delay) {\n    let timer;\n    return (args) => {\n        if (!timer) {\n            fun(...args);\n        }\n        clearTimeout(timer);\n        timer = setTimeout(() => {\n            timer = undefined;\n        }, delay);\n    };\n}\nfunction handleAutoSignInWithLink(signInInput, resolve, reject) {\n    const start = Date.now();\n    const autoSignInPollingIntervalId = setInterval(async () => {\n        const elapsedTime = Date.now() - start;\n        const maxTime = MAX_AUTOSIGNIN_POLLING_MS;\n        if (elapsedTime > maxTime) {\n            clearInterval(autoSignInPollingIntervalId);\n            reject(new AuthError({\n                name: AUTO_SIGN_IN_EXCEPTION,\n                message: 'The account was not confirmed on time.',\n                recoverySuggestion: 'Try to verify your account by clicking the link sent your email or phone and then login manually.',\n            }));\n            resetAutoSignIn();\n        }\n        else {\n            try {\n                const signInOutput = await signIn(signInInput);\n                if (signInOutput.nextStep.signInStep !== 'CONFIRM_SIGN_UP') {\n                    resolve(signInOutput);\n                    clearInterval(autoSignInPollingIntervalId);\n                    resetAutoSignIn();\n                }\n            }\n            catch (error) {\n                clearInterval(autoSignInPollingIntervalId);\n                reject(error);\n                resetAutoSignIn();\n            }\n        }\n    }, 5000);\n}\nconst debouncedAutoSignInWithLink = debounce(handleAutoSignInWithLink, 300);\nconst debouncedAutoSignWithCodeOrUserConfirmed = debounce(handleAutoSignInWithCodeOrUserConfirmed, 300);\nexport function autoSignInWhenUserIsConfirmedWithLink(signInInput) {\n    return async () => {\n        return new Promise((resolve, reject) => {\n            debouncedAutoSignInWithLink([signInInput, resolve, reject]);\n        });\n    };\n}\nasync function handleAutoSignInWithCodeOrUserConfirmed(signInInput, resolve, reject) {\n    try {\n        const output = signInInput?.options?.authFlowType === 'USER_AUTH'\n            ? await signInWithUserAuth(signInInput)\n            : await signIn(signInInput);\n        resolve(output);\n        resetAutoSignIn();\n    }\n    catch (error) {\n        reject(error);\n        resetAutoSignIn();\n    }\n}\nfunction autoSignInWithCode(signInInput) {\n    return async () => {\n        return new Promise((resolve, reject) => {\n            debouncedAutoSignWithCodeOrUserConfirmed([signInInput, resolve, reject]);\n        });\n    };\n}\nexport const autoSignInUserConfirmed = autoSignInWithCode;\n"],"names":[],"mappings":"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"}