@privy-io/js-sdk-core
Version:
Vanilla JS client for the Privy Auth API
2 lines (1 loc) • 770 B
JavaScript
import{PrivyIframeError as e}from"./errors.mjs";import"./types.mjs";async function r(r,t,i,a,n=!1,o,c){let m=n,s=async o=>{if(m){o===(n?0:1)?a():i.current?.reject(new e("missing_or_invalid_mfa","MFA verification failed, retry."));let m=await new Promise(((r,a)=>{t.current={resolve:r,reject:a},setTimeout((()=>{let r=new e("mfa_timeout","Timed out waiting for MFA code");i.current?.reject(r),a(r)}),c)}));return await r(m)}return await r()},f=null;for(let e=0;e<o;e++)try{f=await s(e),i.current?.resolve(void 0);break}catch(e){if("missing_or_invalid_mfa"!==e.type)throw i.current?.resolve(void 0),e;m=!0}if(null===f){let r=new e("mfa_verification_max_attempts_reached","Max MFA verification attempts reached");throw i.current?.reject(r),r}return f}export{r as withMfa};