@magic-sdk/provider 29.4.0 → 29.5.0-canary.912.16609029673.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.
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/es/index.js +1 -1
- package/dist/es/index.js.map +2 -2
- package/dist/es/index.mjs +1 -1
- package/dist/es/index.mjs.map +2 -2
- package/package.json +3 -3
package/dist/cjs/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
- Extension \`${t.name}\` supports version(s) \`${s}\``:s||(e+=`
|
|
3
3
|
- Extension \`${t.name}\` does not support ${E.platform} environments.`)}),new L(x.SDKErrorCode.IncompatibleExtensions,e)}function We(r){let e=t=>{let s=t+1,n=s%10,o=s%100;return n===1&&o!==11?`${s}st`:n===2&&o!==12?`${s}nd`:n===3&&o!==13?`${s}rd`:`${s}th`};return new L(x.SDKErrorCode.InvalidArgument,`Invalid ${e(r.argument)} argument given to \`${r.procedure}\`.
|
|
4
4
|
Expected: \`${r.expected}\`
|
|
5
|
-
Received: \`${r.received}\``)}function Fr(){return new O(x.SDKWarningCode.DuplicateIframe,"Duplicate iframes found.")}function Je(){return new O(x.SDKWarningCode.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 Ge(){return new O(x.SDKWarningCode.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 \`${E.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function Ke(r){let{method:e,removalVersions:t,useInstead:s}=r,n=t[E.sdkName],o=s?` Use \`${s}\` instead.`:"",i=`\`${e}\` will be removed from \`${E.sdkName}\` in version \`${n}\`.${o}`;return new O(x.SDKWarningCode.DeprecationNotice,i)}var p=require("@magic-sdk/types");var F=require("@magic-sdk/types");var bt=require("@magic-sdk/types");function*Wr(){let r=0;for(;;)r<Number.MAX_SAFE_INTEGER?yield++r:r=0}var Jr=Wr();function me(){return Jr.next().value}var re={};st(re,{clear:()=>Gr,getItem:()=>v,iterate:()=>je,key:()=>jr,keys:()=>Vr,length:()=>Kr,removeItem:()=>_,setItem:()=>C});var he;function U(r){return async(...e)=>(he||(he=await E.configureStorage()),await he.ready(),he[r](...e))}var v=U("getItem"),C=U("setItem"),_=U("removeItem"),Gr=U("clear"),Kr=U("length"),jr=U("key"),Vr=U("keys"),je=U("iterate");function Ve(){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 Ee="STORE_KEY_PRIVATE_KEY",ne="STORE_KEY_PUBLIC_JWK",Tt="ECDSA",Br="P-256",Hr={name:Tt,namedCurve:Br};function V(){let r=typeof window<"u"&&!!window.crypto,e=r&&!!window.crypto.subtle;return r&&e}function Be(){_(ne),_(Ee)}async function He(){let r=await Xr();if(!r){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:e}=window.crypto,t=await v(Ee);if(!t||!e){console.info("unable to find private key or webcrypto unsupported");return}let s={iat:Math.floor(new Date().getTime()/1e3),jti:Ve()},o={protected:vt(JSON.stringify({typ:"dpop+jwt",alg:"ES256",jwk:r})),claims:vt(JSON.stringify(s))},i=Yr(`${o.protected}.${o.claims}`),a={name:Tt,hash:{name:"SHA-256"}},c=Zr(new Uint8Array(await e.sign(a,t,i)));return`${o.protected}.${o.claims}.${c}`}async function Xr(){if(!V()){console.info("webcrypto is not supported");return}return await v(ne)||await zr(),v(ne)}async function zr(){let{subtle:r}=window.crypto,e=await r.generateKey(Hr,!1,["sign"]),t=await r.exportKey("jwk",e.publicKey);await C(Ee,e.privateKey),await C(ne,t)}function vt(r){return It(Qr(r))}function Yr(r){return new TextEncoder().encode(r)}function It(r){return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function Qr(r){return encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,(t,s)=>String.fromCharCode(parseInt(s,16)))}function Zr(r){let e="";return r.forEach(t=>{e+=String.fromCharCode(t)}),It(e)}var Pt=Symbol("Payload pre-processed by Magic SDK");function wt(r){return Object.defineProperty(r,Pt,{value:!0,enumerable:!1}),r}function en(r){return!!r[Pt]}function W(r){return en(r)||(r.jsonrpc=r.jsonrpc??"2.0",r.id=me(),r.method=r.method??"noop",r.params=r.params??[],wt(r)),r}function h(r,e=[]){return wt({params:e,method:r,jsonrpc:"2.0",id:me()})}var B=class r{_jsonrpc;_id;_result;_error;constructor(e){e instanceof r?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):Oe(e)?(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=e.result,this._error=e.error):(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=void 0,this._error=void 0)}applyError(e){return this._error=e,this}applyResult(e){return this._result=e,this}get hasError(){return this._error?.code===bt.RPCErrorCode.DpopInvalidated&&Be(),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}}};var ye=require("@magic-sdk/types");var Mt=Xt(xt()),ge=class extends Mt.default{};function oe(){let r=new ge;return{emitter:r,createChainingEmitterMethod:(s,n)=>(...o)=>(r[s].apply(r,o),n),createBoundEmitterMethod:s=>(...n)=>r[s].apply(r,n)}}var Ct=Symbol("isPromiEvent");function ze(r){return!!r[Ct]}function I(r){let e=Re(r),{createBoundEmitterMethod:t,createChainingEmitterMethod:s}=oe(),n=Symbol("Promise.then"),o=Symbol("Promise.catch"),i=Symbol("Promise.finally"),a=(d,m)=>(...w)=>{let S=m[d].apply(m,w);return c(S)},c=d=>Object.assign(d,{[Ct]:!0,[n]:d[n]||d.then,[o]:d[o]||d.catch,[i]:d[i]||d.finally,then:a(n,d),catch:a(o,d),finally:a(i,d),on:s("on",d),once:s("once",d),addListener:s("addListener",d),off:s("off",d),removeListener:s("removeListener",d),removeAllListeners:s("removeAllListeners",d),emit:t("emit"),eventNames:t("eventNames"),listeners:t("listeners"),listenerCount:t("listenerCount")}),u=c(e.then(d=>(u.emit("done",d),u.emit("settled"),d),d=>{throw u.emit("error",d),u.emit("settled"),d}));return u.on(ye.UserEventsOnReceived.ClosedByUser,()=>{u.emit(ye.UserEventsEmit.ClosedByUser)}),u}function Re(r){return new Promise((e,t)=>{let s=r(e,t);Promise.resolve(s).catch(t)})}var y=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){if(this.sdk.thirdPartyWallets.isConnected&&!F.routeToMagicMethods.includes(e.method))return I((i,a)=>{this.sdk.thirdPartyWallets.requestOverride(e).then(i).catch(a)});let t=this.overlay.post(F.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,W(e)),s=I((o,i)=>{t.then(a=>{if(n(),a.hasError)i(new q(a.payload.error));else if(a.hasResult)o(a.payload.result);else throw qe()}).catch(a=>{n(),i(a)})}),n=this.overlay.on(F.MagicIncomingWindowMessage.MAGIC_HANDLE_EVENT,o=>{let{response:i}=o.data;if(i.id===e.id&&i.result?.event){let{event:a,params:c=[]}=i.result;s.emit(a,...c)}});return s}createIntermediaryEvent(e,t){return n=>{let o=h(F.MagicPayloadMethod.IntermediaryEvent,[{payloadId:t,eventType:e,args:n}]);this.request(o)}}};function Ye(r,e){let[t]=r.split(".").map(Number);return t>=e}var nn={"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"},ve=class extends y{loginWithMagicLink(e){let t=E.sdkName==="@magic-sdk/react-native"||E.sdkName==="@magic-sdk/react-native-bare"||E.sdkName==="@magic-sdk/react-native-expo";if(t&&Ye(E.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utilize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&Ke({method:"auth.loginWithMagicLink()",removalVersions:nn,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:s,showUI:n=!0,redirectURI:o,overrides:i,lifespan:a}=e,c=h(this.sdk.testMode?p.MagicPayloadMethod.LoginWithMagicLinkTestMode:p.MagicPayloadMethod.LoginWithMagicLink,[{email:s,showUI:n,redirectURI:o,overrides:i,lifespan:a}]);return this.request(c)}loginWithSMS(e){let{phoneNumber:t,showUI:s=!0,lifespan:n}=e,o=h(this.sdk.testMode?p.MagicPayloadMethod.LoginWithSmsTestMode:p.MagicPayloadMethod.LoginWithSms,[{phoneNumber:t,showUI:s,lifespan:n}]),i=this.request(o);return!s&&i&&(i.on(p.LoginWithSmsOTPEventEmit.VerifySmsOtp,a=>{this.createIntermediaryEvent(p.LoginWithSmsOTPEventEmit.VerifySmsOtp,o.id)(a)}),i.on(p.LoginWithSmsOTPEventEmit.Cancel,()=>{this.createIntermediaryEvent(p.LoginWithSmsOTPEventEmit.Cancel,o.id)()})),i}loginWithEmailOTP(e){let{email:t,showUI:s,deviceCheckUI:n,overrides:o,lifespan:i}=e,a=h(this.sdk.testMode?p.MagicPayloadMethod.LoginWithEmailOTPTestMode:p.MagicPayloadMethod.LoginWithEmailOTP,[{email:t,showUI:s,deviceCheckUI:n,overrides:o,lifespan:i}]),c=this.request(a);return!n&&c&&c.on(p.DeviceVerificationEventEmit.Retry,()=>{this.createIntermediaryEvent(p.DeviceVerificationEventEmit.Retry,a.id)()}),!s&&c&&(c.on(p.LoginWithEmailOTPEventEmit.VerifyEmailOtp,u=>{this.createIntermediaryEvent(p.LoginWithEmailOTPEventEmit.VerifyEmailOtp,a.id)(u)}),c.on(p.LoginWithEmailOTPEventEmit.VerifyMFACode,u=>{this.createIntermediaryEvent(p.LoginWithEmailOTPEventEmit.VerifyMFACode,a.id)(u)}),c.on(p.LoginWithEmailOTPEventEmit.LostDevice,()=>{this.createIntermediaryEvent(p.LoginWithEmailOTPEventEmit.LostDevice,a.id)()}),c.on(p.LoginWithEmailOTPEventEmit.VerifyRecoveryCode,u=>{this.createIntermediaryEvent(p.LoginWithEmailOTPEventEmit.VerifyRecoveryCode,a.id)(u)}),c.on(p.LoginWithEmailOTPEventEmit.Cancel,()=>{this.createIntermediaryEvent(p.LoginWithEmailOTPEventEmit.Cancel,a.id)()})),c}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:s}=e||{},n=t??"";if(!t&&E.platform==="web"){n=window.location.search;let i=window.location.origin+window.location.pathname;window.history.replaceState(null,"",i)}let o=h(this.sdk.testMode?p.MagicPayloadMethod.LoginWithCredentialTestMode:p.MagicPayloadMethod.LoginWithCredential,[n,s]);return this.request(o)}setAuthorizationToken(e){let t=h(p.MagicPayloadMethod.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:s=!0}=e,n=h(this.sdk.testMode?p.MagicPayloadMethod.UpdateEmailTestMode:p.MagicPayloadMethod.UpdateEmail,[{email:t,showUI:s}]),o=this.request(n);return s||(o.on(p.RecencyCheckEventEmit.Retry,()=>{this.createIntermediaryEvent(p.RecencyCheckEventEmit.Retry,n.id)()}),o.on(p.RecencyCheckEventEmit.Cancel,()=>{this.createIntermediaryEvent(p.RecencyCheckEventEmit.Cancel,n.id)()}),o.on(p.RecencyCheckEventEmit.VerifyEmailOtp,i=>{this.createIntermediaryEvent(p.RecencyCheckEventEmit.VerifyEmailOtp,n.id)(i)}),o.on(p.RecencyCheckEventEmit.VerifyMFACode,i=>{this.createIntermediaryEvent(p.RecencyCheckEventEmit.VerifyMFACode,n.id)(i)}),o.on(p.UpdateEmailEventEmit.RetryWithNewEmail,i=>{this.createIntermediaryEvent(p.UpdateEmailEventEmit.RetryWithNewEmail,n.id)(i)}),o.on(p.UpdateEmailEventEmit.Cancel,()=>{this.createIntermediaryEvent(p.UpdateEmailEventEmit.Cancel,n.id)()}),o.on(p.UpdateEmailEventEmit.VerifyEmailOtp,i=>{this.createIntermediaryEvent(p.UpdateEmailEventEmit.VerifyEmailOtp,n.id)(i)})),o}};var l=require("@magic-sdk/types");var Qe="ds",Ze="ek",et="iv",tt="AES-GCM",sn=256;async function Te(){let r=[];await je((e,t,s)=>{t.startsWith(`${Qe}_`)&&r.push(t)});for(let e of r)await _(e)}function Nt(r){let e="",t=new Uint8Array(r),s=t.byteLength;for(let n=0;n<s;n++)e+=String.fromCharCode(t[n]);return window.btoa(e)}function At(r){let e=window.atob(r),t=e.length,s=new Uint8Array(t);for(let n=0;n<t;n++)s[n]=e.charCodeAt(n);return s.buffer}async function on(){if(!V()){console.info("webcrypto is not supported");return}let{crypto:r}=window,e=await v(et);return e||r.getRandomValues(new Uint8Array(12))}async function an(){if(!V()){console.info("webcrypto is not supported");return}let{subtle:r}=window.crypto,e=await v(Ze);return e||await r.generateKey({name:tt,length:sn},!1,["encrypt","decrypt"])}async function $t(r,e){let t=await on(),s=await an();if(!t||!s||!r)return;let n=At(r),{subtle:o}=window.crypto,i=await o.encrypt({name:tt,iv:t},s,n),a=Nt(i);await C(`${Qe}_${e}`,a),await C(Ze,s),await C(et,t)}async function Lt(r){let e=await v(`${Qe}_${r}`),t=await v(et),s=await v(Ze);if(!t||!e||!s||!V())return;let{subtle:n}=window.crypto,o=await n.decrypt({name:tt,iv:t},s,At(e));return Nt(o)}function Ie(r,e){return e?new URL(r,e):new URL(r)}var be=class extends y{getIdToken(e){let t=h(this.sdk.testMode?l.MagicPayloadMethod.GetIdTokenTestMode:l.MagicPayloadMethod.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=h(this.sdk.testMode?l.MagicPayloadMethod.GenerateIdTokenTestMode:l.MagicPayloadMethod.GenerateIdToken,[e]);return this.request(t)}getInfo(){let e=h(l.MagicPayloadMethod.GetInfo,[]);return this.request(e)}isLoggedIn(){return I(async(e,t)=>{try{let s=!1;this.sdk.useStorageCache&&(s=await v(this.localForageIsLoggedInKey)==="true",s&&e(!0));let n=h(this.sdk.testMode?l.MagicPayloadMethod.IsLoggedInTestMode:l.MagicPayloadMethod.IsLoggedIn),o=await this.request(n);this.sdk.useStorageCache&&(o?C(this.localForageIsLoggedInKey,!0):_(this.localForageIsLoggedInKey),s&&!o&&this.emitUserLoggedOut(!0)),e(o)}catch(s){t(s)}})}logout(){return _(this.localForageIsLoggedInKey),Te(),I(async(e,t)=>{try{let s=h(this.sdk.testMode?l.MagicPayloadMethod.LogoutTestMode:l.MagicPayloadMethod.Logout),n=await this.request(s);this.sdk.useStorageCache&&this.emitUserLoggedOut(n),e(n)}catch(s){t(s)}})}requestInfoWithUI(e){let t=h(l.MagicPayloadMethod.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let{showUI:t=!0}=e||{},s=h(this.sdk.testMode?l.MagicPayloadMethod.UserSettingsTestMode:l.MagicPayloadMethod.UserSettings,[e]),n=this.request(s);return!t&&n&&(n.on(l.RecoveryFactorEventEmit.SendNewPhoneNumber,o=>{this.createIntermediaryEvent(l.RecoveryFactorEventEmit.SendNewPhoneNumber,s.id)(o)}),n.on(l.RecoveryFactorEventEmit.SendOtpCode,o=>{this.createIntermediaryEvent(l.RecoveryFactorEventEmit.SendOtpCode,s.id)(o)}),n.on(l.RecoveryFactorEventEmit.StartEditPhoneNumber,()=>{this.createIntermediaryEvent(l.RecoveryFactorEventEmit.StartEditPhoneNumber,s.id)()}),n.on(l.RecoveryFactorEventEmit.Cancel,()=>{this.createIntermediaryEvent(l.RecoveryFactorEventEmit.Cancel,s.id)()}),n.on(l.RecencyCheckEventEmit.VerifyEmailOtp,o=>{this.createIntermediaryEvent(l.RecencyCheckEventEmit.VerifyEmailOtp,s.id)(o)})),n}recoverAccount(e){let{email:t,showUI:s}=e,n=h(this.sdk.testMode?l.MagicPayloadMethod.RecoverAccountTestMode:l.MagicPayloadMethod.RecoverAccount,[{email:t,showUI:s}]),o=this.request(n);return!s&&o&&(o.on(l.RecoverAccountEventEmit.Cancel,()=>{this.createIntermediaryEvent(l.RecoverAccountEventEmit.Cancel,n.id)()}),o.on(l.RecoverAccountEventEmit.ResendSms,()=>{this.createIntermediaryEvent(l.RecoverAccountEventEmit.ResendSms,n.id)()}),o.on(l.RecoverAccountEventEmit.VerifyOtp,i=>{this.createIntermediaryEvent(l.RecoverAccountEventEmit.VerifyOtp,n.id)(i)}),o.on(l.RecoverAccountEventEmit.UpdateEmail,i=>{this.createIntermediaryEvent(l.RecoverAccountEventEmit.UpdateEmail,n.id)(i)}),o.on(l.UpdateEmailEventEmit.Cancel,()=>{this.createIntermediaryEvent(l.UpdateEmailEventEmit.Cancel,n.id)()}),o.on(l.UpdateEmailEventEmit.RetryWithNewEmail,i=>{this.createIntermediaryEvent(l.UpdateEmailEventEmit.RetryWithNewEmail,n.id)(i)}),o.on(l.UpdateEmailEventEmit.VerifyEmailOtp,i=>{this.createIntermediaryEvent(l.UpdateEmailEventEmit.VerifyEmailOtp,n.id)(i)})),o}revealPrivateKey(){let e=h(l.MagicPayloadMethod.RevealPK);return this.request(e)}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}enableMFA(e){let{showUI:t=!0}=e,s=h(l.MagicPayloadMethod.EnableMFA,[{showUI:t}]),n=this.request(s);return!t&&n&&(n.on(l.EnableMFAEventEmit.VerifyMFACode,o=>{this.createIntermediaryEvent(l.EnableMFAEventEmit.VerifyMFACode,s.id)(o)}),n.on(l.EnableMFAEventEmit.Cancel,()=>{this.createIntermediaryEvent(l.EnableMFAEventEmit.Cancel,s.id)()})),n}disableMFA(e){let{showUI:t=!0}=e,s=h(l.MagicPayloadMethod.DisableMFA,[{showUI:t}]),n=this.request(s);return!t&&n&&(n.on(l.DisableMFAEventEmit.VerifyMFACode,o=>{this.createIntermediaryEvent(l.DisableMFAEventEmit.VerifyMFACode,s.id)(o)}),n.on(l.DisableMFAEventEmit.LostDevice,o=>{this.createIntermediaryEvent(l.DisableMFAEventEmit.LostDevice,s.id)(o)}),n.on(l.DisableMFAEventEmit.Cancel,()=>{this.createIntermediaryEvent(l.DisableMFAEventEmit.Cancel,s.id)()})),n}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}localForageIsLoggedInKey="magic_auth_is_logged_in";userLoggedOutCallbacks=[]};var k=require("@magic-sdk/types");var Pe=class extends y{connectWithUI(e){let t=I(async(s,n)=>{try{let o=h(k.MagicPayloadMethod.Login,[{enabledWallets:this.sdk.thirdPartyWallets.enabledWallets,...e}]),i=this.request(o);this.sdk.thirdPartyWallets.eventListeners.forEach(({event:c,callback:u})=>{i.on(c,()=>u(o.id))}),i.on("id-token-created",c=>{t.emit("id-token-created",c)});let a=await i;a.error&&n(a),s(a)}catch(o){n(o)}});return t}showUI(e){return this.request(h(k.MagicPayloadMethod.ShowUI,[e]))}showAddress(){return this.request(h(k.MagicPayloadMethod.ShowAddress))}showSendTokensUI(){return this.request(h(k.MagicPayloadMethod.ShowSendTokensUI))}showOnRamp(){return this.request(h(k.MagicPayloadMethod.ShowOnRamp))}showNFTs(){return this.request(h(k.MagicPayloadMethod.ShowNFTs))}showBalances(){return this.request(h(k.MagicPayloadMethod.ShowBalances))}sendGaslessTransaction(e,t){return this.request(h(k.MagicPayloadMethod.SendGaslessTransaction,[e,t]))}};var M=require("@magic-sdk/types");var we=class extends y{eventListeners=[];enabledWallets={};isConnected=!1;resetThirdPartyWalletState(){localStorage.removeItem(M.LocalStorageKeys.PROVIDER),localStorage.removeItem(M.LocalStorageKeys.ADDRESS),localStorage.removeItem(M.LocalStorageKeys.CHAIN_ID),this.isConnected=!1}requestOverride(e){if(e.method===M.MagicPayloadMethod.Login)return this.resetThirdPartyWalletState(),super.request(e);if(e.method===M.MagicPayloadMethod.GetInfo)return this.getInfo(e);if(e.method===M.MagicPayloadMethod.IsLoggedIn)return this.isLoggedIn(e);if(e.method===M.MagicPayloadMethod.Logout)return this.logout(e);switch(localStorage.getItem(M.LocalStorageKeys.PROVIDER)){case"web3modal":return this.web3modalRequest(e);default:return this.resetThirdPartyWalletState(),super.request(e)}}isLoggedIn(e){switch(localStorage.getItem(M.LocalStorageKeys.PROVIDER)){case"web3modal":return this.web3modalIsLoggedIn();default:return this.resetThirdPartyWalletState(),super.request(e)}}getInfo(e){switch(localStorage.getItem(M.LocalStorageKeys.PROVIDER)){case"web3modal":return this.web3modalGetInfo();default:return this.resetThirdPartyWalletState(),super.request(e)}}logout(e){let t=localStorage.getItem(M.LocalStorageKeys.PROVIDER);switch(this.resetThirdPartyWalletState(),t){case"web3modal":return this.web3modalLogout();default:return super.request(e)}}web3modalRequest(e){return I((t,s)=>{this.sdk.web3modal.modal.getWalletProvider().request(e).then(t).catch(s)})}web3modalIsLoggedIn(){return I(e=>{let t=this.sdk.web3modal.modal.getStatus();if(t==="connected"&&e(!0),t==="disconnected"&&(this.resetThirdPartyWalletState(),e(!1)),t==="reconnecting"){let s=this.sdk.web3modal.modal.subscribeProvider(({status:n})=>{n==="connected"&&(s(),e(!0)),n==="disconnected"&&(s(),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",firstLoginAt:null}}web3modalGetInfo(){return I((e,t)=>{let s=this.sdk.web3modal.modal.getStatus();if(s==="connected"&&e(this.formatWeb3modalGetInfoResponse()),s==="disconnected"&&(this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access.")),s==="reconnecting"){let n=this.sdk.web3modal.modal.subscribeProvider(({status:o})=>{o==="connected"&&(n(),e(this.formatWeb3modalGetInfoResponse())),o==="disconnected"&&(n(),this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access."))})}})}web3modalLogout(){return I(async e=>{try{await this.sdk.web3modal.modal.disconnect()}catch(t){console.error(t)}e(!0)})}};var ie=require("@magic-sdk/types");var{createBoundEmitterMethod:Se,createChainingEmitterMethod:H}=oe(),xe=class extends y{isMagic=!0;sendAsync(e,t){if(!t)throw We({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(ie.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,e.map(s=>{let n=W(s);return this.prefixPayloadMethodForTestMode(n),n})).then(s=>{t(null,s.map(n=>({...n.payload,error:n.hasError?new q(n.payload.error):null})))});else{let s=W(e);this.prefixPayloadMethodForTestMode(s),this.overlay.post(ie.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,s).then(n=>{t(n.hasError?new q(n.payload.error):null,n.payload)})}}send(e,t){if(typeof e=="string"){let n=h(e,Array.isArray(t)?t:[]);return this.request(n)}if(Array.isArray(e)||t){this.sendAsync(e,t);return}let s=Je();return s.log(),new B(e).applyError({code:-32603,message:s.rawMessage}).payload}enable(){let e=h(ie.MagicPayloadMethod.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=H("on",this);once=H("once",this);addListener=H("addListener",this);off=H("off",this);removeListener=H("removeListener",this);removeAllListeners=H("removeAllListeners",this);emit=Se("emit");eventNames=Se("eventNames");listeners=Se("listeners");listenerCount=Se("listenerCount")};var Ot=["request","overlay","sdk"];function cn(r){let e=Object.getPrototypeOf(r),t=[e];for(;e!==y.prototype;)e=Object.getPrototypeOf(e),t.push(e);return t}var rt=class extends y{compat;__sdk_access_field_descriptors__=new Map;__is_initialized__=!1;utils={createPromiEvent:I,isPromiEvent:ze,encodeJSON:ee,decodeJSON:Le,createJsonRpcRequestPayload:h,standardizeJsonRpcRequestPayload:W,storage:re};constructor(){super(void 0);let e=[this,...cn(this)];Ot.forEach(t=>{let s=e.map(a=>Object.getOwnPropertyDescriptor(a,t)),n=s.findIndex(a=>!!a),o=n>0,i=s[n];i&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:i,isPrototypeField:o}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw Ue(t)}}))})}init(e){this.__is_initialized__||(Ot.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:s,isPrototypeField:n}=this.__sdk_access_field_descriptors__.get(t);n?delete this[t]:Object.defineProperty(this,t,s)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:s,useInstead:n}=e,o=n?` Use \`${n}\` instead.`:"",i=`\`${t}\` will be removed from this Extension in version \`${s}\`.${o}`;return new j(this,"DEPRECATION_NOTICE",i)}createWarning(e,t){return new j(this,e,t)}createError(e,t,s){return new te(this,e,t,s)}},nt=class extends rt{},J=class{static Internal=nt};var D=require("@magic-sdk/types");var Me=class extends y{purchase(e){let t=h(D.MagicPayloadMethod.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=this.sdk.thirdPartyWallets.isConnected,s=h(D.MagicPayloadMethod.NFTCheckout,[{...e,walletProvider:t?"web3modal":"magic"}]),n=this.request(s);return t&&(n.on(D.NftCheckoutIntermediaryEvents.Initiated,async o=>{try{let i=await this.request({method:"eth_sendTransaction",params:[o]});this.createIntermediaryEvent(D.NftCheckoutIntermediaryEvents.Success,s.id)(i)}catch{this.createIntermediaryEvent(D.NftCheckoutIntermediaryEvents.Failure,s.id)()}}),n.on(D.NftCheckoutIntermediaryEvents.Disconnect,()=>{this.sdk.thirdPartyWallets.resetThirdPartyWalletState(),n.emit("disconnect")})),n}transfer(e){let t=h(D.MagicPayloadMethod.NFTTransfer,[e]);return this.request(t)}};function _t(r){return r.compat&&r.compat[E.sdkName]!=null?typeof r.compat[E.sdkName]=="string"?ft(gt(E.version),r.compat[E.sdkName]):!!r.compat[E.sdkName]:!0}function ln(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 dn(r){let e=r?.extensions??[],t={},s=[];if(Array.isArray(e)?e.forEach(n=>{_t(n)?(n.init(this),n.name&&(this[n.name]=n),n instanceof J.Internal&&(K(n.config)||(t[n.name]=n.config))):s.push(n)}):Object.keys(e).forEach(n=>{if(_t(e[n])){e[n].init(this);let o=e[n];this[n]=o,o instanceof J.Internal&&(K(o.config)||(t[e[n].name]=o.config))}else s.push(e[n])}),s.length)throw Fe(s);return t}var Ce=class r{constructor(e,t){this.apiKey=e;if(!e)throw ke();E.platform==="react-native"&&t?.endpoint&&Ge().log();let{defaultEndpoint:s,version:n}=E;this.testMode=!!t?.testMode,this.useStorageCache=!!t?.useStorageCache,this.endpoint=Ie(t?.endpoint??s).origin,this.auth=new ve(this),this.user=new be(this),this.wallet=new Pe(this),this.nft=new Me(this),this.thirdPartyWallets=new we(this),this.rpcProvider=new xe(this);let o=dn.call(this,t);this.parameters=ee({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t?.network,host:Ie(this.endpoint).host,sdk:Rt[E.sdkName],version:n,ext:K(o)?void 0:o,locale:t?.locale||"en_US",authConfig:t?.authConfig?{...t.authConfig}:void 0,...E.bundleId?{bundleId:E.bundleId}:{},meta:t?.meta}),this.networkHash=ln(this.apiKey,t?.network,K(o)?void 0:o),t?.deferPreload||this.preload()}static __overlays__=new Map;endpoint;parameters;networkHash;testMode;useStorageCache;auth;user;wallet;nft;thirdPartyWallets;rpcProvider;get overlay(){if(!r.__overlays__.has(this.parameters)){let e=new E.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),r.__overlays__.set(this.parameters,e)}return r.__overlays__.get(this.parameters)}async preload(){await this.overlay.waitForReady()}};var A=require("@magic-sdk/types");function un(r,e){return e&&Array.isArray(r)?r.find(t=>t.id===e):r}function kt(r,e){let t=e.data.response?.id,s=un(r,t);if(t&&s){let n=new B(s).applyResult(e.data.response.result).applyError(e.data.response.error);return{id:t,response:n}}return{}}async function Dt(r,e,t){let s=await v("rt"),n;if(E.platform==="web")try{n=await v("jwt")??await He()}catch(a){console.error("webcrypto error",a)}let o={msgType:r,payload:e};n&&(o.jwt=n),n&&s&&(o.rt=s);let i=await Lt(t);return i&&(o.deviceShare=i),o}async function qt(r){r.data.rt&&await C("rt",r.data.rt)}function Ut(r,e){let t=null;return function(...s){t&&clearTimeout(t),t=setTimeout(()=>{r(...s)},e)}}var pn=1e3,Wt=60*pn,Ft=5*Wt,mn=60*Wt,Ne=class{constructor(e,t,s){this.endpoint=e;this.parameters=t;this.networkHash=s;this.listen()}isReadyForRequest=!1;messageHandlers=new Set;isConnectedToInternet=!0;lastPongTime=null;heartbeatIntervalTimer=null;heartbeatDebounce=Ut(()=>{this.endpoint==="https://auth.magic.link/"&&this.heartBeatCheck()},mn);async post(e,t){return Re(async(s,n)=>{if(!this.isConnectedToInternet){let d=De();n(d)}await this.checkRelayerExistsInDOM()||(this.isReadyForRequest=!1,await this.reloadRelayer()),this.isReadyForRequest||await this.waitForReady();let o=[],i=Array.isArray(t)?t.map(d=>d.id):[],a=await Dt(`${e}-${this.parameters}`,t,this.networkHash);await this._post(a);let c=d=>m=>{let{id:w,response:S}=kt(t,m);if(qt(m),S?.payload.error?.message==="User denied account access.")Te();else if(m.data.deviceShare){let{deviceShare:Jt}=m.data;$t(Jt,this.networkHash)}w&&S&&Array.isArray(t)&&i.includes(w)?(o.push(S),o.length===t.length&&(d(),s(o))):w&&S&&!Array.isArray(t)&&w===t.id&&(d(),s(S))},u=this.on(A.MagicIncomingWindowMessage.MAGIC_HANDLE_RESPONSE,c(()=>u()))})}on(e,t){let s=t.bind(window),n=o=>{o.data.msgType===`${e}-${this.parameters}`&&s(o)};return this.messageHandlers.add(n),()=>this.messageHandlers.delete(n)}waitForReady(){return new Promise(e=>{let t=this.on(A.MagicIncomingWindowMessage.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()})})}listen(){this.on(A.MagicIncomingWindowMessage.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(A.MagicIncomingWindowMessage.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(A.MagicIncomingWindowMessage.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new O(A.SDKWarningCode.ProductAnnouncement,e.data.response.result.product_announcement).log()})}heartBeatCheck(){let e=!0,t=async()=>{let s={msgType:`${A.MagicOutgoingWindowMessage.MAGIC_PING}-${this.parameters}`,payload:[]};await this._post(s)};this.heartbeatIntervalTimer=setInterval(async()=>{if(this.lastPongTime){if(Date.now()-this.lastPongTime>Ft*2){this.reloadRelayer(),e=!0;return}}else if(!e){this.reloadRelayer(),e=!0;return}await t(),e=!1},Ft)}stopHeartBeat(){this.heartbeatDebounce(),this.lastPongTime=null,this.heartbeatIntervalTimer&&(clearInterval(this.heartbeatIntervalTimer),this.heartbeatIntervalTimer=null)}};
|
|
5
|
+
Received: \`${r.received}\``)}function Fr(){return new O(x.SDKWarningCode.DuplicateIframe,"Duplicate iframes found.")}function Je(){return new O(x.SDKWarningCode.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 Ge(){return new O(x.SDKWarningCode.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 \`${E.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function Ke(r){let{method:e,removalVersions:t,useInstead:s}=r,n=t[E.sdkName],o=s?` Use \`${s}\` instead.`:"",i=`\`${e}\` will be removed from \`${E.sdkName}\` in version \`${n}\`.${o}`;return new O(x.SDKWarningCode.DeprecationNotice,i)}var p=require("@magic-sdk/types");var F=require("@magic-sdk/types");var bt=require("@magic-sdk/types");function*Wr(){let r=0;for(;;)r<Number.MAX_SAFE_INTEGER?yield++r:r=0}var Jr=Wr();function me(){return Jr.next().value}var re={};st(re,{clear:()=>Gr,getItem:()=>v,iterate:()=>je,key:()=>jr,keys:()=>Vr,length:()=>Kr,removeItem:()=>_,setItem:()=>C});var he;function U(r){return async(...e)=>(he||(he=await E.configureStorage()),await he.ready(),he[r](...e))}var v=U("getItem"),C=U("setItem"),_=U("removeItem"),Gr=U("clear"),Kr=U("length"),jr=U("key"),Vr=U("keys"),je=U("iterate");function Ve(){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 Ee="STORE_KEY_PRIVATE_KEY",ne="STORE_KEY_PUBLIC_JWK",Tt="ECDSA",Br="P-256",Hr={name:Tt,namedCurve:Br};function V(){let r=typeof window<"u"&&!!window.crypto,e=r&&!!window.crypto.subtle;return r&&e}function Be(){_(ne),_(Ee)}async function He(){let r=await Xr();if(!r){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:e}=window.crypto,t=await v(Ee);if(!t||!e){console.info("unable to find private key or webcrypto unsupported");return}let s={iat:Math.floor(new Date().getTime()/1e3),jti:Ve()},o={protected:vt(JSON.stringify({typ:"dpop+jwt",alg:"ES256",jwk:r})),claims:vt(JSON.stringify(s))},i=Yr(`${o.protected}.${o.claims}`),a={name:Tt,hash:{name:"SHA-256"}},c=Zr(new Uint8Array(await e.sign(a,t,i)));return`${o.protected}.${o.claims}.${c}`}async function Xr(){if(!V()){console.info("webcrypto is not supported");return}return await v(ne)||await zr(),v(ne)}async function zr(){let{subtle:r}=window.crypto,e=await r.generateKey(Hr,!1,["sign"]),t=await r.exportKey("jwk",e.publicKey);await C(Ee,e.privateKey),await C(ne,t)}function vt(r){return It(Qr(r))}function Yr(r){return new TextEncoder().encode(r)}function It(r){return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function Qr(r){return encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,(t,s)=>String.fromCharCode(parseInt(s,16)))}function Zr(r){let e="";return r.forEach(t=>{e+=String.fromCharCode(t)}),It(e)}var Pt=Symbol("Payload pre-processed by Magic SDK");function wt(r){return Object.defineProperty(r,Pt,{value:!0,enumerable:!1}),r}function en(r){return!!r[Pt]}function W(r){return en(r)||(r.jsonrpc=r.jsonrpc??"2.0",r.id=me(),r.method=r.method??"noop",r.params=r.params??[],wt(r)),r}function h(r,e=[]){return wt({params:e,method:r,jsonrpc:"2.0",id:me()})}var B=class r{_jsonrpc;_id;_result;_error;constructor(e){e instanceof r?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):Oe(e)?(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=e.result,this._error=e.error):(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=void 0,this._error=void 0)}applyError(e){return this._error=e,this}applyResult(e){return this._result=e,this}get hasError(){return this._error?.code===bt.RPCErrorCode.DpopInvalidated&&Be(),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}}};var ye=require("@magic-sdk/types");var Mt=Xt(xt()),ge=class extends Mt.default{};function oe(){let r=new ge;return{emitter:r,createChainingEmitterMethod:(s,n)=>(...o)=>(r[s].apply(r,o),n),createBoundEmitterMethod:s=>(...n)=>r[s].apply(r,n)}}var Ct=Symbol("isPromiEvent");function ze(r){return!!r[Ct]}function I(r){let e=Re(r),{createBoundEmitterMethod:t,createChainingEmitterMethod:s}=oe(),n=Symbol("Promise.then"),o=Symbol("Promise.catch"),i=Symbol("Promise.finally"),a=(d,m)=>(...w)=>{let S=m[d].apply(m,w);return c(S)},c=d=>Object.assign(d,{[Ct]:!0,[n]:d[n]||d.then,[o]:d[o]||d.catch,[i]:d[i]||d.finally,then:a(n,d),catch:a(o,d),finally:a(i,d),on:s("on",d),once:s("once",d),addListener:s("addListener",d),off:s("off",d),removeListener:s("removeListener",d),removeAllListeners:s("removeAllListeners",d),emit:t("emit"),eventNames:t("eventNames"),listeners:t("listeners"),listenerCount:t("listenerCount")}),u=c(e.then(d=>(u.emit("done",d),u.emit("settled"),d),d=>{throw u.emit("error",d),u.emit("settled"),d}));return u.on(ye.UserEventsOnReceived.ClosedByUser,()=>{u.emit(ye.UserEventsEmit.ClosedByUser)}),u}function Re(r){return new Promise((e,t)=>{let s=r(e,t);Promise.resolve(s).catch(t)})}var y=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){if(this.sdk.thirdPartyWallets.isConnected&&!F.routeToMagicMethods.includes(e.method))return I((i,a)=>{this.sdk.thirdPartyWallets.requestOverride(e).then(i).catch(a)});let t=this.overlay.post(F.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,W(e)),s=I((o,i)=>{t.then(a=>{if(n(),a.hasError)i(new q(a.payload.error));else if(a.hasResult)o(a.payload.result);else throw qe()}).catch(a=>{n(),i(a)})}),n=this.overlay.on(F.MagicIncomingWindowMessage.MAGIC_HANDLE_EVENT,o=>{let{response:i}=o.data;if(i.id===e.id&&i.result?.event){let{event:a,params:c=[]}=i.result;s.emit(a,...c)}});return s}createIntermediaryEvent(e,t){return n=>{let o=h(F.MagicPayloadMethod.IntermediaryEvent,[{payloadId:t,eventType:e,args:n}]);this.request(o)}}};function Ye(r,e){let[t]=r.split(".").map(Number);return t>=e}var nn={"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"},ve=class extends y{loginWithMagicLink(e){let t=E.sdkName==="@magic-sdk/react-native"||E.sdkName==="@magic-sdk/react-native-bare"||E.sdkName==="@magic-sdk/react-native-expo";if(t&&Ye(E.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utilize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&Ke({method:"auth.loginWithMagicLink()",removalVersions:nn,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:s,showUI:n=!0,redirectURI:o,overrides:i,lifespan:a}=e,c=h(this.sdk.testMode?p.MagicPayloadMethod.LoginWithMagicLinkTestMode:p.MagicPayloadMethod.LoginWithMagicLink,[{email:s,showUI:n,redirectURI:o,overrides:i,lifespan:a}]);return this.request(c)}loginWithSMS(e){let{phoneNumber:t,showUI:s=!0,lifespan:n}=e,o=h(this.sdk.testMode?p.MagicPayloadMethod.LoginWithSmsTestMode:p.MagicPayloadMethod.LoginWithSms,[{phoneNumber:t,showUI:s,lifespan:n}]),i=this.request(o);return!s&&i&&(i.on(p.LoginWithSmsOTPEventEmit.VerifySmsOtp,a=>{this.createIntermediaryEvent(p.LoginWithSmsOTPEventEmit.VerifySmsOtp,o.id)(a)}),i.on(p.LoginWithSmsOTPEventEmit.Cancel,()=>{this.createIntermediaryEvent(p.LoginWithSmsOTPEventEmit.Cancel,o.id)()})),i}loginWithEmailOTP(e){let{email:t,showUI:s,deviceCheckUI:n,overrides:o,lifespan:i}=e,a=h(this.sdk.testMode?p.MagicPayloadMethod.LoginWithEmailOTPTestMode:p.MagicPayloadMethod.LoginWithEmailOTP,[{email:t,showUI:s,deviceCheckUI:n,overrides:o,lifespan:i}]),c=this.request(a);return!n&&c&&c.on(p.DeviceVerificationEventEmit.Retry,()=>{this.createIntermediaryEvent(p.DeviceVerificationEventEmit.Retry,a.id)()}),!s&&c&&(c.on(p.LoginWithEmailOTPEventEmit.VerifyEmailOtp,u=>{this.createIntermediaryEvent(p.LoginWithEmailOTPEventEmit.VerifyEmailOtp,a.id)(u)}),c.on(p.LoginWithEmailOTPEventEmit.VerifyMFACode,u=>{this.createIntermediaryEvent(p.LoginWithEmailOTPEventEmit.VerifyMFACode,a.id)(u)}),c.on(p.LoginWithEmailOTPEventEmit.LostDevice,()=>{this.createIntermediaryEvent(p.LoginWithEmailOTPEventEmit.LostDevice,a.id)()}),c.on(p.LoginWithEmailOTPEventEmit.VerifyRecoveryCode,u=>{this.createIntermediaryEvent(p.LoginWithEmailOTPEventEmit.VerifyRecoveryCode,a.id)(u)}),c.on(p.LoginWithEmailOTPEventEmit.Cancel,()=>{this.createIntermediaryEvent(p.LoginWithEmailOTPEventEmit.Cancel,a.id)()})),c}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:s}=e||{},n=t??"";if(!t&&E.platform==="web"){n=window.location.search;let i=window.location.origin+window.location.pathname;window.history.replaceState(null,"",i)}let o=h(this.sdk.testMode?p.MagicPayloadMethod.LoginWithCredentialTestMode:p.MagicPayloadMethod.LoginWithCredential,[n,s]);return this.request(o)}setAuthorizationToken(e){let t=h(p.MagicPayloadMethod.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:s=!0}=e,n=h(this.sdk.testMode?p.MagicPayloadMethod.UpdateEmailTestMode:p.MagicPayloadMethod.UpdateEmail,[{email:t,showUI:s}]),o=this.request(n);return s||(o.on(p.RecencyCheckEventEmit.Retry,()=>{this.createIntermediaryEvent(p.RecencyCheckEventEmit.Retry,n.id)()}),o.on(p.RecencyCheckEventEmit.Cancel,()=>{this.createIntermediaryEvent(p.RecencyCheckEventEmit.Cancel,n.id)()}),o.on(p.RecencyCheckEventEmit.VerifyEmailOtp,i=>{this.createIntermediaryEvent(p.RecencyCheckEventEmit.VerifyEmailOtp,n.id)(i)}),o.on(p.RecencyCheckEventEmit.VerifyMFACode,i=>{this.createIntermediaryEvent(p.RecencyCheckEventEmit.VerifyMFACode,n.id)(i)}),o.on(p.UpdateEmailEventEmit.RetryWithNewEmail,i=>{this.createIntermediaryEvent(p.UpdateEmailEventEmit.RetryWithNewEmail,n.id)(i)}),o.on(p.UpdateEmailEventEmit.Cancel,()=>{this.createIntermediaryEvent(p.UpdateEmailEventEmit.Cancel,n.id)()}),o.on(p.UpdateEmailEventEmit.VerifyEmailOtp,i=>{this.createIntermediaryEvent(p.UpdateEmailEventEmit.VerifyEmailOtp,n.id)(i)})),o}};var l=require("@magic-sdk/types");var Qe="ds",Ze="ek",et="iv",tt="AES-GCM",sn=256;async function Te(){let r=[];await je((e,t,s)=>{t.startsWith(`${Qe}_`)&&r.push(t)});for(let e of r)await _(e)}function Nt(r){let e="",t=new Uint8Array(r),s=t.byteLength;for(let n=0;n<s;n++)e+=String.fromCharCode(t[n]);return window.btoa(e)}function At(r){let e=window.atob(r),t=e.length,s=new Uint8Array(t);for(let n=0;n<t;n++)s[n]=e.charCodeAt(n);return s.buffer}async function on(){if(!V()){console.info("webcrypto is not supported");return}let{crypto:r}=window,e=await v(et);return e||r.getRandomValues(new Uint8Array(12))}async function an(){if(!V()){console.info("webcrypto is not supported");return}let{subtle:r}=window.crypto,e=await v(Ze);return e||await r.generateKey({name:tt,length:sn},!1,["encrypt","decrypt"])}async function $t(r,e){let t=await on(),s=await an();if(!t||!s||!r)return;let n=At(r),{subtle:o}=window.crypto,i=await o.encrypt({name:tt,iv:t},s,n),a=Nt(i);await C(`${Qe}_${e}`,a),await C(Ze,s),await C(et,t)}async function Lt(r){let e=await v(`${Qe}_${r}`),t=await v(et),s=await v(Ze);if(!t||!e||!s||!V())return;let{subtle:n}=window.crypto,o=await n.decrypt({name:tt,iv:t},s,At(e));return Nt(o)}function Ie(r,e){return e?new URL(r,e):new URL(r)}var be=class extends y{getIdToken(e){let t=h(this.sdk.testMode?l.MagicPayloadMethod.GetIdTokenTestMode:l.MagicPayloadMethod.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=h(this.sdk.testMode?l.MagicPayloadMethod.GenerateIdTokenTestMode:l.MagicPayloadMethod.GenerateIdToken,[e]);return this.request(t)}getInfo(){let e=h(l.MagicPayloadMethod.GetInfo,[]);return this.request(e)}isLoggedIn(){return I(async(e,t)=>{try{let s=!1;this.sdk.useStorageCache&&(s=await v(this.localForageIsLoggedInKey)==="true",s&&e(!0));let n=h(this.sdk.testMode?l.MagicPayloadMethod.IsLoggedInTestMode:l.MagicPayloadMethod.IsLoggedIn),o=await this.request(n);this.sdk.useStorageCache&&(o?C(this.localForageIsLoggedInKey,!0):_(this.localForageIsLoggedInKey),s&&!o&&this.emitUserLoggedOut(!0)),e(o)}catch(s){t(s)}})}logout(){return _(this.localForageIsLoggedInKey),Te(),I(async(e,t)=>{try{let s=h(this.sdk.testMode?l.MagicPayloadMethod.LogoutTestMode:l.MagicPayloadMethod.Logout),n=await this.request(s);this.sdk.useStorageCache&&this.emitUserLoggedOut(n),e(n)}catch(s){t(s)}})}requestInfoWithUI(e){let t=h(l.MagicPayloadMethod.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let{showUI:t=!0}=e||{},s=h(this.sdk.testMode?l.MagicPayloadMethod.UserSettingsTestMode:l.MagicPayloadMethod.UserSettings,[e]),n=this.request(s);return!t&&n&&(n.on(l.RecoveryFactorEventEmit.SendNewPhoneNumber,o=>{this.createIntermediaryEvent(l.RecoveryFactorEventEmit.SendNewPhoneNumber,s.id)(o)}),n.on(l.RecoveryFactorEventEmit.SendOtpCode,o=>{this.createIntermediaryEvent(l.RecoveryFactorEventEmit.SendOtpCode,s.id)(o)}),n.on(l.RecoveryFactorEventEmit.StartEditPhoneNumber,()=>{this.createIntermediaryEvent(l.RecoveryFactorEventEmit.StartEditPhoneNumber,s.id)()}),n.on(l.RecoveryFactorEventEmit.Cancel,()=>{this.createIntermediaryEvent(l.RecoveryFactorEventEmit.Cancel,s.id)()}),n.on(l.RecencyCheckEventEmit.VerifyEmailOtp,o=>{this.createIntermediaryEvent(l.RecencyCheckEventEmit.VerifyEmailOtp,s.id)(o)})),n}recoverAccount(e){let{email:t,showUI:s}=e,n=h(this.sdk.testMode?l.MagicPayloadMethod.RecoverAccountTestMode:l.MagicPayloadMethod.RecoverAccount,[{email:t,showUI:s}]),o=this.request(n);return!s&&o&&(o.on(l.RecoverAccountEventEmit.Cancel,()=>{this.createIntermediaryEvent(l.RecoverAccountEventEmit.Cancel,n.id)()}),o.on(l.RecoverAccountEventEmit.ResendSms,()=>{this.createIntermediaryEvent(l.RecoverAccountEventEmit.ResendSms,n.id)()}),o.on(l.RecoverAccountEventEmit.VerifyOtp,i=>{this.createIntermediaryEvent(l.RecoverAccountEventEmit.VerifyOtp,n.id)(i)}),o.on(l.RecoverAccountEventEmit.UpdateEmail,i=>{this.createIntermediaryEvent(l.RecoverAccountEventEmit.UpdateEmail,n.id)(i)}),o.on(l.UpdateEmailEventEmit.Cancel,()=>{this.createIntermediaryEvent(l.UpdateEmailEventEmit.Cancel,n.id)()}),o.on(l.UpdateEmailEventEmit.RetryWithNewEmail,i=>{this.createIntermediaryEvent(l.UpdateEmailEventEmit.RetryWithNewEmail,n.id)(i)}),o.on(l.UpdateEmailEventEmit.VerifyEmailOtp,i=>{this.createIntermediaryEvent(l.UpdateEmailEventEmit.VerifyEmailOtp,n.id)(i)})),o}revealPrivateKey(){let e=h(l.MagicPayloadMethod.RevealPK);return this.request(e)}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}enableMFA(e){let{showUI:t=!0}=e,s=h(l.MagicPayloadMethod.EnableMFA,[{showUI:t}]),n=this.request(s);return!t&&n&&(n.on(l.EnableMFAEventEmit.VerifyMFACode,o=>{this.createIntermediaryEvent(l.EnableMFAEventEmit.VerifyMFACode,s.id)(o)}),n.on(l.EnableMFAEventEmit.Cancel,()=>{this.createIntermediaryEvent(l.EnableMFAEventEmit.Cancel,s.id)()})),n}disableMFA(e){let{showUI:t=!0}=e,s=h(l.MagicPayloadMethod.DisableMFA,[{showUI:t}]),n=this.request(s);return!t&&n&&(n.on(l.DisableMFAEventEmit.VerifyMFACode,o=>{this.createIntermediaryEvent(l.DisableMFAEventEmit.VerifyMFACode,s.id)(o)}),n.on(l.DisableMFAEventEmit.LostDevice,o=>{this.createIntermediaryEvent(l.DisableMFAEventEmit.LostDevice,s.id)(o)}),n.on(l.DisableMFAEventEmit.Cancel,()=>{this.createIntermediaryEvent(l.DisableMFAEventEmit.Cancel,s.id)()})),n}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}localForageIsLoggedInKey="magic_auth_is_logged_in";userLoggedOutCallbacks=[]};var k=require("@magic-sdk/types");var Pe=class extends y{connectWithUI(e){let t=I(async(s,n)=>{try{let o=h(k.MagicPayloadMethod.Login,[{enabledWallets:this.sdk.thirdPartyWallets.enabledWallets,...e}]),i=this.request(o);this.sdk.thirdPartyWallets.eventListeners.forEach(({event:c,callback:u})=>{i.on(c,()=>u(o.id))}),i.on("id-token-created",c=>{t.emit("id-token-created",c)});let a=await i;a.error&&n(a),s(a)}catch(o){n(o)}});return t}showUI(e){return this.request(h(k.MagicPayloadMethod.ShowUI,[e]))}showAddress(){return this.request(h(k.MagicPayloadMethod.ShowAddress))}showSendTokensUI(){return this.request(h(k.MagicPayloadMethod.ShowSendTokensUI))}showOnRamp(){return this.request(h(k.MagicPayloadMethod.ShowOnRamp))}showNFTs(){return this.request(h(k.MagicPayloadMethod.ShowNFTs))}showBalances(){return this.request(h(k.MagicPayloadMethod.ShowBalances))}sendGaslessTransaction(e,t){return this.request(h(k.MagicPayloadMethod.SendGaslessTransaction,[e,t]))}};var M=require("@magic-sdk/types");var we=class extends y{eventListeners=[];enabledWallets={};isConnected=!1;resetThirdPartyWalletState(){localStorage.removeItem(M.LocalStorageKeys.PROVIDER),localStorage.removeItem(M.LocalStorageKeys.ADDRESS),localStorage.removeItem(M.LocalStorageKeys.CHAIN_ID),this.isConnected=!1}requestOverride(e){if(e.method===M.MagicPayloadMethod.Login)return this.resetThirdPartyWalletState(),super.request(e);if(e.method===M.MagicPayloadMethod.GetInfo)return this.getInfo(e);if(e.method===M.MagicPayloadMethod.IsLoggedIn)return this.isLoggedIn(e);if(e.method===M.MagicPayloadMethod.Logout)return this.logout(e);switch(localStorage.getItem(M.LocalStorageKeys.PROVIDER)){case"web3modal":return this.web3modalRequest(e);default:return this.resetThirdPartyWalletState(),super.request(e)}}isLoggedIn(e){switch(localStorage.getItem(M.LocalStorageKeys.PROVIDER)){case"web3modal":return this.web3modalIsLoggedIn();default:return this.resetThirdPartyWalletState(),super.request(e)}}getInfo(e){switch(localStorage.getItem(M.LocalStorageKeys.PROVIDER)){case"web3modal":return this.web3modalGetInfo();default:return this.resetThirdPartyWalletState(),super.request(e)}}logout(e){let t=localStorage.getItem(M.LocalStorageKeys.PROVIDER);switch(this.resetThirdPartyWalletState(),t){case"web3modal":return this.web3modalLogout();default:return super.request(e)}}web3modalRequest(e){return I((t,s)=>{this.sdk.web3modal.modal.getWalletProvider().request(e).then(t).catch(s)})}web3modalIsLoggedIn(){return I(e=>{let t=this.sdk.web3modal.modal.getStatus();if(t==="connected"&&e(!0),t==="disconnected"&&(this.resetThirdPartyWalletState(),e(!1)),t==="reconnecting"){let s=this.sdk.web3modal.modal.subscribeProvider(({status:n})=>{n==="connected"&&(s(),e(!0)),n==="disconnected"&&(s(),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",firstLoginAt:null}}web3modalGetInfo(){return I((e,t)=>{let s=this.sdk.web3modal.modal.getStatus();if(s==="connected"&&e(this.formatWeb3modalGetInfoResponse()),s==="disconnected"&&(this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access.")),s==="reconnecting"){let n=this.sdk.web3modal.modal.subscribeProvider(({status:o})=>{o==="connected"&&(n(),e(this.formatWeb3modalGetInfoResponse())),o==="disconnected"&&(n(),this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access."))})}})}web3modalLogout(){return I(async e=>{try{await this.sdk.web3modal.modal.disconnect()}catch(t){console.error(t)}e(!0)})}};var ie=require("@magic-sdk/types");var{createBoundEmitterMethod:Se,createChainingEmitterMethod:H}=oe(),xe=class extends y{isMagic=!0;sendAsync(e,t){if(!t)throw We({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(ie.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,e.map(s=>{let n=W(s);return this.prefixPayloadMethodForTestMode(n),n})).then(s=>{t(null,s.map(n=>({...n.payload,error:n.hasError?new q(n.payload.error):null})))});else{let s=W(e);this.prefixPayloadMethodForTestMode(s),this.overlay.post(ie.MagicOutgoingWindowMessage.MAGIC_HANDLE_REQUEST,s).then(n=>{t(n.hasError?new q(n.payload.error):null,n.payload)})}}send(e,t){if(typeof e=="string"){let n=h(e,Array.isArray(t)?t:[]);return this.request(n)}if(Array.isArray(e)||t){this.sendAsync(e,t);return}let s=Je();return s.log(),new B(e).applyError({code:-32603,message:s.rawMessage}).payload}enable(){let e=h(ie.MagicPayloadMethod.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=H("on",this);once=H("once",this);addListener=H("addListener",this);off=H("off",this);removeListener=H("removeListener",this);removeAllListeners=H("removeAllListeners",this);emit=Se("emit");eventNames=Se("eventNames");listeners=Se("listeners");listenerCount=Se("listenerCount")};var Ot=["request","overlay","sdk"];function cn(r){let e=Object.getPrototypeOf(r),t=[e];for(;e!==y.prototype;)e=Object.getPrototypeOf(e),t.push(e);return t}var rt=class extends y{compat;__sdk_access_field_descriptors__=new Map;__is_initialized__=!1;utils={createPromiEvent:I,isPromiEvent:ze,encodeJSON:ee,decodeJSON:Le,createJsonRpcRequestPayload:h,standardizeJsonRpcRequestPayload:W,storage:re};constructor(){super(void 0);let e=[this,...cn(this)];Ot.forEach(t=>{let s=e.map(a=>Object.getOwnPropertyDescriptor(a,t)),n=s.findIndex(a=>!!a),o=n>0,i=s[n];i&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:i,isPrototypeField:o}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw Ue(t)}}))})}init(e){this.__is_initialized__||(Ot.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:s,isPrototypeField:n}=this.__sdk_access_field_descriptors__.get(t);n?delete this[t]:Object.defineProperty(this,t,s)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:s,useInstead:n}=e,o=n?` Use \`${n}\` instead.`:"",i=`\`${t}\` will be removed from this Extension in version \`${s}\`.${o}`;return new j(this,"DEPRECATION_NOTICE",i)}createWarning(e,t){return new j(this,e,t)}createError(e,t,s){return new te(this,e,t,s)}},nt=class extends rt{},J=class{static Internal=nt};var D=require("@magic-sdk/types");var Me=class extends y{purchase(e){let t=h(D.MagicPayloadMethod.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=this.sdk.thirdPartyWallets.isConnected,s=h(D.MagicPayloadMethod.NFTCheckout,[{...e,walletProvider:t?"web3modal":"magic"}]),n=this.request(s);return t&&(n.on(D.NftCheckoutIntermediaryEvents.Initiated,async o=>{try{let i=await this.request({method:"eth_sendTransaction",params:[o]});this.createIntermediaryEvent(D.NftCheckoutIntermediaryEvents.Success,s.id)(i)}catch{this.createIntermediaryEvent(D.NftCheckoutIntermediaryEvents.Failure,s.id)()}}),n.on(D.NftCheckoutIntermediaryEvents.Disconnect,()=>{this.sdk.thirdPartyWallets.resetThirdPartyWalletState(),n.emit("disconnect")})),n}transfer(e){let t=h(D.MagicPayloadMethod.NFTTransfer,[e]);return this.request(t)}};function _t(r){return r.compat&&r.compat[E.sdkName]!=null?typeof r.compat[E.sdkName]=="string"?ft(gt(E.version),r.compat[E.sdkName]):!!r.compat[E.sdkName]:!0}function ln(r,e,t){if(!e&&!t)return`${r}_eth_mainnet`;if(t)return`${r}_${JSON.stringify(t)}`;if(e){if(typeof e=="string")return`${r}_eth_${e}`;if(typeof e=="object"&&"rpcUrl"in e)return`${r}_${e.rpcUrl}_${e.chainId}_${e.chainType}`}return`${r}_unknown`}function dn(r){let e=r?.extensions??[],t={},s=[];if(Array.isArray(e)?e.forEach(n=>{_t(n)?(n.init(this),n.name&&(this[n.name]=n),n instanceof J.Internal&&(K(n.config)||(t[n.name]=n.config))):s.push(n)}):Object.keys(e).forEach(n=>{if(_t(e[n])){e[n].init(this);let o=e[n];this[n]=o,o instanceof J.Internal&&(K(o.config)||(t[e[n].name]=o.config))}else s.push(e[n])}),s.length)throw Fe(s);return t}var Ce=class r{constructor(e,t){this.apiKey=e;if(!e)throw ke();E.platform==="react-native"&&t?.endpoint&&Ge().log();let{defaultEndpoint:s,version:n}=E;this.testMode=!!t?.testMode,this.useStorageCache=!!t?.useStorageCache,this.endpoint=Ie(t?.endpoint??s).origin,this.auth=new ve(this),this.user=new be(this),this.wallet=new Pe(this),this.nft=new Me(this),this.thirdPartyWallets=new we(this),this.rpcProvider=new xe(this);let o=dn.call(this,t);this.parameters=ee({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t?.network,host:Ie(this.endpoint).host,sdk:Rt[E.sdkName],version:n,ext:K(o)?void 0:o,locale:t?.locale||"en_US",authConfig:t?.authConfig?{...t.authConfig}:void 0,...E.bundleId?{bundleId:E.bundleId}:{},meta:t?.meta}),this.networkHash=ln(this.apiKey,t?.network,K(o)?void 0:o),t?.deferPreload||this.preload()}static __overlays__=new Map;endpoint;parameters;networkHash;testMode;useStorageCache;auth;user;wallet;nft;thirdPartyWallets;rpcProvider;get overlay(){if(!r.__overlays__.has(this.parameters)){let e=new E.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),r.__overlays__.set(this.parameters,e)}return r.__overlays__.get(this.parameters)}async preload(){await this.overlay.waitForReady()}};var A=require("@magic-sdk/types");function un(r,e){return e&&Array.isArray(r)?r.find(t=>t.id===e):r}function kt(r,e){let t=e.data.response?.id,s=un(r,t);if(t&&s){let n=new B(s).applyResult(e.data.response.result).applyError(e.data.response.error);return{id:t,response:n}}return{}}async function Dt(r,e,t){let s=await v("rt"),n;if(E.platform==="web")try{n=await v("jwt")??await He()}catch(a){console.error("webcrypto error",a)}let o={msgType:r,payload:e};n&&(o.jwt=n),n&&s&&(o.rt=s);let i=await Lt(t);return i&&(o.deviceShare=i),o}async function qt(r){r.data.rt&&await C("rt",r.data.rt)}function Ut(r,e){let t=null;return function(...s){t&&clearTimeout(t),t=setTimeout(()=>{r(...s)},e)}}var pn=1e3,Wt=60*pn,Ft=5*Wt,mn=60*Wt,Ne=class{constructor(e,t,s){this.endpoint=e;this.parameters=t;this.networkHash=s;this.listen()}isReadyForRequest=!1;messageHandlers=new Set;isConnectedToInternet=!0;lastPongTime=null;heartbeatIntervalTimer=null;heartbeatDebounce=Ut(()=>{this.endpoint==="https://auth.magic.link/"&&this.heartBeatCheck()},mn);async post(e,t){return Re(async(s,n)=>{if(!this.isConnectedToInternet){let d=De();n(d)}await this.checkRelayerExistsInDOM()||(this.isReadyForRequest=!1,await this.reloadRelayer()),this.isReadyForRequest||await this.waitForReady();let o=[],i=Array.isArray(t)?t.map(d=>d.id):[],a=await Dt(`${e}-${this.parameters}`,t,this.networkHash);await this._post(a);let c=d=>m=>{let{id:w,response:S}=kt(t,m);if(qt(m),S?.payload.error?.message==="User denied account access.")Te();else if(m.data.deviceShare){let{deviceShare:Jt}=m.data;$t(Jt,this.networkHash)}w&&S&&Array.isArray(t)&&i.includes(w)?(o.push(S),o.length===t.length&&(d(),s(o))):w&&S&&!Array.isArray(t)&&w===t.id&&(d(),s(S))},u=this.on(A.MagicIncomingWindowMessage.MAGIC_HANDLE_RESPONSE,c(()=>u()))})}on(e,t){let s=t.bind(window),n=o=>{o.data.msgType===`${e}-${this.parameters}`&&s(o)};return this.messageHandlers.add(n),()=>this.messageHandlers.delete(n)}waitForReady(){return new Promise(e=>{let t=this.on(A.MagicIncomingWindowMessage.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()})})}listen(){this.on(A.MagicIncomingWindowMessage.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(A.MagicIncomingWindowMessage.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(A.MagicIncomingWindowMessage.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new O(A.SDKWarningCode.ProductAnnouncement,e.data.response.result.product_announcement).log()})}heartBeatCheck(){let e=!0,t=async()=>{let s={msgType:`${A.MagicOutgoingWindowMessage.MAGIC_PING}-${this.parameters}`,payload:[]};await this._post(s)};this.heartbeatIntervalTimer=setInterval(async()=>{if(this.lastPongTime){if(Date.now()-this.lastPongTime>Ft*2){this.reloadRelayer(),e=!0;return}}else if(!e){this.reloadRelayer(),e=!0;return}await t(),e=!1},Ft)}stopHeartBeat(){this.heartbeatDebounce(),this.lastPongTime=null,this.heartbeatIntervalTimer&&(clearInterval(this.heartbeatIntervalTimer),this.heartbeatIntervalTimer=null)}};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|