magic-sdk 28.10.0-canary.928e0c1.0 → 28.10.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 +1 -1
- package/dist/es/index.js +1 -1
- package/dist/es/index.js.map +1 -1
- package/dist/es/index.mjs +1 -1
- package/dist/es/index.mjs.map +1 -1
- 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 _e(ve.IncompatibleExtensions,t)}function xo(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 _e(ve.InvalidArgument,`Invalid ${t(e.argument)} argument given to \`${e.procedure}\`.
|
4
4
|
Expected: \`${e.expected}\`
|
5
|
-
Received: \`${e.received}\``)}function an(){return new Te(ge.DuplicateIframe,"Duplicate iframes found.")}function Uo(){return new Te(ge.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 ko(){return new Te(ge.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 Je(e){let{method:t,removalVersions:r,useInstead:o}=e,a=r[Y.sdkName],s=o?` Use \`${o}\` instead.`:"",m=`\`${t}\` will be removed from \`${Y.sdkName}\` in version \`${a}\`.${s}`;return new Te(ge.DeprecationNotice,m)}function*Fo(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var Wo=Fo();function sn(){return Wo.next().value}var ln=Symbol("Payload pre-processed by Magic SDK");function cn(e){return Object.defineProperty(e,ln,{value:!0,enumerable:!1}),e}function Bo(e){return!!e[ln]}function pt(e){var t,r,o;return Bo(e)||(e.jsonrpc=(t=e.jsonrpc)!=null?t:"2.0",e.id=sn(),e.method=(r=e.method)!=null?r:"noop",e.params=(o=e.params)!=null?o:[],cn(e)),e}function W(e,t=[]){return cn({params:t,method:e,jsonrpc:"2.0",id:sn()})}var Ut=class{constructor(e){e instanceof Ut?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):Mo(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}}},Go=xi(Ui()),jo=class extends Go.default{};function un(){let e=new jo;return{emitter:e,createChainingEmitterMethod:(t,r)=>(...o)=>(e[t].apply(e,o),r),createBoundEmitterMethod:t=>(...r)=>e[t].apply(e,r)}}var fn=Symbol("isPromiEvent");function kt(e){return!!e[fn]}function et(e){let t=dn(e),{createBoundEmitterMethod:r,createChainingEmitterMethod:o}=un(),a=Symbol("Promise.then"),s=Symbol("Promise.catch"),m=Symbol("Promise.finally"),d=(y,O)=>(..._)=>{let N=O[y].apply(O,_);return g(N)},g=y=>Object.assign(y,{[fn]:!0,[a]:y[a]||y.then,[s]:y[s]||y.catch,[m]:y[m]||y.finally,then:d(a,y),catch:d(s,y),finally:d(m,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.on(at.ClosedByUser,()=>{v.emit(ot.ClosedByUser)}),v}function dn(e){return new Promise((t,r)=>{let o=e(t,r);Promise.resolve(o).catch(r)})}var Le=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){let t=this.overlay.post(Ne.MAGIC_HANDLE_REQUEST,pt(e)),r=et((a,s)=>{t.then(m=>{if(o(),m.hasError)s(new We(m.payload.error));else if(m.hasResult)a(m.payload.result);else throw Po()}).catch(m=>{o(),s(m)})}),o=this.overlay.on(me.MAGIC_HANDLE_EVENT,a=>{var s;let{response:m}=a.data;if(m.id===e.id&&((s=m.result)==null?void 0:s.event)){let{event:d,params:g=[]}=m.result;r.emit(d,...g)}});return r}createIntermediaryEvent(e,t){return r=>{let o=W(T.IntermediaryEvent,[{payloadId:t,eventType:e,args:r}]);this.request(o)}}};function Vo(e,t){let[r]=e.split(".").map(Number);return r>=t}var Qe={"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"},qo=class extends Le{loginWithMagicLink(e){let t=Y.sdkName==="@magic-sdk/react-native"||Y.sdkName==="@magic-sdk/react-native-bare"||Y.sdkName==="@magic-sdk/react-native-expo";if(t&&Vo(Y.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&Je({method:"auth.loginWithMagicLink()",removalVersions:Qe,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:r,showUI:o=!0,redirectURI:a,overrides:s,lifespan:m}=e,d=W(this.sdk.testMode?T.LoginWithMagicLinkTestMode:T.LoginWithMagicLink,[{email:r,showUI:o,redirectURI:a,overrides:s,lifespan:m}]);return this.request(d)}loginWithSMS(e){let{phoneNumber:t,showUI:r=!0,lifespan:o}=e,a=W(this.sdk.testMode?T.LoginWithSmsTestMode:T.LoginWithSms,[{phoneNumber:t,showUI:r,lifespan:o}]),s=this.request(a);return!r&&s&&(s.on(Oe.VerifySmsOtp,m=>{this.createIntermediaryEvent(Oe.VerifySmsOtp,a.id)(m)}),s.on(Oe.Cancel,()=>{this.createIntermediaryEvent(Oe.Cancel,a.id)()})),s}loginWithEmailOTP(e){let{email:t,showUI:r,deviceCheckUI:o,overrides:a,lifespan:s}=e,m=W(this.sdk.testMode?T.LoginWithEmailOTPTestMode:T.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:o,overrides:a,lifespan:s}]),d=this.request(m);return!o&&d&&d.on(He.Retry,()=>{this.createIntermediaryEvent(He.Retry,m.id)()}),!r&&d&&(d.on(ye.VerifyEmailOtp,g=>{this.createIntermediaryEvent(ye.VerifyEmailOtp,m.id)(g)}),d.on(ye.VerifyMFACode,g=>{this.createIntermediaryEvent(ye.VerifyMFACode,m.id)(g)}),d.on(ye.Cancel,()=>{this.createIntermediaryEvent(ye.Cancel,m.id)()})),d}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:r}=e||{},o=t!=null?t:"";if(!t&&Y.platform==="web"){o=window.location.search;let s=window.location.origin+window.location.pathname;window.history.replaceState(null,"",s)}let a=W(this.sdk.testMode?T.LoginWithCredentialTestMode:T.LoginWithCredential,[o,r]);return this.request(a)}setAuthorizationToken(e){let t=W(T.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,o=W(this.sdk.testMode?T.UpdateEmailTestMode:T.UpdateEmail,[{email:t,showUI:r}]),a=this.request(o);return r||(a.on(he.Retry,()=>{this.createIntermediaryEvent(he.Retry,o.id)()}),a.on(he.Cancel,()=>{this.createIntermediaryEvent(he.Cancel,o.id)()}),a.on(he.VerifyEmailOtp,s=>{this.createIntermediaryEvent(he.VerifyEmailOtp,o.id)(s)}),a.on(he.VerifyMFACode,s=>{this.createIntermediaryEvent(he.VerifyMFACode,o.id)(s)}),a.on(Ee.RetryWithNewEmail,s=>{this.createIntermediaryEvent(Ee.RetryWithNewEmail,o.id)(s)}),a.on(Ee.Cancel,()=>{this.createIntermediaryEvent(Ee.Cancel,o.id)()}),a.on(Ee.VerifyEmailOtp,s=>{this.createIntermediaryEvent(Ee.VerifyEmailOtp,o.id)(s)})),a}},hn={};$i(hn,{clear:()=>Ko,getItem:()=>se,iterate:()=>mn,key:()=>Yo,keys:()=>Xo,length:()=>Ho,removeItem:()=>Fe,setItem:()=>pe});var ut;function Re(e){return(...t)=>X(this,null,function*(){return ut||(ut=yield Y.configureStorage()),yield ut.ready(),ut[e](...t)})}var se=Re("getItem"),pe=Re("setItem"),Fe=Re("removeItem"),Ko=Re("clear"),Ho=Re("length"),Yo=Re("key"),Xo=Re("keys"),mn=Re("iterate");function zo(){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 pn="STORE_KEY_PRIVATE_KEY",Ct="STORE_KEY_PUBLIC_JWK",vn="ECDSA",Jo="P-256",Qo={name:vn,namedCurve:Jo};function yt(){let e=typeof window!="undefined"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function Zo(){return X(this,null,function*(){let e=yield ea();if(!e){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:t}=window.crypto,r=yield se(pn);if(!r||!t){console.info("unable to find private key or webcrypto unsupported");return}let o={iat:Math.floor(new Date().getTime()/1e3),jti:zo()},a={typ:"dpop+jwt",alg:"ES256",jwk:e},s={protected:Jr(JSON.stringify(a)),claims:Jr(JSON.stringify(o))},m=ra(`${s.protected}.${s.claims}`),d={name:vn,hash:{name:"SHA-256"}},g=ia(new Uint8Array(yield t.sign(d,r,m)));return`${s.protected}.${s.claims}.${g}`})}function ea(){return X(this,null,function*(){if(!yt()){console.info("webcrypto is not supported");return}return(yield se(Ct))||(yield ta()),se(Ct)})}function ta(){return X(this,null,function*(){let{subtle:e}=window.crypto,t=yield e.generateKey(Qo,!1,["sign"]),r=yield e.exportKey("jwk",t.publicKey);yield pe(pn,t.privateKey),yield pe(Ct,r)})}function Jr(e){return gn(na(e))}function ra(e){return new TextEncoder().encode(e)}function gn(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function na(e){return encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function ia(e){let t="";return e.forEach(r=>{t+=String.fromCharCode(r)}),gn(t)}var Ft="ds",Wt="ek",Bt="iv",Gt="AES-GCM",oa=256;function jt(){return X(this,null,function*(){let e=[];yield mn((t,r,o)=>{r.startsWith(`${Ft}_`)&&e.push(r)});for(let t of e)yield Fe(t)})}function yn(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 En(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 aa(){return X(this,null,function*(){if(!yt()){console.info("webcrypto is not supported");return}let{crypto:e}=window;return(yield se(Bt))||e.getRandomValues(new Uint8Array(12))})}function sa(){return X(this,null,function*(){if(!yt()){console.info("webcrypto is not supported");return}let{subtle:e}=window.crypto;return(yield se(Wt))||(yield e.generateKey({name:Gt,length:oa},!1,["encrypt","decrypt"]))})}function la(e,t){return X(this,null,function*(){let r=yield aa(),o=yield sa();if(!r||!o||!e)return;let a=En(e),{subtle:s}=window.crypto,m=yield s.encrypt({name:Gt,iv:r},o,a),d=yn(m);yield pe(`${Ft}_${t}`,d),yield pe(Wt,o),yield pe(Bt,r)})}function ca(e){return X(this,null,function*(){let t=yield se(`${Ft}_${e}`),r=yield se(Bt),o=yield se(Wt);if(!r||!t||!o||!yt())return;let{subtle:a}=window.crypto,s=yield a.decrypt({name:Gt,iv:r},o,En(t));return yn(s)})}function tt(e,t){return t?new URL(e,t):new URL(e)}var ua=class extends Le{constructor(){super(...arguments),this.localForageKey="mc_active_wallet",this.localForageIsLoggedInKey="magic_auth_is_logged_in",this.userLoggedOutCallbacks=[]}getIdToken(e){let t=W(this.sdk.testMode?T.GetIdTokenTestMode:T.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=W(this.sdk.testMode?T.GenerateIdTokenTestMode:T.GenerateIdToken,[e]);return this.request(t)}getInfo(){return X(this,null,function*(){let e=yield se(this.localForageKey),t=W(T.GetInfo,[{walletType:e}]);return this.request(t)})}isLoggedIn(){return et((e,t)=>X(this,null,function*(){try{let r=!1;this.sdk.useStorageCache&&(r=(yield se(this.localForageIsLoggedInKey))==="true",r&&e(!0));let o=W(this.sdk.testMode?T.IsLoggedInTestMode:T.IsLoggedIn),a=yield this.request(o);this.sdk.useStorageCache&&(a?pe(this.localForageIsLoggedInKey,!0):Fe(this.localForageIsLoggedInKey),r&&!a&&this.emitUserLoggedOut(!0)),e(a)}catch(r){t(r)}}))}logout(){return Fe(this.localForageKey),Fe(this.localForageIsLoggedInKey),jt(),et((e,t)=>X(this,null,function*(){try{let r=W(this.sdk.testMode?T.LogoutTestMode:T.Logout),o=yield this.request(r);this.sdk.useStorageCache&&this.emitUserLoggedOut(o),e(o)}catch(r){t(r)}}))}requestInfoWithUI(e){let t=W(T.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let t=W(this.sdk.testMode?T.UserSettingsTestMode:T.UserSettings,[e]);return this.request(t)}recoverAccount(e){let t=W(this.sdk.testMode?T.RecoverAccountTestMode:T.RecoverAccount,[e]);return this.request(t)}revealPrivateKey(){let e=W(T.RevealPK);return this.request(e)}getMetadata(){Je({method:"user.getMetadata()",removalVersions:Qe,useInstead:"user.getInfo()"}).log();let e=W(this.sdk.testMode?T.GetMetadataTestMode:T.GetMetadata);return this.request(e)}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}enableMFA(){let e=W(T.EnableMFA);return this.request(e)}disableMFA(){let e=W(T.DisableMFA);return this.request(e)}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}},fa=class extends Le{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}connectWithUI(){let e=et((t,r)=>X(this,null,function*(){try{if(this.isMetaMaskBrowser()&&(yield this.isWalletEnabled(ue.MetaMask))){let d=yield this.autoConnectIfWalletBrowser(ue.MetaMask);t(d);return}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled(ue.CoinbaseWallet))){let d=yield this.autoConnectIfWalletBrowser(ue.CoinbaseWallet);t(d);return}let o=this.getUserEnv(),a=W(T.Login,[o]),s=this.request(a);s.on(xe.WalletSelected,d=>this.handleWalletSelected($t(Pt({},d),{payloadId:a.id}))),s.on("id-token-created",d=>{e.emit("id-token-created",d)});let m=yield s;m.error&&r(m),t(m)}catch(o){r(o)}}));return e}showUI(e){return this.request(W(T.ShowUI,[e]))}showAddress(){return this.request(W(T.ShowAddress))}showSendTokensUI(){return this.request(W(T.ShowSendTokensUI))}showOnRamp(){return this.request(W(T.ShowOnRamp))}showNFTs(){return this.request(W(T.ShowNFTs))}showBalances(){return this.request(W(T.ShowBalances))}sendGaslessTransaction(e,t){return this.request(W(T.SendGaslessTransaction,[e,t]))}getInfo(){return X(this,null,function*(){Je({method:"wallet.getInfo()",removalVersions:Qe,useInstead:"user.getInfo()"}).log();let e=yield se(this.localForageKey),t=W(T.GetInfo,[{walletType:e}]);return this.request(t)})}disconnect(){Je({method:"wallet.disconnect()",removalVersions:Qe,useInstead:"user.logout()"}).log(),Fe(this.localForageKey),jt();let e=W(T.Disconnect);return this.request(e)}requestUserInfoWithUI(e){Je({method:"wallet.requestUserInfoWithUI()",removalVersions:Qe,useInstead:"user.requestUserInfoWithUI()"}).log();let t=W(T.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}getProvider(){return X(this,null,function*(){switch(yield se(this.localForageKey)){case ue.MetaMask:return this.getMetaMaskProvider();case ue.CoinbaseWallet:return this.getCoinbaseProvider();default:return this.sdk.rpcProvider}})}isMetaMaskInstalled(){var e,t,r;return((e=window.ethereum)==null?void 0:e.isMetaMask)||!!((r=(t=window.ethereum)==null?void 0:t.providers)!=null&&r.find(o=>o==null?void 0:o.isMetaMask))}isMetaMaskBrowser(){return this.isMobile()&&this.isMetaMaskInstalled()}getMetaMaskProvider(){var e,t;return((t=(e=window.ethereum)==null?void 0:e.providers)==null?void 0:t.find(r=>r==null?void 0:r.isMetaMask))||window.ethereum}connectToMetaMask(){if(this.isMobile()&&!this.isMetaMaskInstalled()){let e=`https://metamask.app.link/dapp/${window.location.href.replace(/(^\w+:|^)\/\//,"")}`;window.location.href=e}return this.getMetaMaskProvider().request({method:"eth_requestAccounts"})}isCoinbaseWalletInstalled(){var e,t,r;return((e=window.ethereum)==null?void 0:e.isCoinbaseWallet)||!!((r=(t=window.ethereum)==null?void 0:t.providers)!=null&&r.find(o=>o==null?void 0:o.isCoinbaseWallet))}isCoinbaseWalletBrowser(){var e;return!!((e=window.ethereum)!=null&&e.isCoinbaseBrowser)}getCoinbaseProvider(){var e,t;return((t=(e=window.ethereum)==null?void 0:e.providers)==null?void 0:t.find(r=>r==null?void 0:r.isCoinbaseWallet))||window.ethereum}connectToCoinbaseWallet(){if(this.isMobile()&&!this.isCoinbaseWalletBrowser()){let e=`https://go.cb-w.com/dapp?cb_url=${encodeURIComponent(window.location.href)}`;window.location.href=e}return this.getCoinbaseProvider().request({method:"eth_requestAccounts"})}isMobile(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Silk|Opera Mini/i.test(navigator.userAgent)}getUserEnv(){return{env:{isMetaMaskInstalled:this.isMetaMaskInstalled(),isCoinbaseWalletInstalled:this.isCoinbaseWalletInstalled()}}}connectToThirdPartyWallet(e){switch(e){case ue.MetaMask:return this.connectToMetaMask();case ue.CoinbaseWallet:return this.connectToCoinbaseWallet();default:throw new Error(`Invalid provider: ${e}. Must be one of "metamask" or "coinbase_wallet".`)}}isWalletEnabled(e){let t=W("mc_is_wallet_enabled",[{wallet:e}]);return this.request(t)}handleWalletSelected(e){return X(this,null,function*(){try{let t=yield this.connectToThirdPartyWallet(e.wallet);yield pe(this.localForageKey,e.wallet),this.createIntermediaryEvent(xe.WalletConnected,e.payloadId)(t)}catch(t){console.error(t),this.createIntermediaryEvent(xe.WalletRejected,e.payloadId)()}})}autoConnectIfWalletBrowser(e){return X(this,null,function*(){let t;e===ue.MetaMask&&(t=yield this.getMetaMaskProvider().request({method:"eth_requestAccounts"})),e===ue.CoinbaseWallet&&(t=yield this.getCoinbaseProvider().request({method:"eth_requestAccounts"})),yield pe(this.localForageKey,e);let r=W(T.AutoConnect,[{wallet:e,address:t}]);return this.request(r)})}},{createBoundEmitterMethod:ft,createChainingEmitterMethod:Ue}=un(),da=class extends Le{constructor(){super(...arguments),this.isMagic=!0,this.on=Ue("on",this),this.once=Ue("once",this),this.addListener=Ue("addListener",this),this.off=Ue("off",this),this.removeListener=Ue("removeListener",this),this.removeAllListeners=Ue("removeAllListeners",this),this.emit=ft("emit"),this.eventNames=ft("eventNames"),this.listeners=ft("listeners"),this.listenerCount=ft("listenerCount")}sendAsync(e,t){if(!t)throw xo({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=pt(r);return this.prefixPayloadMethodForTestMode(o),o})).then(r=>{t(null,r.map(o=>$t(Pt({},o.payload),{error:o.hasError?new We(o.payload.error):null})))});else{let r=pt(e);this.prefixPayloadMethodForTestMode(r),this.overlay.post(Ne.MAGIC_HANDLE_REQUEST,r).then(o=>{t(o.hasError?new We(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=Uo();return r.log(),new Ut(e).applyError({code:-32603,message:r.rawMessage}).payload}enable(){let e=W(T.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}`)}},Qr=["request","overlay","sdk"];function ha(e){let t=Object.getPrototypeOf(e),r=[t];for(;t!==Le.prototype;)t=Object.getPrototypeOf(t),r.push(t);return r}var _n=class extends Le{constructor(){super(void 0),this.__sdk_access_field_descriptors__=new Map,this.__is_initialized__=!1,this.utils={createPromiEvent:et,isPromiEvent:kt,encodeJSON:rn,decodeJSON:No,createJsonRpcRequestPayload:W,standardizeJsonRpcRequestPayload:pt,storage:hn};let e=[this,...ha(this)];Qr.forEach(t=>{let r=e.map(m=>Object.getOwnPropertyDescriptor(m,t)),o=r.findIndex(m=>!!m),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 $o(t)}}))})}init(e){this.__is_initialized__||(Qr.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 mt(this,"DEPRECATION_NOTICE",s)}createWarning(e,t){return new mt(this,e,t)}createError(e,t,r){return new gt(this,e,t,r)}},ma=class extends _n{},Me=class extends _n{};Me.Internal=ma,Me.Anonymous="anonymous extension";var pa=class extends Le{purchase(e){let t=W(T.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=W(T.NFTCheckout,[e]);return this.request(t)}transfer(e){let t=W(T.NFTTransfer,[e]);return this.request(t)}};function Zr(e){return e.compat&&e.compat[Y.sdkName]!=null?typeof e.compat[Y.sdkName]=="string"?yo(wo(Y.version),e.compat[Y.sdkName]):!!e.compat[Y.sdkName]:!0}function va(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 ga(e){var t;let r=(t=e==null?void 0:e.extensions)!=null?t:[],o={},a=[];if(Array.isArray(r)?r.forEach(s=>{Zr(s)?(s.init(this),(s.name||s.name!==Me.Anonymous)&&(this[s.name]=s),s instanceof Me.Internal&&(ht(s.config)||(o[s.name]=s.config))):a.push(s)}):Object.keys(r).forEach(s=>{if(Zr(r[s])){r[s].init(this);let m=r[s];this[s]=m,m instanceof Me.Internal&&(ht(m.config)||(o[r[s].name]=m.config))}else a.push(r[s])}),a.length)throw Do(a);return o}var dt=class{constructor(e,t){this.apiKey=e;var r;if(!e)throw Co();Y.platform==="react-native"&&(t==null?void 0:t.endpoint)&&ko().log();let{defaultEndpoint:o,version:a}=Y;this.testMode=!!(t!=null&&t.testMode),this.useStorageCache=!!(t!=null&&t.useStorageCache),this.endpoint=tt((r=t==null?void 0:t.endpoint)!=null?r:o).origin,this.auth=new qo(this),this.user=new ua(this),this.wallet=new fa(this),this.nft=new pa(this),this.rpcProvider=new da(this);let s=ga.call(this,t);this.parameters=rn($t(Pt({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:tt(this.endpoint).host,sdk:Lo[Y.sdkName],version:a,ext:ht(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=va(this.apiKey,t==null?void 0:t.network,ht(s)?void 0:s),t!=null&&t.deferPreload||this.preload()}get overlay(){if(!dt.__overlays__.has(this.parameters)){let e=new Y.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),dt.__overlays__.set(this.parameters,e)}return dt.__overlays__.get(this.parameters)}preload(){return X(this,null,function*(){yield this.overlay.checkIsReadyForRequest})}},Vt=dt;Vt.__overlays__=new Map;function ya(e,t){return t&&Array.isArray(e)?e.find(r=>r.id===t):e}function Ea(e,t){var r;let o=(r=t.data.response)==null?void 0:r.id,a=ya(e,o);if(o&&a){let s=new Ut(a).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:o,response:s}}return{}}function _a(e,t,r){return X(this,null,function*(){var o;let a=yield se("rt"),s;if(Y.platform==="web")try{s=(o=yield se("jwt"))!=null?o:yield Zo()}catch(g){console.error("webcrypto error",g)}let m={msgType:e,payload:t};s&&(m.jwt=s),s&&a&&(m.rt=a);let d=yield ca(r);return d&&(m.deviceShare=d),m})}function Ia(e){return X(this,null,function*(){!e.data.rt||(yield pe("rt",e.data.rt))})}var In=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 X(this,null,function*(){return dn((r,o)=>X(this,null,function*(){if(!this.isConnectedToInternet){let v=xt();o(v)}this.isReadyForRequest||(yield this.waitForReady());let a=[],s=Array.isArray(t)?t.map(v=>v.id):[],m=yield _a(`${e}-${this.parameters}`,t,this.networkHash);yield this._post(m);let d=v=>y=>{var O;let{id:_,response:N}=Ea(t,y);if(Ia(y),((O=N==null?void 0:N.payload.error)==null?void 0:O.message)==="User denied account access.")jt();else if(y.data.deviceShare){let{deviceShare:L}=y.data;la(L,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(me.MAGIC_HANDLE_RESPONSE,d(()=>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(me.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()});setTimeout(()=>{this.isReadyForRequest=!0,e(),t()},15e3)})}listen(){this.on(me.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(me.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(me.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new Te(ge.ProductAnnouncement,e.data.response.result.product_announcement).log()})}};var qt={};yr(qt,{AuthEventOnReceived:()=>Mr,DeepLinkPage:()=>Ir,DeviceVerificationEventEmit:()=>He,DeviceVerificationEventOnReceived:()=>Sr,DisableMFAEventEmit:()=>$r,DisableMFAEventOnReceived:()=>Pr,EnableMFAEventEmit:()=>Cr,EnableMFAEventOnReceived:()=>Lr,EthChainType:()=>Dr,Events:()=>xe,Extension:()=>Me,ExtensionError:()=>gt,ExtensionWarning:()=>mt,FarcasterLoginEventEmit:()=>Tr,LoginWithEmailOTPEventEmit:()=>ye,LoginWithEmailOTPEventOnReceived:()=>Ar,LoginWithMagicLinkEventEmit:()=>wr,LoginWithMagicLinkEventOnReceived:()=>br,LoginWithSmsOTPEventEmit:()=>Oe,LoginWithSmsOTPEventOnReceived:()=>Rr,MagicIncomingWindowMessage:()=>me,MagicOutgoingWindowMessage:()=>Ne,MagicPayloadMethod:()=>T,NftCheckoutIntermediaryEvents:()=>Ur,RPCError:()=>We,RPCErrorCode:()=>De,RecencyCheckEventEmit:()=>he,RecencyCheckEventOnReceived:()=>Nr,RecoveryMethodType:()=>xr,SDKError:()=>_e,SDKErrorCode:()=>ve,SDKWarning:()=>Te,SDKWarningCode:()=>ge,UiEventsEmit:()=>Fr,UpdateEmailEventEmit:()=>Ee,UpdateEmailEventOnReceived:()=>Or,UserEventsEmit:()=>ot,UserEventsOnReceived:()=>at,WalletEventOnReceived:()=>kr,Wallets:()=>ue,isPromiEvent:()=>kt});var It=_r(bn()),Ht=_r(An());var wa={display:"block",visibility:"hidden",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",zIndex:"2147483647",opacity:"0"};function ba(e){for(let[t,r]of Object.entries(wa))e.style[t]=r}function Ra(e){let t=[].slice.call(document.querySelectorAll(".magic-iframe"));return Boolean(t.find(r=>r.src.includes(e)))}var _t=class extends In{constructor(){super(...arguments);this.activeElement=null}init(){this.test="hello",this.iframe=new Promise(r=>{let o=()=>{if(Ra(encodeURIComponent(this.parameters)))an().log();else{let a=document.createElement("iframe");a.classList.add("magic-iframe"),a.dataset.magicIframeLabel=tt(this.endpoint).host,a.title="Secure Modal",a.src=tt(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href,a.allow="clipboard-read; clipboard-write",ba(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 $e(this,null,function*(){let r=yield this.iframe;r.style.visibility="visible",r.style.opacity="1",this.activeElement=document.activeElement,r.focus()})}hideOverlay(){return $e(this,null,function*(){var o;let r=yield this.iframe;r.style.visibility="hidden",r.style.opacity="0",(o=this.activeElement)!=null&&o.focus&&this.activeElement.focus(),this.activeElement=null})}_post(r){return $e(this,null,function*(){let o=yield this.iframe;if(o&&o.contentWindow)o.contentWindow.postMessage(r,this.endpoint);else throw xt()})}};var Aa=Object.assign(on(Vt,{platform:"web",sdkName:"magic-sdk",version:"28.9.0",defaultEndpoint:"https://auth.magic.link/",ViewController:_t,configureStorage:()=>$e(void 0,null,function*(){let e=It.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return yield e.defineDriver(Ht),yield e.setDriver([It.default.INDEXEDDB,It.default.LOCALSTORAGE,Ht._driver]),e})}),vr({},qt)),Sa=Aa;return Ai(Na);})();
|
5
|
+
Received: \`${e.received}\``)}function an(){return new Te(ge.DuplicateIframe,"Duplicate iframes found.")}function Uo(){return new Te(ge.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 ko(){return new Te(ge.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 Je(e){let{method:t,removalVersions:r,useInstead:o}=e,a=r[Y.sdkName],s=o?` Use \`${o}\` instead.`:"",m=`\`${t}\` will be removed from \`${Y.sdkName}\` in version \`${a}\`.${s}`;return new Te(ge.DeprecationNotice,m)}function*Fo(){let e=0;for(;;)e<Number.MAX_SAFE_INTEGER?yield++e:e=0}var Wo=Fo();function sn(){return Wo.next().value}var ln=Symbol("Payload pre-processed by Magic SDK");function cn(e){return Object.defineProperty(e,ln,{value:!0,enumerable:!1}),e}function Bo(e){return!!e[ln]}function pt(e){var t,r,o;return Bo(e)||(e.jsonrpc=(t=e.jsonrpc)!=null?t:"2.0",e.id=sn(),e.method=(r=e.method)!=null?r:"noop",e.params=(o=e.params)!=null?o:[],cn(e)),e}function W(e,t=[]){return cn({params:t,method:e,jsonrpc:"2.0",id:sn()})}var Ut=class{constructor(e){e instanceof Ut?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):Mo(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}}},Go=xi(Ui()),jo=class extends Go.default{};function un(){let e=new jo;return{emitter:e,createChainingEmitterMethod:(t,r)=>(...o)=>(e[t].apply(e,o),r),createBoundEmitterMethod:t=>(...r)=>e[t].apply(e,r)}}var fn=Symbol("isPromiEvent");function kt(e){return!!e[fn]}function et(e){let t=dn(e),{createBoundEmitterMethod:r,createChainingEmitterMethod:o}=un(),a=Symbol("Promise.then"),s=Symbol("Promise.catch"),m=Symbol("Promise.finally"),d=(y,O)=>(..._)=>{let N=O[y].apply(O,_);return g(N)},g=y=>Object.assign(y,{[fn]:!0,[a]:y[a]||y.then,[s]:y[s]||y.catch,[m]:y[m]||y.finally,then:d(a,y),catch:d(s,y),finally:d(m,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.on(at.ClosedByUser,()=>{v.emit(ot.ClosedByUser)}),v}function dn(e){return new Promise((t,r)=>{let o=e(t,r);Promise.resolve(o).catch(r)})}var Le=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){let t=this.overlay.post(Ne.MAGIC_HANDLE_REQUEST,pt(e)),r=et((a,s)=>{t.then(m=>{if(o(),m.hasError)s(new We(m.payload.error));else if(m.hasResult)a(m.payload.result);else throw Po()}).catch(m=>{o(),s(m)})}),o=this.overlay.on(me.MAGIC_HANDLE_EVENT,a=>{var s;let{response:m}=a.data;if(m.id===e.id&&((s=m.result)==null?void 0:s.event)){let{event:d,params:g=[]}=m.result;r.emit(d,...g)}});return r}createIntermediaryEvent(e,t){return r=>{let o=W(T.IntermediaryEvent,[{payloadId:t,eventType:e,args:r}]);this.request(o)}}};function Vo(e,t){let[r]=e.split(".").map(Number);return r>=t}var Qe={"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"},qo=class extends Le{loginWithMagicLink(e){let t=Y.sdkName==="@magic-sdk/react-native"||Y.sdkName==="@magic-sdk/react-native-bare"||Y.sdkName==="@magic-sdk/react-native-expo";if(t&&Vo(Y.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&Je({method:"auth.loginWithMagicLink()",removalVersions:Qe,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:r,showUI:o=!0,redirectURI:a,overrides:s,lifespan:m}=e,d=W(this.sdk.testMode?T.LoginWithMagicLinkTestMode:T.LoginWithMagicLink,[{email:r,showUI:o,redirectURI:a,overrides:s,lifespan:m}]);return this.request(d)}loginWithSMS(e){let{phoneNumber:t,showUI:r=!0,lifespan:o}=e,a=W(this.sdk.testMode?T.LoginWithSmsTestMode:T.LoginWithSms,[{phoneNumber:t,showUI:r,lifespan:o}]),s=this.request(a);return!r&&s&&(s.on(Oe.VerifySmsOtp,m=>{this.createIntermediaryEvent(Oe.VerifySmsOtp,a.id)(m)}),s.on(Oe.Cancel,()=>{this.createIntermediaryEvent(Oe.Cancel,a.id)()})),s}loginWithEmailOTP(e){let{email:t,showUI:r,deviceCheckUI:o,overrides:a,lifespan:s}=e,m=W(this.sdk.testMode?T.LoginWithEmailOTPTestMode:T.LoginWithEmailOTP,[{email:t,showUI:r,deviceCheckUI:o,overrides:a,lifespan:s}]),d=this.request(m);return!o&&d&&d.on(He.Retry,()=>{this.createIntermediaryEvent(He.Retry,m.id)()}),!r&&d&&(d.on(ye.VerifyEmailOtp,g=>{this.createIntermediaryEvent(ye.VerifyEmailOtp,m.id)(g)}),d.on(ye.VerifyMFACode,g=>{this.createIntermediaryEvent(ye.VerifyMFACode,m.id)(g)}),d.on(ye.Cancel,()=>{this.createIntermediaryEvent(ye.Cancel,m.id)()})),d}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:r}=e||{},o=t!=null?t:"";if(!t&&Y.platform==="web"){o=window.location.search;let s=window.location.origin+window.location.pathname;window.history.replaceState(null,"",s)}let a=W(this.sdk.testMode?T.LoginWithCredentialTestMode:T.LoginWithCredential,[o,r]);return this.request(a)}setAuthorizationToken(e){let t=W(T.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:r=!0}=e,o=W(this.sdk.testMode?T.UpdateEmailTestMode:T.UpdateEmail,[{email:t,showUI:r}]),a=this.request(o);return r||(a.on(he.Retry,()=>{this.createIntermediaryEvent(he.Retry,o.id)()}),a.on(he.Cancel,()=>{this.createIntermediaryEvent(he.Cancel,o.id)()}),a.on(he.VerifyEmailOtp,s=>{this.createIntermediaryEvent(he.VerifyEmailOtp,o.id)(s)}),a.on(he.VerifyMFACode,s=>{this.createIntermediaryEvent(he.VerifyMFACode,o.id)(s)}),a.on(Ee.RetryWithNewEmail,s=>{this.createIntermediaryEvent(Ee.RetryWithNewEmail,o.id)(s)}),a.on(Ee.Cancel,()=>{this.createIntermediaryEvent(Ee.Cancel,o.id)()}),a.on(Ee.VerifyEmailOtp,s=>{this.createIntermediaryEvent(Ee.VerifyEmailOtp,o.id)(s)})),a}},hn={};$i(hn,{clear:()=>Ko,getItem:()=>se,iterate:()=>mn,key:()=>Yo,keys:()=>Xo,length:()=>Ho,removeItem:()=>Fe,setItem:()=>pe});var ut;function Re(e){return(...t)=>X(this,null,function*(){return ut||(ut=yield Y.configureStorage()),yield ut.ready(),ut[e](...t)})}var se=Re("getItem"),pe=Re("setItem"),Fe=Re("removeItem"),Ko=Re("clear"),Ho=Re("length"),Yo=Re("key"),Xo=Re("keys"),mn=Re("iterate");function zo(){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 pn="STORE_KEY_PRIVATE_KEY",Ct="STORE_KEY_PUBLIC_JWK",vn="ECDSA",Jo="P-256",Qo={name:vn,namedCurve:Jo};function yt(){let e=typeof window!="undefined"&&!!window.crypto,t=e&&!!window.crypto.subtle;return e&&t}function Zo(){return X(this,null,function*(){let e=yield ea();if(!e){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:t}=window.crypto,r=yield se(pn);if(!r||!t){console.info("unable to find private key or webcrypto unsupported");return}let o={iat:Math.floor(new Date().getTime()/1e3),jti:zo()},a={typ:"dpop+jwt",alg:"ES256",jwk:e},s={protected:Jr(JSON.stringify(a)),claims:Jr(JSON.stringify(o))},m=ra(`${s.protected}.${s.claims}`),d={name:vn,hash:{name:"SHA-256"}},g=ia(new Uint8Array(yield t.sign(d,r,m)));return`${s.protected}.${s.claims}.${g}`})}function ea(){return X(this,null,function*(){if(!yt()){console.info("webcrypto is not supported");return}return(yield se(Ct))||(yield ta()),se(Ct)})}function ta(){return X(this,null,function*(){let{subtle:e}=window.crypto,t=yield e.generateKey(Qo,!1,["sign"]),r=yield e.exportKey("jwk",t.publicKey);yield pe(pn,t.privateKey),yield pe(Ct,r)})}function Jr(e){return gn(na(e))}function ra(e){return new TextEncoder().encode(e)}function gn(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function na(e){return encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(t,r)=>String.fromCharCode(parseInt(r,16)))}function ia(e){let t="";return e.forEach(r=>{t+=String.fromCharCode(r)}),gn(t)}var Ft="ds",Wt="ek",Bt="iv",Gt="AES-GCM",oa=256;function jt(){return X(this,null,function*(){let e=[];yield mn((t,r,o)=>{r.startsWith(`${Ft}_`)&&e.push(r)});for(let t of e)yield Fe(t)})}function yn(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 En(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 aa(){return X(this,null,function*(){if(!yt()){console.info("webcrypto is not supported");return}let{crypto:e}=window;return(yield se(Bt))||e.getRandomValues(new Uint8Array(12))})}function sa(){return X(this,null,function*(){if(!yt()){console.info("webcrypto is not supported");return}let{subtle:e}=window.crypto;return(yield se(Wt))||(yield e.generateKey({name:Gt,length:oa},!1,["encrypt","decrypt"]))})}function la(e,t){return X(this,null,function*(){let r=yield aa(),o=yield sa();if(!r||!o||!e)return;let a=En(e),{subtle:s}=window.crypto,m=yield s.encrypt({name:Gt,iv:r},o,a),d=yn(m);yield pe(`${Ft}_${t}`,d),yield pe(Wt,o),yield pe(Bt,r)})}function ca(e){return X(this,null,function*(){let t=yield se(`${Ft}_${e}`),r=yield se(Bt),o=yield se(Wt);if(!r||!t||!o||!yt())return;let{subtle:a}=window.crypto,s=yield a.decrypt({name:Gt,iv:r},o,En(t));return yn(s)})}function tt(e,t){return t?new URL(e,t):new URL(e)}var ua=class extends Le{constructor(){super(...arguments),this.localForageKey="mc_active_wallet",this.localForageIsLoggedInKey="magic_auth_is_logged_in",this.userLoggedOutCallbacks=[]}getIdToken(e){let t=W(this.sdk.testMode?T.GetIdTokenTestMode:T.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=W(this.sdk.testMode?T.GenerateIdTokenTestMode:T.GenerateIdToken,[e]);return this.request(t)}getInfo(){return X(this,null,function*(){let e=yield se(this.localForageKey),t=W(T.GetInfo,[{walletType:e}]);return this.request(t)})}isLoggedIn(){return et((e,t)=>X(this,null,function*(){try{let r=!1;this.sdk.useStorageCache&&(r=(yield se(this.localForageIsLoggedInKey))==="true",r&&e(!0));let o=W(this.sdk.testMode?T.IsLoggedInTestMode:T.IsLoggedIn),a=yield this.request(o);this.sdk.useStorageCache&&(a?pe(this.localForageIsLoggedInKey,!0):Fe(this.localForageIsLoggedInKey),r&&!a&&this.emitUserLoggedOut(!0)),e(a)}catch(r){t(r)}}))}logout(){return Fe(this.localForageKey),Fe(this.localForageIsLoggedInKey),jt(),et((e,t)=>X(this,null,function*(){try{let r=W(this.sdk.testMode?T.LogoutTestMode:T.Logout),o=yield this.request(r);this.sdk.useStorageCache&&this.emitUserLoggedOut(o),e(o)}catch(r){t(r)}}))}requestInfoWithUI(e){let t=W(T.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let t=W(this.sdk.testMode?T.UserSettingsTestMode:T.UserSettings,[e]);return this.request(t)}recoverAccount(e){let t=W(this.sdk.testMode?T.RecoverAccountTestMode:T.RecoverAccount,[e]);return this.request(t)}revealPrivateKey(){let e=W(T.RevealPK);return this.request(e)}getMetadata(){Je({method:"user.getMetadata()",removalVersions:Qe,useInstead:"user.getInfo()"}).log();let e=W(this.sdk.testMode?T.GetMetadataTestMode:T.GetMetadata);return this.request(e)}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}enableMFA(){let e=W(T.EnableMFA);return this.request(e)}disableMFA(){let e=W(T.DisableMFA);return this.request(e)}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}},fa=class extends Le{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}connectWithUI(){let e=et((t,r)=>X(this,null,function*(){try{if(this.isMetaMaskBrowser()&&(yield this.isWalletEnabled(ue.MetaMask))){let d=yield this.autoConnectIfWalletBrowser(ue.MetaMask);t(d);return}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled(ue.CoinbaseWallet))){let d=yield this.autoConnectIfWalletBrowser(ue.CoinbaseWallet);t(d);return}let o=this.getUserEnv(),a=W(T.Login,[o]),s=this.request(a);s.on(xe.WalletSelected,d=>this.handleWalletSelected($t(Pt({},d),{payloadId:a.id}))),s.on("id-token-created",d=>{e.emit("id-token-created",d)});let m=yield s;m.error&&r(m),t(m)}catch(o){r(o)}}));return e}showUI(e){return this.request(W(T.ShowUI,[e]))}showAddress(){return this.request(W(T.ShowAddress))}showSendTokensUI(){return this.request(W(T.ShowSendTokensUI))}showOnRamp(){return this.request(W(T.ShowOnRamp))}showNFTs(){return this.request(W(T.ShowNFTs))}showBalances(){return this.request(W(T.ShowBalances))}sendGaslessTransaction(e,t){return this.request(W(T.SendGaslessTransaction,[e,t]))}getInfo(){return X(this,null,function*(){Je({method:"wallet.getInfo()",removalVersions:Qe,useInstead:"user.getInfo()"}).log();let e=yield se(this.localForageKey),t=W(T.GetInfo,[{walletType:e}]);return this.request(t)})}disconnect(){Je({method:"wallet.disconnect()",removalVersions:Qe,useInstead:"user.logout()"}).log(),Fe(this.localForageKey),jt();let e=W(T.Disconnect);return this.request(e)}requestUserInfoWithUI(e){Je({method:"wallet.requestUserInfoWithUI()",removalVersions:Qe,useInstead:"user.requestUserInfoWithUI()"}).log();let t=W(T.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}getProvider(){return X(this,null,function*(){switch(yield se(this.localForageKey)){case ue.MetaMask:return this.getMetaMaskProvider();case ue.CoinbaseWallet:return this.getCoinbaseProvider();default:return this.sdk.rpcProvider}})}isMetaMaskInstalled(){var e,t,r;return((e=window.ethereum)==null?void 0:e.isMetaMask)||!!((r=(t=window.ethereum)==null?void 0:t.providers)!=null&&r.find(o=>o==null?void 0:o.isMetaMask))}isMetaMaskBrowser(){return this.isMobile()&&this.isMetaMaskInstalled()}getMetaMaskProvider(){var e,t;return((t=(e=window.ethereum)==null?void 0:e.providers)==null?void 0:t.find(r=>r==null?void 0:r.isMetaMask))||window.ethereum}connectToMetaMask(){if(this.isMobile()&&!this.isMetaMaskInstalled()){let e=`https://metamask.app.link/dapp/${window.location.href.replace(/(^\w+:|^)\/\//,"")}`;window.location.href=e}return this.getMetaMaskProvider().request({method:"eth_requestAccounts"})}isCoinbaseWalletInstalled(){var e,t,r;return((e=window.ethereum)==null?void 0:e.isCoinbaseWallet)||!!((r=(t=window.ethereum)==null?void 0:t.providers)!=null&&r.find(o=>o==null?void 0:o.isCoinbaseWallet))}isCoinbaseWalletBrowser(){var e;return!!((e=window.ethereum)!=null&&e.isCoinbaseBrowser)}getCoinbaseProvider(){var e,t;return((t=(e=window.ethereum)==null?void 0:e.providers)==null?void 0:t.find(r=>r==null?void 0:r.isCoinbaseWallet))||window.ethereum}connectToCoinbaseWallet(){if(this.isMobile()&&!this.isCoinbaseWalletBrowser()){let e=`https://go.cb-w.com/dapp?cb_url=${encodeURIComponent(window.location.href)}`;window.location.href=e}return this.getCoinbaseProvider().request({method:"eth_requestAccounts"})}isMobile(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Silk|Opera Mini/i.test(navigator.userAgent)}getUserEnv(){return{env:{isMetaMaskInstalled:this.isMetaMaskInstalled(),isCoinbaseWalletInstalled:this.isCoinbaseWalletInstalled()}}}connectToThirdPartyWallet(e){switch(e){case ue.MetaMask:return this.connectToMetaMask();case ue.CoinbaseWallet:return this.connectToCoinbaseWallet();default:throw new Error(`Invalid provider: ${e}. Must be one of "metamask" or "coinbase_wallet".`)}}isWalletEnabled(e){let t=W("mc_is_wallet_enabled",[{wallet:e}]);return this.request(t)}handleWalletSelected(e){return X(this,null,function*(){try{let t=yield this.connectToThirdPartyWallet(e.wallet);yield pe(this.localForageKey,e.wallet),this.createIntermediaryEvent(xe.WalletConnected,e.payloadId)(t)}catch(t){console.error(t),this.createIntermediaryEvent(xe.WalletRejected,e.payloadId)()}})}autoConnectIfWalletBrowser(e){return X(this,null,function*(){let t;e===ue.MetaMask&&(t=yield this.getMetaMaskProvider().request({method:"eth_requestAccounts"})),e===ue.CoinbaseWallet&&(t=yield this.getCoinbaseProvider().request({method:"eth_requestAccounts"})),yield pe(this.localForageKey,e);let r=W(T.AutoConnect,[{wallet:e,address:t}]);return this.request(r)})}},{createBoundEmitterMethod:ft,createChainingEmitterMethod:Ue}=un(),da=class extends Le{constructor(){super(...arguments),this.isMagic=!0,this.on=Ue("on",this),this.once=Ue("once",this),this.addListener=Ue("addListener",this),this.off=Ue("off",this),this.removeListener=Ue("removeListener",this),this.removeAllListeners=Ue("removeAllListeners",this),this.emit=ft("emit"),this.eventNames=ft("eventNames"),this.listeners=ft("listeners"),this.listenerCount=ft("listenerCount")}sendAsync(e,t){if(!t)throw xo({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=pt(r);return this.prefixPayloadMethodForTestMode(o),o})).then(r=>{t(null,r.map(o=>$t(Pt({},o.payload),{error:o.hasError?new We(o.payload.error):null})))});else{let r=pt(e);this.prefixPayloadMethodForTestMode(r),this.overlay.post(Ne.MAGIC_HANDLE_REQUEST,r).then(o=>{t(o.hasError?new We(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=Uo();return r.log(),new Ut(e).applyError({code:-32603,message:r.rawMessage}).payload}enable(){let e=W(T.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}`)}},Qr=["request","overlay","sdk"];function ha(e){let t=Object.getPrototypeOf(e),r=[t];for(;t!==Le.prototype;)t=Object.getPrototypeOf(t),r.push(t);return r}var _n=class extends Le{constructor(){super(void 0),this.__sdk_access_field_descriptors__=new Map,this.__is_initialized__=!1,this.utils={createPromiEvent:et,isPromiEvent:kt,encodeJSON:rn,decodeJSON:No,createJsonRpcRequestPayload:W,standardizeJsonRpcRequestPayload:pt,storage:hn};let e=[this,...ha(this)];Qr.forEach(t=>{let r=e.map(m=>Object.getOwnPropertyDescriptor(m,t)),o=r.findIndex(m=>!!m),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 $o(t)}}))})}init(e){this.__is_initialized__||(Qr.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 mt(this,"DEPRECATION_NOTICE",s)}createWarning(e,t){return new mt(this,e,t)}createError(e,t,r){return new gt(this,e,t,r)}},ma=class extends _n{},Me=class extends _n{};Me.Internal=ma,Me.Anonymous="anonymous extension";var pa=class extends Le{purchase(e){let t=W(T.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=W(T.NFTCheckout,[e]);return this.request(t)}transfer(e){let t=W(T.NFTTransfer,[e]);return this.request(t)}};function Zr(e){return e.compat&&e.compat[Y.sdkName]!=null?typeof e.compat[Y.sdkName]=="string"?yo(wo(Y.version),e.compat[Y.sdkName]):!!e.compat[Y.sdkName]:!0}function va(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 ga(e){var t;let r=(t=e==null?void 0:e.extensions)!=null?t:[],o={},a=[];if(Array.isArray(r)?r.forEach(s=>{Zr(s)?(s.init(this),(s.name||s.name!==Me.Anonymous)&&(this[s.name]=s),s instanceof Me.Internal&&(ht(s.config)||(o[s.name]=s.config))):a.push(s)}):Object.keys(r).forEach(s=>{if(Zr(r[s])){r[s].init(this);let m=r[s];this[s]=m,m instanceof Me.Internal&&(ht(m.config)||(o[r[s].name]=m.config))}else a.push(r[s])}),a.length)throw Do(a);return o}var dt=class{constructor(e,t){this.apiKey=e;var r;if(!e)throw Co();Y.platform==="react-native"&&(t==null?void 0:t.endpoint)&&ko().log();let{defaultEndpoint:o,version:a}=Y;this.testMode=!!(t!=null&&t.testMode),this.useStorageCache=!!(t!=null&&t.useStorageCache),this.endpoint=tt((r=t==null?void 0:t.endpoint)!=null?r:o).origin,this.auth=new qo(this),this.user=new ua(this),this.wallet=new fa(this),this.nft=new pa(this),this.rpcProvider=new da(this);let s=ga.call(this,t);this.parameters=rn($t(Pt({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:t==null?void 0:t.network,host:tt(this.endpoint).host,sdk:Lo[Y.sdkName],version:a,ext:ht(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=va(this.apiKey,t==null?void 0:t.network,ht(s)?void 0:s),t!=null&&t.deferPreload||this.preload()}get overlay(){if(!dt.__overlays__.has(this.parameters)){let e=new Y.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),dt.__overlays__.set(this.parameters,e)}return dt.__overlays__.get(this.parameters)}preload(){return X(this,null,function*(){yield this.overlay.checkIsReadyForRequest})}},Vt=dt;Vt.__overlays__=new Map;function ya(e,t){return t&&Array.isArray(e)?e.find(r=>r.id===t):e}function Ea(e,t){var r;let o=(r=t.data.response)==null?void 0:r.id,a=ya(e,o);if(o&&a){let s=new Ut(a).applyResult(t.data.response.result).applyError(t.data.response.error);return{id:o,response:s}}return{}}function _a(e,t,r){return X(this,null,function*(){var o;let a=yield se("rt"),s;if(Y.platform==="web")try{s=(o=yield se("jwt"))!=null?o:yield Zo()}catch(g){console.error("webcrypto error",g)}let m={msgType:e,payload:t};s&&(m.jwt=s),s&&a&&(m.rt=a);let d=yield ca(r);return d&&(m.deviceShare=d),m})}function Ia(e){return X(this,null,function*(){!e.data.rt||(yield pe("rt",e.data.rt))})}var In=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 X(this,null,function*(){return dn((r,o)=>X(this,null,function*(){if(!this.isConnectedToInternet){let v=xt();o(v)}this.isReadyForRequest||(yield this.waitForReady());let a=[],s=Array.isArray(t)?t.map(v=>v.id):[],m=yield _a(`${e}-${this.parameters}`,t,this.networkHash);yield this._post(m);let d=v=>y=>{var O;let{id:_,response:N}=Ea(t,y);if(Ia(y),((O=N==null?void 0:N.payload.error)==null?void 0:O.message)==="User denied account access.")jt();else if(y.data.deviceShare){let{deviceShare:L}=y.data;la(L,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(me.MAGIC_HANDLE_RESPONSE,d(()=>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(me.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()});setTimeout(()=>{this.isReadyForRequest=!0,e(),t()},15e3)})}listen(){this.on(me.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(me.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(me.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new Te(ge.ProductAnnouncement,e.data.response.result.product_announcement).log()})}};var qt={};yr(qt,{AuthEventOnReceived:()=>Mr,DeepLinkPage:()=>Ir,DeviceVerificationEventEmit:()=>He,DeviceVerificationEventOnReceived:()=>Sr,DisableMFAEventEmit:()=>$r,DisableMFAEventOnReceived:()=>Pr,EnableMFAEventEmit:()=>Cr,EnableMFAEventOnReceived:()=>Lr,EthChainType:()=>Dr,Events:()=>xe,Extension:()=>Me,ExtensionError:()=>gt,ExtensionWarning:()=>mt,FarcasterLoginEventEmit:()=>Tr,LoginWithEmailOTPEventEmit:()=>ye,LoginWithEmailOTPEventOnReceived:()=>Ar,LoginWithMagicLinkEventEmit:()=>wr,LoginWithMagicLinkEventOnReceived:()=>br,LoginWithSmsOTPEventEmit:()=>Oe,LoginWithSmsOTPEventOnReceived:()=>Rr,MagicIncomingWindowMessage:()=>me,MagicOutgoingWindowMessage:()=>Ne,MagicPayloadMethod:()=>T,NftCheckoutIntermediaryEvents:()=>Ur,RPCError:()=>We,RPCErrorCode:()=>De,RecencyCheckEventEmit:()=>he,RecencyCheckEventOnReceived:()=>Nr,RecoveryMethodType:()=>xr,SDKError:()=>_e,SDKErrorCode:()=>ve,SDKWarning:()=>Te,SDKWarningCode:()=>ge,UiEventsEmit:()=>Fr,UpdateEmailEventEmit:()=>Ee,UpdateEmailEventOnReceived:()=>Or,UserEventsEmit:()=>ot,UserEventsOnReceived:()=>at,WalletEventOnReceived:()=>kr,Wallets:()=>ue,isPromiEvent:()=>kt});var It=_r(bn()),Ht=_r(An());var wa={display:"block",visibility:"hidden",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",zIndex:"2147483647",opacity:"0"};function ba(e){for(let[t,r]of Object.entries(wa))e.style[t]=r}function Ra(e){let t=[].slice.call(document.querySelectorAll(".magic-iframe"));return Boolean(t.find(r=>r.src.includes(e)))}var _t=class extends In{constructor(){super(...arguments);this.activeElement=null}init(){this.test="hello",this.iframe=new Promise(r=>{let o=()=>{if(Ra(encodeURIComponent(this.parameters)))an().log();else{let a=document.createElement("iframe");a.classList.add("magic-iframe"),a.dataset.magicIframeLabel=tt(this.endpoint).host,a.title="Secure Modal",a.src=tt(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href,a.allow="clipboard-read; clipboard-write",ba(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 $e(this,null,function*(){let r=yield this.iframe;r.style.visibility="visible",r.style.opacity="1",this.activeElement=document.activeElement,r.focus()})}hideOverlay(){return $e(this,null,function*(){var o;let r=yield this.iframe;r.style.visibility="hidden",r.style.opacity="0",(o=this.activeElement)!=null&&o.focus&&this.activeElement.focus(),this.activeElement=null})}_post(r){return $e(this,null,function*(){let o=yield this.iframe;if(o&&o.contentWindow)o.contentWindow.postMessage(r,this.endpoint);else throw xt()})}};var Aa=Object.assign(on(Vt,{platform:"web",sdkName:"magic-sdk",version:"28.10.0",defaultEndpoint:"https://auth.magic.link/",ViewController:_t,configureStorage:()=>$e(void 0,null,function*(){let e=It.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return yield e.defineDriver(Ht),yield e.setDriver([It.default.INDEXEDDB,It.default.LOCALSTORAGE,Ht._driver]),e})}),vr({},qt)),Sa=Aa;return Ai(Na);})();
|
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.10.0
|
3
|
+
"version": "28.10.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.10.0
|
33
|
-
"@magic-sdk/provider": "28.10.0
|
34
|
-
"@magic-sdk/types": "24.8.0
|
32
|
+
"@magic-sdk/commons": "^24.10.0",
|
33
|
+
"@magic-sdk/provider": "^28.10.0",
|
34
|
+
"@magic-sdk/types": "^24.8.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": "b534ca0617e666abfc2c007d7f4b6d159abb9489"
|
44
44
|
}
|