magic-sdk 29.1.0-canary.886.14720845234.0 → 29.1.0-canary.886.14723611226.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/magic.js +1 -1
  2. package/package.json +5 -5
package/dist/magic.js CHANGED
@@ -2,5 +2,5 @@
2
2
  - Extension \`${r.name}\` supports version(s) \`${i}\``:i||(t+=`
3
3
  - Extension \`${r.name}\` does not support ${Y.platform} environments.`)}),new Te(Ee.IncompatibleExtensions,t)}function Pa(e){let t=r=>{let i=r+1,a=i%10,s=i%100;return a===1&&s!==11?`${i}st`:a===2&&s!==12?`${i}nd`:a===3&&s!==13?`${i}rd`:`${i}th`};return new Te(Ee.InvalidArgument,`Invalid ${t(e.argument)} argument given to \`${e.procedure}\`.
4
4
  Expected: \`${e.expected}\`
5
- Received: \`${e.received}\``)}function rn(){return new xe(_e.DuplicateIframe,"Duplicate iframes found.")}function Da(){return new xe(_e.SyncWeb3Method,"Non-async web3 methods are deprecated in web3 > 1.0 and are not supported by the Magic web3 provider. Please use an async method instead.")}function $a(){return new xe(_e.ReactNativeEndpointConfiguration,`CUSTOM DOMAINS ARE NOT SUPPORTED WHEN USING MAGIC SDK WITH REACT NATIVE! The \`endpoint\` parameter SHOULD NOT be provided. The Magic \`<iframe>\` is automatically wrapped by a WebView pointed at \`${Y.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function Ua(e){let{method:t,removalVersions:r,useInstead:i}=e,a=r[Y.sdkName],s=i?` Use \`${i}\` instead.`:"",p=`\`${t}\` will be removed from \`${Y.sdkName}\` in version \`${a}\`.${s}`;return new xe(_e.DeprecationNotice,p)}function*xa(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var Fa=xa();function nn(){return Fa.next().value}var an=Symbol("Payload pre-processed by Magic SDK");function on(e){return Object.defineProperty(e,an,{value:!0,enumerable:!1}),e}function ka(e){return!!e[an]}function mt(e){return ka(e)||(e.jsonrpc=e.jsonrpc??"2.0",e.id=nn(),e.method=e.method??"noop",e.params=e.params??[],on(e)),e}function G(e,t=[]){return on({params:t,method:e,jsonrpc:"2.0",id:nn()})}var sn=class cn{_jsonrpc;_id;_result;_error;constructor(t){t instanceof cn?(this._jsonrpc=t.payload.jsonrpc,this._id=t.payload.id,this._result=t.payload.result,this._error=t.payload.error):Aa(t)?(this._jsonrpc=t.jsonrpc,this._id=t.id,this._result=t.result,this._error=t.error):(this._jsonrpc=t.jsonrpc,this._id=t.id,this._result=void 0,this._error=void 0)}applyError(t){return this._error=t,this}applyResult(t){return this._result=t,this}get hasError(){return typeof this._error<"u"&&this._error!==null}get hasResult(){return typeof this._result<"u"}get payload(){return{jsonrpc:this._jsonrpc,id:this._id,result:this._result,error:this._error}}},Wa=Di($i()),Ba=class extends Wa.default{};function ln(){let e=new Ba;return{emitter:e,createChainingEmitterMethod:(t,r)=>(...i)=>(e[t].apply(e,i),r),createBoundEmitterMethod:t=>(...r)=>e[t].apply(e,r)}}var un=Symbol("isPromiEvent");function kt(e){return!!e[un]}function ge(e){let t=dn(e),{createBoundEmitterMethod:r,createChainingEmitterMethod:i}=ln(),a=Symbol("Promise.then"),s=Symbol("Promise.catch"),p=Symbol("Promise.finally"),h=(y,O)=>(...E)=>{let N=O[y].apply(O,E);return w(N)},w=y=>Object.assign(y,{[un]:!0,[a]:y[a]||y.then,[s]:y[s]||y.catch,[p]:y[p]||y.finally,then:h(a,y),catch:h(s,y),finally:h(p,y),on:i("on",y),once:i("once",y),addListener:i("addListener",y),off:i("off",y),removeListener:i("removeListener",y),removeAllListeners:i("removeAllListeners",y),emit:r("emit"),eventNames:r("eventNames"),listeners:r("listeners"),listenerCount:r("listenerCount")}),v=w(t.then(y=>(v.emit("done",y),v.emit("settled"),y),y=>{throw v.emit("error",y),v.emit("settled"),y}));return v.on(it.ClosedByUser,()=>{v.emit(nt.ClosedByUser)}),v}function dn(e){return new Promise((t,r)=>{let i=e(t,r);Promise.resolve(i).catch(r)})}var fn={};Ci(fn,{clear:()=>Ga,getItem:()=>fe,iterate:()=>hn,key:()=>ja,keys:()=>Ha,length:()=>Va,removeItem:()=>Be,setItem:()=>Oe});var ct;function Me(e){return async(...t)=>(ct||(ct=await Y.configureStorage()),await ct.ready(),ct[e](...t))}var fe=Me("getItem"),Oe=Me("setItem"),Be=Me("removeItem"),Ga=Me("clear"),Va=Me("length"),ja=Me("key"),Ha=Me("keys"),hn=Me("iterate");function qa(){let e=window.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&191|128;let t="";return t+=e[0].toString(16),t+=e[1].toString(16),t+=e[2].toString(16),t+=e[3].toString(16),t+="-",t+=e[4].toString(16),t+=e[5].toString(16),t+="-",t+=e[6].toString(16),t+=e[7].toString(16),t+="-",t+=e[8].toString(16),t+=e[9].toString(16),t+="-",t+=e[10].toString(16),t+=e[11].toString(16),t+=e[12].toString(16),t+=e[13].toString(16),t+=e[14].toString(16),t+=e[15].toString(16),t}var Wt="STORE_KEY_PRIVATE_KEY",pt="STORE_KEY_PUBLIC_JWK",mn="ECDSA",Ka="P-256",Ya={name:mn,namedCurve:Ka};function yt(){let e=typeof window<"u"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function Xa(){console.log("clearing keys"),Be(pt),Be(Wt)}async function za(){let e=await Ja();if(!e){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:t}=window.crypto,r=await fe(Wt);if(!r||!t){console.info("unable to find private key or webcrypto unsupported");return}let i={iat:Math.floor(new Date().getTime()/1e3),jti:qa()},a={protected:Hr(JSON.stringify({typ:"dpop+jwt",alg:"ES256",jwk:e})),claims:Hr(JSON.stringify(i))},s=Za(`${a.protected}.${a.claims}`),p={name:mn,hash:{name:"SHA-256"}},h=to(new Uint8Array(await t.sign(p,r,s)));return`${a.protected}.${a.claims}.${h}`}async function Ja(){if(!yt()){console.info("webcrypto is not supported");return}return await fe(pt)||await Qa(),fe(pt)}async function Qa(){let{subtle:e}=window.crypto,t=await e.generateKey(Ya,!1,["sign"]),r=await e.exportKey("jwk",t.publicKey);await Oe(Wt,t.privateKey),await Oe(pt,r)}function Hr(e){return pn(eo(e))}function Za(e){return new TextEncoder().encode(e)}function pn(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function eo(e){return encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function to(e){let t="";return e.forEach(r=>{t+=String.fromCharCode(r)}),pn(t)}var Le=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){if(this.sdk.thirdPartyWallets.isConnected&&!Mt.includes(e.method))return ge((a,s)=>{this.sdk.thirdPartyWallets.requestOverride(e).then(a).catch(s)});let t=this.overlay.post(Ie.MAGIC_HANDLE_REQUEST,mt(e)),r=ge((a,s)=>{t.then(p=>{if(i(),p.hasError)s(new Je(p.payload.error));else if(p.hasResult)a(p.payload.result);else throw Ma()}).catch(p=>{p?.code===Ae.DpopInvalidated&&Xa(),i(),s(p)})}),i=this.overlay.on(de.MAGIC_HANDLE_EVENT,a=>{let{response:s}=a.data;if(s.id===e.id&&s.result?.event){let{event:p,params:h=[]}=s.result;r.emit(p,...h)}});return r}createIntermediaryEvent(e,t){return r=>{let i=G(M.IntermediaryEvent,[{payloadId:t,eventType:e,args:r}]);this.request(i)}}};function ro(e,t){let[r]=e.split(".").map(Number);return r>=t}var no={"magic-sdk":"v18.0.0","@magic-sdk/react-native":"v14.0.0","@magic-sdk/react-native-bare":"v19.0.0","@magic-sdk/react-native-expo":"v19.0.0"},io=class extends Le{loginWithMagicLink(e){let t=Y.sdkName==="@magic-sdk/react-native"||Y.sdkName==="@magic-sdk/react-native-bare"||Y.sdkName==="@magic-sdk/react-native-expo";if(t&&ro(Y.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&Ua({method:"auth.loginWithMagicLink()",removalVersions:no,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:r,showUI:i=!0,redirectURI:a,overrides:s,lifespan:p}=e,h=G(this.sdk.testMode?M.LoginWithMagicLinkTestMode:M.LoginWithMagicLink,[{email:r,showUI:i,redirectURI:a,overrides:s,lifespan:p}]);return this.request(h)}loginWithSMS(e){let{phoneNumber:t,showUI:r=!0,lifespan:i}=e,a=G(this.sdk.testMode?M.LoginWithSmsTestMode:M.LoginWithSms,[{phoneNumber:t,showUI:r,lifespan:i}]),s=this.request(a);return!r&&s&&(s.on(De.VerifySmsOtp,p=>{this.createIntermediaryEvent(De.VerifySmsOtp,a.id)(p)}),s.on(De.Cancel,()=>{this.createIntermediaryEvent(De.Cancel,a.id)()})),s}loginWithEmailOTP(e){let{email:t,showUI:r,deviceCheckUI:i,overrides:a,lifespan:s}=e,p=G(this.sdk.testMode?M.LoginWithEmailOTPTestMode:M.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:i,overrides:a,lifespan:s}]),h=this.request(p);return!i&&h&&h.on(Ke.Retry,()=>{this.createIntermediaryEvent(Ke.Retry,p.id)()}),!r&&h&&(h.on(le.VerifyEmailOtp,w=>{this.createIntermediaryEvent(le.VerifyEmailOtp,p.id)(w)}),h.on(le.VerifyMFACode,w=>{this.createIntermediaryEvent(le.VerifyMFACode,p.id)(w)}),h.on(le.LostDevice,()=>{this.createIntermediaryEvent(le.LostDevice,p.id)()}),h.on(le.VerifyRecoveryCode,w=>{this.createIntermediaryEvent(le.VerifyRecoveryCode,p.id)(w)}),h.on(le.Cancel,()=>{this.createIntermediaryEvent(le.Cancel,p.id)()})),h}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:r}=e||{},i=t??"";if(!t&&Y.platform==="web"){i=window.location.search;let s=window.location.origin+window.location.pathname;window.history.replaceState(null,"",s)}let a=G(this.sdk.testMode?M.LoginWithCredentialTestMode:M.LoginWithCredential,[i,r]);return this.request(a)}setAuthorizationToken(e){let t=G(M.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,i=G(this.sdk.testMode?M.UpdateEmailTestMode:M.UpdateEmail,[{email:t,showUI:r}]),a=this.request(i);return r||(a.on(ce.Retry,()=>{this.createIntermediaryEvent(ce.Retry,i.id)()}),a.on(ce.Cancel,()=>{this.createIntermediaryEvent(ce.Cancel,i.id)()}),a.on(ce.VerifyEmailOtp,s=>{this.createIntermediaryEvent(ce.VerifyEmailOtp,i.id)(s)}),a.on(ce.VerifyMFACode,s=>{this.createIntermediaryEvent(ce.VerifyMFACode,i.id)(s)}),a.on(te.RetryWithNewEmail,s=>{this.createIntermediaryEvent(te.RetryWithNewEmail,i.id)(s)}),a.on(te.Cancel,()=>{this.createIntermediaryEvent(te.Cancel,i.id)()}),a.on(te.VerifyEmailOtp,s=>{this.createIntermediaryEvent(te.VerifyEmailOtp,i.id)(s)})),a}},Bt="ds",Gt="ek",Vt="iv",jt="AES-GCM",ao=256;async function vn(){let e=[];await hn((t,r,i)=>{r.startsWith(`${Bt}_`)&&e.push(r)});for(let t of e)await Be(t)}function yn(e){let t="",r=new Uint8Array(e),i=r.byteLength;for(let a=0;a<i;a++)t+=String.fromCharCode(r[a]);return window.btoa(t)}function gn(e){let t=window.atob(e),r=t.length,i=new Uint8Array(r);for(let a=0;a<r;a++)i[a]=t.charCodeAt(a);return i.buffer}async function oo(){if(!yt()){console.info("webcrypto is not supported");return}let{crypto:e}=window;return await fe(Vt)||e.getRandomValues(new Uint8Array(12))}async function so(){if(!yt()){console.info("webcrypto is not supported");return}let{subtle:e}=window.crypto;return await fe(Gt)||await e.generateKey({name:jt,length:ao},!1,["encrypt","decrypt"])}async function co(e,t){let r=await oo(),i=await so();if(!r||!i||!e)return;let a=gn(e),{subtle:s}=window.crypto,p=await s.encrypt({name:jt,iv:r},i,a),h=yn(p);await Oe(`${Bt}_${t}`,h),await Oe(Gt,i),await Oe(Vt,r)}async function lo(e){let t=await fe(`${Bt}_${e}`),r=await fe(Vt),i=await fe(Gt);if(!r||!t||!i||!yt())return;let{subtle:a}=window.crypto,s=await a.decrypt({name:jt,iv:r},i,gn(t));return yn(s)}function Qe(e,t){return t?new URL(e,t):new URL(e)}var uo=class extends Le{getIdToken(e){let t=G(this.sdk.testMode?M.GetIdTokenTestMode:M.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=G(this.sdk.testMode?M.GenerateIdTokenTestMode:M.GenerateIdToken,[e]);return this.request(t)}getInfo(){let e=G(M.GetInfo,[]);return this.request(e)}isLoggedIn(){return ge(async(e,t)=>{try{let r=!1;this.sdk.useStorageCache&&(r=await fe(this.localForageIsLoggedInKey)==="true",r&&e(!0));let i=G(this.sdk.testMode?M.IsLoggedInTestMode:M.IsLoggedIn),a=await this.request(i);this.sdk.useStorageCache&&(a?Oe(this.localForageIsLoggedInKey,!0):Be(this.localForageIsLoggedInKey),r&&!a&&this.emitUserLoggedOut(!0)),e(a)}catch(r){t(r)}})}logout(){return Be(this.localForageIsLoggedInKey),vn(),ge(async(e,t)=>{try{let r=G(this.sdk.testMode?M.LogoutTestMode:M.Logout),i=await this.request(r);this.sdk.useStorageCache&&this.emitUserLoggedOut(i),e(i)}catch(r){t(r)}})}requestInfoWithUI(e){let t=G(M.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let{showUI:t=!0}=e||{},r=G(this.sdk.testMode?M.UserSettingsTestMode:M.UserSettings,[e]),i=this.request(r);return!t&&i&&(i.on(me.SendNewPhoneNumber,a=>{this.createIntermediaryEvent(me.SendNewPhoneNumber,r.id)(a)}),i.on(me.SendOtpCode,a=>{this.createIntermediaryEvent(me.SendOtpCode,r.id)(a)}),i.on(me.StartEditPhoneNumber,()=>{this.createIntermediaryEvent(me.StartEditPhoneNumber,r.id)()}),i.on(me.Cancel,()=>{this.createIntermediaryEvent(me.Cancel,r.id)()}),i.on(ce.VerifyEmailOtp,a=>{this.createIntermediaryEvent(ce.VerifyEmailOtp,r.id)(a)})),i}recoverAccount(e){let{email:t,showUI:r}=e,i=G(this.sdk.testMode?M.RecoverAccountTestMode:M.RecoverAccount,[{email:t,showUI:r}]),a=this.request(i);return!r&&a&&(a.on(pe.Cancel,()=>{this.createIntermediaryEvent(pe.Cancel,i.id)()}),a.on(pe.ResendSms,()=>{this.createIntermediaryEvent(pe.ResendSms,i.id)()}),a.on(pe.VerifyOtp,s=>{this.createIntermediaryEvent(pe.VerifyOtp,i.id)(s)}),a.on(pe.UpdateEmail,s=>{this.createIntermediaryEvent(pe.UpdateEmail,i.id)(s)}),a.on(te.Cancel,()=>{this.createIntermediaryEvent(te.Cancel,i.id)()}),a.on(te.RetryWithNewEmail,s=>{this.createIntermediaryEvent(te.RetryWithNewEmail,i.id)(s)}),a.on(te.VerifyEmailOtp,s=>{this.createIntermediaryEvent(te.VerifyEmailOtp,i.id)(s)})),a}revealPrivateKey(){let e=G(M.RevealPK);return this.request(e)}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}enableMFA(e){let{showUI:t=!0}=e,r=G(M.EnableMFA,[{showUI:t}]),i=this.request(r);return!t&&i&&(i.on($e.VerifyMFACode,a=>{this.createIntermediaryEvent($e.VerifyMFACode,r.id)(a)}),i.on($e.Cancel,()=>{this.createIntermediaryEvent($e.Cancel,r.id)()})),i}disableMFA(e){let{showUI:t=!0}=e,r=G(M.DisableMFA,[{showUI:t}]),i=this.request(r);return!t&&i&&(i.on(we.VerifyMFACode,a=>{this.createIntermediaryEvent(we.VerifyMFACode,r.id)(a)}),i.on(we.LostDevice,a=>{this.createIntermediaryEvent(we.LostDevice,r.id)(a)}),i.on(we.Cancel,()=>{this.createIntermediaryEvent(we.Cancel,r.id)()})),i}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}localForageIsLoggedInKey="magic_auth_is_logged_in";userLoggedOutCallbacks=[]},fo=class extends Le{connectWithUI(e){let t=ge(async(r,i)=>{try{let a=G(M.Login,[{enabledWallets:this.sdk.thirdPartyWallets.enabledWallets,...e}]),s=this.request(a);this.sdk.thirdPartyWallets.eventListeners.forEach(({event:h,callback:w})=>{s.on(h,()=>w(a.id))}),s.on("id-token-created",h=>{t.emit("id-token-created",h)});let p=await s;p.error&&i(p),r(p)}catch(a){i(a)}});return t}showUI(e){return this.request(G(M.ShowUI,[e]))}showAddress(){return this.request(G(M.ShowAddress))}showSendTokensUI(){return this.request(G(M.ShowSendTokensUI))}showOnRamp(){return this.request(G(M.ShowOnRamp))}showNFTs(){return this.request(G(M.ShowNFTs))}showBalances(){return this.request(G(M.ShowBalances))}sendGaslessTransaction(e,t){return this.request(G(M.SendGaslessTransaction,[e,t]))}},ho=class extends Le{eventListeners=[];enabledWallets={};isConnected=!1;resetThirdPartyWalletState(){localStorage.removeItem(ve.PROVIDER),localStorage.removeItem(ve.ADDRESS),localStorage.removeItem(ve.CHAIN_ID),this.isConnected=!1}requestOverride(e){if(e.method===M.Login)return this.resetThirdPartyWalletState(),super.request(e);if(e.method===M.GetInfo)return this.getInfo(e);if(e.method===M.IsLoggedIn)return this.isLoggedIn(e);if(e.method===M.Logout)return this.logout(e);switch(localStorage.getItem(ve.PROVIDER)){case"web3modal":return this.web3modalRequest(e);default:return this.resetThirdPartyWalletState(),super.request(e)}}isLoggedIn(e){switch(localStorage.getItem(ve.PROVIDER)){case"web3modal":return this.web3modalIsLoggedIn();default:return this.resetThirdPartyWalletState(),super.request(e)}}getInfo(e){switch(localStorage.getItem(ve.PROVIDER)){case"web3modal":return this.web3modalGetInfo();default:return this.resetThirdPartyWalletState(),super.request(e)}}logout(e){let t=localStorage.getItem(ve.PROVIDER);switch(this.resetThirdPartyWalletState(),t){case"web3modal":return this.web3modalLogout();default:return super.request(e)}}web3modalRequest(e){return ge((t,r)=>{this.sdk.web3modal.modal.getWalletProvider().request(e).then(t).catch(r)})}web3modalIsLoggedIn(){return ge(e=>{let t=this.sdk.web3modal.modal.getStatus();if(t==="connected"&&e(!0),t==="disconnected"&&(this.resetThirdPartyWalletState(),e(!1)),t==="reconnecting"){let r=this.sdk.web3modal.modal.subscribeProvider(({status:i})=>{i==="connected"&&(r(),e(!0)),i==="disconnected"&&(r(),this.resetThirdPartyWalletState(),e(!1))})}})}formatWeb3modalGetInfoResponse(){let e=this.sdk.web3modal.modal.getWalletInfo()?.name,t=this.sdk.web3modal.modal.getAddress();return{publicAddress:t,email:null,issuer:`did:ethr:${t}`,phoneNumber:null,isMfaEnabled:!1,recoveryFactors:[],walletType:e||"web3modal"}}web3modalGetInfo(){return ge((e,t)=>{let r=this.sdk.web3modal.modal.getStatus();if(r==="connected"&&e(this.formatWeb3modalGetInfoResponse()),r==="disconnected"&&(this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access.")),r==="reconnecting"){let i=this.sdk.web3modal.modal.subscribeProvider(({status:a})=>{a==="connected"&&(i(),e(this.formatWeb3modalGetInfoResponse())),a==="disconnected"&&(i(),this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access."))})}})}web3modalLogout(){return ge(async e=>{try{await this.sdk.web3modal.modal.disconnect()}catch(t){console.error(t)}e(!0)})}},{createBoundEmitterMethod:lt,createChainingEmitterMethod:We}=ln(),mo=class extends Le{isMagic=!0;sendAsync(e,t){if(!t)throw Pa({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(Ie.MAGIC_HANDLE_REQUEST,e.map(r=>{let i=mt(r);return this.prefixPayloadMethodForTestMode(i),i})).then(r=>{t(null,r.map(i=>({...i.payload,error:i.hasError?new Je(i.payload.error):null})))});else{let r=mt(e);this.prefixPayloadMethodForTestMode(r),this.overlay.post(Ie.MAGIC_HANDLE_REQUEST,r).then(i=>{t(i.hasError?new Je(i.payload.error):null,i.payload)})}}send(e,t){if(typeof e=="string"){let i=G(e,Array.isArray(t)?t:[]);return this.request(i)}if(Array.isArray(e)||t){this.sendAsync(e,t);return}let r=Da();return r.log(),new sn(e).applyError({code:-32603,message:r.rawMessage}).payload}enable(){let e=G(M.Login);return this.request(e)}request(e){return this.prefixPayloadMethodForTestMode(e),super.request(e)}prefixPayloadMethodForTestMode(e){let t="testMode/eth/";this.sdk.testMode&&(e.method=`${t}${e.method}`)}on=We("on",this);once=We("once",this);addListener=We("addListener",this);off=We("off",this);removeListener=We("removeListener",this);removeAllListeners=We("removeAllListeners",this);emit=lt("emit");eventNames=lt("eventNames");listeners=lt("listeners");listenerCount=lt("listenerCount")},qr=["request","overlay","sdk"];function po(e){let t=Object.getPrototypeOf(e),r=[t];for(;t!==Le.prototype;)t=Object.getPrototypeOf(t),r.push(t);return r}var vo=class extends Le{compat;__sdk_access_field_descriptors__=new Map;__is_initialized__=!1;utils={createPromiEvent:ge,isPromiEvent:kt,encodeJSON:zr,decodeJSON:ba,createJsonRpcRequestPayload:G,standardizeJsonRpcRequestPayload:mt,storage:fn};constructor(){super(void 0);let e=[this,...po(this)];qr.forEach(t=>{let r=e.map(p=>Object.getOwnPropertyDescriptor(p,t)),i=r.findIndex(p=>!!p),a=i>0,s=r[i];s&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:s,isPrototypeField:a}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw La(t)}}))})}init(e){this.__is_initialized__||(qr.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:r,isPrototypeField:i}=this.__sdk_access_field_descriptors__.get(t);i?delete this[t]:Object.defineProperty(this,t,r)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:r,useInstead:i}=e,a=i?` Use \`${i}\` instead.`:"",s=`\`${t}\` will be removed from this Extension in version \`${r}\`.${a}`;return new ht(this,"DEPRECATION_NOTICE",s)}createWarning(e,t){return new ht(this,e,t)}createError(e,t,r){return new xt(this,e,t,r)}},yo=class extends vo{},vt=class{static Internal=yo},go=class extends Le{purchase(e){let t=G(M.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=this.sdk.thirdPartyWallets.isConnected,r=G(M.NFTCheckout,[{...e,walletProvider:t?"web3modal":"magic"}]),i=this.request(r);return t&&(i.on(Ue.Initiated,async a=>{try{let s=await this.request({method:"eth_sendTransaction",params:[a]});this.createIntermediaryEvent(Ue.Success,r.id)(s)}catch{this.createIntermediaryEvent(Ue.Failure,r.id)()}}),i.on(Ue.Disconnect,()=>{this.sdk.thirdPartyWallets.resetThirdPartyWalletState(),i.emit("disconnect")})),i}transfer(e){let t=G(M.NFTTransfer,[e]);return this.request(t)}};function Kr(e){return e.compat&&e.compat[Y.sdkName]!=null?typeof e.compat[Y.sdkName]=="string"?pa(Ea(Y.version),e.compat[Y.sdkName]):!!e.compat[Y.sdkName]:!0}function Eo(e,t,r){return!t&&!r?`${e}_eth_mainnet`:r?`${e}_${JSON.stringify(r)}`:t?typeof t=="string"?`${e}_eth_${t}`:`${e}_${t.rpcUrl}_${t.chainId}_${t.chainType}`:`${e}_unknown`}function _o(e){let t=e?.extensions??[],r={},i=[];if(Array.isArray(t)?t.forEach(a=>{Kr(a)?(a.init(this),a.name&&(this[a.name]=a),a instanceof vt.Internal&&(ft(a.config)||(r[a.name]=a.config))):i.push(a)}):Object.keys(t).forEach(a=>{if(Kr(t[a])){t[a].init(this);let s=t[a];this[a]=s,s instanceof vt.Internal&&(ft(s.config)||(r[t[a].name]=s.config))}else i.push(t[a])}),i.length)throw Ca(i);return r}var En=class dt{constructor(t,r){if(this.apiKey=t,!t)throw Ta();Y.platform==="react-native"&&r?.endpoint&&$a().log();let{defaultEndpoint:i,version:a}=Y;this.testMode=!!r?.testMode,this.useStorageCache=!!r?.useStorageCache,this.endpoint=Qe(r?.endpoint??i).origin,this.auth=new io(this),this.user=new uo(this),this.wallet=new fo(this),this.nft=new go(this),this.thirdPartyWallets=new ho(this),this.rpcProvider=new mo(this);let s=_o.call(this,r);this.parameters=zr({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:r?.network,host:Qe(this.endpoint).host,sdk:Na[Y.sdkName],version:a,ext:ft(s)?void 0:s,locale:r?.locale||"en_US",...Y.bundleId?{bundleId:Y.bundleId}:{},meta:r?.meta}),this.networkHash=Eo(this.apiKey,r?.network,ft(s)?void 0:s),r?.deferPreload||this.preload()}static __overlays__=new Map;endpoint;parameters;networkHash;testMode;useStorageCache;auth;user;wallet;nft;thirdPartyWallets;rpcProvider;get overlay(){if(!dt.__overlays__.has(this.parameters)){let t=new Y.ViewController(this.endpoint,this.parameters,this.networkHash);t.init(),dt.__overlays__.set(this.parameters,t)}return dt.__overlays__.get(this.parameters)}async preload(){await this.overlay.waitForReady()}};function Io(e,t){return t&&Array.isArray(e)?e.find(r=>r.id===t):e}function wo(e,t){let r=t.data.response?.id,i=Io(e,r);if(r&&i){let a=new sn(i).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:r,response:a}}return{}}async function Ro(e,t,r){let i=await fe("rt"),a;if(Y.platform==="web")try{a=await fe("jwt")??await za()}catch(h){console.error("webcrypto error",h)}let s={msgType:e,payload:t};a&&(s.jwt=a),a&&i&&(s.rt=i);let p=await lo(r);return p&&(s.deviceShare=p),s}async function bo(e){e.data.rt&&await Oe("rt",e.data.rt)}function So(e,t){let r=null;return function(...i){r&&clearTimeout(r),r=setTimeout(()=>{e(...i)},t)}}var Ao=1e3,_n=60*Ao,Yr=5*_n,Oo=60*_n,In=class{constructor(e,t,r){this.endpoint=e,this.parameters=t,this.networkHash=r,this.listen()}isReadyForRequest=!1;messageHandlers=new Set;isConnectedToInternet=!0;lastPongTime=null;heartbeatIntervalTimer=null;heartbeatDebounce=So(()=>{this.endpoint==="https://auth.magic.link/"&&this.heartBeatCheck()},Oo);async post(e,t){return dn(async(r,i)=>{if(!this.isConnectedToInternet){let v=Ft();i(v)}await this.checkRelayerExistsInDOM()||(this.isReadyForRequest=!1,await this.reloadRelayer()),this.isReadyForRequest||await this.waitForReady();let a=[],s=Array.isArray(t)?t.map(v=>v.id):[],p=await Ro(`${e}-${this.parameters}`,t,this.networkHash);await this._post(p);let h=v=>y=>{let{id:O,response:E}=wo(t,y);if(bo(y),E?.payload.error?.message==="User denied account access.")vn();else if(y.data.deviceShare){let{deviceShare:N}=y.data;co(N,this.networkHash)}O&&E&&Array.isArray(t)&&s.includes(O)?(a.push(E),a.length===t.length&&(v(),r(a))):O&&E&&!Array.isArray(t)&&O===t.id&&(v(),r(E))},w=this.on(de.MAGIC_HANDLE_RESPONSE,h(()=>w()))})}on(e,t){let r=t.bind(window),i=a=>{a.data.msgType===`${e}-${this.parameters}`&&r(a)};return this.messageHandlers.add(i),()=>this.messageHandlers.delete(i)}waitForReady(){return new Promise(e=>{let t=this.on(de.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()})})}listen(){this.on(de.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(de.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(de.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new xe(_e.ProductAnnouncement,e.data.response.result.product_announcement).log()})}heartBeatCheck(){let e=!0,t=async()=>{let r={msgType:`${Ie.MAGIC_PING}-${this.parameters}`,payload:[]};await this._post(r)};this.heartbeatIntervalTimer=setInterval(async()=>{if(this.lastPongTime){if(Date.now()-this.lastPongTime>Yr*2){this.reloadRelayer(),e=!0;return}}else if(!e){this.reloadRelayer(),e=!0;return}await t(),e=!1},Yr)}stopHeartBeat(){this.heartbeatDebounce(),this.lastPongTime=null,this.heartbeatIntervalTimer&&(clearInterval(this.heartbeatIntervalTimer),this.heartbeatIntervalTimer=null)}};var Ht={};mr(Ht,{AuthEventOnReceived:()=>Ar,DeepLinkPage:()=>gr,DeviceVerificationEventEmit:()=>Ke,DeviceVerificationEventOnReceived:()=>Rr,DisableMFAEventEmit:()=>we,DisableMFAEventOnReceived:()=>Tr,EnableMFAEventEmit:()=>$e,EnableMFAEventOnReceived:()=>Nr,EthChainType:()=>Mr,Extension:()=>vt,ExtensionError:()=>xt,ExtensionWarning:()=>ht,FarcasterLoginEventEmit:()=>Or,LocalStorageKeys:()=>ve,LoginWithEmailOTPEventEmit:()=>le,LoginWithEmailOTPEventOnReceived:()=>wr,LoginWithMagicLinkEventEmit:()=>Er,LoginWithMagicLinkEventOnReceived:()=>_r,LoginWithSmsOTPEventEmit:()=>De,LoginWithSmsOTPEventOnReceived:()=>Ir,MagicIncomingWindowMessage:()=>de,MagicOutgoingWindowMessage:()=>Ie,MagicPayloadMethod:()=>M,NftCheckoutIntermediaryEvents:()=>Ue,RPCError:()=>Je,RPCErrorCode:()=>Ae,RecencyCheckEventEmit:()=>ce,RecencyCheckEventOnReceived:()=>br,RecoverAccountEventEmit:()=>pe,RecoverAccountEventOnReceived:()=>Pr,RecoveryFactorEventEmit:()=>me,RecoveryFactorEventOnReceived:()=>Lr,RecoveryMethodType:()=>Cr,SDKError:()=>Te,SDKErrorCode:()=>Ee,SDKWarning:()=>xe,SDKWarningCode:()=>_e,ThirdPartyWalletEvents:()=>yr,UiEventsEmit:()=>$r,UpdateEmailEventEmit:()=>te,UpdateEmailEventOnReceived:()=>Sr,UserEventsEmit:()=>nt,UserEventsOnReceived:()=>it,WalletEventOnReceived:()=>Dr,isPromiEvent:()=>kt,routeToMagicMethods:()=>Mt});var _t=vr(Rn()),Kt=vr(Sn());var No={display:"block",visibility:"hidden",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",opacity:"0",zIndex:"-1"};function To(e){for(let[t,r]of Object.entries(No))e.style[t]=r}function Mo(e){return!![].slice.call(document.querySelectorAll(".magic-iframe")).find(r=>r.src.includes(e))}var Et=class extends In{activeElement=null;iframe;relayerSrc=Qe(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href;init(){this.test="hello",this.iframe=new Promise(t=>{let r=()=>{if(Mo(encodeURIComponent(this.parameters)))rn().log();else{let i=document.createElement("iframe");i.classList.add("magic-iframe"),i.dataset.magicIframeLabel=Qe(this.endpoint).host,i.title="Secure Modal",i.src=this.relayerSrc,i.allow="clipboard-read; clipboard-write",To(i),document.body.appendChild(i),t(i)}};["loaded","interactive","complete"].includes(document.readyState)?r():window.addEventListener("load",r,!1)}),this.iframe.then(t=>{t instanceof HTMLIFrameElement&&t.addEventListener("load",async()=>{this.heartbeatDebounce()})}),window.addEventListener("message",t=>{if(t.origin===this.endpoint&&t.data.msgType&&(t.data.msgType.includes(de.MAGIC_PONG)&&(this.lastPongTime=Date.now()),t.data&&this.messageHandlers.size)){t.data.response=t.data.response??{},this.stopHeartBeat();for(let r of this.messageHandlers.values())r(t)}}),window.addEventListener("beforeunload",()=>{this.stopHeartBeat()})}async showOverlay(){let t=await this.iframe;t.style.visibility="visible",t.style.zIndex="2147483647",t.style.opacity="1",this.activeElement=document.activeElement,t.focus()}async hideOverlay(){let t=await this.iframe;t.style.visibility="hidden",t.style.zIndex="-1",t.style.opacity="0",this.activeElement?.focus&&this.activeElement.focus(),this.activeElement=null}async _post(t){let r=await this.iframe;if(r&&r.contentWindow)r.contentWindow.postMessage(t,this.endpoint);else throw Ft()}async checkRelayerExistsInDOM(){let t=await this.iframe;return!t||!t.contentWindow?!1:!![].slice.call(document.querySelectorAll(".magic-iframe")).find(i=>i.src.includes(encodeURIComponent(this.parameters)))}async reloadRelayer(){let t=await this.iframe;if(this.stopHeartBeat(),!t){this.init(),console.warn("Magic SDK: Modal lost, re-initiating");return}if(!t.contentWindow){document.body.appendChild(t),console.warn("Magic SDK: Modal did not append in the iframe, re-initiating");return}t&&(t.src=this.relayerSrc)}};var Lo=Object.assign(Qr(En,{platform:"web",sdkName:"magic-sdk",version:"29.0.5",defaultEndpoint:"https://auth.magic.link/",ViewController:Et,configureStorage:async()=>{let e=_t.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return await e.defineDriver(Kt),await e.setDriver([_t.default.INDEXEDDB,_t.default.LOCALSTORAGE,Kt._driver]),e}}),{...Ht}),Co=Lo;return Si(Po);})();
5
+ Received: \`${e.received}\``)}function rn(){return new xe(_e.DuplicateIframe,"Duplicate iframes found.")}function Da(){return new xe(_e.SyncWeb3Method,"Non-async web3 methods are deprecated in web3 > 1.0 and are not supported by the Magic web3 provider. Please use an async method instead.")}function $a(){return new xe(_e.ReactNativeEndpointConfiguration,`CUSTOM DOMAINS ARE NOT SUPPORTED WHEN USING MAGIC SDK WITH REACT NATIVE! The \`endpoint\` parameter SHOULD NOT be provided. The Magic \`<iframe>\` is automatically wrapped by a WebView pointed at \`${Y.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function Ua(e){let{method:t,removalVersions:r,useInstead:i}=e,a=r[Y.sdkName],s=i?` Use \`${i}\` instead.`:"",p=`\`${t}\` will be removed from \`${Y.sdkName}\` in version \`${a}\`.${s}`;return new xe(_e.DeprecationNotice,p)}function*xa(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var Fa=xa();function nn(){return Fa.next().value}var an={};Ci(an,{clear:()=>ka,getItem:()=>fe,iterate:()=>on,key:()=>Ba,keys:()=>Ga,length:()=>Wa,removeItem:()=>Be,setItem:()=>Oe});var ct;function Me(e){return async(...t)=>(ct||(ct=await Y.configureStorage()),await ct.ready(),ct[e](...t))}var fe=Me("getItem"),Oe=Me("setItem"),Be=Me("removeItem"),ka=Me("clear"),Wa=Me("length"),Ba=Me("key"),Ga=Me("keys"),on=Me("iterate");function Va(){let e=window.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&191|128;let t="";return t+=e[0].toString(16),t+=e[1].toString(16),t+=e[2].toString(16),t+=e[3].toString(16),t+="-",t+=e[4].toString(16),t+=e[5].toString(16),t+="-",t+=e[6].toString(16),t+=e[7].toString(16),t+="-",t+=e[8].toString(16),t+=e[9].toString(16),t+="-",t+=e[10].toString(16),t+=e[11].toString(16),t+=e[12].toString(16),t+=e[13].toString(16),t+=e[14].toString(16),t+=e[15].toString(16),t}var kt="STORE_KEY_PRIVATE_KEY",mt="STORE_KEY_PUBLIC_JWK",sn="ECDSA",ja="P-256",Ha={name:sn,namedCurve:ja};function yt(){let e=typeof window<"u"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function qa(){console.log("clearing keys"),Be(mt),Be(kt)}async function Ka(){let e=await Ya();if(!e){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:t}=window.crypto,r=await fe(kt);if(!r||!t){console.info("unable to find private key or webcrypto unsupported");return}let i={iat:Math.floor(new Date().getTime()/1e3),jti:Va()},a={protected:Hr(JSON.stringify({typ:"dpop+jwt",alg:"ES256",jwk:e})),claims:Hr(JSON.stringify(i))},s=za(`${a.protected}.${a.claims}`),p={name:sn,hash:{name:"SHA-256"}},h=Qa(new Uint8Array(await t.sign(p,r,s)));return`${a.protected}.${a.claims}.${h}`}async function Ya(){if(!yt()){console.info("webcrypto is not supported");return}return await fe(mt)||await Xa(),fe(mt)}async function Xa(){let{subtle:e}=window.crypto,t=await e.generateKey(Ha,!1,["sign"]),r=await e.exportKey("jwk",t.publicKey);await Oe(kt,t.privateKey),await Oe(mt,r)}function Hr(e){return cn(Ja(e))}function za(e){return new TextEncoder().encode(e)}function cn(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function Ja(e){return encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function Qa(e){let t="";return e.forEach(r=>{t+=String.fromCharCode(r)}),cn(t)}var ln=Symbol("Payload pre-processed by Magic SDK");function un(e){return Object.defineProperty(e,ln,{value:!0,enumerable:!1}),e}function Za(e){return!!e[ln]}function pt(e){return Za(e)||(e.jsonrpc=e.jsonrpc??"2.0",e.id=nn(),e.method=e.method??"noop",e.params=e.params??[],un(e)),e}function G(e,t=[]){return un({params:t,method:e,jsonrpc:"2.0",id:nn()})}var dn=class fn{_jsonrpc;_id;_result;_error;constructor(t){t instanceof fn?(this._jsonrpc=t.payload.jsonrpc,this._id=t.payload.id,this._result=t.payload.result,this._error=t.payload.error):Aa(t)?(this._jsonrpc=t.jsonrpc,this._id=t.id,this._result=t.result,this._error=t.error):(this._jsonrpc=t.jsonrpc,this._id=t.id,this._result=void 0,this._error=void 0)}applyError(t){return this._error=t,this}applyResult(t){return this._result=t,this}get hasError(){return this._error?.code===Ae.DpopInvalidated&&qa(),typeof this._error<"u"&&this._error!==null}get hasResult(){return typeof this._result<"u"}get payload(){return{jsonrpc:this._jsonrpc,id:this._id,result:this._result,error:this._error}}},eo=Di($i()),to=class extends eo.default{};function hn(){let e=new to;return{emitter:e,createChainingEmitterMethod:(t,r)=>(...i)=>(e[t].apply(e,i),r),createBoundEmitterMethod:t=>(...r)=>e[t].apply(e,r)}}var mn=Symbol("isPromiEvent");function Wt(e){return!!e[mn]}function ge(e){let t=pn(e),{createBoundEmitterMethod:r,createChainingEmitterMethod:i}=hn(),a=Symbol("Promise.then"),s=Symbol("Promise.catch"),p=Symbol("Promise.finally"),h=(y,O)=>(...E)=>{let N=O[y].apply(O,E);return w(N)},w=y=>Object.assign(y,{[mn]:!0,[a]:y[a]||y.then,[s]:y[s]||y.catch,[p]:y[p]||y.finally,then:h(a,y),catch:h(s,y),finally:h(p,y),on:i("on",y),once:i("once",y),addListener:i("addListener",y),off:i("off",y),removeListener:i("removeListener",y),removeAllListeners:i("removeAllListeners",y),emit:r("emit"),eventNames:r("eventNames"),listeners:r("listeners"),listenerCount:r("listenerCount")}),v=w(t.then(y=>(v.emit("done",y),v.emit("settled"),y),y=>{throw v.emit("error",y),v.emit("settled"),y}));return v.on(it.ClosedByUser,()=>{v.emit(nt.ClosedByUser)}),v}function pn(e){return new Promise((t,r)=>{let i=e(t,r);Promise.resolve(i).catch(r)})}var Le=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){if(this.sdk.thirdPartyWallets.isConnected&&!Mt.includes(e.method))return ge((a,s)=>{this.sdk.thirdPartyWallets.requestOverride(e).then(a).catch(s)});let t=this.overlay.post(Ie.MAGIC_HANDLE_REQUEST,pt(e)),r=ge((a,s)=>{t.then(p=>{if(i(),p.hasError)s(new Je(p.payload.error));else if(p.hasResult)a(p.payload.result);else throw Ma()}).catch(p=>{i(),s(p)})}),i=this.overlay.on(de.MAGIC_HANDLE_EVENT,a=>{let{response:s}=a.data;if(s.id===e.id&&s.result?.event){let{event:p,params:h=[]}=s.result;r.emit(p,...h)}});return r}createIntermediaryEvent(e,t){return r=>{let i=G(M.IntermediaryEvent,[{payloadId:t,eventType:e,args:r}]);this.request(i)}}};function ro(e,t){let[r]=e.split(".").map(Number);return r>=t}var no={"magic-sdk":"v18.0.0","@magic-sdk/react-native":"v14.0.0","@magic-sdk/react-native-bare":"v19.0.0","@magic-sdk/react-native-expo":"v19.0.0"},io=class extends Le{loginWithMagicLink(e){let t=Y.sdkName==="@magic-sdk/react-native"||Y.sdkName==="@magic-sdk/react-native-bare"||Y.sdkName==="@magic-sdk/react-native-expo";if(t&&ro(Y.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&Ua({method:"auth.loginWithMagicLink()",removalVersions:no,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:r,showUI:i=!0,redirectURI:a,overrides:s,lifespan:p}=e,h=G(this.sdk.testMode?M.LoginWithMagicLinkTestMode:M.LoginWithMagicLink,[{email:r,showUI:i,redirectURI:a,overrides:s,lifespan:p}]);return this.request(h)}loginWithSMS(e){let{phoneNumber:t,showUI:r=!0,lifespan:i}=e,a=G(this.sdk.testMode?M.LoginWithSmsTestMode:M.LoginWithSms,[{phoneNumber:t,showUI:r,lifespan:i}]),s=this.request(a);return!r&&s&&(s.on(De.VerifySmsOtp,p=>{this.createIntermediaryEvent(De.VerifySmsOtp,a.id)(p)}),s.on(De.Cancel,()=>{this.createIntermediaryEvent(De.Cancel,a.id)()})),s}loginWithEmailOTP(e){let{email:t,showUI:r,deviceCheckUI:i,overrides:a,lifespan:s}=e,p=G(this.sdk.testMode?M.LoginWithEmailOTPTestMode:M.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:i,overrides:a,lifespan:s}]),h=this.request(p);return!i&&h&&h.on(Ke.Retry,()=>{this.createIntermediaryEvent(Ke.Retry,p.id)()}),!r&&h&&(h.on(le.VerifyEmailOtp,w=>{this.createIntermediaryEvent(le.VerifyEmailOtp,p.id)(w)}),h.on(le.VerifyMFACode,w=>{this.createIntermediaryEvent(le.VerifyMFACode,p.id)(w)}),h.on(le.LostDevice,()=>{this.createIntermediaryEvent(le.LostDevice,p.id)()}),h.on(le.VerifyRecoveryCode,w=>{this.createIntermediaryEvent(le.VerifyRecoveryCode,p.id)(w)}),h.on(le.Cancel,()=>{this.createIntermediaryEvent(le.Cancel,p.id)()})),h}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:r}=e||{},i=t??"";if(!t&&Y.platform==="web"){i=window.location.search;let s=window.location.origin+window.location.pathname;window.history.replaceState(null,"",s)}let a=G(this.sdk.testMode?M.LoginWithCredentialTestMode:M.LoginWithCredential,[i,r]);return this.request(a)}setAuthorizationToken(e){let t=G(M.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,i=G(this.sdk.testMode?M.UpdateEmailTestMode:M.UpdateEmail,[{email:t,showUI:r}]),a=this.request(i);return r||(a.on(ce.Retry,()=>{this.createIntermediaryEvent(ce.Retry,i.id)()}),a.on(ce.Cancel,()=>{this.createIntermediaryEvent(ce.Cancel,i.id)()}),a.on(ce.VerifyEmailOtp,s=>{this.createIntermediaryEvent(ce.VerifyEmailOtp,i.id)(s)}),a.on(ce.VerifyMFACode,s=>{this.createIntermediaryEvent(ce.VerifyMFACode,i.id)(s)}),a.on(te.RetryWithNewEmail,s=>{this.createIntermediaryEvent(te.RetryWithNewEmail,i.id)(s)}),a.on(te.Cancel,()=>{this.createIntermediaryEvent(te.Cancel,i.id)()}),a.on(te.VerifyEmailOtp,s=>{this.createIntermediaryEvent(te.VerifyEmailOtp,i.id)(s)})),a}},Bt="ds",Gt="ek",Vt="iv",jt="AES-GCM",ao=256;async function vn(){let e=[];await on((t,r,i)=>{r.startsWith(`${Bt}_`)&&e.push(r)});for(let t of e)await Be(t)}function yn(e){let t="",r=new Uint8Array(e),i=r.byteLength;for(let a=0;a<i;a++)t+=String.fromCharCode(r[a]);return window.btoa(t)}function gn(e){let t=window.atob(e),r=t.length,i=new Uint8Array(r);for(let a=0;a<r;a++)i[a]=t.charCodeAt(a);return i.buffer}async function oo(){if(!yt()){console.info("webcrypto is not supported");return}let{crypto:e}=window;return await fe(Vt)||e.getRandomValues(new Uint8Array(12))}async function so(){if(!yt()){console.info("webcrypto is not supported");return}let{subtle:e}=window.crypto;return await fe(Gt)||await e.generateKey({name:jt,length:ao},!1,["encrypt","decrypt"])}async function co(e,t){let r=await oo(),i=await so();if(!r||!i||!e)return;let a=gn(e),{subtle:s}=window.crypto,p=await s.encrypt({name:jt,iv:r},i,a),h=yn(p);await Oe(`${Bt}_${t}`,h),await Oe(Gt,i),await Oe(Vt,r)}async function lo(e){let t=await fe(`${Bt}_${e}`),r=await fe(Vt),i=await fe(Gt);if(!r||!t||!i||!yt())return;let{subtle:a}=window.crypto,s=await a.decrypt({name:jt,iv:r},i,gn(t));return yn(s)}function Qe(e,t){return t?new URL(e,t):new URL(e)}var uo=class extends Le{getIdToken(e){let t=G(this.sdk.testMode?M.GetIdTokenTestMode:M.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=G(this.sdk.testMode?M.GenerateIdTokenTestMode:M.GenerateIdToken,[e]);return this.request(t)}getInfo(){let e=G(M.GetInfo,[]);return this.request(e)}isLoggedIn(){return ge(async(e,t)=>{try{let r=!1;this.sdk.useStorageCache&&(r=await fe(this.localForageIsLoggedInKey)==="true",r&&e(!0));let i=G(this.sdk.testMode?M.IsLoggedInTestMode:M.IsLoggedIn),a=await this.request(i);this.sdk.useStorageCache&&(a?Oe(this.localForageIsLoggedInKey,!0):Be(this.localForageIsLoggedInKey),r&&!a&&this.emitUserLoggedOut(!0)),e(a)}catch(r){t(r)}})}logout(){return Be(this.localForageIsLoggedInKey),vn(),ge(async(e,t)=>{try{let r=G(this.sdk.testMode?M.LogoutTestMode:M.Logout),i=await this.request(r);this.sdk.useStorageCache&&this.emitUserLoggedOut(i),e(i)}catch(r){t(r)}})}requestInfoWithUI(e){let t=G(M.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let{showUI:t=!0}=e||{},r=G(this.sdk.testMode?M.UserSettingsTestMode:M.UserSettings,[e]),i=this.request(r);return!t&&i&&(i.on(me.SendNewPhoneNumber,a=>{this.createIntermediaryEvent(me.SendNewPhoneNumber,r.id)(a)}),i.on(me.SendOtpCode,a=>{this.createIntermediaryEvent(me.SendOtpCode,r.id)(a)}),i.on(me.StartEditPhoneNumber,()=>{this.createIntermediaryEvent(me.StartEditPhoneNumber,r.id)()}),i.on(me.Cancel,()=>{this.createIntermediaryEvent(me.Cancel,r.id)()}),i.on(ce.VerifyEmailOtp,a=>{this.createIntermediaryEvent(ce.VerifyEmailOtp,r.id)(a)})),i}recoverAccount(e){let{email:t,showUI:r}=e,i=G(this.sdk.testMode?M.RecoverAccountTestMode:M.RecoverAccount,[{email:t,showUI:r}]),a=this.request(i);return!r&&a&&(a.on(pe.Cancel,()=>{this.createIntermediaryEvent(pe.Cancel,i.id)()}),a.on(pe.ResendSms,()=>{this.createIntermediaryEvent(pe.ResendSms,i.id)()}),a.on(pe.VerifyOtp,s=>{this.createIntermediaryEvent(pe.VerifyOtp,i.id)(s)}),a.on(pe.UpdateEmail,s=>{this.createIntermediaryEvent(pe.UpdateEmail,i.id)(s)}),a.on(te.Cancel,()=>{this.createIntermediaryEvent(te.Cancel,i.id)()}),a.on(te.RetryWithNewEmail,s=>{this.createIntermediaryEvent(te.RetryWithNewEmail,i.id)(s)}),a.on(te.VerifyEmailOtp,s=>{this.createIntermediaryEvent(te.VerifyEmailOtp,i.id)(s)})),a}revealPrivateKey(){let e=G(M.RevealPK);return this.request(e)}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}enableMFA(e){let{showUI:t=!0}=e,r=G(M.EnableMFA,[{showUI:t}]),i=this.request(r);return!t&&i&&(i.on($e.VerifyMFACode,a=>{this.createIntermediaryEvent($e.VerifyMFACode,r.id)(a)}),i.on($e.Cancel,()=>{this.createIntermediaryEvent($e.Cancel,r.id)()})),i}disableMFA(e){let{showUI:t=!0}=e,r=G(M.DisableMFA,[{showUI:t}]),i=this.request(r);return!t&&i&&(i.on(we.VerifyMFACode,a=>{this.createIntermediaryEvent(we.VerifyMFACode,r.id)(a)}),i.on(we.LostDevice,a=>{this.createIntermediaryEvent(we.LostDevice,r.id)(a)}),i.on(we.Cancel,()=>{this.createIntermediaryEvent(we.Cancel,r.id)()})),i}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}localForageIsLoggedInKey="magic_auth_is_logged_in";userLoggedOutCallbacks=[]},fo=class extends Le{connectWithUI(e){let t=ge(async(r,i)=>{try{let a=G(M.Login,[{enabledWallets:this.sdk.thirdPartyWallets.enabledWallets,...e}]),s=this.request(a);this.sdk.thirdPartyWallets.eventListeners.forEach(({event:h,callback:w})=>{s.on(h,()=>w(a.id))}),s.on("id-token-created",h=>{t.emit("id-token-created",h)});let p=await s;p.error&&i(p),r(p)}catch(a){i(a)}});return t}showUI(e){return this.request(G(M.ShowUI,[e]))}showAddress(){return this.request(G(M.ShowAddress))}showSendTokensUI(){return this.request(G(M.ShowSendTokensUI))}showOnRamp(){return this.request(G(M.ShowOnRamp))}showNFTs(){return this.request(G(M.ShowNFTs))}showBalances(){return this.request(G(M.ShowBalances))}sendGaslessTransaction(e,t){return this.request(G(M.SendGaslessTransaction,[e,t]))}},ho=class extends Le{eventListeners=[];enabledWallets={};isConnected=!1;resetThirdPartyWalletState(){localStorage.removeItem(ve.PROVIDER),localStorage.removeItem(ve.ADDRESS),localStorage.removeItem(ve.CHAIN_ID),this.isConnected=!1}requestOverride(e){if(e.method===M.Login)return this.resetThirdPartyWalletState(),super.request(e);if(e.method===M.GetInfo)return this.getInfo(e);if(e.method===M.IsLoggedIn)return this.isLoggedIn(e);if(e.method===M.Logout)return this.logout(e);switch(localStorage.getItem(ve.PROVIDER)){case"web3modal":return this.web3modalRequest(e);default:return this.resetThirdPartyWalletState(),super.request(e)}}isLoggedIn(e){switch(localStorage.getItem(ve.PROVIDER)){case"web3modal":return this.web3modalIsLoggedIn();default:return this.resetThirdPartyWalletState(),super.request(e)}}getInfo(e){switch(localStorage.getItem(ve.PROVIDER)){case"web3modal":return this.web3modalGetInfo();default:return this.resetThirdPartyWalletState(),super.request(e)}}logout(e){let t=localStorage.getItem(ve.PROVIDER);switch(this.resetThirdPartyWalletState(),t){case"web3modal":return this.web3modalLogout();default:return super.request(e)}}web3modalRequest(e){return ge((t,r)=>{this.sdk.web3modal.modal.getWalletProvider().request(e).then(t).catch(r)})}web3modalIsLoggedIn(){return ge(e=>{let t=this.sdk.web3modal.modal.getStatus();if(t==="connected"&&e(!0),t==="disconnected"&&(this.resetThirdPartyWalletState(),e(!1)),t==="reconnecting"){let r=this.sdk.web3modal.modal.subscribeProvider(({status:i})=>{i==="connected"&&(r(),e(!0)),i==="disconnected"&&(r(),this.resetThirdPartyWalletState(),e(!1))})}})}formatWeb3modalGetInfoResponse(){let e=this.sdk.web3modal.modal.getWalletInfo()?.name,t=this.sdk.web3modal.modal.getAddress();return{publicAddress:t,email:null,issuer:`did:ethr:${t}`,phoneNumber:null,isMfaEnabled:!1,recoveryFactors:[],walletType:e||"web3modal"}}web3modalGetInfo(){return ge((e,t)=>{let r=this.sdk.web3modal.modal.getStatus();if(r==="connected"&&e(this.formatWeb3modalGetInfoResponse()),r==="disconnected"&&(this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access.")),r==="reconnecting"){let i=this.sdk.web3modal.modal.subscribeProvider(({status:a})=>{a==="connected"&&(i(),e(this.formatWeb3modalGetInfoResponse())),a==="disconnected"&&(i(),this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access."))})}})}web3modalLogout(){return ge(async e=>{try{await this.sdk.web3modal.modal.disconnect()}catch(t){console.error(t)}e(!0)})}},{createBoundEmitterMethod:lt,createChainingEmitterMethod:We}=hn(),mo=class extends Le{isMagic=!0;sendAsync(e,t){if(!t)throw Pa({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(Ie.MAGIC_HANDLE_REQUEST,e.map(r=>{let i=pt(r);return this.prefixPayloadMethodForTestMode(i),i})).then(r=>{t(null,r.map(i=>({...i.payload,error:i.hasError?new Je(i.payload.error):null})))});else{let r=pt(e);this.prefixPayloadMethodForTestMode(r),this.overlay.post(Ie.MAGIC_HANDLE_REQUEST,r).then(i=>{t(i.hasError?new Je(i.payload.error):null,i.payload)})}}send(e,t){if(typeof e=="string"){let i=G(e,Array.isArray(t)?t:[]);return this.request(i)}if(Array.isArray(e)||t){this.sendAsync(e,t);return}let r=Da();return r.log(),new dn(e).applyError({code:-32603,message:r.rawMessage}).payload}enable(){let e=G(M.Login);return this.request(e)}request(e){return this.prefixPayloadMethodForTestMode(e),super.request(e)}prefixPayloadMethodForTestMode(e){let t="testMode/eth/";this.sdk.testMode&&(e.method=`${t}${e.method}`)}on=We("on",this);once=We("once",this);addListener=We("addListener",this);off=We("off",this);removeListener=We("removeListener",this);removeAllListeners=We("removeAllListeners",this);emit=lt("emit");eventNames=lt("eventNames");listeners=lt("listeners");listenerCount=lt("listenerCount")},qr=["request","overlay","sdk"];function po(e){let t=Object.getPrototypeOf(e),r=[t];for(;t!==Le.prototype;)t=Object.getPrototypeOf(t),r.push(t);return r}var vo=class extends Le{compat;__sdk_access_field_descriptors__=new Map;__is_initialized__=!1;utils={createPromiEvent:ge,isPromiEvent:Wt,encodeJSON:zr,decodeJSON:ba,createJsonRpcRequestPayload:G,standardizeJsonRpcRequestPayload:pt,storage:an};constructor(){super(void 0);let e=[this,...po(this)];qr.forEach(t=>{let r=e.map(p=>Object.getOwnPropertyDescriptor(p,t)),i=r.findIndex(p=>!!p),a=i>0,s=r[i];s&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:s,isPrototypeField:a}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw La(t)}}))})}init(e){this.__is_initialized__||(qr.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:r,isPrototypeField:i}=this.__sdk_access_field_descriptors__.get(t);i?delete this[t]:Object.defineProperty(this,t,r)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:r,useInstead:i}=e,a=i?` Use \`${i}\` instead.`:"",s=`\`${t}\` will be removed from this Extension in version \`${r}\`.${a}`;return new ht(this,"DEPRECATION_NOTICE",s)}createWarning(e,t){return new ht(this,e,t)}createError(e,t,r){return new xt(this,e,t,r)}},yo=class extends vo{},vt=class{static Internal=yo},go=class extends Le{purchase(e){let t=G(M.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=this.sdk.thirdPartyWallets.isConnected,r=G(M.NFTCheckout,[{...e,walletProvider:t?"web3modal":"magic"}]),i=this.request(r);return t&&(i.on(Ue.Initiated,async a=>{try{let s=await this.request({method:"eth_sendTransaction",params:[a]});this.createIntermediaryEvent(Ue.Success,r.id)(s)}catch{this.createIntermediaryEvent(Ue.Failure,r.id)()}}),i.on(Ue.Disconnect,()=>{this.sdk.thirdPartyWallets.resetThirdPartyWalletState(),i.emit("disconnect")})),i}transfer(e){let t=G(M.NFTTransfer,[e]);return this.request(t)}};function Kr(e){return e.compat&&e.compat[Y.sdkName]!=null?typeof e.compat[Y.sdkName]=="string"?pa(Ea(Y.version),e.compat[Y.sdkName]):!!e.compat[Y.sdkName]:!0}function Eo(e,t,r){return!t&&!r?`${e}_eth_mainnet`:r?`${e}_${JSON.stringify(r)}`:t?typeof t=="string"?`${e}_eth_${t}`:`${e}_${t.rpcUrl}_${t.chainId}_${t.chainType}`:`${e}_unknown`}function _o(e){let t=e?.extensions??[],r={},i=[];if(Array.isArray(t)?t.forEach(a=>{Kr(a)?(a.init(this),a.name&&(this[a.name]=a),a instanceof vt.Internal&&(ft(a.config)||(r[a.name]=a.config))):i.push(a)}):Object.keys(t).forEach(a=>{if(Kr(t[a])){t[a].init(this);let s=t[a];this[a]=s,s instanceof vt.Internal&&(ft(s.config)||(r[t[a].name]=s.config))}else i.push(t[a])}),i.length)throw Ca(i);return r}var En=class dt{constructor(t,r){if(this.apiKey=t,!t)throw Ta();Y.platform==="react-native"&&r?.endpoint&&$a().log();let{defaultEndpoint:i,version:a}=Y;this.testMode=!!r?.testMode,this.useStorageCache=!!r?.useStorageCache,this.endpoint=Qe(r?.endpoint??i).origin,this.auth=new io(this),this.user=new uo(this),this.wallet=new fo(this),this.nft=new go(this),this.thirdPartyWallets=new ho(this),this.rpcProvider=new mo(this);let s=_o.call(this,r);this.parameters=zr({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:r?.network,host:Qe(this.endpoint).host,sdk:Na[Y.sdkName],version:a,ext:ft(s)?void 0:s,locale:r?.locale||"en_US",...Y.bundleId?{bundleId:Y.bundleId}:{},meta:r?.meta}),this.networkHash=Eo(this.apiKey,r?.network,ft(s)?void 0:s),r?.deferPreload||this.preload()}static __overlays__=new Map;endpoint;parameters;networkHash;testMode;useStorageCache;auth;user;wallet;nft;thirdPartyWallets;rpcProvider;get overlay(){if(!dt.__overlays__.has(this.parameters)){let t=new Y.ViewController(this.endpoint,this.parameters,this.networkHash);t.init(),dt.__overlays__.set(this.parameters,t)}return dt.__overlays__.get(this.parameters)}async preload(){await this.overlay.waitForReady()}};function Io(e,t){return t&&Array.isArray(e)?e.find(r=>r.id===t):e}function wo(e,t){let r=t.data.response?.id,i=Io(e,r);if(r&&i){let a=new dn(i).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:r,response:a}}return{}}async function Ro(e,t,r){let i=await fe("rt"),a;if(Y.platform==="web")try{a=await fe("jwt")??await Ka()}catch(h){console.error("webcrypto error",h)}let s={msgType:e,payload:t};a&&(s.jwt=a),a&&i&&(s.rt=i);let p=await lo(r);return p&&(s.deviceShare=p),s}async function bo(e){e.data.rt&&await Oe("rt",e.data.rt)}function So(e,t){let r=null;return function(...i){r&&clearTimeout(r),r=setTimeout(()=>{e(...i)},t)}}var Ao=1e3,_n=60*Ao,Yr=5*_n,Oo=60*_n,In=class{constructor(e,t,r){this.endpoint=e,this.parameters=t,this.networkHash=r,this.listen()}isReadyForRequest=!1;messageHandlers=new Set;isConnectedToInternet=!0;lastPongTime=null;heartbeatIntervalTimer=null;heartbeatDebounce=So(()=>{this.endpoint==="https://auth.magic.link/"&&this.heartBeatCheck()},Oo);async post(e,t){return pn(async(r,i)=>{if(!this.isConnectedToInternet){let v=Ft();i(v)}await this.checkRelayerExistsInDOM()||(this.isReadyForRequest=!1,await this.reloadRelayer()),this.isReadyForRequest||await this.waitForReady();let a=[],s=Array.isArray(t)?t.map(v=>v.id):[],p=await Ro(`${e}-${this.parameters}`,t,this.networkHash);await this._post(p);let h=v=>y=>{let{id:O,response:E}=wo(t,y);if(bo(y),E?.payload.error?.message==="User denied account access.")vn();else if(y.data.deviceShare){let{deviceShare:N}=y.data;co(N,this.networkHash)}O&&E&&Array.isArray(t)&&s.includes(O)?(a.push(E),a.length===t.length&&(v(),r(a))):O&&E&&!Array.isArray(t)&&O===t.id&&(v(),r(E))},w=this.on(de.MAGIC_HANDLE_RESPONSE,h(()=>w()))})}on(e,t){let r=t.bind(window),i=a=>{a.data.msgType===`${e}-${this.parameters}`&&r(a)};return this.messageHandlers.add(i),()=>this.messageHandlers.delete(i)}waitForReady(){return new Promise(e=>{let t=this.on(de.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()})})}listen(){this.on(de.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(de.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(de.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new xe(_e.ProductAnnouncement,e.data.response.result.product_announcement).log()})}heartBeatCheck(){let e=!0,t=async()=>{let r={msgType:`${Ie.MAGIC_PING}-${this.parameters}`,payload:[]};await this._post(r)};this.heartbeatIntervalTimer=setInterval(async()=>{if(this.lastPongTime){if(Date.now()-this.lastPongTime>Yr*2){this.reloadRelayer(),e=!0;return}}else if(!e){this.reloadRelayer(),e=!0;return}await t(),e=!1},Yr)}stopHeartBeat(){this.heartbeatDebounce(),this.lastPongTime=null,this.heartbeatIntervalTimer&&(clearInterval(this.heartbeatIntervalTimer),this.heartbeatIntervalTimer=null)}};var Ht={};mr(Ht,{AuthEventOnReceived:()=>Ar,DeepLinkPage:()=>gr,DeviceVerificationEventEmit:()=>Ke,DeviceVerificationEventOnReceived:()=>Rr,DisableMFAEventEmit:()=>we,DisableMFAEventOnReceived:()=>Tr,EnableMFAEventEmit:()=>$e,EnableMFAEventOnReceived:()=>Nr,EthChainType:()=>Mr,Extension:()=>vt,ExtensionError:()=>xt,ExtensionWarning:()=>ht,FarcasterLoginEventEmit:()=>Or,LocalStorageKeys:()=>ve,LoginWithEmailOTPEventEmit:()=>le,LoginWithEmailOTPEventOnReceived:()=>wr,LoginWithMagicLinkEventEmit:()=>Er,LoginWithMagicLinkEventOnReceived:()=>_r,LoginWithSmsOTPEventEmit:()=>De,LoginWithSmsOTPEventOnReceived:()=>Ir,MagicIncomingWindowMessage:()=>de,MagicOutgoingWindowMessage:()=>Ie,MagicPayloadMethod:()=>M,NftCheckoutIntermediaryEvents:()=>Ue,RPCError:()=>Je,RPCErrorCode:()=>Ae,RecencyCheckEventEmit:()=>ce,RecencyCheckEventOnReceived:()=>br,RecoverAccountEventEmit:()=>pe,RecoverAccountEventOnReceived:()=>Pr,RecoveryFactorEventEmit:()=>me,RecoveryFactorEventOnReceived:()=>Lr,RecoveryMethodType:()=>Cr,SDKError:()=>Te,SDKErrorCode:()=>Ee,SDKWarning:()=>xe,SDKWarningCode:()=>_e,ThirdPartyWalletEvents:()=>yr,UiEventsEmit:()=>$r,UpdateEmailEventEmit:()=>te,UpdateEmailEventOnReceived:()=>Sr,UserEventsEmit:()=>nt,UserEventsOnReceived:()=>it,WalletEventOnReceived:()=>Dr,isPromiEvent:()=>Wt,routeToMagicMethods:()=>Mt});var _t=vr(Rn()),Kt=vr(Sn());var No={display:"block",visibility:"hidden",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",opacity:"0",zIndex:"-1"};function To(e){for(let[t,r]of Object.entries(No))e.style[t]=r}function Mo(e){return!![].slice.call(document.querySelectorAll(".magic-iframe")).find(r=>r.src.includes(e))}var Et=class extends In{activeElement=null;iframe;relayerSrc=Qe(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href;init(){this.test="hello",this.iframe=new Promise(t=>{let r=()=>{if(Mo(encodeURIComponent(this.parameters)))rn().log();else{let i=document.createElement("iframe");i.classList.add("magic-iframe"),i.dataset.magicIframeLabel=Qe(this.endpoint).host,i.title="Secure Modal",i.src=this.relayerSrc,i.allow="clipboard-read; clipboard-write",To(i),document.body.appendChild(i),t(i)}};["loaded","interactive","complete"].includes(document.readyState)?r():window.addEventListener("load",r,!1)}),this.iframe.then(t=>{t instanceof HTMLIFrameElement&&t.addEventListener("load",async()=>{this.heartbeatDebounce()})}),window.addEventListener("message",t=>{if(t.origin===this.endpoint&&t.data.msgType&&(t.data.msgType.includes(de.MAGIC_PONG)&&(this.lastPongTime=Date.now()),t.data&&this.messageHandlers.size)){t.data.response=t.data.response??{},this.stopHeartBeat();for(let r of this.messageHandlers.values())r(t)}}),window.addEventListener("beforeunload",()=>{this.stopHeartBeat()})}async showOverlay(){let t=await this.iframe;t.style.visibility="visible",t.style.zIndex="2147483647",t.style.opacity="1",this.activeElement=document.activeElement,t.focus()}async hideOverlay(){let t=await this.iframe;t.style.visibility="hidden",t.style.zIndex="-1",t.style.opacity="0",this.activeElement?.focus&&this.activeElement.focus(),this.activeElement=null}async _post(t){let r=await this.iframe;if(r&&r.contentWindow)r.contentWindow.postMessage(t,this.endpoint);else throw Ft()}async checkRelayerExistsInDOM(){let t=await this.iframe;return!t||!t.contentWindow?!1:!![].slice.call(document.querySelectorAll(".magic-iframe")).find(i=>i.src.includes(encodeURIComponent(this.parameters)))}async reloadRelayer(){let t=await this.iframe;if(this.stopHeartBeat(),!t){this.init(),console.warn("Magic SDK: Modal lost, re-initiating");return}if(!t.contentWindow){document.body.appendChild(t),console.warn("Magic SDK: Modal did not append in the iframe, re-initiating");return}t&&(t.src=this.relayerSrc)}};var Lo=Object.assign(Qr(En,{platform:"web",sdkName:"magic-sdk",version:"29.0.5",defaultEndpoint:"https://auth.magic.link/",ViewController:Et,configureStorage:async()=>{let e=_t.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return await e.defineDriver(Kt),await e.setDriver([_t.default.INDEXEDDB,_t.default.LOCALSTORAGE,Kt._driver]),e}}),{...Ht}),Co=Lo;return Si(Po);})();
6
6
  if (Magic && Magic.default != null) { Magic = Object.assign(Magic.default, Magic); delete Magic.default; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "magic-sdk",
3
- "version": "29.1.0-canary.886.14720845234.0",
3
+ "version": "29.1.0-canary.886.14723611226.0",
4
4
  "description": "Passwordless authentication for the web.",
5
5
  "author": "Magic Labs <team@magic.link> (https://magic.link/)",
6
6
  "license": "MIT",
@@ -29,10 +29,10 @@
29
29
  ]
30
30
  },
31
31
  "dependencies": {
32
- "@magic-sdk/commons": "25.1.0-canary.886.14720845234.0",
33
- "@magic-sdk/provider": "29.1.0-canary.886.14720845234.0",
34
- "@magic-sdk/types": "24.19.0-canary.886.14720845234.0",
32
+ "@magic-sdk/commons": "25.1.0-canary.886.14723611226.0",
33
+ "@magic-sdk/provider": "29.1.0-canary.886.14723611226.0",
34
+ "@magic-sdk/types": "24.19.0-canary.886.14723611226.0",
35
35
  "localforage": "^1.7.4"
36
36
  },
37
- "gitHead": "1e26f775bca0829e89576a372015ce05cfb74bca"
37
+ "gitHead": "b451f91a901a64537a0e471128c432b890d5c22a"
38
38
  }