magic-sdk 28.0.4-canary.744.9316678396.0 → 28.0.4-canary.744.9318469614.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/magic.js +1 -1
- package/package.json +5 -5
package/dist/magic.js
CHANGED
@@ -2,5 +2,5 @@
|
|
2
2
|
- Extension \`${r.name}\` supports version(s) \`${o}\``:o||(t+=`
|
3
3
|
- Extension \`${r.name}\` does not support ${Y.platform} environments.`)}),new ye(me.IncompatibleExtensions,t)}function Ro(e){let t=r=>{let o=r+1,a=o%10,s=o%100;return a===1&&s!==11?`${o}st`:a===2&&s!==12?`${o}nd`:a===3&&s!==13?`${o}rd`:`${o}th`};return new ye(me.InvalidArgument,`Invalid ${t(e.argument)} argument given to \`${e.procedure}\`.
|
4
4
|
Expected: \`${e.expected}\`
|
5
|
-
Received: \`${e.received}\``)}function Hr(){return new Le(pe.DuplicateIframe,"Duplicate iframes found.")}function So(){return new Le(pe.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 Ao(){return new Le(pe.ReactNativeEndpointConfiguration,`CUSTOM DOMAINS ARE NOT SUPPORTED WHEN USING MAGIC SDK WITH REACT NATIVE! The \`endpoint\` parameter SHOULD NOT be provided. The Magic \`<iframe>\` is automatically wrapped by a WebView pointed at \`${Y.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function Xe(e){let{method:t,removalVersions:r,useInstead:o}=e,a=r[Y.sdkName],s=o?` Use \`${o}\` instead.`:"",h=`\`${t}\` will be removed from \`${Y.sdkName}\` in version \`${a}\`.${s}`;return new Le(pe.DeprecationNotice,h)}function*No(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var To=No();function Yr(){return To.next().value}var Xr=Symbol("Payload pre-processed by Magic SDK");function zr(e){return Object.defineProperty(e,Xr,{value:!0,enumerable:!1}),e}function Oo(e){return!!e[Xr]}function ft(e){var t,r,o;return Oo(e)||(e.jsonrpc=(t=e.jsonrpc)!=null?t:"2.0",e.id=Yr(),e.method=(r=e.method)!=null?r:"noop",e.params=(o=e.params)!=null?o:[],zr(e)),e}function W(e,t=[]){return zr({params:t,method:e,jsonrpc:"2.0",id:Yr()})}var $t=class{constructor(e){e instanceof $t?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):go(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 typeof this._error!="undefined"&&this._error!==null}get hasResult(){return typeof this._result!="undefined"}get payload(){return{jsonrpc:this._jsonrpc,id:this._id,result:this._result,error:this._error}}},Lo=Ri(Si()),Mo=class extends Lo.default{};function Jr(){let e=new Mo;return{emitter:e,createChainingEmitterMethod:(t,r)=>(...o)=>(e[t].apply(e,o),r),createBoundEmitterMethod:t=>(...r)=>e[t].apply(e,r)}}var Qr=Symbol("isPromiEvent");function Dt(e){return!!e[Qr]}function he(e){let t=Zr(e),{createBoundEmitterMethod:r,createChainingEmitterMethod:o}=Jr(),a=Symbol("Promise.then"),s=Symbol("Promise.catch"),h=Symbol("Promise.finally"),m=(y,T)=>(..._)=>{let N=T[y].apply(T,_);return g(N)},g=y=>Object.assign(y,{[Qr]:!0,[a]:y[a]||y.then,[s]:y[s]||y.catch,[h]:y[h]||y.finally,then:m(a,y),catch:m(s,y),finally:m(h,y),on:o("on",y),once:o("once",y),addListener:o("addListener",y),off:o("off",y),removeListener:o("removeListener",y),removeAllListeners:o("removeAllListeners",y),emit:r("emit"),eventNames:r("eventNames"),listeners:r("listeners"),listenerCount:r("listenerCount")}),v=g(t.then(y=>(v.emit("done",y),v.emit("settled"),y),y=>{throw v.emit("error",y),v.emit("settled"),y}));return v}function Zr(e){return new Promise((t,r)=>{let o=e(t,r);Promise.resolve(o).catch(r)})}var be=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){if(this.sdk.thirdPartyWallets.isConnected&&e.method!==O.IntermediaryEvent&&e.method!==O.NFTCheckout&&e.method!==O.Login)return he((a,s)=>{this.sdk.thirdPartyWallets.requestOverride(e).then(a).catch(s)});let t=this.overlay.post(Ne.MAGIC_HANDLE_REQUEST,ft(e)),r=he((a,s)=>{t.then(h=>{if(o(),h.hasError)s(new Ue(h.payload.error));else if(h.hasResult)a(h.payload.result);else throw Io()}).catch(h=>{o(),s(h)})}),o=this.overlay.on(de.MAGIC_HANDLE_EVENT,a=>{var s;let{response:h}=a.data;if(h.id===e.id&&((s=h.result)==null?void 0:s.event)){let{event:m,params:g=[]}=h.result;r.emit(m,...g)}});return r}createIntermediaryEvent(e,t){return r=>{let o=W(O.IntermediaryEvent,[{payloadId:t,eventType:e,args:r}]);this.request(o)}}};function Po(e,t){let[r]=e.split(".").map(Number);return r>=t}var ze={"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"},Co=class extends be{loginWithMagicLink(e){let t=Y.sdkName==="@magic-sdk/react-native"||Y.sdkName==="@magic-sdk/react-native-bare"||Y.sdkName==="@magic-sdk/react-native-expo";if(t&&Po(Y.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&Xe({method:"auth.loginWithMagicLink()",removalVersions:ze,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:r,showUI:o=!0,redirectURI:a,overrides:s}=e,h=W(this.sdk.testMode?O.LoginWithMagicLinkTestMode:O.LoginWithMagicLink,[{email:r,showUI:o,redirectURI:a,overrides:s}]);return this.request(h)}loginWithSMS(e){let{phoneNumber:t}=e,r=W(this.sdk.testMode?O.LoginWithSmsTestMode:O.LoginWithSms,[{phoneNumber:t,showUI:!0}]);return this.request(r)}loginWithEmailOTP(e){let{email:t,showUI:r,deviceCheckUI:o,overrides:a}=e,s=W(this.sdk.testMode?O.LoginWithEmailOTPTestMode:O.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:o,overrides:a}]),h=this.request(s);return!o&&h&&h.on(Ve.Retry,()=>{this.createIntermediaryEvent(Ve.Retry,s.id)()}),!r&&h&&(h.on(Te.VerifyEmailOtp,m=>{this.createIntermediaryEvent(Te.VerifyEmailOtp,s.id)(m)}),h.on(Te.Cancel,()=>{this.createIntermediaryEvent(Te.Cancel,s.id)()})),h}loginWithCredential(e){let t=e!=null?e:"";if(!e&&Y.platform==="web"){t=window.location.search;let o=window.location.origin+window.location.pathname;window.history.replaceState(null,"",o)}let r=W(this.sdk.testMode?O.LoginWithCredentialTestMode:O.LoginWithCredential,[t]);return this.request(r)}setAuthorizationToken(e){let t=W(O.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,o=W(this.sdk.testMode?O.UpdateEmailTestMode:O.UpdateEmail,[{email:t,showUI:r}]),a=this.request(o);return r||(a.on(ve.Retry,()=>{this.createIntermediaryEvent(ve.Retry,o.id)()}),a.on(ve.Cancel,()=>{this.createIntermediaryEvent(ve.Cancel,o.id)()}),a.on(ve.VerifyEmailOtp,s=>{this.createIntermediaryEvent(ve.VerifyEmailOtp,o.id)(s)}),a.on(ge.RetryWithNewEmail,s=>{this.createIntermediaryEvent(ge.RetryWithNewEmail,o.id)(s)}),a.on(ge.Cancel,()=>{this.createIntermediaryEvent(ge.Cancel,o.id)()}),a.on(ge.VerifyEmailOtp,s=>{this.createIntermediaryEvent(ge.VerifyEmailOtp,o.id)(s)})),a}},en={};wi(en,{clear:()=>$o,getItem:()=>ue,iterate:()=>tn,key:()=>xo,keys:()=>Uo,length:()=>Do,removeItem:()=>dt,setItem:()=>we});var at;function Re(e){return(...t)=>Z(this,null,function*(){return at||(at=yield Y.configureStorage()),yield at.ready(),at[e](...t)})}var ue=Re("getItem"),we=Re("setItem"),dt=Re("removeItem"),$o=Re("clear"),Do=Re("length"),xo=Re("key"),Uo=Re("keys"),tn=Re("iterate");function ko(){let e=window.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&191|128;let t="";return t+=e[0].toString(16),t+=e[1].toString(16),t+=e[2].toString(16),t+=e[3].toString(16),t+="-",t+=e[4].toString(16),t+=e[5].toString(16),t+="-",t+=e[6].toString(16),t+=e[7].toString(16),t+="-",t+=e[8].toString(16),t+=e[9].toString(16),t+="-",t+=e[10].toString(16),t+=e[11].toString(16),t+=e[12].toString(16),t+=e[13].toString(16),t+=e[14].toString(16),t+=e[15].toString(16),t}var rn="STORE_KEY_PRIVATE_KEY",Lt="STORE_KEY_PUBLIC_JWK",nn="ECDSA",Fo="P-256",Wo={name:nn,namedCurve:Fo};function vt(){let e=typeof window!="undefined"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function Bo(){return Z(this,null,function*(){let e=yield Go();if(!e){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:t}=window.crypto,r=yield ue(rn);if(!r||!t){console.info("unable to find private key or webcrypto unsupported");return}let o={iat:Math.floor(new Date().getTime()/1e3),jti:ko()},a={typ:"dpop+jwt",alg:"ES256",jwk:e},s={protected:Fr(JSON.stringify(a)),claims:Fr(JSON.stringify(o))},h=Vo(`${s.protected}.${s.claims}`),m={name:nn,hash:{name:"SHA-256"}},g=Ko(new Uint8Array(yield t.sign(m,r,h)));return`${s.protected}.${s.claims}.${g}`})}function Go(){return Z(this,null,function*(){if(!vt()){console.info("webcrypto is not supported");return}return(yield ue(Lt))||(yield jo()),ue(Lt)})}function jo(){return Z(this,null,function*(){let{subtle:e}=window.crypto,t=yield e.generateKey(Wo,!1,["sign"]),r=yield e.exportKey("jwk",t.publicKey);yield we(rn,t.privateKey),yield we(Lt,r)})}function Fr(e){return on(qo(e))}function Vo(e){return new TextEncoder().encode(e)}function on(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function qo(e){return encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function Ko(e){let t="";return e.forEach(r=>{t+=String.fromCharCode(r)}),on(t)}var xt="ds",Ut="ek",kt="iv",Ft="AES-GCM",Ho=256;function Wt(){return Z(this,null,function*(){let e=[];yield tn((t,r,o)=>{r.startsWith(`${xt}_`)&&e.push(r)});for(let t of e)yield dt(t)})}function an(e){let t="",r=new Uint8Array(e),o=r.byteLength;for(let a=0;a<o;a++)t+=String.fromCharCode(r[a]);return window.btoa(t)}function sn(e){let t=window.atob(e),r=t.length,o=new Uint8Array(r);for(let a=0;a<r;a++)o[a]=t.charCodeAt(a);return o.buffer}function Yo(){return Z(this,null,function*(){if(!vt()){console.info("webcrypto is not supported");return}let{crypto:e}=window;return(yield ue(kt))||e.getRandomValues(new Uint8Array(12))})}function Xo(){return Z(this,null,function*(){if(!vt()){console.info("webcrypto is not supported");return}let{subtle:e}=window.crypto;return(yield ue(Ut))||(yield e.generateKey({name:Ft,length:Ho},!1,["encrypt","decrypt"]))})}function zo(e,t){return Z(this,null,function*(){let r=yield Yo(),o=yield Xo();if(!r||!o||!e)return;let a=sn(e),{subtle:s}=window.crypto,h=yield s.encrypt({name:Ft,iv:r},o,a),m=an(h);yield we(`${xt}_${t}`,m),yield we(Ut,o),yield we(kt,r)})}function Jo(e){return Z(this,null,function*(){let t=yield ue(`${xt}_${e}`),r=yield ue(kt),o=yield ue(Ut);if(!r||!t||!o||!vt())return;let{subtle:a}=window.crypto,s=yield a.decrypt({name:Ft,iv:r},o,sn(t));return an(s)})}function Qe(e,t){return t?new URL(e,t):new URL(e)}var Qo=class extends be{constructor(){super(...arguments),this.localForageIsLoggedInKey="magic_auth_is_logged_in",this.userLoggedOutCallbacks=[]}getIdToken(e){let t=W(this.sdk.testMode?O.GetIdTokenTestMode:O.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=W(this.sdk.testMode?O.GenerateIdTokenTestMode:O.GenerateIdToken,[e]);return this.request(t)}getInfo(){let e=W(O.GetInfo,[]);return this.request(e)}isLoggedIn(){return he((e,t)=>Z(this,null,function*(){try{let r=!1;this.sdk.useStorageCache&&(r=(yield ue(this.localForageIsLoggedInKey))==="true",r&&e(!0));let o=W(this.sdk.testMode?O.IsLoggedInTestMode:O.IsLoggedIn),a=yield this.request(o);this.sdk.useStorageCache&&(a?we(this.localForageIsLoggedInKey,!0):dt(this.localForageIsLoggedInKey),r&&!a&&this.emitUserLoggedOut(!0)),e(a)}catch(r){t(r)}}))}logout(){return dt(this.localForageIsLoggedInKey),Wt(),he((e,t)=>Z(this,null,function*(){try{let r=W(this.sdk.testMode?O.LogoutTestMode:O.Logout),o=yield this.request(r);this.sdk.useStorageCache&&this.emitUserLoggedOut(o),e(o)}catch(r){t(r)}}))}requestInfoWithUI(e){let t=W(O.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let t=W(this.sdk.testMode?O.UserSettingsTestMode:O.UserSettings,[e]);return this.request(t)}recoverAccount(e){let t=W(this.sdk.testMode?O.RecoverAccountTestMode:O.RecoverAccount,[e]);return this.request(t)}revealPrivateKey(){let e=W(O.RevealPK);return this.request(e)}getMetadata(){Xe({method:"user.getMetadata()",removalVersions:ze,useInstead:"user.getInfo()"}).log();let e=W(this.sdk.testMode?O.GetMetadataTestMode:O.GetMetadata);return this.request(e)}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}},Zo=class extends be{connectWithUI(e){let t=he((r,o)=>Z(this,null,function*(){try{let a=W(O.Login,[mt({enabledWallets:this.sdk.thirdPartyWallets.enabledWallets},e)]),s=this.request(a);this.sdk.thirdPartyWallets.eventListeners.forEach(({event:m,callback:g})=>{s.on(m,()=>g(a.id))}),s.on("id-token-created",m=>{t.emit("id-token-created",m)});let h=yield s;h.error&&o(h),r(h)}catch(a){o(a)}}));return t}showUI(){return this.request(W(O.ShowUI))}showAddress(){return this.request(W(O.ShowAddress))}showSendTokensUI(){return this.request(W(O.ShowSendTokensUI))}showOnRamp(){return this.request(W(O.ShowOnRamp))}showNFTs(){return this.request(W(O.ShowNFTs))}showBalances(){return this.request(W(O.ShowBalances))}sendGaslessTransaction(e,t){return this.request(W(O.SendGaslessTransaction,[e,t]))}getInfo(){Xe({method:"wallet.getInfo()",removalVersions:ze,useInstead:"user.getInfo()"}).log();let e=W(O.GetInfo,[]);return this.request(e)}disconnect(){Xe({method:"wallet.disconnect()",removalVersions:ze,useInstead:"user.logout()"}).log(),Wt();let e=W(O.Disconnect);return this.request(e)}requestUserInfoWithUI(e){Xe({method:"wallet.requestUserInfoWithUI()",removalVersions:ze,useInstead:"user.requestUserInfoWithUI()"}).log();let t=W(O.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}},ea=class extends be{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(e){if(e.method===O.Login)return this.resetThirdPartyWalletState(),super.request(e);if(e.method===O.GetInfo)return this.getInfo(e);if(e.method===O.IsLoggedIn)return this.isLoggedIn(e);if(e.method===O.Logout)return this.logout(e);switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalRequest(e);default:return this.resetThirdPartyWalletState(),super.request(e)}}isLoggedIn(e){switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalIsLoggedIn();default:return this.resetThirdPartyWalletState(),super.request(e)}}getInfo(e){switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalGetInfo();default:return this.resetThirdPartyWalletState(),super.request(e)}}logout(e){let t=localStorage.getItem("magic_3pw_provider");switch(this.resetThirdPartyWalletState(),t){case"web3modal":return this.web3modalLogout();default:return super.request(e)}}web3modalRequest(e){return he((t,r)=>{this.sdk.web3modal.modal.getWalletProvider().request(e).then(t).catch(r)})}web3modalIsLoggedIn(){return he(e=>{let t=this.sdk.web3modal.modal.getStatus();if(t==="connected"&&e(!0),t==="disconnected"&&(this.resetThirdPartyWalletState(),e(!1)),t==="reconnecting"){let r=this.sdk.web3modal.modal.subscribeProvider(({status:o})=>{o==="connected"&&(r(),e(!0)),o==="disconnected"&&(r(),this.resetThirdPartyWalletState(),e(!1))})}})}formatWeb3modalGetInfoResponse(){var e;let t=(e=this.sdk.web3modal.modal.getWalletInfo())==null?void 0:e.name,r=this.sdk.web3modal.modal.getAddress();return{publicAddress:r,email:null,issuer:`$did:ethr:${r}`,phoneNumber:null,isMfaEnabled:!1,recoveryFactors:[],walletType:t||"web3modal"}}web3modalGetInfo(){return he((e,t)=>{let r=this.sdk.web3modal.modal.getStatus();if(r==="connected"&&e(this.formatWeb3modalGetInfoResponse()),r==="disconnected"&&(this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access.")),r==="reconnecting"){let o=this.sdk.web3modal.modal.subscribeProvider(({status:a})=>{a==="connected"&&(o(),e(this.formatWeb3modalGetInfoResponse())),a==="disconnected"&&(o(),this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access."))})}})}web3modalLogout(){return he(e=>Z(this,null,function*(){try{yield this.sdk.web3modal.modal.disconnect()}catch(t){console.error(t)}e(!0)}))}},{createBoundEmitterMethod:st,createChainingEmitterMethod:De}=Jr(),ta=class extends be{constructor(){super(...arguments),this.isMagic=!0,this.on=De("on",this),this.once=De("once",this),this.addListener=De("addListener",this),this.off=De("off",this),this.removeListener=De("removeListener",this),this.removeAllListeners=De("removeAllListeners",this),this.emit=st("emit"),this.eventNames=st("eventNames"),this.listeners=st("listeners"),this.listenerCount=st("listenerCount")}sendAsync(e,t){if(!t)throw Ro({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(Ne.MAGIC_HANDLE_REQUEST,e.map(r=>{let o=ft(r);return this.prefixPayloadMethodForTestMode(o),o})).then(r=>{t(null,r.map(o=>Mt(mt({},o.payload),{error:o.hasError?new Ue(o.payload.error):null})))});else{let r=ft(e);this.prefixPayloadMethodForTestMode(r),this.overlay.post(Ne.MAGIC_HANDLE_REQUEST,r).then(o=>{t(o.hasError?new Ue(o.payload.error):null,o.payload)})}}send(e,t){if(typeof e=="string"){let o=W(e,Array.isArray(t)?t:[]);return this.request(o)}if(Array.isArray(e)||!!t){this.sendAsync(e,t);return}let r=So();return r.log(),new $t(e).applyError({code:-32603,message:r.rawMessage}).payload}enable(){let e=W(O.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}`)}},Wr=["request","overlay","sdk"];function ra(e){let t=Object.getPrototypeOf(e),r=[t];for(;t!==be.prototype;)t=Object.getPrototypeOf(t),r.push(t);return r}var cn=class extends be{constructor(){super(void 0),this.__sdk_access_field_descriptors__=new Map,this.__is_initialized__=!1,this.utils={createPromiEvent:he,isPromiEvent:Dt,encodeJSON:Vr,decodeJSON:po,createJsonRpcRequestPayload:W,standardizeJsonRpcRequestPayload:ft,storage:en};let e=[this,...ra(this)];Wr.forEach(t=>{let r=e.map(h=>Object.getOwnPropertyDescriptor(h,t)),o=r.findIndex(h=>!!h),a=o>0,s=r[o];s&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:s,isPrototypeField:a}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw wo(t)}}))})}init(e){this.__is_initialized__||(Wr.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:r,isPrototypeField:o}=this.__sdk_access_field_descriptors__.get(t);o?delete this[t]:Object.defineProperty(this,t,r)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:r,useInstead:o}=e,a=o?` Use \`${o}\` instead.`:"",s=`\`${t}\` will be removed from this Extension in version \`${r}\`.${a}`;return new ut(this,"DEPRECATION_NOTICE",s)}createWarning(e,t){return new ut(this,e,t)}createError(e,t,r){return new pt(this,e,t,r)}},na=class extends cn{},Oe=class extends cn{};Oe.Internal=na,Oe.Anonymous="anonymous extension";var ia=class extends be{purchase(e){let t=W(O.NFTPurchase,[e]);return this.request(t)}checkout(e){console.log("HEY");let t=this.sdk.thirdPartyWallets.isConnected;console.log({isThirdPartyWalletConnected:t});let r=W(O.NFTCheckout,[Mt(mt({},e),{walletProvider:t?"web3modal":"magic"})]),o=this.request(r);return t&&o.on(rt.Initiated,a=>Z(this,null,function*(){try{console.log("RECEIVED",a);let s=yield this.request({method:"eth_signTransaction",params:[a]});console.log({hash:s}),this.createIntermediaryEvent(qe.Success,r.id)(s)}catch(s){console.log("7:10"),console.log(s),this.createIntermediaryEvent(qe.Failure,r.id)()}})),o}transfer(e){let t=W(O.NFTTransfer,[e]);return this.request(t)}};function Br(e){return e.compat&&e.compat[Y.sdkName]!=null?typeof e.compat[Y.sdkName]=="string"?oo(lo(Y.version),e.compat[Y.sdkName]):!!e.compat[Y.sdkName]:!0}function oa(e,t,r){return!t&&!r?`${e}_eth_mainnet`:r?`${e}_${JSON.stringify(r)}`:t?typeof t=="string"?`${e}_eth_${t}`:`${e}_${t.rpcUrl}_${t.chainId}_${t.chainType}`:`${e}_unknown`}function aa(e){var t;let r=(t=e==null?void 0:e.extensions)!=null?t:[],o={},a=[];if(Array.isArray(r)?r.forEach(s=>{Br(s)?(s.init(this),(s.name||s.name!==Oe.Anonymous)&&(this[s.name]=s),s instanceof Oe.Internal&&(lt(s.config)||(o[s.name]=s.config))):a.push(s)}):Object.keys(r).forEach(s=>{if(Br(r[s])){r[s].init(this);let h=r[s];this[s]=h,h instanceof Oe.Internal&&(lt(h.config)||(o[r[s].name]=h.config))}else a.push(r[s])}),a.length)throw bo(a);return o}var ct=class{constructor(e,t){this.apiKey=e;var r;if(!e)throw _o();Y.platform==="react-native"&&(t==null?void 0:t.endpoint)&&Ao().log();let{defaultEndpoint:o,version:a}=Y;this.testMode=!!(t!=null&&t.testMode),this.useStorageCache=!!(t!=null&&t.useStorageCache),this.endpoint=Qe((r=t==null?void 0:t.endpoint)!=null?r:o).origin,this.auth=new Co(this),this.user=new Qo(this),this.wallet=new Zo(this),this.nft=new ia(this),this.thirdPartyWallets=new ea(this),this.rpcProvider=new ta(this);let s=aa.call(this,t);this.parameters=Vr(Mt(mt({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:Qe(this.endpoint).host,sdk:Eo[Y.sdkName],version:a,ext:lt(s)?void 0:s,locale:(t==null?void 0:t.locale)||"en_US"},Y.bundleId?{bundleId:Y.bundleId}:{}),{meta:t==null?void 0:t.meta})),this.networkHash=oa(this.apiKey,t==null?void 0:t.network,lt(s)?void 0:s),t!=null&&t.deferPreload||this.preload()}get overlay(){if(!ct.__overlays__.has(this.parameters)){let e=new Y.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),ct.__overlays__.set(this.parameters,e)}return ct.__overlays__.get(this.parameters)}preload(){return Z(this,null,function*(){yield this.overlay.checkIsReadyForRequest})}},Bt=ct;Bt.__overlays__=new Map;function sa(e,t){return t&&Array.isArray(e)?e.find(r=>r.id===t):e}function ca(e,t){var r;let o=(r=t.data.response)==null?void 0:r.id,a=sa(e,o);if(o&&a){let s=new $t(a).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:o,response:s}}return{}}function la(e,t,r){return Z(this,null,function*(){var o;let a=yield ue("rt"),s;if(Y.platform==="web")try{s=(o=yield ue("jwt"))!=null?o:yield Bo()}catch(g){console.error("webcrypto error",g)}let h={msgType:e,payload:t};s&&(h.jwt=s),s&&a&&(h.rt=a);let m=yield Jo(r);return m&&(h.deviceShare=m),h})}function ua(e){return Z(this,null,function*(){!e.data.rt||(yield we("rt",e.data.rt))})}var ln=class{constructor(e,t,r){this.endpoint=e,this.parameters=t,this.networkHash=r,this.messageHandlers=new Set,this.isConnectedToInternet=!0,this.checkIsReadyForRequest=this.waitForReady(),this.isReadyForRequest=!1,this.listen()}post(e,t){return Z(this,null,function*(){return Zr((r,o)=>Z(this,null,function*(){if(!this.isConnectedToInternet){let v=Ct();o(v)}this.isReadyForRequest||(yield this.waitForReady());let a=[],s=Array.isArray(t)?t.map(v=>v.id):[],h=yield la(`${e}-${this.parameters}`,t,this.networkHash);yield this._post(h);let m=v=>y=>{var T;let{id:_,response:N}=ca(t,y);if(ua(y),((T=N==null?void 0:N.payload.error)==null?void 0:T.message)==="User denied account access.")Wt();else if(y.data.deviceShare){let{deviceShare:M}=y.data;zo(M,this.networkHash)}_&&N&&Array.isArray(t)&&s.includes(_)?(a.push(N),a.length===t.length&&(v(),r(a))):_&&N&&!Array.isArray(t)&&_===t.id&&(v(),r(N))},g=this.on(de.MAGIC_HANDLE_RESPONSE,m(()=>g()))}))})}on(e,t){let r=t.bind(window),o=a=>{a.data.msgType===`${e}-${this.parameters}`&&r(a)};return this.messageHandlers.add(o),()=>this.messageHandlers.delete(o)}waitForReady(){return new Promise(e=>{let t=this.on(de.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()})})}listen(){this.on(de.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(de.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(de.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new Le(pe.ProductAnnouncement,e.data.response.result.product_announcement).log()})}};var Gt={};pr(Gt,{DeepLinkPage:()=>Er,DeviceVerificationEventEmit:()=>Ve,DeviceVerificationEventOnReceived:()=>br,EthChainType:()=>Ar,Extension:()=>Oe,ExtensionError:()=>pt,ExtensionWarning:()=>ut,LoginWithEmailOTPEventEmit:()=>Te,LoginWithEmailOTPEventOnReceived:()=>wr,LoginWithMagicLinkEventEmit:()=>_r,LoginWithMagicLinkEventOnReceived:()=>Ir,MagicIncomingWindowMessage:()=>de,MagicOutgoingWindowMessage:()=>Ne,MagicPayloadMethod:()=>O,NftCheckoutEventEmit:()=>qe,NftCheckoutEventOnReceived:()=>rt,RPCError:()=>Ue,RPCErrorCode:()=>$e,RecencyCheckEventEmit:()=>ve,RecencyCheckEventOnReceived:()=>Rr,RecoveryMethodType:()=>Nr,SDKError:()=>ye,SDKErrorCode:()=>me,SDKWarning:()=>Le,SDKWarningCode:()=>pe,ThirdPartyWalletEvents:()=>yr,UpdateEmailEventEmit:()=>ge,UpdateEmailEventOnReceived:()=>Sr,isPromiEvent:()=>Dt});var Et=gr(fn()),Vt=gr(hn());var fa={display:"none",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",zIndex:"2147483647"};function da(e){for(let[t,r]of Object.entries(fa))e.style[t]=r}function ha(e){let t=[].slice.call(document.querySelectorAll(".magic-iframe"));return Boolean(t.find(r=>r.src.includes(e)))}var yt=class extends ln{constructor(){super(...arguments);this.activeElement=null}init(){this.test="hello",this.iframe=new Promise(r=>{let o=()=>{if(ha(encodeURIComponent(this.parameters)))Hr().log();else{let a=document.createElement("iframe");a.classList.add("magic-iframe"),a.dataset.magicIframeLabel=Qe(this.endpoint).host,a.title="Secure Modal",a.src=Qe(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href,a.allow="identity-credentials-get; clipboard-read; clipboard-write",da(a),document.body.appendChild(a),r(a)}};["loaded","interactive","complete"].includes(document.readyState)?o():window.addEventListener("load",o,!1)}),window.addEventListener("message",r=>{var o;if(r.origin===this.endpoint&&r.data&&r.data.msgType&&this.messageHandlers.size){r.data.response=(o=r.data.response)!=null?o:{};for(let a of this.messageHandlers.values())a(r)}})}showOverlay(){return Ce(this,null,function*(){let r=yield this.iframe;r.style.display="block",this.activeElement=document.activeElement,r.focus()})}hideOverlay(){return Ce(this,null,function*(){var o;let r=yield this.iframe;r.style.display="none",(o=this.activeElement)!=null&&o.focus&&this.activeElement.focus(),this.activeElement=null})}_post(r){return Ce(this,null,function*(){let o=yield this.iframe;if(o&&o.contentWindow)o.contentWindow.postMessage(r,this.endpoint);else throw Ct()})}};var ma=Object.assign(Kr(Bt,{platform:"web",sdkName:"magic-sdk",version:"28.0.3",defaultEndpoint:"https://auth.magic.link/",ViewController:yt,configureStorage:()=>Ce(void 0,null,function*(){let e=Et.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return yield e.defineDriver(Vt),yield e.setDriver([Et.default.INDEXEDDB,Et.default.LOCALSTORAGE,Vt._driver]),e})}),hr({},Gt)),pa=ma;return hi(va);})();
|
5
|
+
Received: \`${e.received}\``)}function Hr(){return new Le(pe.DuplicateIframe,"Duplicate iframes found.")}function So(){return new Le(pe.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 Ao(){return new Le(pe.ReactNativeEndpointConfiguration,`CUSTOM DOMAINS ARE NOT SUPPORTED WHEN USING MAGIC SDK WITH REACT NATIVE! The \`endpoint\` parameter SHOULD NOT be provided. The Magic \`<iframe>\` is automatically wrapped by a WebView pointed at \`${Y.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function Xe(e){let{method:t,removalVersions:r,useInstead:o}=e,a=r[Y.sdkName],s=o?` Use \`${o}\` instead.`:"",h=`\`${t}\` will be removed from \`${Y.sdkName}\` in version \`${a}\`.${s}`;return new Le(pe.DeprecationNotice,h)}function*No(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var To=No();function Yr(){return To.next().value}var Xr=Symbol("Payload pre-processed by Magic SDK");function zr(e){return Object.defineProperty(e,Xr,{value:!0,enumerable:!1}),e}function Oo(e){return!!e[Xr]}function ft(e){var t,r,o;return Oo(e)||(e.jsonrpc=(t=e.jsonrpc)!=null?t:"2.0",e.id=Yr(),e.method=(r=e.method)!=null?r:"noop",e.params=(o=e.params)!=null?o:[],zr(e)),e}function W(e,t=[]){return zr({params:t,method:e,jsonrpc:"2.0",id:Yr()})}var $t=class{constructor(e){e instanceof $t?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):go(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 typeof this._error!="undefined"&&this._error!==null}get hasResult(){return typeof this._result!="undefined"}get payload(){return{jsonrpc:this._jsonrpc,id:this._id,result:this._result,error:this._error}}},Lo=Ri(Si()),Mo=class extends Lo.default{};function Jr(){let e=new Mo;return{emitter:e,createChainingEmitterMethod:(t,r)=>(...o)=>(e[t].apply(e,o),r),createBoundEmitterMethod:t=>(...r)=>e[t].apply(e,r)}}var Qr=Symbol("isPromiEvent");function Dt(e){return!!e[Qr]}function he(e){let t=Zr(e),{createBoundEmitterMethod:r,createChainingEmitterMethod:o}=Jr(),a=Symbol("Promise.then"),s=Symbol("Promise.catch"),h=Symbol("Promise.finally"),m=(y,T)=>(..._)=>{let N=T[y].apply(T,_);return g(N)},g=y=>Object.assign(y,{[Qr]:!0,[a]:y[a]||y.then,[s]:y[s]||y.catch,[h]:y[h]||y.finally,then:m(a,y),catch:m(s,y),finally:m(h,y),on:o("on",y),once:o("once",y),addListener:o("addListener",y),off:o("off",y),removeListener:o("removeListener",y),removeAllListeners:o("removeAllListeners",y),emit:r("emit"),eventNames:r("eventNames"),listeners:r("listeners"),listenerCount:r("listenerCount")}),v=g(t.then(y=>(v.emit("done",y),v.emit("settled"),y),y=>{throw v.emit("error",y),v.emit("settled"),y}));return v}function Zr(e){return new Promise((t,r)=>{let o=e(t,r);Promise.resolve(o).catch(r)})}var be=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){if(this.sdk.thirdPartyWallets.isConnected&&e.method!==O.IntermediaryEvent&&e.method!==O.NFTCheckout&&e.method!==O.Login)return he((a,s)=>{this.sdk.thirdPartyWallets.requestOverride(e).then(a).catch(s)});let t=this.overlay.post(Ne.MAGIC_HANDLE_REQUEST,ft(e)),r=he((a,s)=>{t.then(h=>{if(o(),h.hasError)s(new Ue(h.payload.error));else if(h.hasResult)a(h.payload.result);else throw Io()}).catch(h=>{o(),s(h)})}),o=this.overlay.on(de.MAGIC_HANDLE_EVENT,a=>{var s;let{response:h}=a.data;if(h.id===e.id&&((s=h.result)==null?void 0:s.event)){let{event:m,params:g=[]}=h.result;r.emit(m,...g)}});return r}createIntermediaryEvent(e,t){return r=>{let o=W(O.IntermediaryEvent,[{payloadId:t,eventType:e,args:r}]);this.request(o)}}};function Po(e,t){let[r]=e.split(".").map(Number);return r>=t}var ze={"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"},Co=class extends be{loginWithMagicLink(e){let t=Y.sdkName==="@magic-sdk/react-native"||Y.sdkName==="@magic-sdk/react-native-bare"||Y.sdkName==="@magic-sdk/react-native-expo";if(t&&Po(Y.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&Xe({method:"auth.loginWithMagicLink()",removalVersions:ze,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:r,showUI:o=!0,redirectURI:a,overrides:s}=e,h=W(this.sdk.testMode?O.LoginWithMagicLinkTestMode:O.LoginWithMagicLink,[{email:r,showUI:o,redirectURI:a,overrides:s}]);return this.request(h)}loginWithSMS(e){let{phoneNumber:t}=e,r=W(this.sdk.testMode?O.LoginWithSmsTestMode:O.LoginWithSms,[{phoneNumber:t,showUI:!0}]);return this.request(r)}loginWithEmailOTP(e){let{email:t,showUI:r,deviceCheckUI:o,overrides:a}=e,s=W(this.sdk.testMode?O.LoginWithEmailOTPTestMode:O.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:o,overrides:a}]),h=this.request(s);return!o&&h&&h.on(Ve.Retry,()=>{this.createIntermediaryEvent(Ve.Retry,s.id)()}),!r&&h&&(h.on(Te.VerifyEmailOtp,m=>{this.createIntermediaryEvent(Te.VerifyEmailOtp,s.id)(m)}),h.on(Te.Cancel,()=>{this.createIntermediaryEvent(Te.Cancel,s.id)()})),h}loginWithCredential(e){let t=e!=null?e:"";if(!e&&Y.platform==="web"){t=window.location.search;let o=window.location.origin+window.location.pathname;window.history.replaceState(null,"",o)}let r=W(this.sdk.testMode?O.LoginWithCredentialTestMode:O.LoginWithCredential,[t]);return this.request(r)}setAuthorizationToken(e){let t=W(O.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,o=W(this.sdk.testMode?O.UpdateEmailTestMode:O.UpdateEmail,[{email:t,showUI:r}]),a=this.request(o);return r||(a.on(ve.Retry,()=>{this.createIntermediaryEvent(ve.Retry,o.id)()}),a.on(ve.Cancel,()=>{this.createIntermediaryEvent(ve.Cancel,o.id)()}),a.on(ve.VerifyEmailOtp,s=>{this.createIntermediaryEvent(ve.VerifyEmailOtp,o.id)(s)}),a.on(ge.RetryWithNewEmail,s=>{this.createIntermediaryEvent(ge.RetryWithNewEmail,o.id)(s)}),a.on(ge.Cancel,()=>{this.createIntermediaryEvent(ge.Cancel,o.id)()}),a.on(ge.VerifyEmailOtp,s=>{this.createIntermediaryEvent(ge.VerifyEmailOtp,o.id)(s)})),a}},en={};wi(en,{clear:()=>$o,getItem:()=>ue,iterate:()=>tn,key:()=>xo,keys:()=>Uo,length:()=>Do,removeItem:()=>dt,setItem:()=>we});var at;function Re(e){return(...t)=>Z(this,null,function*(){return at||(at=yield Y.configureStorage()),yield at.ready(),at[e](...t)})}var ue=Re("getItem"),we=Re("setItem"),dt=Re("removeItem"),$o=Re("clear"),Do=Re("length"),xo=Re("key"),Uo=Re("keys"),tn=Re("iterate");function ko(){let e=window.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&191|128;let t="";return t+=e[0].toString(16),t+=e[1].toString(16),t+=e[2].toString(16),t+=e[3].toString(16),t+="-",t+=e[4].toString(16),t+=e[5].toString(16),t+="-",t+=e[6].toString(16),t+=e[7].toString(16),t+="-",t+=e[8].toString(16),t+=e[9].toString(16),t+="-",t+=e[10].toString(16),t+=e[11].toString(16),t+=e[12].toString(16),t+=e[13].toString(16),t+=e[14].toString(16),t+=e[15].toString(16),t}var rn="STORE_KEY_PRIVATE_KEY",Lt="STORE_KEY_PUBLIC_JWK",nn="ECDSA",Fo="P-256",Wo={name:nn,namedCurve:Fo};function vt(){let e=typeof window!="undefined"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function Bo(){return Z(this,null,function*(){let e=yield Go();if(!e){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:t}=window.crypto,r=yield ue(rn);if(!r||!t){console.info("unable to find private key or webcrypto unsupported");return}let o={iat:Math.floor(new Date().getTime()/1e3),jti:ko()},a={typ:"dpop+jwt",alg:"ES256",jwk:e},s={protected:Fr(JSON.stringify(a)),claims:Fr(JSON.stringify(o))},h=Vo(`${s.protected}.${s.claims}`),m={name:nn,hash:{name:"SHA-256"}},g=Ko(new Uint8Array(yield t.sign(m,r,h)));return`${s.protected}.${s.claims}.${g}`})}function Go(){return Z(this,null,function*(){if(!vt()){console.info("webcrypto is not supported");return}return(yield ue(Lt))||(yield jo()),ue(Lt)})}function jo(){return Z(this,null,function*(){let{subtle:e}=window.crypto,t=yield e.generateKey(Wo,!1,["sign"]),r=yield e.exportKey("jwk",t.publicKey);yield we(rn,t.privateKey),yield we(Lt,r)})}function Fr(e){return on(qo(e))}function Vo(e){return new TextEncoder().encode(e)}function on(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function qo(e){return encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function Ko(e){let t="";return e.forEach(r=>{t+=String.fromCharCode(r)}),on(t)}var xt="ds",Ut="ek",kt="iv",Ft="AES-GCM",Ho=256;function Wt(){return Z(this,null,function*(){let e=[];yield tn((t,r,o)=>{r.startsWith(`${xt}_`)&&e.push(r)});for(let t of e)yield dt(t)})}function an(e){let t="",r=new Uint8Array(e),o=r.byteLength;for(let a=0;a<o;a++)t+=String.fromCharCode(r[a]);return window.btoa(t)}function sn(e){let t=window.atob(e),r=t.length,o=new Uint8Array(r);for(let a=0;a<r;a++)o[a]=t.charCodeAt(a);return o.buffer}function Yo(){return Z(this,null,function*(){if(!vt()){console.info("webcrypto is not supported");return}let{crypto:e}=window;return(yield ue(kt))||e.getRandomValues(new Uint8Array(12))})}function Xo(){return Z(this,null,function*(){if(!vt()){console.info("webcrypto is not supported");return}let{subtle:e}=window.crypto;return(yield ue(Ut))||(yield e.generateKey({name:Ft,length:Ho},!1,["encrypt","decrypt"]))})}function zo(e,t){return Z(this,null,function*(){let r=yield Yo(),o=yield Xo();if(!r||!o||!e)return;let a=sn(e),{subtle:s}=window.crypto,h=yield s.encrypt({name:Ft,iv:r},o,a),m=an(h);yield we(`${xt}_${t}`,m),yield we(Ut,o),yield we(kt,r)})}function Jo(e){return Z(this,null,function*(){let t=yield ue(`${xt}_${e}`),r=yield ue(kt),o=yield ue(Ut);if(!r||!t||!o||!vt())return;let{subtle:a}=window.crypto,s=yield a.decrypt({name:Ft,iv:r},o,sn(t));return an(s)})}function Qe(e,t){return t?new URL(e,t):new URL(e)}var Qo=class extends be{constructor(){super(...arguments),this.localForageIsLoggedInKey="magic_auth_is_logged_in",this.userLoggedOutCallbacks=[]}getIdToken(e){let t=W(this.sdk.testMode?O.GetIdTokenTestMode:O.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=W(this.sdk.testMode?O.GenerateIdTokenTestMode:O.GenerateIdToken,[e]);return this.request(t)}getInfo(){let e=W(O.GetInfo,[]);return this.request(e)}isLoggedIn(){return he((e,t)=>Z(this,null,function*(){try{let r=!1;this.sdk.useStorageCache&&(r=(yield ue(this.localForageIsLoggedInKey))==="true",r&&e(!0));let o=W(this.sdk.testMode?O.IsLoggedInTestMode:O.IsLoggedIn),a=yield this.request(o);this.sdk.useStorageCache&&(a?we(this.localForageIsLoggedInKey,!0):dt(this.localForageIsLoggedInKey),r&&!a&&this.emitUserLoggedOut(!0)),e(a)}catch(r){t(r)}}))}logout(){return dt(this.localForageIsLoggedInKey),Wt(),he((e,t)=>Z(this,null,function*(){try{let r=W(this.sdk.testMode?O.LogoutTestMode:O.Logout),o=yield this.request(r);this.sdk.useStorageCache&&this.emitUserLoggedOut(o),e(o)}catch(r){t(r)}}))}requestInfoWithUI(e){let t=W(O.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let t=W(this.sdk.testMode?O.UserSettingsTestMode:O.UserSettings,[e]);return this.request(t)}recoverAccount(e){let t=W(this.sdk.testMode?O.RecoverAccountTestMode:O.RecoverAccount,[e]);return this.request(t)}revealPrivateKey(){let e=W(O.RevealPK);return this.request(e)}getMetadata(){Xe({method:"user.getMetadata()",removalVersions:ze,useInstead:"user.getInfo()"}).log();let e=W(this.sdk.testMode?O.GetMetadataTestMode:O.GetMetadata);return this.request(e)}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}},Zo=class extends be{connectWithUI(e){let t=he((r,o)=>Z(this,null,function*(){try{let a=W(O.Login,[mt({enabledWallets:this.sdk.thirdPartyWallets.enabledWallets},e)]),s=this.request(a);this.sdk.thirdPartyWallets.eventListeners.forEach(({event:m,callback:g})=>{s.on(m,()=>g(a.id))}),s.on("id-token-created",m=>{t.emit("id-token-created",m)});let h=yield s;h.error&&o(h),r(h)}catch(a){o(a)}}));return t}showUI(){return this.request(W(O.ShowUI))}showAddress(){return this.request(W(O.ShowAddress))}showSendTokensUI(){return this.request(W(O.ShowSendTokensUI))}showOnRamp(){return this.request(W(O.ShowOnRamp))}showNFTs(){return this.request(W(O.ShowNFTs))}showBalances(){return this.request(W(O.ShowBalances))}sendGaslessTransaction(e,t){return this.request(W(O.SendGaslessTransaction,[e,t]))}getInfo(){Xe({method:"wallet.getInfo()",removalVersions:ze,useInstead:"user.getInfo()"}).log();let e=W(O.GetInfo,[]);return this.request(e)}disconnect(){Xe({method:"wallet.disconnect()",removalVersions:ze,useInstead:"user.logout()"}).log(),Wt();let e=W(O.Disconnect);return this.request(e)}requestUserInfoWithUI(e){Xe({method:"wallet.requestUserInfoWithUI()",removalVersions:ze,useInstead:"user.requestUserInfoWithUI()"}).log();let t=W(O.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}},ea=class extends be{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(e){if(e.method===O.Login)return this.resetThirdPartyWalletState(),super.request(e);if(e.method===O.GetInfo)return this.getInfo(e);if(e.method===O.IsLoggedIn)return this.isLoggedIn(e);if(e.method===O.Logout)return this.logout(e);switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalRequest(e);default:return this.resetThirdPartyWalletState(),super.request(e)}}isLoggedIn(e){switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalIsLoggedIn();default:return this.resetThirdPartyWalletState(),super.request(e)}}getInfo(e){switch(localStorage.getItem("magic_3pw_provider")){case"web3modal":return this.web3modalGetInfo();default:return this.resetThirdPartyWalletState(),super.request(e)}}logout(e){let t=localStorage.getItem("magic_3pw_provider");switch(this.resetThirdPartyWalletState(),t){case"web3modal":return this.web3modalLogout();default:return super.request(e)}}web3modalRequest(e){return he((t,r)=>{this.sdk.web3modal.modal.getWalletProvider().request(e).then(t).catch(r)})}web3modalIsLoggedIn(){return he(e=>{let t=this.sdk.web3modal.modal.getStatus();if(t==="connected"&&e(!0),t==="disconnected"&&(this.resetThirdPartyWalletState(),e(!1)),t==="reconnecting"){let r=this.sdk.web3modal.modal.subscribeProvider(({status:o})=>{o==="connected"&&(r(),e(!0)),o==="disconnected"&&(r(),this.resetThirdPartyWalletState(),e(!1))})}})}formatWeb3modalGetInfoResponse(){var e;let t=(e=this.sdk.web3modal.modal.getWalletInfo())==null?void 0:e.name,r=this.sdk.web3modal.modal.getAddress();return{publicAddress:r,email:null,issuer:`$did:ethr:${r}`,phoneNumber:null,isMfaEnabled:!1,recoveryFactors:[],walletType:t||"web3modal"}}web3modalGetInfo(){return he((e,t)=>{let r=this.sdk.web3modal.modal.getStatus();if(r==="connected"&&e(this.formatWeb3modalGetInfoResponse()),r==="disconnected"&&(this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access.")),r==="reconnecting"){let o=this.sdk.web3modal.modal.subscribeProvider(({status:a})=>{a==="connected"&&(o(),e(this.formatWeb3modalGetInfoResponse())),a==="disconnected"&&(o(),this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access."))})}})}web3modalLogout(){return he(e=>Z(this,null,function*(){try{yield this.sdk.web3modal.modal.disconnect()}catch(t){console.error(t)}e(!0)}))}},{createBoundEmitterMethod:st,createChainingEmitterMethod:De}=Jr(),ta=class extends be{constructor(){super(...arguments),this.isMagic=!0,this.on=De("on",this),this.once=De("once",this),this.addListener=De("addListener",this),this.off=De("off",this),this.removeListener=De("removeListener",this),this.removeAllListeners=De("removeAllListeners",this),this.emit=st("emit"),this.eventNames=st("eventNames"),this.listeners=st("listeners"),this.listenerCount=st("listenerCount")}sendAsync(e,t){if(!t)throw Ro({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(Ne.MAGIC_HANDLE_REQUEST,e.map(r=>{let o=ft(r);return this.prefixPayloadMethodForTestMode(o),o})).then(r=>{t(null,r.map(o=>Mt(mt({},o.payload),{error:o.hasError?new Ue(o.payload.error):null})))});else{let r=ft(e);this.prefixPayloadMethodForTestMode(r),this.overlay.post(Ne.MAGIC_HANDLE_REQUEST,r).then(o=>{t(o.hasError?new Ue(o.payload.error):null,o.payload)})}}send(e,t){if(typeof e=="string"){let o=W(e,Array.isArray(t)?t:[]);return this.request(o)}if(Array.isArray(e)||!!t){this.sendAsync(e,t);return}let r=So();return r.log(),new $t(e).applyError({code:-32603,message:r.rawMessage}).payload}enable(){let e=W(O.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}`)}},Wr=["request","overlay","sdk"];function ra(e){let t=Object.getPrototypeOf(e),r=[t];for(;t!==be.prototype;)t=Object.getPrototypeOf(t),r.push(t);return r}var cn=class extends be{constructor(){super(void 0),this.__sdk_access_field_descriptors__=new Map,this.__is_initialized__=!1,this.utils={createPromiEvent:he,isPromiEvent:Dt,encodeJSON:Vr,decodeJSON:po,createJsonRpcRequestPayload:W,standardizeJsonRpcRequestPayload:ft,storage:en};let e=[this,...ra(this)];Wr.forEach(t=>{let r=e.map(h=>Object.getOwnPropertyDescriptor(h,t)),o=r.findIndex(h=>!!h),a=o>0,s=r[o];s&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:s,isPrototypeField:a}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw wo(t)}}))})}init(e){this.__is_initialized__||(Wr.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:r,isPrototypeField:o}=this.__sdk_access_field_descriptors__.get(t);o?delete this[t]:Object.defineProperty(this,t,r)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:r,useInstead:o}=e,a=o?` Use \`${o}\` instead.`:"",s=`\`${t}\` will be removed from this Extension in version \`${r}\`.${a}`;return new ut(this,"DEPRECATION_NOTICE",s)}createWarning(e,t){return new ut(this,e,t)}createError(e,t,r){return new pt(this,e,t,r)}},na=class extends cn{},Oe=class extends cn{};Oe.Internal=na,Oe.Anonymous="anonymous extension";var ia=class extends be{purchase(e){let t=W(O.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=this.sdk.thirdPartyWallets.isConnected;console.log({isThirdPartyWalletConnected:t});let r=W(O.NFTCheckout,[Mt(mt({},e),{walletProvider:t?"web3modal":"magic"})]),o=this.request(r);return t&&o.on(rt.Initiated,a=>Z(this,null,function*(){try{console.log("RECEIVED",a);let s=yield this.request({method:"eth_sendTransaction",params:[a]});console.log({hash:s}),this.createIntermediaryEvent(qe.Success,r.id)(s)}catch(s){console.log(s),this.createIntermediaryEvent(qe.Failure,r.id)()}})),o}transfer(e){let t=W(O.NFTTransfer,[e]);return this.request(t)}};function Br(e){return e.compat&&e.compat[Y.sdkName]!=null?typeof e.compat[Y.sdkName]=="string"?oo(lo(Y.version),e.compat[Y.sdkName]):!!e.compat[Y.sdkName]:!0}function oa(e,t,r){return!t&&!r?`${e}_eth_mainnet`:r?`${e}_${JSON.stringify(r)}`:t?typeof t=="string"?`${e}_eth_${t}`:`${e}_${t.rpcUrl}_${t.chainId}_${t.chainType}`:`${e}_unknown`}function aa(e){var t;let r=(t=e==null?void 0:e.extensions)!=null?t:[],o={},a=[];if(Array.isArray(r)?r.forEach(s=>{Br(s)?(s.init(this),(s.name||s.name!==Oe.Anonymous)&&(this[s.name]=s),s instanceof Oe.Internal&&(lt(s.config)||(o[s.name]=s.config))):a.push(s)}):Object.keys(r).forEach(s=>{if(Br(r[s])){r[s].init(this);let h=r[s];this[s]=h,h instanceof Oe.Internal&&(lt(h.config)||(o[r[s].name]=h.config))}else a.push(r[s])}),a.length)throw bo(a);return o}var ct=class{constructor(e,t){this.apiKey=e;var r;if(!e)throw _o();Y.platform==="react-native"&&(t==null?void 0:t.endpoint)&&Ao().log();let{defaultEndpoint:o,version:a}=Y;this.testMode=!!(t!=null&&t.testMode),this.useStorageCache=!!(t!=null&&t.useStorageCache),this.endpoint=Qe((r=t==null?void 0:t.endpoint)!=null?r:o).origin,this.auth=new Co(this),this.user=new Qo(this),this.wallet=new Zo(this),this.nft=new ia(this),this.thirdPartyWallets=new ea(this),this.rpcProvider=new ta(this);let s=aa.call(this,t);this.parameters=Vr(Mt(mt({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:Qe(this.endpoint).host,sdk:Eo[Y.sdkName],version:a,ext:lt(s)?void 0:s,locale:(t==null?void 0:t.locale)||"en_US"},Y.bundleId?{bundleId:Y.bundleId}:{}),{meta:t==null?void 0:t.meta})),this.networkHash=oa(this.apiKey,t==null?void 0:t.network,lt(s)?void 0:s),t!=null&&t.deferPreload||this.preload()}get overlay(){if(!ct.__overlays__.has(this.parameters)){let e=new Y.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),ct.__overlays__.set(this.parameters,e)}return ct.__overlays__.get(this.parameters)}preload(){return Z(this,null,function*(){yield this.overlay.checkIsReadyForRequest})}},Bt=ct;Bt.__overlays__=new Map;function sa(e,t){return t&&Array.isArray(e)?e.find(r=>r.id===t):e}function ca(e,t){var r;let o=(r=t.data.response)==null?void 0:r.id,a=sa(e,o);if(o&&a){let s=new $t(a).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:o,response:s}}return{}}function la(e,t,r){return Z(this,null,function*(){var o;let a=yield ue("rt"),s;if(Y.platform==="web")try{s=(o=yield ue("jwt"))!=null?o:yield Bo()}catch(g){console.error("webcrypto error",g)}let h={msgType:e,payload:t};s&&(h.jwt=s),s&&a&&(h.rt=a);let m=yield Jo(r);return m&&(h.deviceShare=m),h})}function ua(e){return Z(this,null,function*(){!e.data.rt||(yield we("rt",e.data.rt))})}var ln=class{constructor(e,t,r){this.endpoint=e,this.parameters=t,this.networkHash=r,this.messageHandlers=new Set,this.isConnectedToInternet=!0,this.checkIsReadyForRequest=this.waitForReady(),this.isReadyForRequest=!1,this.listen()}post(e,t){return Z(this,null,function*(){return Zr((r,o)=>Z(this,null,function*(){if(!this.isConnectedToInternet){let v=Ct();o(v)}this.isReadyForRequest||(yield this.waitForReady());let a=[],s=Array.isArray(t)?t.map(v=>v.id):[],h=yield la(`${e}-${this.parameters}`,t,this.networkHash);yield this._post(h);let m=v=>y=>{var T;let{id:_,response:N}=ca(t,y);if(ua(y),((T=N==null?void 0:N.payload.error)==null?void 0:T.message)==="User denied account access.")Wt();else if(y.data.deviceShare){let{deviceShare:M}=y.data;zo(M,this.networkHash)}_&&N&&Array.isArray(t)&&s.includes(_)?(a.push(N),a.length===t.length&&(v(),r(a))):_&&N&&!Array.isArray(t)&&_===t.id&&(v(),r(N))},g=this.on(de.MAGIC_HANDLE_RESPONSE,m(()=>g()))}))})}on(e,t){let r=t.bind(window),o=a=>{a.data.msgType===`${e}-${this.parameters}`&&r(a)};return this.messageHandlers.add(o),()=>this.messageHandlers.delete(o)}waitForReady(){return new Promise(e=>{let t=this.on(de.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()})})}listen(){this.on(de.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(de.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(de.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new Le(pe.ProductAnnouncement,e.data.response.result.product_announcement).log()})}};var Gt={};pr(Gt,{DeepLinkPage:()=>Er,DeviceVerificationEventEmit:()=>Ve,DeviceVerificationEventOnReceived:()=>br,EthChainType:()=>Ar,Extension:()=>Oe,ExtensionError:()=>pt,ExtensionWarning:()=>ut,LoginWithEmailOTPEventEmit:()=>Te,LoginWithEmailOTPEventOnReceived:()=>wr,LoginWithMagicLinkEventEmit:()=>_r,LoginWithMagicLinkEventOnReceived:()=>Ir,MagicIncomingWindowMessage:()=>de,MagicOutgoingWindowMessage:()=>Ne,MagicPayloadMethod:()=>O,NftCheckoutEventEmit:()=>qe,NftCheckoutEventOnReceived:()=>rt,RPCError:()=>Ue,RPCErrorCode:()=>$e,RecencyCheckEventEmit:()=>ve,RecencyCheckEventOnReceived:()=>Rr,RecoveryMethodType:()=>Nr,SDKError:()=>ye,SDKErrorCode:()=>me,SDKWarning:()=>Le,SDKWarningCode:()=>pe,ThirdPartyWalletEvents:()=>yr,UpdateEmailEventEmit:()=>ge,UpdateEmailEventOnReceived:()=>Sr,isPromiEvent:()=>Dt});var Et=gr(fn()),Vt=gr(hn());var fa={display:"none",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",zIndex:"2147483647"};function da(e){for(let[t,r]of Object.entries(fa))e.style[t]=r}function ha(e){let t=[].slice.call(document.querySelectorAll(".magic-iframe"));return Boolean(t.find(r=>r.src.includes(e)))}var yt=class extends ln{constructor(){super(...arguments);this.activeElement=null}init(){this.test="hello",this.iframe=new Promise(r=>{let o=()=>{if(ha(encodeURIComponent(this.parameters)))Hr().log();else{let a=document.createElement("iframe");a.classList.add("magic-iframe"),a.dataset.magicIframeLabel=Qe(this.endpoint).host,a.title="Secure Modal",a.src=Qe(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href,a.allow="identity-credentials-get; clipboard-read; clipboard-write",da(a),document.body.appendChild(a),r(a)}};["loaded","interactive","complete"].includes(document.readyState)?o():window.addEventListener("load",o,!1)}),window.addEventListener("message",r=>{var o;if(r.origin===this.endpoint&&r.data&&r.data.msgType&&this.messageHandlers.size){r.data.response=(o=r.data.response)!=null?o:{};for(let a of this.messageHandlers.values())a(r)}})}showOverlay(){return Ce(this,null,function*(){let r=yield this.iframe;r.style.display="block",this.activeElement=document.activeElement,r.focus()})}hideOverlay(){return Ce(this,null,function*(){var o;let r=yield this.iframe;r.style.display="none",(o=this.activeElement)!=null&&o.focus&&this.activeElement.focus(),this.activeElement=null})}_post(r){return Ce(this,null,function*(){let o=yield this.iframe;if(o&&o.contentWindow)o.contentWindow.postMessage(r,this.endpoint);else throw Ct()})}};var ma=Object.assign(Kr(Bt,{platform:"web",sdkName:"magic-sdk",version:"28.0.3",defaultEndpoint:"https://auth.magic.link/",ViewController:yt,configureStorage:()=>Ce(void 0,null,function*(){let e=Et.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return yield e.defineDriver(Vt),yield e.setDriver([Et.default.INDEXEDDB,Et.default.LOCALSTORAGE,Vt._driver]),e})}),hr({},Gt)),pa=ma;return hi(va);})();
|
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": "28.0.4-canary.744.
|
3
|
+
"version": "28.0.4-canary.744.9318469614.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,9 +29,9 @@
|
|
29
29
|
]
|
30
30
|
},
|
31
31
|
"dependencies": {
|
32
|
-
"@magic-sdk/commons": "24.0.3-canary.744.
|
33
|
-
"@magic-sdk/provider": "28.0.3-canary.744.
|
34
|
-
"@magic-sdk/types": "24.0.2-canary.744.
|
32
|
+
"@magic-sdk/commons": "24.0.3-canary.744.9318469614.0",
|
33
|
+
"@magic-sdk/provider": "28.0.3-canary.744.9318469614.0",
|
34
|
+
"@magic-sdk/types": "24.0.2-canary.744.9318469614.0",
|
35
35
|
"localforage": "^1.7.4"
|
36
36
|
},
|
37
37
|
"devDependencies": {
|
@@ -40,5 +40,5 @@
|
|
40
40
|
"@babel/runtime": "^7.9.6",
|
41
41
|
"localforage-driver-memory": "^1.0.5"
|
42
42
|
},
|
43
|
-
"gitHead": "
|
43
|
+
"gitHead": "0b3c11a9d25c6bd258875b2c1f9d9764f61ff581"
|
44
44
|
}
|