magic-sdk 29.0.6-canary.879.14604764484.0 → 29.0.6-canary.879.14606398635.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 +4 -4
package/dist/magic.js CHANGED
@@ -2,5 +2,5 @@
2
2
  - Extension \`${t.name}\` supports version(s) \`${n}\``:n||(e+=`
3
3
  - Extension \`${t.name}\` does not support ${B.platform} environments.`)}),new ve("INCOMPATIBLE_EXTENSIONS",e)}function Tn(r){let e=t=>{let n=t+1,i=n%10,s=n%100;return i===1&&s!==11?`${n}st`:i===2&&s!==12?`${n}nd`:i===3&&s!==13?`${n}rd`:`${n}th`};return new ve("INVALID_ARGUMENT",`Invalid ${e(r.argument)} argument given to \`${r.procedure}\`.
4
4
  Expected: \`${r.expected}\`
5
- Received: \`${r.received}\``)}function wn(){return new ge("DUPLICATE_IFRAME","Duplicate iframes found.")}function Sn(){return new ge("SYNC_WEB3_METHOD","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 An(){return new ge("REACT_NATIVE_ENDPOINT_CONFIGURATION",`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 \`${B.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function xn(r){let{method:e,removalVersions:t,useInstead:n}=r,i=t[B.sdkName],s=n?` Use \`${n}\` instead.`:"",u=`\`${e}\` will be removed from \`${B.sdkName}\` in version \`${i}\`.${s}`;return new ge("DEPRECATION_NOTICE",u)}function*Jo(){let r=0;for(;;)r<Number.MAX_SAFE_INTEGER?yield++r:r=0}var Ho=Jo();function rr(){return Ho.next().value}var Nn=Symbol("Payload pre-processed by Magic SDK");function Pn(r){return Object.defineProperty(r,Nn,{value:!0,enumerable:!1}),r}function Ko(r){return!!r[Nn]}function xe(r){return Ko(r)||(r.jsonrpc=r.jsonrpc??"2.0",r.id=rr(),r.method=r.method??"noop",r.params=r.params??[],Pn(r)),r}function $(r,e=[]){return Pn({params:e,method:r,jsonrpc:"2.0",id:rr()})}var Me=class r{constructor(e){e instanceof r?(this.f=e.payload.jsonrpc,this.p=e.payload.id,this.u=e.payload.result,this.s=e.payload.error):vn(e)?(this.f=e.jsonrpc,this.p=e.id,this.u=e.result,this.s=e.error):(this.f=e.jsonrpc,this.p=e.id,this.u=void 0,this.s=void 0)}applyError(e){return this.s=e,this}applyResult(e){return this.u=e,this}get hasError(){return typeof this.s<"u"&&this.s!==null}get hasResult(){return typeof this.u<"u"}get payload(){return{jsonrpc:this.f,id:this.p,result:this.u,error:this.s}}};var On=Ut(Cn()),ir=class extends On.default{};function pt(){let r=new ir;return{emitter:r,createChainingEmitterMethod:(n,i)=>(...s)=>(r[n].apply(r,s),i),createBoundEmitterMethod:n=>(...i)=>r[n].apply(r,i)}}var Ln=Symbol("isPromiEvent");function mt(r){return!!r[Ln]}function se(r){let e=or(r),{createBoundEmitterMethod:t,createChainingEmitterMethod:n}=pt(),i=Symbol("Promise.then"),s=Symbol("Promise.catch"),u=Symbol("Promise.finally"),p=(b,P)=>(...I)=>{let N=P[b].apply(P,I);return m(N)},m=b=>Object.assign(b,{[Ln]:!0,[i]:b[i]||b.then,[s]:b[s]||b.catch,[u]:b[u]||b.finally,then:p(i,b),catch:p(s,b),finally:p(u,b),on:n("on",b),once:n("once",b),addListener:n("addListener",b),off:n("off",b),removeListener:n("removeListener",b),removeAllListeners:n("removeAllListeners",b),emit:t("emit"),eventNames:t("eventNames"),listeners:t("listeners"),listenerCount:t("listenerCount")}),A=m(e.then(b=>(A.emit("done",b),A.emit("settled"),b),b=>{throw A.emit("error",b),A.emit("settled"),b}));return A.on("closed-by-user-on-received",()=>{A.emit("closed-by-user")}),A}function or(r){return new Promise((e,t)=>{let n=r(e,t);Promise.resolve(n).catch(t)})}var Z=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){if(this.sdk.thirdPartyWallets.isConnected&&!Vt.includes(e.method))return se((u,p)=>{this.sdk.thirdPartyWallets.requestOverride(e).then(u).catch(p)});let t=this.overlay.post("MAGIC_HANDLE_REQUEST",xe(e)),n=se((s,u)=>{t.then(p=>{if(i(),p.hasError)u(new Ee(p.payload.error));else if(p.hasResult)s(p.payload.result);else throw Rn()}).catch(p=>{i(),u(p)})}),i=this.overlay.on("MAGIC_HANDLE_EVENT",s=>{let{response:u}=s.data;if(u.id===e.id&&u.result?.event){let{event:p,params:m=[]}=u.result;n.emit(p,...m)}});return n}createIntermediaryEvent(e,t){return i=>{let s=$("magic_intermediary_event",[{payloadId:t,eventType:e,args:i}]);this.request(s)}}};function Mn(r,e){let[t]=r.split(".").map(Number);return t>=e}var Xo={"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"},ht=class extends Z{loginWithMagicLink(e){let t=B.sdkName==="@magic-sdk/react-native"||B.sdkName==="@magic-sdk/react-native-bare"||B.sdkName==="@magic-sdk/react-native-expo";if(t&&Mn(B.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&xn({method:"auth.loginWithMagicLink()",removalVersions:Xo,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:n,showUI:i=!0,redirectURI:s,overrides:u,lifespan:p}=e,m=$(this.sdk.testMode?"magic_login_with_magic_link_testing_mode":"magic_auth_login_with_magic_link",[{email:n,showUI:i,redirectURI:s,overrides:u,lifespan:p}]);return this.request(m)}loginWithSMS(e){let{phoneNumber:t,showUI:n=!0,lifespan:i}=e,s=$(this.sdk.testMode?"magic_auth_login_with_sms_testing_mode":"magic_auth_login_with_sms",[{phoneNumber:t,showUI:n,lifespan:i}]),u=this.request(s);return!n&&u&&(u.on("verify-sms-otp",p=>{this.createIntermediaryEvent("verify-sms-otp",s.id)(p)}),u.on("cancel",()=>{this.createIntermediaryEvent("cancel",s.id)()})),u}loginWithEmailOTP(e){let{email:t,showUI:n,deviceCheckUI:i,overrides:s,lifespan:u}=e,p=$(this.sdk.testMode?"magic_auth_login_with_email_otp_testing_mode":"magic_auth_login_with_email_otp",[{email:t,showUI:n,deviceCheckUI:i,overrides:s,lifespan:u}]),m=this.request(p);return!i&&m&&m.on("device-retry",()=>{this.createIntermediaryEvent("device-retry",p.id)()}),!n&&m&&(m.on("verify-email-otp",A=>{this.createIntermediaryEvent("verify-email-otp",p.id)(A)}),m.on("verify-mfa-code",A=>{this.createIntermediaryEvent("verify-mfa-code",p.id)(A)}),m.on("lost-device",()=>{this.createIntermediaryEvent("lost-device",p.id)()}),m.on("verify-recovery-code",A=>{this.createIntermediaryEvent("verify-recovery-code",p.id)(A)}),m.on("cancel",()=>{this.createIntermediaryEvent("cancel",p.id)()})),m}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:n}=e||{},i=t??"";if(!t&&B.platform==="web"){i=window.location.search;let u=window.location.origin+window.location.pathname;window.history.replaceState(null,"",u)}let s=$(this.sdk.testMode?"magic_auth_login_with_credential_testing_mode":"magic_auth_login_with_credential",[i,n]);return this.request(s)}setAuthorizationToken(e){let t=$("magic_auth_set_authorization_token",[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:n=!0}=e,i=$(this.sdk.testMode?"magic_auth_update_email_testing_mode":"magic_auth_update_email",[{email:t,showUI:n}]),s=this.request(i);return n||(s.on("Recency/auth-factor-retry",()=>{this.createIntermediaryEvent("Recency/auth-factor-retry",i.id)()}),s.on("Recency/auth-factor-verification-cancel",()=>{this.createIntermediaryEvent("Recency/auth-factor-verification-cancel",i.id)()}),s.on("Recency/auth-factor-verify-email-otp",u=>{this.createIntermediaryEvent("Recency/auth-factor-verify-email-otp",i.id)(u)}),s.on("Recency/verify-mfa-code",u=>{this.createIntermediaryEvent("Recency/verify-mfa-code",i.id)(u)}),s.on("UpdateEmail/retry-with-new-email",u=>{this.createIntermediaryEvent("UpdateEmail/retry-with-new-email",i.id)(u)}),s.on("UpdateEmail/new-email-verification-cancel",()=>{this.createIntermediaryEvent("UpdateEmail/new-email-verification-cancel",i.id)()}),s.on("UpdateEmail/new-email-verify-otp",u=>{this.createIntermediaryEvent("UpdateEmail/new-email-verify-otp",i.id)(u)})),s}};var gt={};Ft(gt,{clear:()=>zo,getItem:()=>re,iterate:()=>sr,key:()=>Zo,keys:()=>es,length:()=>Qo,removeItem:()=>Ne,setItem:()=>de});var vt;function Ie(r){return async(...e)=>(vt||(vt=await B.configureStorage()),await vt.ready(),vt[r](...e))}var re=Ie("getItem"),de=Ie("setItem"),Ne=Ie("removeItem"),zo=Ie("clear"),Qo=Ie("length"),Zo=Ie("key"),es=Ie("keys"),sr=Ie("iterate");function Dn(){let r=window.crypto.getRandomValues(new Uint8Array(16));r[6]=r[6]&15|64,r[8]=r[8]&191|128;let e="";return e+=r[0].toString(16),e+=r[1].toString(16),e+=r[2].toString(16),e+=r[3].toString(16),e+="-",e+=r[4].toString(16),e+=r[5].toString(16),e+="-",e+=r[6].toString(16),e+=r[7].toString(16),e+="-",e+=r[8].toString(16),e+=r[9].toString(16),e+="-",e+=r[10].toString(16),e+=r[11].toString(16),e+=r[12].toString(16),e+=r[13].toString(16),e+=r[14].toString(16),e+=r[15].toString(16),e}var kn="STORE_KEY_PRIVATE_KEY",ar="STORE_KEY_PUBLIC_JWK",Fn="ECDSA",ts="P-256",rs={name:Fn,namedCurve:ts};function Qe(){let r=typeof window<"u"&&!!window.crypto,e=r&&!!window.crypto.subtle;return r&&e}async function Un(){let r=await ns();if(!r){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:e}=window.crypto,t=await re(kn);if(!t||!e){console.info("unable to find private key or webcrypto unsupported");return}let n={iat:Math.floor(new Date().getTime()/1e3),jti:Dn()},s={protected:$n(JSON.stringify({typ:"dpop+jwt",alg:"ES256",jwk:r})),claims:$n(JSON.stringify(n))},u=os(`${s.protected}.${s.claims}`),p={name:Fn,hash:{name:"SHA-256"}},m=as(new Uint8Array(await e.sign(p,t,u)));return`${s.protected}.${s.claims}.${m}`}async function ns(){if(!Qe()){console.info("webcrypto is not supported");return}return await re(ar)||await is(),re(ar)}async function is(){let{subtle:r}=window.crypto,e=await r.generateKey(rs,!1,["sign"]),t=await r.exportKey("jwk",e.publicKey);await de(kn,e.privateKey),await de(ar,t)}function $n(r){return qn(ss(r))}function os(r){return new TextEncoder().encode(r)}function qn(r){return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function ss(r){return encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function as(r){let e="";return r.forEach(t=>{e+=String.fromCharCode(t)}),qn(e)}var cr="ds",lr="ek",ur="iv",dr="AES-GCM",cs=256;async function yt(){let r=[];await sr((e,t,n)=>{t.startsWith(`${cr}_`)&&r.push(t)});for(let e of r)await Ne(e)}function Bn(r){let e="",t=new Uint8Array(r),n=t.byteLength;for(let i=0;i<n;i++)e+=String.fromCharCode(t[i]);return window.btoa(e)}function Wn(r){let e=window.atob(r),t=e.length,n=new Uint8Array(t);for(let i=0;i<t;i++)n[i]=e.charCodeAt(i);return n.buffer}async function ls(){if(!Qe()){console.info("webcrypto is not supported");return}let{crypto:r}=window,e=await re(ur);return e||r.getRandomValues(new Uint8Array(12))}async function us(){if(!Qe()){console.info("webcrypto is not supported");return}let{subtle:r}=window.crypto,e=await re(lr);return e||await r.generateKey({name:dr,length:cs},!1,["encrypt","decrypt"])}async function Gn(r,e){let t=await ls(),n=await us();if(!t||!n||!r)return;let i=Wn(r),{subtle:s}=window.crypto,u=await s.encrypt({name:dr,iv:t},n,i),p=Bn(u);await de(`${cr}_${e}`,p),await de(lr,n),await de(ur,t)}async function Vn(r){let e=await re(`${cr}_${r}`),t=await re(ur),n=await re(lr);if(!t||!e||!n||!Qe())return;let{subtle:i}=window.crypto,s=await i.decrypt({name:dr,iv:t},n,Wn(e));return Bn(s)}function De(r,e){return e?new URL(r,e):new URL(r)}var Et=class extends Z{constructor(){super(...arguments);this.localForageIsLoggedInKey="magic_auth_is_logged_in";this.userLoggedOutCallbacks=[]}getIdToken(t){let n=$(this.sdk.testMode?"magic_auth_get_id_token_testing_mode":"magic_auth_get_id_token",[t]);return this.request(n)}generateIdToken(t){let n=$(this.sdk.testMode?"magic_auth_generate_id_token_testing_mode":"magic_auth_generate_id_token",[t]);return this.request(n)}getInfo(){let t=$("magic_get_info",[]);return this.request(t)}isLoggedIn(){return se(async(t,n)=>{try{let i=!1;this.sdk.useStorageCache&&(i=await re(this.localForageIsLoggedInKey)==="true",i&&t(!0));let s=$(this.sdk.testMode?"magic_auth_is_logged_in_testing_mode":"magic_is_logged_in"),u=await this.request(s);this.sdk.useStorageCache&&(u?de(this.localForageIsLoggedInKey,!0):Ne(this.localForageIsLoggedInKey),i&&!u&&this.emitUserLoggedOut(!0)),t(u)}catch(i){n(i)}})}logout(){return Ne(this.localForageIsLoggedInKey),yt(),se(async(t,n)=>{try{let i=$(this.sdk.testMode?"magic_auth_logout_testing_mode":"magic_auth_logout"),s=await this.request(i);this.sdk.useStorageCache&&this.emitUserLoggedOut(s),t(s)}catch(i){n(i)}})}requestInfoWithUI(t){let n=$("mc_request_user_info",t?[t]:[]);return this.request(n)}showSettings(t){let{showUI:n=!0}=t||{},i=$(this.sdk.testMode?"magic_auth_settings_testing_mode":"magic_auth_settings",[t]),s=this.request(i);return!n&&s&&(s.on("send-new-phone-number",u=>{this.createIntermediaryEvent("send-new-phone-number",i.id)(u)}),s.on("send-otp-code",u=>{this.createIntermediaryEvent("send-otp-code",i.id)(u)}),s.on("start-edit-phone-number",()=>{this.createIntermediaryEvent("start-edit-phone-number",i.id)()}),s.on("cancel",()=>{this.createIntermediaryEvent("cancel",i.id)()}),s.on("Recency/auth-factor-verify-email-otp",u=>{this.createIntermediaryEvent("Recency/auth-factor-verify-email-otp",i.id)(u)})),s}recoverAccount(t){let{email:n,showUI:i}=t,s=$(this.sdk.testMode?"magic_auth_recover_account_testing_mode":"magic_auth_recover_account",[{email:n,showUI:i}]),u=this.request(s);return!i&&u&&(u.on("cancel",()=>{this.createIntermediaryEvent("cancel",s.id)()}),u.on("resend-sms-otp",()=>{this.createIntermediaryEvent("resend-sms-otp",s.id)()}),u.on("verify-otp-code",p=>{this.createIntermediaryEvent("verify-otp-code",s.id)(p)}),u.on("update-email",p=>{this.createIntermediaryEvent("update-email",s.id)(p)}),u.on("UpdateEmail/new-email-verification-cancel",()=>{this.createIntermediaryEvent("UpdateEmail/new-email-verification-cancel",s.id)()}),u.on("UpdateEmail/retry-with-new-email",p=>{this.createIntermediaryEvent("UpdateEmail/retry-with-new-email",s.id)(p)}),u.on("UpdateEmail/new-email-verify-otp",p=>{this.createIntermediaryEvent("UpdateEmail/new-email-verify-otp",s.id)(p)})),u}revealPrivateKey(){let t=$("magic_reveal_key");return this.request(t)}onUserLoggedOut(t){this.userLoggedOutCallbacks.push(t)}enableMFA(t){let{showUI:n=!0}=t,i=$("magic_auth_enable_mfa_flow",[{showUI:n}]),s=this.request(i);return!n&&s&&(s.on("verify-mfa-code",u=>{this.createIntermediaryEvent("verify-mfa-code",i.id)(u)}),s.on("cancel-mfa-setup",()=>{this.createIntermediaryEvent("cancel-mfa-setup",i.id)()})),s}disableMFA(t){let{showUI:n=!0}=t,i=$("magic_auth_disable_mfa_flow",[{showUI:n}]),s=this.request(i);return!n&&s&&(s.on("verify-mfa-code",u=>{this.createIntermediaryEvent("verify-mfa-code",i.id)(u)}),s.on("lost-device",u=>{this.createIntermediaryEvent("lost-device",i.id)(u)}),s.on("cancel-mfa-disable",()=>{this.createIntermediaryEvent("cancel-mfa-disable",i.id)()})),s}emitUserLoggedOut(t){this.userLoggedOutCallbacks.forEach(n=>{n(t)})}};var Rt=class extends Z{connectWithUI(e){let t=se(async(n,i)=>{try{let s=$("mc_login",[{enabledWallets:this.sdk.thirdPartyWallets.enabledWallets,...e}]),u=this.request(s);this.sdk.thirdPartyWallets.eventListeners.forEach(({event:m,callback:A})=>{u.on(m,()=>A(s.id))}),u.on("id-token-created",m=>{t.emit("id-token-created",m)});let p=await u;p.error&&i(p),n(p)}catch(s){i(s)}});return t}showUI(e){return this.request($("magic_wallet",[e]))}showAddress(){return this.request($("magic_show_address"))}showSendTokensUI(){return this.request($("magic_show_send_tokens_ui"))}showOnRamp(){return this.request($("magic_show_fiat_onramp"))}showNFTs(){return this.request($("magic_show_nfts"))}showBalances(){return this.request($("magic_show_balances"))}sendGaslessTransaction(e,t){return this.request($("eth_sendGaslessTransaction",[e,t]))}};var bt=class extends Z{constructor(){super(...arguments);this.eventListeners=[];this.enabledWallets={};this.isConnected=!1}resetThirdPartyWalletState(){localStorage.removeItem("magic_3pw_provider"),localStorage.removeItem("magic_3pw_address"),localStorage.removeItem("magic_3pw_chainId"),this.isConnected=!1}requestOverride(t){if(t.method==="mc_login")return this.resetThirdPartyWalletState(),super.request(t);if(t.method==="magic_get_info")return this.getInfo(t);if(t.method==="magic_is_logged_in")return this.isLoggedIn(t);if(t.method==="magic_auth_logout")return this.logout(t);switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalRequest(t);default:return this.resetThirdPartyWalletState(),super.request(t)}}isLoggedIn(t){switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalIsLoggedIn();default:return this.resetThirdPartyWalletState(),super.request(t)}}getInfo(t){switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalGetInfo();default:return this.resetThirdPartyWalletState(),super.request(t)}}logout(t){let n=localStorage.getItem("magic_3pw_provider");switch(this.resetThirdPartyWalletState(),n){case"web3modal":return this.web3modalLogout();default:return super.request(t)}}web3modalRequest(t){return se((n,i)=>{this.sdk.web3modal.modal.getWalletProvider().request(t).then(n).catch(i)})}web3modalIsLoggedIn(){return se(t=>{let n=this.sdk.web3modal.modal.getStatus();if(n==="connected"&&t(!0),n==="disconnected"&&(this.resetThirdPartyWalletState(),t(!1)),n==="reconnecting"){let i=this.sdk.web3modal.modal.subscribeProvider(({status:s})=>{s==="connected"&&(i(),t(!0)),s==="disconnected"&&(i(),this.resetThirdPartyWalletState(),t(!1))})}})}formatWeb3modalGetInfoResponse(){let t=this.sdk.web3modal.modal.getWalletInfo()?.name,n=this.sdk.web3modal.modal.getAddress();return{publicAddress:n,email:null,issuer:`did:ethr:${n}`,phoneNumber:null,isMfaEnabled:!1,recoveryFactors:[],walletType:t||"web3modal"}}web3modalGetInfo(){return se((t,n)=>{let i=this.sdk.web3modal.modal.getStatus();if(i==="connected"&&t(this.formatWeb3modalGetInfoResponse()),i==="disconnected"&&(this.resetThirdPartyWalletState(),n("Magic RPC Error: [-32603] Internal error: User denied account access.")),i==="reconnecting"){let s=this.sdk.web3modal.modal.subscribeProvider(({status:u})=>{u==="connected"&&(s(),t(this.formatWeb3modalGetInfoResponse())),u==="disconnected"&&(s(),this.resetThirdPartyWalletState(),n("Magic RPC Error: [-32603] Internal error: User denied account access."))})}})}web3modalLogout(){return se(async t=>{try{await this.sdk.web3modal.modal.disconnect()}catch(n){console.error(n)}t(!0)})}};var{createBoundEmitterMethod:It,createChainingEmitterMethod:$e}=pt(),Tt=class extends Z{constructor(){super(...arguments);this.isMagic=!0;this.on=$e("on",this);this.once=$e("once",this);this.addListener=$e("addListener",this);this.off=$e("off",this);this.removeListener=$e("removeListener",this);this.removeAllListeners=$e("removeAllListeners",this);this.emit=It("emit");this.eventNames=It("eventNames");this.listeners=It("listeners");this.listenerCount=It("listenerCount")}sendAsync(t,n){if(!n)throw Tn({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:n===null?"null":typeof n});if(Array.isArray(t))this.overlay.post("MAGIC_HANDLE_REQUEST",t.map(i=>{let s=xe(i);return this.prefixPayloadMethodForTestMode(s),s})).then(i=>{n(null,i.map(s=>({...s.payload,error:s.hasError?new Ee(s.payload.error):null})))});else{let i=xe(t);this.prefixPayloadMethodForTestMode(i),this.overlay.post("MAGIC_HANDLE_REQUEST",i).then(s=>{n(s.hasError?new Ee(s.payload.error):null,s.payload)})}}send(t,n){if(typeof t=="string"){let s=$(t,Array.isArray(n)?n:[]);return this.request(s)}if(Array.isArray(t)||n){this.sendAsync(t,n);return}let i=Sn();return i.log(),new Me(t).applyError({code:-32603,message:i.rawMessage}).payload}enable(){let t=$("mc_login");return this.request(t)}request(t){return this.prefixPayloadMethodForTestMode(t),super.request(t)}prefixPayloadMethodForTestMode(t){let n="testMode/eth/";this.sdk.testMode&&(t.method=`${n}${t.method}`)}};var Jn=["request","overlay","sdk"];function ds(r){let e=Object.getPrototypeOf(r),t=[e];for(;e!==Z.prototype;)e=Object.getPrototypeOf(e),t.push(e);return t}var fr=class extends Z{constructor(){super(void 0);this.v=new Map;this.E=!1;this.utils={createPromiEvent:se,isPromiEvent:mt,encodeJSON:at,decodeJSON:jr,createJsonRpcRequestPayload:$,standardizeJsonRpcRequestPayload:xe,storage:gt};let t=[this,...ds(this)];Jn.forEach(n=>{let i=t.map(m=>Object.getOwnPropertyDescriptor(m,n)),s=i.findIndex(m=>!!m),u=s>0,p=i[s];p&&(this.v.set(n,{descriptor:p,isPrototypeField:u}),Object.defineProperty(this,n,{configurable:!0,get:()=>{throw bn(n)}}))})}init(t){this.E||(Jn.forEach(n=>{if(this.v.has(n)){let{descriptor:i,isPrototypeField:s}=this.v.get(n);s?delete this[n]:Object.defineProperty(this,n,i)}}),this.sdk=t,this.E=!0)}createDeprecationWarning(t){let{method:n,removalVersion:i,useInstead:s}=t,u=s?` Use \`${s}\` instead.`:"",p=`\`${n}\` will be removed from this Extension in version \`${i}\`.${u}`;return new Ae(this,"DEPRECATION_NOTICE",p)}createWarning(t,n){return new Ae(this,t,n)}createError(t,n,i){return new Le(this,t,n,i)}},pr=class extends fr{},Te=class{static{this.Internal=pr}};var wt=class extends Z{purchase(e){let t=$("magic_nft_purchase",[e]);return this.request(t)}checkout(e){let t=this.sdk.thirdPartyWallets.isConnected,n=$("magic_nft_checkout",[{...e,walletProvider:t?"web3modal":"magic"}]),i=this.request(n);return t&&(i.on("nft-checkout-initiated",async s=>{try{let u=await this.request({method:"eth_sendTransaction",params:[s]});this.createIntermediaryEvent("nft-checkout-success",n.id)(u)}catch{this.createIntermediaryEvent("nft-checkout-failure",n.id)()}}),i.on("disconnect",()=>{this.sdk.thirdPartyWallets.resetThirdPartyWalletState(),i.emit("disconnect")})),i}transfer(e){let t=$("magic_nft_transfer",[e]);return this.request(t)}};function Hn(r){return r.compat&&r.compat[B.sdkName]!=null?typeof r.compat[B.sdkName]=="string"?Hr(Kr(B.version),r.compat[B.sdkName]):!!r.compat[B.sdkName]:!0}function fs(r,e,t){return!e&&!t?`${r}_eth_mainnet`:t?`${r}_${JSON.stringify(t)}`:e?typeof e=="string"?`${r}_eth_${e}`:`${r}_${e.rpcUrl}_${e.chainId}_${e.chainType}`:`${r}_unknown`}function ps(r){let e=r?.extensions??[],t={},n=[];if(Array.isArray(e)?e.forEach(i=>{Hn(i)?(i.init(this),i.name&&(this[i.name]=i),i instanceof Te.Internal&&(Xe(i.config)||(t[i.name]=i.config))):n.push(i)}):Object.keys(e).forEach(i=>{if(Hn(e[i])){e[i].init(this);let s=e[i];this[i]=s,s instanceof Te.Internal&&(Xe(s.config)||(t[e[i].name]=s.config))}else n.push(e[i])}),n.length)throw In(n);return t}var Ze=class r{constructor(e,t){this.apiKey=e;if(!e)throw En();B.platform==="react-native"&&t?.endpoint&&An().log();let{defaultEndpoint:n,version:i}=B;this.testMode=!!t?.testMode,this.useStorageCache=!!t?.useStorageCache,this.endpoint=De(t?.endpoint??n).origin,this.auth=new ht(this),this.user=new Et(this),this.wallet=new Rt(this),this.nft=new wt(this),this.thirdPartyWallets=new bt(this),this.rpcProvider=new Tt(this);let s=ps.call(this,t);this.parameters=at({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t?.network,host:De(this.endpoint).host,sdk:yn[B.sdkName],version:i,ext:Xe(s)?void 0:s,locale:t?.locale||"en_US",...B.bundleId?{bundleId:B.bundleId}:{},meta:t?.meta}),this.networkHash=fs(this.apiKey,t?.network,Xe(s)?void 0:s),t?.deferPreload||this.preload()}static{this.g=new Map}get overlay(){if(!r.g.has(this.parameters)){let e=new B.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),r.g.set(this.parameters,e)}return r.g.get(this.parameters)}async preload(){await this.overlay.waitForReady()}};function ms(r,e){return e&&Array.isArray(r)?r.find(t=>t.id===e):r}function Kn(r,e){let t=e.data.response?.id,n=ms(r,t);if(t&&n){let i=new Me(n).applyResult(e.data.response.result).applyError(e.data.response.error);return{id:t,response:i}}return{}}async function jn(r,e,t){let n=await re("rt"),i;if(B.platform==="web")try{i=await re("jwt")??await Un()}catch(p){console.error("webcrypto error",p)}let s={msgType:r,payload:e};i&&(s.jwt=i),i&&n&&(s.rt=n);let u=await Vn(t);return u&&(s.deviceShare=u),s}async function Yn(r){r.data.rt&&await de("rt",r.data.rt)}function Xn(r,e){let t=null;return function(...n){t&&clearTimeout(t),t=setTimeout(()=>{r(...n)},e)}}var hs=1e3,Qn=60*hs,zn=5*Qn,vs=60*Qn,et=class{constructor(e,t,n){this.endpoint=e;this.parameters=t;this.networkHash=n;this.isReadyForRequest=!1;this.messageHandlers=new Set;this.isConnectedToInternet=!0;this.lastPongTime=null;this.heartbeatIntervalTimer=null;this.heartbeatDebounce=Xn(()=>{this.endpoint==="https://auth.magic.link/"&&this.heartBeatCheck()},vs);this.listen()}async post(e,t){return or(async(n,i)=>{if(!this.isConnectedToInternet){let b=dt();i(b)}await this.checkRelayerExistsInDOM()||(this.isReadyForRequest=!1,await this.reloadRelayer()),this.isReadyForRequest||await this.waitForReady();let s=[],u=Array.isArray(t)?t.map(b=>b.id):[],p=await jn(`${e}-${this.parameters}`,t,this.networkHash);await this.R(p);let m=b=>P=>{let{id:I,response:N}=Kn(t,P);if(Yn(P),N?.payload.error?.message==="User denied account access.")yt();else if(P.data.deviceShare){let{deviceShare:F}=P.data;Gn(F,this.networkHash)}I&&N&&Array.isArray(t)&&u.includes(I)?(s.push(N),s.length===t.length&&(b(),n(s))):I&&N&&!Array.isArray(t)&&I===t.id&&(b(),n(N))},A=this.on("MAGIC_HANDLE_RESPONSE",m(()=>A()))})}on(e,t){let n=t.bind(window),i=s=>{s.data.msgType===`${e}-${this.parameters}`&&n(s)};return this.messageHandlers.add(i),()=>this.messageHandlers.delete(i)}waitForReady(){return new Promise(e=>{let t=this.on("MAGIC_OVERLAY_READY",()=>{this.isReadyForRequest=!0,e(),t()})})}listen(){this.on("MAGIC_HIDE_OVERLAY",()=>{this.hideOverlay()}),this.on("MAGIC_SHOW_OVERLAY",()=>{this.showOverlay()}),this.on("MAGIC_SEND_PRODUCT_ANNOUNCEMENT",e=>{e.data.response.result.product_announcement&&new ge("ANNOUNCEMENT",e.data.response.result.product_announcement).log()})}heartBeatCheck(){let e=!0,t=async()=>{let n={msgType:`MAGIC_PING-${this.parameters}`,payload:[]};await this.R(n)};this.heartbeatIntervalTimer=setInterval(async()=>{if(this.lastPongTime){if(Date.now()-this.lastPongTime>zn*2){this.reloadRelayer(),e=!0;return}}else if(!e){this.reloadRelayer(),e=!0;return}await t(),e=!1},zn)}stopHeartBeat(){this.heartbeatDebounce(),this.lastPongTime=null,this.heartbeatIntervalTimer&&(clearInterval(this.heartbeatIntervalTimer),this.heartbeatIntervalTimer=null)}};var mr={};Ft(mr,{AuthEventOnReceived:()=>on,DeepLinkPage:()=>Xr,DeviceVerificationEventEmit:()=>Kt,DeviceVerificationEventOnReceived:()=>tn,DisableMFAEventEmit:()=>Yt,DisableMFAEventOnReceived:()=>cn,EnableMFAEventEmit:()=>jt,EnableMFAEventOnReceived:()=>an,EthChainType:()=>ln,Extension:()=>Te,ExtensionError:()=>Le,ExtensionWarning:()=>Ae,FarcasterLoginEventEmit:()=>sn,LocalStorageKeys:()=>Gt,LoginWithEmailOTPEventEmit:()=>Jt,LoginWithEmailOTPEventOnReceived:()=>en,LoginWithMagicLinkEventEmit:()=>zr,LoginWithMagicLinkEventOnReceived:()=>Qr,LoginWithSmsOTPEventEmit:()=>Ht,LoginWithSmsOTPEventOnReceived:()=>Zr,MagicIncomingWindowMessage:()=>Ke,MagicOutgoingWindowMessage:()=>je,MagicPayloadMethod:()=>he,NftCheckoutIntermediaryEvents:()=>er,RPCError:()=>Ee,RPCErrorCode:()=>He,RecencyCheckEventEmit:()=>lt,RecencyCheckEventOnReceived:()=>rn,RecoverAccountEventEmit:()=>Zt,RecoverAccountEventOnReceived:()=>fn,RecoveryFactorEventEmit:()=>Qt,RecoveryFactorEventOnReceived:()=>un,RecoveryMethodType:()=>dn,SDKError:()=>ve,SDKErrorCode:()=>Wt,SDKWarning:()=>ge,SDKWarningCode:()=>ct,ThirdPartyWalletEvents:()=>Yr,UiEventsEmit:()=>mn,UpdateEmailEventEmit:()=>ut,UpdateEmailEventOnReceived:()=>nn,UserEventsEmit:()=>Xt,UserEventsOnReceived:()=>zt,WalletEventOnReceived:()=>pn,isPromiEvent:()=>mt,routeToMagicMethods:()=>Vt});var xt=Ut(ei()),ni=Ut(ri());var gs={display:"block",visibility:"hidden",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",opacity:"0",zIndex:"-1"};function ys(r){for(let[e,t]of Object.entries(gs))r.style[e]=t}function Es(r){return!![].slice.call(document.querySelectorAll(".magic-iframe")).find(t=>t.src.includes(r))}var At=class extends et{constructor(){super(...arguments);this.activeElement=null;this.relayerSrc=De(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href}init(){this.test="hello",this.iframe=new Promise(t=>{let n=()=>{if(Es(encodeURIComponent(this.parameters)))wn().log();else{let i=document.createElement("iframe");i.classList.add("magic-iframe"),i.dataset.magicIframeLabel=De(this.endpoint).host,i.title="Secure Modal",i.src=this.relayerSrc,i.allow="clipboard-read; clipboard-write",ys(i),document.body.appendChild(i),t(i)}};["loaded","interactive","complete"].includes(document.readyState)?n():window.addEventListener("load",n,!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("MAGIC_PONG")&&(this.lastPongTime=Date.now()),t.data&&this.messageHandlers.size)){t.data.response=t.data.response??{},this.stopHeartBeat();for(let n of this.messageHandlers.values())n(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 R(t){let n=await this.iframe;if(n&&n.contentWindow)n.contentWindow.postMessage(t,this.endpoint);else throw dt()}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 Rs=Object.assign(tr(Ze,{platform:"web",sdkName:"magic-sdk",version:"29.0.5",defaultEndpoint:"https://auth.magic.link/",ViewController:At,configureStorage:async()=>{let r=xt.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return await r.defineDriver(ni),await r.setDriver([xt.default.INDEXEDDB,xt.default.LOCALSTORAGE,ni.n]),r}}),{...mr}),bs=Rs;return ro(Is);})();
5
+ Received: \`${r.received}\``)}function wn(){return new ge("DUPLICATE_IFRAME","Duplicate iframes found.")}function Sn(){return new ge("SYNC_WEB3_METHOD","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 An(){return new ge("REACT_NATIVE_ENDPOINT_CONFIGURATION",`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 \`${B.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function xn(r){let{method:e,removalVersions:t,useInstead:n}=r,i=t[B.sdkName],s=n?` Use \`${n}\` instead.`:"",u=`\`${e}\` will be removed from \`${B.sdkName}\` in version \`${i}\`.${s}`;return new ge("DEPRECATION_NOTICE",u)}function*Jo(){let r=0;for(;;)r<Number.MAX_SAFE_INTEGER?yield++r:r=0}var Ho=Jo();function rr(){return Ho.next().value}var Nn=Symbol("Payload pre-processed by Magic SDK");function Pn(r){return Object.defineProperty(r,Nn,{value:!0,enumerable:!1}),r}function Ko(r){return!!r[Nn]}function xe(r){return Ko(r)||(r.jsonrpc=r.jsonrpc??"2.0",r.id=rr(),r.method=r.method??"noop",r.params=r.params??[],Pn(r)),r}function $(r,e=[]){return Pn({params:e,method:r,jsonrpc:"2.0",id:rr()})}var Me=class r{constructor(e){e instanceof r?(this.f=e.payload.jsonrpc,this.p=e.payload.id,this.u=e.payload.result,this.s=e.payload.error):vn(e)?(this.f=e.jsonrpc,this.p=e.id,this.u=e.result,this.s=e.error):(this.f=e.jsonrpc,this.p=e.id,this.u=void 0,this.s=void 0)}applyError(e){return this.s=e,this}applyResult(e){return this.u=e,this}get hasError(){return typeof this.s<"u"&&this.s!==null}get hasResult(){return typeof this.u<"u"}get payload(){return{jsonrpc:this.f,id:this.p,result:this.u,error:this.s}}};var On=Ut(Cn()),ir=class extends On.default{};function pt(){let r=new ir;return{emitter:r,createChainingEmitterMethod:(n,i)=>(...s)=>(r[n].apply(r,s),i),createBoundEmitterMethod:n=>(...i)=>r[n].apply(r,i)}}var Ln=Symbol("isPromiEvent");function mt(r){return!!r[Ln]}function se(r){let e=or(r),{createBoundEmitterMethod:t,createChainingEmitterMethod:n}=pt(),i=Symbol("Promise.then"),s=Symbol("Promise.catch"),u=Symbol("Promise.finally"),p=(b,P)=>(...I)=>{let N=P[b].apply(P,I);return m(N)},m=b=>Object.assign(b,{[Ln]:!0,[i]:b[i]||b.then,[s]:b[s]||b.catch,[u]:b[u]||b.finally,then:p(i,b),catch:p(s,b),finally:p(u,b),on:n("on",b),once:n("once",b),addListener:n("addListener",b),off:n("off",b),removeListener:n("removeListener",b),removeAllListeners:n("removeAllListeners",b),emit:t("emit"),eventNames:t("eventNames"),listeners:t("listeners"),listenerCount:t("listenerCount")}),A=m(e.then(b=>(A.emit("done",b),A.emit("settled"),b),b=>{throw A.emit("error",b),A.emit("settled"),b}));return A.on("closed-by-user-on-received",()=>{A.emit("closed-by-user")}),A}function or(r){return new Promise((e,t)=>{let n=r(e,t);Promise.resolve(n).catch(t)})}var Z=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){if(this.sdk.thirdPartyWallets.isConnected&&!Vt.includes(e.method))return se((u,p)=>{this.sdk.thirdPartyWallets.requestOverride(e).then(u).catch(p)});let t=this.overlay.post("MAGIC_HANDLE_REQUEST",xe(e)),n=se((s,u)=>{t.then(p=>{if(i(),p.hasError)u(new Ee(p.payload.error));else if(p.hasResult)s(p.payload.result);else throw Rn()}).catch(p=>{i(),u(p)})}),i=this.overlay.on("MAGIC_HANDLE_EVENT",s=>{let{response:u}=s.data;if(u.id===e.id&&u.result?.event){let{event:p,params:m=[]}=u.result;n.emit(p,...m)}});return n}createIntermediaryEvent(e,t){return i=>{let s=$("magic_intermediary_event",[{payloadId:t,eventType:e,args:i}]);this.request(s)}}};function Mn(r,e){let[t]=r.split(".").map(Number);return t>=e}var Xo={"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"},ht=class extends Z{loginWithMagicLink(e){let t=B.sdkName==="@magic-sdk/react-native"||B.sdkName==="@magic-sdk/react-native-bare"||B.sdkName==="@magic-sdk/react-native-expo";if(t&&Mn(B.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&xn({method:"auth.loginWithMagicLink()",removalVersions:Xo,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:n,showUI:i=!0,redirectURI:s,overrides:u,lifespan:p}=e,m=$(this.sdk.testMode?"magic_login_with_magic_link_testing_mode":"magic_auth_login_with_magic_link",[{email:n,showUI:i,redirectURI:s,overrides:u,lifespan:p}]);return this.request(m)}loginWithSMS(e){let{phoneNumber:t,showUI:n=!0,lifespan:i}=e,s=$(this.sdk.testMode?"magic_auth_login_with_sms_testing_mode":"magic_auth_login_with_sms",[{phoneNumber:t,showUI:n,lifespan:i}]),u=this.request(s);return!n&&u&&(u.on("verify-sms-otp",p=>{this.createIntermediaryEvent("verify-sms-otp",s.id)(p)}),u.on("cancel",()=>{this.createIntermediaryEvent("cancel",s.id)()})),u}loginWithEmailOTP(e){let{email:t,showUI:n,deviceCheckUI:i,overrides:s,lifespan:u}=e,p=$(this.sdk.testMode?"magic_auth_login_with_email_otp_testing_mode":"magic_auth_login_with_email_otp",[{email:t,showUI:n,deviceCheckUI:i,overrides:s,lifespan:u}]),m=this.request(p);return!i&&m&&m.on("device-retry",()=>{this.createIntermediaryEvent("device-retry",p.id)()}),!n&&m&&(m.on("verify-email-otp",A=>{this.createIntermediaryEvent("verify-email-otp",p.id)(A)}),m.on("verify-mfa-code",A=>{this.createIntermediaryEvent("verify-mfa-code",p.id)(A)}),m.on("lost-device",()=>{this.createIntermediaryEvent("lost-device",p.id)()}),m.on("verify-recovery-code",A=>{this.createIntermediaryEvent("verify-recovery-code",p.id)(A)}),m.on("cancel",()=>{this.createIntermediaryEvent("cancel",p.id)()})),m}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:n}=e||{},i=t??"";if(!t&&B.platform==="web"){i=window.location.search;let u=window.location.origin+window.location.pathname;window.history.replaceState(null,"",u)}let s=$(this.sdk.testMode?"magic_auth_login_with_credential_testing_mode":"magic_auth_login_with_credential",[i,n]);return this.request(s)}setAuthorizationToken(e){let t=$("magic_auth_set_authorization_token",[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:n=!0}=e,i=$(this.sdk.testMode?"magic_auth_update_email_testing_mode":"magic_auth_update_email",[{email:t,showUI:n}]),s=this.request(i);return n||(s.on("Recency/auth-factor-retry",()=>{this.createIntermediaryEvent("Recency/auth-factor-retry",i.id)()}),s.on("Recency/auth-factor-verification-cancel",()=>{this.createIntermediaryEvent("Recency/auth-factor-verification-cancel",i.id)()}),s.on("Recency/auth-factor-verify-email-otp",u=>{this.createIntermediaryEvent("Recency/auth-factor-verify-email-otp",i.id)(u)}),s.on("Recency/verify-mfa-code",u=>{this.createIntermediaryEvent("Recency/verify-mfa-code",i.id)(u)}),s.on("UpdateEmail/retry-with-new-email",u=>{this.createIntermediaryEvent("UpdateEmail/retry-with-new-email",i.id)(u)}),s.on("UpdateEmail/new-email-verification-cancel",()=>{this.createIntermediaryEvent("UpdateEmail/new-email-verification-cancel",i.id)()}),s.on("UpdateEmail/new-email-verify-otp",u=>{this.createIntermediaryEvent("UpdateEmail/new-email-verify-otp",i.id)(u)})),s}};var gt={};Ft(gt,{clear:()=>zo,getItem:()=>re,iterate:()=>sr,key:()=>Zo,keys:()=>es,length:()=>Qo,removeItem:()=>Ne,setItem:()=>de});var vt;function Ie(r){return async(...e)=>(vt||(vt=await B.configureStorage()),await vt.ready(),vt[r](...e))}var re=Ie("getItem"),de=Ie("setItem"),Ne=Ie("removeItem"),zo=Ie("clear"),Qo=Ie("length"),Zo=Ie("key"),es=Ie("keys"),sr=Ie("iterate");function Dn(){let r=window.crypto.getRandomValues(new Uint8Array(16));r[6]=r[6]&15|64,r[8]=r[8]&191|128;let e="";return e+=r[0].toString(16),e+=r[1].toString(16),e+=r[2].toString(16),e+=r[3].toString(16),e+="-",e+=r[4].toString(16),e+=r[5].toString(16),e+="-",e+=r[6].toString(16),e+=r[7].toString(16),e+="-",e+=r[8].toString(16),e+=r[9].toString(16),e+="-",e+=r[10].toString(16),e+=r[11].toString(16),e+=r[12].toString(16),e+=r[13].toString(16),e+=r[14].toString(16),e+=r[15].toString(16),e}var kn="STORE_KEY_PRIVATE_KEY",ar="STORE_KEY_PUBLIC_JWK",Fn="ECDSA",ts="P-256",rs={name:Fn,namedCurve:ts};function Qe(){let r=typeof window<"u"&&!!window.crypto,e=r&&!!window.crypto.subtle;return r&&e}async function Un(){let r=await ns();if(!r){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:e}=window.crypto,t=await re(kn);if(!t||!e){console.info("unable to find private key or webcrypto unsupported");return}let n={iat:Math.floor(new Date().getTime()/1e3),jti:Dn()},s={protected:$n(JSON.stringify({typ:"dpop+jwt",alg:"ES256",jwk:r})),claims:$n(JSON.stringify(n))},u=os(`${s.protected}.${s.claims}`),p={name:Fn,hash:{name:"SHA-256"}},m=as(new Uint8Array(await e.sign(p,t,u)));return`${s.protected}.${s.claims}.${m}`}async function ns(){if(!Qe()){console.info("webcrypto is not supported");return}return await re(ar)||await is(),re(ar)}async function is(){let{subtle:r}=window.crypto,e=await r.generateKey(rs,!1,["sign"]),t=await r.exportKey("jwk",e.publicKey);await de(kn,e.privateKey),await de(ar,t)}function $n(r){return qn(ss(r))}function os(r){return new TextEncoder().encode(r)}function qn(r){return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function ss(r){return encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,(t,n)=>String.fromCharCode(parseInt(n,16)))}function as(r){let e="";return r.forEach(t=>{e+=String.fromCharCode(t)}),qn(e)}var cr="ds",lr="ek",ur="iv",dr="AES-GCM",cs=256;async function yt(){let r=[];await sr((e,t,n)=>{t.startsWith(`${cr}_`)&&r.push(t)});for(let e of r)await Ne(e)}function Bn(r){let e="",t=new Uint8Array(r),n=t.byteLength;for(let i=0;i<n;i++)e+=String.fromCharCode(t[i]);return window.btoa(e)}function Wn(r){let e=window.atob(r),t=e.length,n=new Uint8Array(t);for(let i=0;i<t;i++)n[i]=e.charCodeAt(i);return n.buffer}async function ls(){if(!Qe()){console.info("webcrypto is not supported");return}let{crypto:r}=window,e=await re(ur);return e||r.getRandomValues(new Uint8Array(12))}async function us(){if(!Qe()){console.info("webcrypto is not supported");return}let{subtle:r}=window.crypto,e=await re(lr);return e||await r.generateKey({name:dr,length:cs},!1,["encrypt","decrypt"])}async function Gn(r,e){let t=await ls(),n=await us();if(!t||!n||!r)return;let i=Wn(r),{subtle:s}=window.crypto,u=await s.encrypt({name:dr,iv:t},n,i),p=Bn(u);await de(`${cr}_${e}`,p),await de(lr,n),await de(ur,t)}async function Vn(r){let e=await re(`${cr}_${r}`),t=await re(ur),n=await re(lr);if(!t||!e||!n||!Qe())return;let{subtle:i}=window.crypto,s=await i.decrypt({name:dr,iv:t},n,Wn(e));return Bn(s)}function De(r,e){return e?new URL(r,e):new URL(r)}var Et=class extends Z{constructor(){super(...arguments);this.localForageIsLoggedInKey="magic_auth_is_logged_in";this.userLoggedOutCallbacks=[]}getIdToken(t){let n=$(this.sdk.testMode?"magic_auth_get_id_token_testing_mode":"magic_auth_get_id_token",[t]);return this.request(n)}generateIdToken(t){let n=$(this.sdk.testMode?"magic_auth_generate_id_token_testing_mode":"magic_auth_generate_id_token",[t]);return this.request(n)}getInfo(){let t=$("magic_get_info",[]);return this.request(t)}isLoggedIn(){return se(async(t,n)=>{try{let i=!1;this.sdk.useStorageCache&&(i=await re(this.localForageIsLoggedInKey)==="true",i&&t(!0));let s=$(this.sdk.testMode?"magic_auth_is_logged_in_testing_mode":"magic_is_logged_in"),u=await this.request(s);this.sdk.useStorageCache&&(u?de(this.localForageIsLoggedInKey,!0):Ne(this.localForageIsLoggedInKey),i&&!u&&this.emitUserLoggedOut(!0)),t(u)}catch(i){n(i)}})}logout(){return Ne(this.localForageIsLoggedInKey),yt(),se(async(t,n)=>{try{let i=$(this.sdk.testMode?"magic_auth_logout_testing_mode":"magic_auth_logout"),s=await this.request(i);this.sdk.useStorageCache&&this.emitUserLoggedOut(s),t(s)}catch(i){n(i)}})}requestInfoWithUI(t){let n=$("mc_request_user_info",t?[t]:[]);return this.request(n)}showSettings(t){let{showUI:n=!0}=t||{},i=$(this.sdk.testMode?"magic_auth_settings_testing_mode":"magic_auth_settings",[t]),s=this.request(i);return!n&&s&&(s.on("send-new-phone-number",u=>{this.createIntermediaryEvent("send-new-phone-number",i.id)(u)}),s.on("send-otp-code",u=>{this.createIntermediaryEvent("send-otp-code",i.id)(u)}),s.on("start-edit-phone-number",()=>{this.createIntermediaryEvent("start-edit-phone-number",i.id)()}),s.on("cancel",()=>{this.createIntermediaryEvent("cancel",i.id)()}),s.on("Recency/auth-factor-verify-email-otp",u=>{this.createIntermediaryEvent("Recency/auth-factor-verify-email-otp",i.id)(u)})),s}recoverAccount(t){let{email:n,showUI:i}=t,s=$(this.sdk.testMode?"magic_auth_recover_account_testing_mode":"magic_auth_recover_account",[{email:n,showUI:i}]),u=this.request(s);return!i&&u&&(u.on("cancel",()=>{this.createIntermediaryEvent("cancel",s.id)()}),u.on("resend-sms-otp",()=>{this.createIntermediaryEvent("resend-sms-otp",s.id)()}),u.on("verify-otp-code",p=>{this.createIntermediaryEvent("verify-otp-code",s.id)(p)}),u.on("update-email",p=>{this.createIntermediaryEvent("update-email",s.id)(p)}),u.on("UpdateEmail/new-email-verification-cancel",()=>{this.createIntermediaryEvent("UpdateEmail/new-email-verification-cancel",s.id)()}),u.on("UpdateEmail/retry-with-new-email",p=>{this.createIntermediaryEvent("UpdateEmail/retry-with-new-email",s.id)(p)}),u.on("UpdateEmail/new-email-verify-otp",p=>{this.createIntermediaryEvent("UpdateEmail/new-email-verify-otp",s.id)(p)})),u}revealPrivateKey(){let t=$("magic_reveal_key");return this.request(t)}onUserLoggedOut(t){this.userLoggedOutCallbacks.push(t)}enableMFA(t){let{showUI:n=!0}=t,i=$("magic_auth_enable_mfa_flow",[{showUI:n}]),s=this.request(i);return!n&&s&&(s.on("verify-mfa-code",u=>{this.createIntermediaryEvent("verify-mfa-code",i.id)(u)}),s.on("cancel-mfa-setup",()=>{this.createIntermediaryEvent("cancel-mfa-setup",i.id)()})),s}disableMFA(t){let{showUI:n=!0}=t,i=$("magic_auth_disable_mfa_flow",[{showUI:n}]),s=this.request(i);return!n&&s&&(s.on("verify-mfa-code",u=>{this.createIntermediaryEvent("verify-mfa-code",i.id)(u)}),s.on("lost-device",u=>{this.createIntermediaryEvent("lost-device",i.id)(u)}),s.on("cancel-mfa-disable",()=>{this.createIntermediaryEvent("cancel-mfa-disable",i.id)()})),s}emitUserLoggedOut(t){this.userLoggedOutCallbacks.forEach(n=>{n(t)})}};var Rt=class extends Z{connectWithUI(e){let t=se(async(n,i)=>{try{let s=$("mc_login",[{enabledWallets:this.sdk.thirdPartyWallets.enabledWallets,...e}]),u=this.request(s);this.sdk.thirdPartyWallets.eventListeners.forEach(({event:m,callback:A})=>{u.on(m,()=>A(s.id))}),u.on("id-token-created",m=>{t.emit("id-token-created",m)});let p=await u;p.error&&i(p),n(p)}catch(s){i(s)}});return t}showUI(e){return this.request($("magic_wallet",[e]))}showAddress(){return this.request($("magic_show_address"))}showSendTokensUI(){return this.request($("magic_show_send_tokens_ui"))}showOnRamp(){return this.request($("magic_show_fiat_onramp"))}showNFTs(){return this.request($("magic_show_nfts"))}showBalances(){return this.request($("magic_show_balances"))}sendGaslessTransaction(e,t){return this.request($("eth_sendGaslessTransaction",[e,t]))}};var bt=class extends Z{constructor(){super(...arguments);this.eventListeners=[];this.enabledWallets={};this.isConnected=!1}resetThirdPartyWalletState(){localStorage.removeItem("magic_3pw_provider"),localStorage.removeItem("magic_3pw_address"),localStorage.removeItem("magic_3pw_chainId"),this.isConnected=!1}requestOverride(t){if(t.method==="mc_login")return this.resetThirdPartyWalletState(),super.request(t);if(t.method==="magic_get_info")return this.getInfo(t);if(t.method==="magic_is_logged_in")return this.isLoggedIn(t);if(t.method==="magic_auth_logout")return this.logout(t);switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalRequest(t);default:return this.resetThirdPartyWalletState(),super.request(t)}}isLoggedIn(t){switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalIsLoggedIn();default:return this.resetThirdPartyWalletState(),super.request(t)}}getInfo(t){switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalGetInfo();default:return this.resetThirdPartyWalletState(),super.request(t)}}logout(t){let n=localStorage.getItem("magic_3pw_provider");switch(this.resetThirdPartyWalletState(),n){case"web3modal":return this.web3modalLogout();default:return super.request(t)}}web3modalRequest(t){return se((n,i)=>{this.sdk.web3modal.modal.getWalletProvider().request(t).then(n).catch(i)})}web3modalIsLoggedIn(){return se(t=>{let n=this.sdk.web3modal.modal.getStatus();if(n==="connected"&&t(!0),n==="disconnected"&&(this.resetThirdPartyWalletState(),t(!1)),n==="reconnecting"){let i=this.sdk.web3modal.modal.subscribeProvider(({status:s})=>{s==="connected"&&(i(),t(!0)),s==="disconnected"&&(i(),this.resetThirdPartyWalletState(),t(!1))})}})}formatWeb3modalGetInfoResponse(){let t=this.sdk.web3modal.modal.getWalletInfo()?.name,n=this.sdk.web3modal.modal.getAddress();return{publicAddress:n,email:null,issuer:`did:ethr:${n}`,phoneNumber:null,isMfaEnabled:!1,recoveryFactors:[],walletType:t||"web3modal"}}web3modalGetInfo(){return se((t,n)=>{let i=this.sdk.web3modal.modal.getStatus();if(i==="connected"&&t(this.formatWeb3modalGetInfoResponse()),i==="disconnected"&&(this.resetThirdPartyWalletState(),n("Magic RPC Error: [-32603] Internal error: User denied account access.")),i==="reconnecting"){let s=this.sdk.web3modal.modal.subscribeProvider(({status:u})=>{u==="connected"&&(s(),t(this.formatWeb3modalGetInfoResponse())),u==="disconnected"&&(s(),this.resetThirdPartyWalletState(),n("Magic RPC Error: [-32603] Internal error: User denied account access."))})}})}web3modalLogout(){return se(async t=>{try{await this.sdk.web3modal.modal.disconnect()}catch(n){console.error(n)}t(!0)})}};var{createBoundEmitterMethod:It,createChainingEmitterMethod:$e}=pt(),Tt=class extends Z{constructor(){super(...arguments);this.isMagic=!0;this.on=$e("on",this);this.once=$e("once",this);this.addListener=$e("addListener",this);this.off=$e("off",this);this.removeListener=$e("removeListener",this);this.removeAllListeners=$e("removeAllListeners",this);this.emit=It("emit");this.eventNames=It("eventNames");this.listeners=It("listeners");this.listenerCount=It("listenerCount")}sendAsync(t,n){if(!n)throw Tn({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:n===null?"null":typeof n});if(Array.isArray(t))this.overlay.post("MAGIC_HANDLE_REQUEST",t.map(i=>{let s=xe(i);return this.prefixPayloadMethodForTestMode(s),s})).then(i=>{n(null,i.map(s=>({...s.payload,error:s.hasError?new Ee(s.payload.error):null})))});else{let i=xe(t);this.prefixPayloadMethodForTestMode(i),this.overlay.post("MAGIC_HANDLE_REQUEST",i).then(s=>{n(s.hasError?new Ee(s.payload.error):null,s.payload)})}}send(t,n){if(typeof t=="string"){let s=$(t,Array.isArray(n)?n:[]);return this.request(s)}if(Array.isArray(t)||n){this.sendAsync(t,n);return}let i=Sn();return i.log(),new Me(t).applyError({code:-32603,message:i.rawMessage}).payload}enable(){let t=$("mc_login");return this.request(t)}request(t){return this.prefixPayloadMethodForTestMode(t),super.request(t)}prefixPayloadMethodForTestMode(t){let n="testMode/eth/";this.sdk.testMode&&(t.method=`${n}${t.method}`)}};var Jn=["request","overlay","sdk"];function ds(r){let e=Object.getPrototypeOf(r),t=[e];for(;e!==Z.prototype;)e=Object.getPrototypeOf(e),t.push(e);return t}var fr=class extends Z{constructor(){super(void 0);this.v=new Map;this.E=!1;this.utils={createPromiEvent:se,isPromiEvent:mt,encodeJSON:at,decodeJSON:jr,createJsonRpcRequestPayload:$,standardizeJsonRpcRequestPayload:xe,storage:gt};let t=[this,...ds(this)];Jn.forEach(n=>{let i=t.map(m=>Object.getOwnPropertyDescriptor(m,n)),s=i.findIndex(m=>!!m),u=s>0,p=i[s];p&&(this.v.set(n,{descriptor:p,isPrototypeField:u}),Object.defineProperty(this,n,{configurable:!0,get:()=>{throw bn(n)}}))})}init(t){this.E||(Jn.forEach(n=>{if(this.v.has(n)){let{descriptor:i,isPrototypeField:s}=this.v.get(n);s?delete this[n]:Object.defineProperty(this,n,i)}}),this.sdk=t,this.E=!0)}createDeprecationWarning(t){let{method:n,removalVersion:i,useInstead:s}=t,u=s?` Use \`${s}\` instead.`:"",p=`\`${n}\` will be removed from this Extension in version \`${i}\`.${u}`;return new Ae(this,"DEPRECATION_NOTICE",p)}createWarning(t,n){return new Ae(this,t,n)}createError(t,n,i){return new Le(this,t,n,i)}},pr=class extends fr{},Te=class{static{this.Internal=pr}};var wt=class extends Z{purchase(e){let t=$("magic_nft_purchase",[e]);return this.request(t)}checkout(e){let t=this.sdk.thirdPartyWallets.isConnected,n=$("magic_nft_checkout",[{...e,walletProvider:t?"web3modal":"magic"}]),i=this.request(n);return t&&(i.on("nft-checkout-initiated",async s=>{try{let u=await this.request({method:"eth_sendTransaction",params:[s]});this.createIntermediaryEvent("nft-checkout-success",n.id)(u)}catch{this.createIntermediaryEvent("nft-checkout-failure",n.id)()}}),i.on("disconnect",()=>{this.sdk.thirdPartyWallets.resetThirdPartyWalletState(),i.emit("disconnect")})),i}transfer(e){let t=$("magic_nft_transfer",[e]);return this.request(t)}};function Hn(r){return r.compat&&r.compat[B.sdkName]!=null?typeof r.compat[B.sdkName]=="string"?Hr(Kr(B.version),r.compat[B.sdkName]):!!r.compat[B.sdkName]:!0}function fs(r,e,t){return!e&&!t?`${r}_eth_mainnet`:t?`${r}_${JSON.stringify(t)}`:e?typeof e=="string"?`${r}_eth_${e}`:`${r}_${e.rpcUrl}_${e.chainId}_${e.chainType}`:`${r}_unknown`}function ps(r){let e=r?.extensions??[],t={},n=[];if(Array.isArray(e)?e.forEach(i=>{Hn(i)?(i.init(this),i.name&&(this[i.name]=i),i instanceof Te.Internal&&(Xe(i.config)||(t[i.name]=i.config))):n.push(i)}):Object.keys(e).forEach(i=>{if(Hn(e[i])){e[i].init(this);let s=e[i];this[i]=s,s instanceof Te.Internal&&(Xe(s.config)||(t[e[i].name]=s.config))}else n.push(e[i])}),n.length)throw In(n);return t}var Ze=class{constructor(e,t){this.apiKey=e;this.g=new Map;if(!e)throw En();B.platform==="react-native"&&t?.endpoint&&An().log();let{defaultEndpoint:n,version:i}=B;this.testMode=!!t?.testMode,this.useStorageCache=!!t?.useStorageCache,this.endpoint=De(t?.endpoint??n).origin,this.auth=new ht(this),this.user=new Et(this),this.wallet=new Rt(this),this.nft=new wt(this),this.thirdPartyWallets=new bt(this),this.rpcProvider=new Tt(this);let s=ps.call(this,t);this.parameters=at({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t?.network,host:De(this.endpoint).host,sdk:yn[B.sdkName],version:i,ext:Xe(s)?void 0:s,locale:t?.locale||"en_US",...B.bundleId?{bundleId:B.bundleId}:{},meta:t?.meta}),this.networkHash=fs(this.apiKey,t?.network,Xe(s)?void 0:s),t?.deferPreload||this.preload()}get overlay(){if(!this.g.has(this.parameters)){let e=new B.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),this.g.set(this.parameters,e)}return this.g.get(this.parameters)}async preload(){await this.overlay.waitForReady()}};function ms(r,e){return e&&Array.isArray(r)?r.find(t=>t.id===e):r}function Kn(r,e){let t=e.data.response?.id,n=ms(r,t);if(t&&n){let i=new Me(n).applyResult(e.data.response.result).applyError(e.data.response.error);return{id:t,response:i}}return{}}async function jn(r,e,t){let n=await re("rt"),i;if(B.platform==="web")try{i=await re("jwt")??await Un()}catch(p){console.error("webcrypto error",p)}let s={msgType:r,payload:e};i&&(s.jwt=i),i&&n&&(s.rt=n);let u=await Vn(t);return u&&(s.deviceShare=u),s}async function Yn(r){r.data.rt&&await de("rt",r.data.rt)}function Xn(r,e){let t=null;return function(...n){t&&clearTimeout(t),t=setTimeout(()=>{r(...n)},e)}}var hs=1e3,Qn=60*hs,zn=5*Qn,vs=60*Qn,et=class{constructor(e,t,n){this.endpoint=e;this.parameters=t;this.networkHash=n;this.isReadyForRequest=!1;this.messageHandlers=new Set;this.isConnectedToInternet=!0;this.lastPongTime=null;this.heartbeatIntervalTimer=null;this.heartbeatDebounce=Xn(()=>{this.endpoint==="https://auth.magic.link/"&&this.heartBeatCheck()},vs);this.listen()}async post(e,t){return or(async(n,i)=>{if(!this.isConnectedToInternet){let b=dt();i(b)}await this.checkRelayerExistsInDOM()||(this.isReadyForRequest=!1,await this.reloadRelayer()),this.isReadyForRequest||await this.waitForReady();let s=[],u=Array.isArray(t)?t.map(b=>b.id):[],p=await jn(`${e}-${this.parameters}`,t,this.networkHash);await this.R(p);let m=b=>P=>{let{id:I,response:N}=Kn(t,P);if(Yn(P),N?.payload.error?.message==="User denied account access.")yt();else if(P.data.deviceShare){let{deviceShare:F}=P.data;Gn(F,this.networkHash)}I&&N&&Array.isArray(t)&&u.includes(I)?(s.push(N),s.length===t.length&&(b(),n(s))):I&&N&&!Array.isArray(t)&&I===t.id&&(b(),n(N))},A=this.on("MAGIC_HANDLE_RESPONSE",m(()=>A()))})}on(e,t){let n=t.bind(window),i=s=>{s.data.msgType===`${e}-${this.parameters}`&&n(s)};return this.messageHandlers.add(i),()=>this.messageHandlers.delete(i)}waitForReady(){return new Promise(e=>{let t=this.on("MAGIC_OVERLAY_READY",()=>{this.isReadyForRequest=!0,e(),t()})})}listen(){this.on("MAGIC_HIDE_OVERLAY",()=>{this.hideOverlay()}),this.on("MAGIC_SHOW_OVERLAY",()=>{this.showOverlay()}),this.on("MAGIC_SEND_PRODUCT_ANNOUNCEMENT",e=>{e.data.response.result.product_announcement&&new ge("ANNOUNCEMENT",e.data.response.result.product_announcement).log()})}heartBeatCheck(){let e=!0,t=async()=>{let n={msgType:`MAGIC_PING-${this.parameters}`,payload:[]};await this.R(n)};this.heartbeatIntervalTimer=setInterval(async()=>{if(this.lastPongTime){if(Date.now()-this.lastPongTime>zn*2){this.reloadRelayer(),e=!0;return}}else if(!e){this.reloadRelayer(),e=!0;return}await t(),e=!1},zn)}stopHeartBeat(){this.heartbeatDebounce(),this.lastPongTime=null,this.heartbeatIntervalTimer&&(clearInterval(this.heartbeatIntervalTimer),this.heartbeatIntervalTimer=null)}};var mr={};Ft(mr,{AuthEventOnReceived:()=>on,DeepLinkPage:()=>Xr,DeviceVerificationEventEmit:()=>Kt,DeviceVerificationEventOnReceived:()=>tn,DisableMFAEventEmit:()=>Yt,DisableMFAEventOnReceived:()=>cn,EnableMFAEventEmit:()=>jt,EnableMFAEventOnReceived:()=>an,EthChainType:()=>ln,Extension:()=>Te,ExtensionError:()=>Le,ExtensionWarning:()=>Ae,FarcasterLoginEventEmit:()=>sn,LocalStorageKeys:()=>Gt,LoginWithEmailOTPEventEmit:()=>Jt,LoginWithEmailOTPEventOnReceived:()=>en,LoginWithMagicLinkEventEmit:()=>zr,LoginWithMagicLinkEventOnReceived:()=>Qr,LoginWithSmsOTPEventEmit:()=>Ht,LoginWithSmsOTPEventOnReceived:()=>Zr,MagicIncomingWindowMessage:()=>Ke,MagicOutgoingWindowMessage:()=>je,MagicPayloadMethod:()=>he,NftCheckoutIntermediaryEvents:()=>er,RPCError:()=>Ee,RPCErrorCode:()=>He,RecencyCheckEventEmit:()=>lt,RecencyCheckEventOnReceived:()=>rn,RecoverAccountEventEmit:()=>Zt,RecoverAccountEventOnReceived:()=>fn,RecoveryFactorEventEmit:()=>Qt,RecoveryFactorEventOnReceived:()=>un,RecoveryMethodType:()=>dn,SDKError:()=>ve,SDKErrorCode:()=>Wt,SDKWarning:()=>ge,SDKWarningCode:()=>ct,ThirdPartyWalletEvents:()=>Yr,UiEventsEmit:()=>mn,UpdateEmailEventEmit:()=>ut,UpdateEmailEventOnReceived:()=>nn,UserEventsEmit:()=>Xt,UserEventsOnReceived:()=>zt,WalletEventOnReceived:()=>pn,isPromiEvent:()=>mt,routeToMagicMethods:()=>Vt});var xt=Ut(ei()),ni=Ut(ri());var gs={display:"block",visibility:"hidden",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",opacity:"0",zIndex:"-1"};function ys(r){for(let[e,t]of Object.entries(gs))r.style[e]=t}function Es(r){return!![].slice.call(document.querySelectorAll(".magic-iframe")).find(t=>t.src.includes(r))}var At=class extends et{constructor(){super(...arguments);this.activeElement=null;this.relayerSrc=De(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href}init(){this.test="hello",this.iframe=new Promise(t=>{let n=()=>{if(Es(encodeURIComponent(this.parameters)))wn().log();else{let i=document.createElement("iframe");i.classList.add("magic-iframe"),i.dataset.magicIframeLabel=De(this.endpoint).host,i.title="Secure Modal",i.src=this.relayerSrc,i.allow="clipboard-read; clipboard-write",ys(i),document.body.appendChild(i),t(i)}};["loaded","interactive","complete"].includes(document.readyState)?n():window.addEventListener("load",n,!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("MAGIC_PONG")&&(this.lastPongTime=Date.now()),t.data&&this.messageHandlers.size)){t.data.response=t.data.response??{},this.stopHeartBeat();for(let n of this.messageHandlers.values())n(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 R(t){let n=await this.iframe;if(n&&n.contentWindow)n.contentWindow.postMessage(t,this.endpoint);else throw dt()}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 Rs=Object.assign(tr(Ze,{platform:"web",sdkName:"magic-sdk",version:"29.0.5",defaultEndpoint:"https://auth.magic.link/",ViewController:At,configureStorage:async()=>{let r=xt.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return await r.defineDriver(ni),await r.setDriver([xt.default.INDEXEDDB,xt.default.LOCALSTORAGE,ni.n]),r}}),{...mr}),bs=Rs;return ro(Is);})();
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.0.6-canary.879.14604764484.0",
3
+ "version": "29.0.6-canary.879.14606398635.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.0.6-canary.879.14604764484.0",
33
- "@magic-sdk/provider": "29.0.6-canary.879.14604764484.0",
32
+ "@magic-sdk/commons": "25.0.6-canary.879.14606398635.0",
33
+ "@magic-sdk/provider": "29.0.6-canary.879.14606398635.0",
34
34
  "@magic-sdk/types": "^24.18.1",
35
35
  "localforage": "^1.7.4"
36
36
  },
37
- "gitHead": "2f8367070af745f34ceb5f451d3aa2221f0c30a6"
37
+ "gitHead": "c0b278fae98f752b0dd4d2d519317808a8155137"
38
38
  }