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