@magic-sdk/provider 32.0.0 → 32.0.1-canary.9adf27d.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/types/modules/auth.d.ts +3 -2
- package/package.json +2 -2
package/dist/es/index.js
CHANGED
|
@@ -2,5 +2,5 @@ var Qt=Object.create;var Ne=Object.defineProperty;var Zt=Object.getOwnPropertyDe
|
|
|
2
2
|
- Extension \`${t.name}\` supports version(s) \`${s}\``:s||(e+=`
|
|
3
3
|
- Extension \`${t.name}\` does not support ${m.platform} environments.`)}),new $(G.IncompatibleExtensions,e)}function gt(r){let e=t=>{let s=t+1,n=s%10,o=s%100;return n===1&&o!==11?`${s}st`:n===2&&o!==12?`${s}nd`:n===3&&o!==13?`${s}rd`:`${s}th`};return new $(G.InvalidArgument,`Invalid ${e(r.argument)} argument given to \`${r.procedure}\`.
|
|
4
4
|
Expected: \`${r.expected}\`
|
|
5
|
-
Received: \`${r.received}\``)}function zn(){return new L(ue.DuplicateIframe,"Duplicate iframes found.")}function yt(){return new L(ue.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 Rt(){return new L(ue.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 \`${m.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function vt(r){let{method:e,removalVersions:t,useInstead:s}=r,n=t[m.sdkName],o=s?` Use \`${s}\` instead.`:"",i=`\`${e}\` will be removed from \`${m.sdkName}\` in version \`${n}\`.${o}`;return new L(ue.DeprecationNotice,i)}import{MagicPayloadMethod as S,DeviceVerificationEventEmit as _t,LoginWithEmailOTPEventEmit as C,UpdateEmailEventEmit as V,RecencyCheckEventEmit as _,LoginWithSmsOTPEventEmit as ge}from"@magic-sdk/types";import{MagicOutgoingWindowMessage as Rn,MagicIncomingWindowMessage as vn,MagicPayloadMethod as Tn,routeToMagicMethods as In}from"@magic-sdk/types";import{RPCErrorCode as mn}from"@magic-sdk/types";function*Qr(){let r=0;for(;;)r<Number.MAX_SAFE_INTEGER?yield++r:r=0}var Zr=Qr();function en(){return Math.floor(Math.random()*1e5)+1}function Le(){return m.sdkName==="@magic-sdk/react-native-bare"||m.sdkName==="@magic-sdk/react-native-expo"?en():Zr.next().value}var me={};sr(me,{clear:()=>tn,getItem:()=>R,iterate:()=>Oe,key:()=>nn,keys:()=>sn,length:()=>rn,removeItem:()=>A,setItem:()=>x});var pe;function O(r){return async(...e)=>(pe||(pe=await m.configureStorage()),await pe.ready(),pe[r](...e))}var R=O("getItem"),x=O("setItem"),A=O("removeItem"),tn=O("clear"),rn=O("length"),nn=O("key"),sn=O("keys"),Oe=O("iterate");function Tt(){let r=window.crypto.getRandomValues(new Uint8Array(16));r[6]=r[6]&15|64,r[8]=r[8]&191|128;let e="";return e+=r[0].toString(16),e+=r[1].toString(16),e+=r[2].toString(16),e+=r[3].toString(16),e+="-",e+=r[4].toString(16),e+=r[5].toString(16),e+="-",e+=r[6].toString(16),e+=r[7].toString(16),e+="-",e+=r[8].toString(16),e+=r[9].toString(16),e+="-",e+=r[10].toString(16),e+=r[11].toString(16),e+=r[12].toString(16),e+=r[13].toString(16),e+=r[14].toString(16),e+=r[15].toString(16),e}var _e="STORE_KEY_PRIVATE_KEY",he="STORE_KEY_PUBLIC_JWK",bt="ECDSA",on="P-256",an={name:bt,namedCurve:on};function re(){let r=typeof window<"u"&&!!window.crypto,e=r&&!!window.crypto.subtle;return r&&e}function Pt(){A(he),A(_e)}async function wt(){let r=await cn();if(!r){console.info("unable to create public key or webcrypto is unsupported");return}let{subtle:e}=window.crypto,t=await R(_e);if(!t||!e){console.info("unable to find private key or webcrypto unsupported");return}let s={iat:Math.floor(new Date().getTime()/1e3),jti:Tt()},o={protected:It(JSON.stringify({typ:"dpop+jwt",alg:"ES256",jwk:r})),claims:It(JSON.stringify(s))},i=dn(`${o.protected}.${o.claims}`),a={name:bt,hash:{name:"SHA-256"}},c=pn(new Uint8Array(await e.sign(a,t,i)));return`${o.protected}.${o.claims}.${c}`}async function cn(){if(!re()){console.info("webcrypto is not supported");return}return await R(he)||await ln(),R(he)}async function ln(){let{subtle:r}=window.crypto,e=await r.generateKey(an,!1,["sign"]),t=await r.exportKey("jwk",e.publicKey);await x(_e,e.privateKey),await x(he,t)}function It(r){return xt(un(r))}function dn(r){return new TextEncoder().encode(r)}function xt(r){return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function un(r){return encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,(t,s)=>String.fromCharCode(parseInt(s,16)))}function pn(r){let e="";return r.forEach(t=>{e+=String.fromCharCode(t)}),xt(e)}var St=Symbol("Payload pre-processed by Magic SDK");function Mt(r){return Object.defineProperty(r,St,{value:!0,enumerable:!1}),r}function hn(r){return!!r[St]}function F(r){return hn(r)||(r.jsonrpc=r.jsonrpc??"2.0",r.id=Le(),r.method=r.method??"noop",r.params=r.params??[],Mt(r)),r}function p(r,e=[]){return Mt({params:e,method:r,jsonrpc:"2.0",id:Le()})}var K=class r{_jsonrpc;_id;_result;_error;constructor(e){e instanceof r?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):lt(e)?(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=e.result,this._error=e.error):(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=void 0,this._error=void 0)}applyError(e){return this._error=e,this}applyResult(e){return this._result=e,this}get hasError(){return this._error?.code===mn.DpopInvalidated&&Pt(),typeof this._error<"u"&&this._error!==null}get hasResult(){return typeof this._result<"u"}get payload(){return{jsonrpc:this._jsonrpc,id:this._id,result:this._result,error:this._error}}};import{UserEventsEmit as gn,UserEventsOnReceived as yn}from"@magic-sdk/types";var At=ir(Nt()),De=class extends At.default{};function fe(){let r=new De;return{emitter:r,createChainingEmitterMethod:(s,n)=>(...o)=>(r[s].apply(r,o),n),createBoundEmitterMethod:s=>(...n)=>r[s].apply(r,n)}}var $t=Symbol("isPromiEvent");function Lt(r){return!!r[$t]}function b(r){let e=qe(r),{createBoundEmitterMethod:t,createChainingEmitterMethod:s}=fe(),n=Symbol("Promise.then"),o=Symbol("Promise.catch"),i=Symbol("Promise.finally"),a=(l,u)=>(...P)=>{let w=u[l].apply(u,P);return c(w)},c=l=>Object.assign(l,{[$t]:!0,[n]:l[n]||l.then,[o]:l[o]||l.catch,[i]:l[i]||l.finally,then:a(n,l),catch:a(o,l),finally:a(i,l),on:s("on",l),once:s("once",l),addListener:s("addListener",l),off:s("off",l),removeListener:s("removeListener",l),removeAllListeners:s("removeAllListeners",l),emit:t("emit"),eventNames:t("eventNames"),listeners:t("listeners"),listenerCount:t("listenerCount")}),d=c(e.then(l=>(d.emit("done",l),d.emit("settled"),l),l=>{throw d.emit("error",l),d.emit("settled"),l}));return d.on(yn.ClosedByUser,()=>{d.emit(gn.ClosedByUser)}),d}function qe(r){return new Promise((e,t)=>{let s=r(e,t);Promise.resolve(s).catch(t)})}var f=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){if(this.sdk.thirdPartyWallets.isConnected&&!In.includes(e.method))return b((i,a)=>{this.sdk.thirdPartyWallets.requestOverride(e).then(i).catch(a)});let t=this.overlay.post(Rn.MAGIC_HANDLE_REQUEST,F(e)),s=b((o,i)=>{t.then(a=>{if(n(),a.hasError)i(new U(a.payload.error));else if(a.hasResult)o(a.payload.result);else throw ht()}).catch(a=>{n(),i(a)})}),n=this.overlay.on(vn.MAGIC_HANDLE_EVENT,o=>{let{response:i}=o.data;if(i.id===e.id&&i.result?.event){let{event:a,params:c=[]}=i.result;s.emit(a,...c)}});return s}createIntermediaryEvent(e,t){return n=>{let o=p(Tn.IntermediaryEvent,[{payloadId:t,eventType:e,args:n}]);this.request(o)}}};function Ot(r,e){let[t]=r.split(".").map(Number);return t>=e}var bn={"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"},ye=class extends f{loginWithMagicLink(e){let t=m.sdkName==="@magic-sdk/react-native"||m.sdkName==="@magic-sdk/react-native-bare"||m.sdkName==="@magic-sdk/react-native-expo";if(t&&Ot(m.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utilize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&vt({method:"auth.loginWithMagicLink()",removalVersions:bn,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:s,showUI:n=!0,redirectURI:o,overrides:i,lifespan:a}=e,c=p(this.sdk.testMode?S.LoginWithMagicLinkTestMode:S.LoginWithMagicLink,[{email:s,showUI:n,redirectURI:o,overrides:i,lifespan:a}]);return this.request(c)}loginWithSMS(e){let{phoneNumber:t,showUI:s=!0,lifespan:n}=e,o=p(this.sdk.testMode?S.LoginWithSmsTestMode:S.LoginWithSms,[{phoneNumber:t,showUI:s,lifespan:n}]),i=this.request(o);return!s&&i&&(i.on(ge.VerifySmsOtp,a=>{this.createIntermediaryEvent(ge.VerifySmsOtp,o.id)(a)}),i.on(ge.Cancel,()=>{this.createIntermediaryEvent(ge.Cancel,o.id)()})),i}loginWithEmailOTP(e){let{email:t,showUI:s,deviceCheckUI:n,overrides:o,lifespan:i}=e,a=p(this.sdk.testMode?S.LoginWithEmailOTPTestMode:S.LoginWithEmailOTP,[{email:t,showUI:s,deviceCheckUI:n,overrides:o,lifespan:i}]),c=this.request(a);return!n&&c&&c.on(_t.Retry,()=>{this.createIntermediaryEvent(_t.Retry,a.id)()}),!s&&c&&(c.on(C.VerifyEmailOtp,d=>{this.createIntermediaryEvent(C.VerifyEmailOtp,a.id)(d)}),c.on(C.VerifyMFACode,d=>{this.createIntermediaryEvent(C.VerifyMFACode,a.id)(d)}),c.on(C.LostDevice,()=>{this.createIntermediaryEvent(C.LostDevice,a.id)()}),c.on(C.VerifyRecoveryCode,d=>{this.createIntermediaryEvent(C.VerifyRecoveryCode,a.id)(d)}),c.on(C.Cancel,()=>{this.createIntermediaryEvent(C.Cancel,a.id)()})),c}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:s}=e||{},n=t??"";if(!t&&m.platform==="web"){n=window.location.search;let i=window.location.origin+window.location.pathname;window.history.replaceState(null,"",i)}let o=p(this.sdk.testMode?S.LoginWithCredentialTestMode:S.LoginWithCredential,[n,s]);return this.request(o)}setAuthorizationToken(e){let t=p(S.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:s=!0}=e,n=p(this.sdk.testMode?S.UpdateEmailTestMode:S.UpdateEmail,[{email:t,showUI:s}]),o=this.request(n);return s||(o.on(_.Retry,()=>{this.createIntermediaryEvent(_.Retry,n.id)()}),o.on(_.Cancel,()=>{this.createIntermediaryEvent(_.Cancel,n.id)()}),o.on(_.VerifyEmailOtp,i=>{this.createIntermediaryEvent(_.VerifyEmailOtp,n.id)(i)}),o.on(_.VerifyMFACode,i=>{this.createIntermediaryEvent(_.VerifyMFACode,n.id)(i)}),o.on(V.RetryWithNewEmail,i=>{this.createIntermediaryEvent(V.RetryWithNewEmail,n.id)(i)}),o.on(V.Cancel,()=>{this.createIntermediaryEvent(V.Cancel,n.id)()}),o.on(V.VerifyEmailOtp,i=>{this.createIntermediaryEvent(V.VerifyEmailOtp,n.id)(i)})),o}};import{MagicPayloadMethod as g,EnableMFAEventEmit as ve,DisableMFAEventEmit as B,RecencyCheckEventEmit as Ft,RecoveryFactorEventEmit as k,RecoverAccountEventEmit as D,UpdateEmailEventEmit as j}from"@magic-sdk/types";var Ue="ds",Fe="ek",We="iv",Je="AES-GCM",Pn=256;async function Re(){let r=[];await Oe((e,t,s)=>{t.startsWith(`${Ue}_`)&&r.push(t)});for(let e of r)await A(e)}function kt(r){let e="",t=new Uint8Array(r),s=t.byteLength;for(let n=0;n<s;n++)e+=String.fromCharCode(t[n]);return window.btoa(e)}function Dt(r){let e=window.atob(r),t=e.length,s=new Uint8Array(t);for(let n=0;n<t;n++)s[n]=e.charCodeAt(n);return s.buffer}async function wn(){if(!re()){console.info("webcrypto is not supported");return}let{crypto:r}=window,e=await R(We);return e||r.getRandomValues(new Uint8Array(12))}async function xn(){if(!re()){console.info("webcrypto is not supported");return}let{subtle:r}=window.crypto,e=await R(Fe);return e||await r.generateKey({name:Je,length:Pn},!1,["encrypt","decrypt"])}async function qt(r,e){let t=await wn(),s=await xn();if(!t||!s||!r)return;let n=Dt(r),{subtle:o}=window.crypto,i=await o.encrypt({name:Je,iv:t},s,n),a=kt(i);await x(`${Ue}_${e}`,a),await x(Fe,s),await x(We,t)}async function Ut(r){let e=await R(`${Ue}_${r}`),t=await R(We),s=await R(Fe);if(!t||!e||!s||!re())return;let{subtle:n}=window.crypto,o=await n.decrypt({name:Je,iv:t},s,Dt(e));return kt(o)}function Ge(r,e){return e?new URL(r,e):new URL(r)}var Te=class extends f{getIdToken(e){let t=p(this.sdk.testMode?g.GetIdTokenTestMode:g.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=p(this.sdk.testMode?g.GenerateIdTokenTestMode:g.GenerateIdToken,[e]);return this.request(t)}getInfo(){let e=p(g.GetInfo,[]);return this.request(e)}isLoggedIn(){return b(async(e,t)=>{try{let s=!1;this.sdk.useStorageCache&&(s=await R(this.localForageIsLoggedInKey)==="true",s&&e(!0));let n=p(this.sdk.testMode?g.IsLoggedInTestMode:g.IsLoggedIn),o=await this.request(n);this.sdk.useStorageCache&&(o?x(this.localForageIsLoggedInKey,!0):A(this.localForageIsLoggedInKey),s&&!o&&this.emitUserLoggedOut(!0)),e(o)}catch(s){t(s)}})}logout(){return A(this.localForageIsLoggedInKey),Re(),b(async(e,t)=>{try{let s=p(this.sdk.testMode?g.LogoutTestMode:g.Logout),n=await this.request(s);this.sdk.useStorageCache&&this.emitUserLoggedOut(n),e(n)}catch(s){t(s)}})}requestInfoWithUI(e){let t=p(g.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let{showUI:t=!0}=e||{},s=p(this.sdk.testMode?g.UserSettingsTestMode:g.UserSettings,[e]),n=this.request(s);return!t&&n&&(n.on(k.SendNewPhoneNumber,o=>{this.createIntermediaryEvent(k.SendNewPhoneNumber,s.id)(o)}),n.on(k.SendOtpCode,o=>{this.createIntermediaryEvent(k.SendOtpCode,s.id)(o)}),n.on(k.StartEditPhoneNumber,()=>{this.createIntermediaryEvent(k.StartEditPhoneNumber,s.id)()}),n.on(k.Cancel,()=>{this.createIntermediaryEvent(k.Cancel,s.id)()}),n.on(Ft.VerifyEmailOtp,o=>{this.createIntermediaryEvent(Ft.VerifyEmailOtp,s.id)(o)})),n}recoverAccount(e){let{email:t,showUI:s}=e,n=p(this.sdk.testMode?g.RecoverAccountTestMode:g.RecoverAccount,[{email:t,showUI:s}]),o=this.request(n);return!s&&o&&(o.on(D.Cancel,()=>{this.createIntermediaryEvent(D.Cancel,n.id)()}),o.on(D.ResendSms,()=>{this.createIntermediaryEvent(D.ResendSms,n.id)()}),o.on(D.VerifyOtp,i=>{this.createIntermediaryEvent(D.VerifyOtp,n.id)(i)}),o.on(D.UpdateEmail,i=>{this.createIntermediaryEvent(D.UpdateEmail,n.id)(i)}),o.on(j.Cancel,()=>{this.createIntermediaryEvent(j.Cancel,n.id)()}),o.on(j.RetryWithNewEmail,i=>{this.createIntermediaryEvent(j.RetryWithNewEmail,n.id)(i)}),o.on(j.VerifyEmailOtp,i=>{this.createIntermediaryEvent(j.VerifyEmailOtp,n.id)(i)})),o}revealEVMPrivateKey(){let e=p(g.RevealPK,[{chain:"ETH"}]);return this.request(e)}revealPrivateKey(){throw new Error("revealPrivateKey() has been decommissioned. For EVM chains, use `user.revealEVMPrivateKey()` instead. For non-EVM chains, use `[extension].revealPrivateKey()` instead.")}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}enableMFA(e){let{showUI:t=!0}=e,s=p(g.EnableMFA,[{showUI:t}]),n=this.request(s);return!t&&n&&(n.on(ve.VerifyMFACode,o=>{this.createIntermediaryEvent(ve.VerifyMFACode,s.id)(o)}),n.on(ve.Cancel,()=>{this.createIntermediaryEvent(ve.Cancel,s.id)()})),n}disableMFA(e){let{showUI:t=!0}=e,s=p(g.DisableMFA,[{showUI:t}]),n=this.request(s);return!t&&n&&(n.on(B.VerifyMFACode,o=>{this.createIntermediaryEvent(B.VerifyMFACode,s.id)(o)}),n.on(B.LostDevice,o=>{this.createIntermediaryEvent(B.LostDevice,s.id)(o)}),n.on(B.Cancel,()=>{this.createIntermediaryEvent(B.Cancel,s.id)()})),n}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}localForageIsLoggedInKey="magic_auth_is_logged_in";userLoggedOutCallbacks=[]};import{MagicPayloadMethod as q}from"@magic-sdk/types";var Ie=class extends f{connectWithUI(e){let t=b(async(s,n)=>{try{let o=p(q.Login,[{enabledWallets:this.sdk.thirdPartyWallets.enabledWallets,...e}]),i=this.request(o);this.sdk.thirdPartyWallets.eventListeners.forEach(({event:c,callback:d})=>{i.on(c,()=>d(o.id))}),i.on("id-token-created",c=>{t.emit("id-token-created",c)});let a=await i;a.error&&n(a),s(a)}catch(o){n(o)}});return t}showUI(e){return this.request(p(q.ShowUI,[e]))}showAddress(){return this.request(p(q.ShowAddress))}showSendTokensUI(){return this.request(p(q.ShowSendTokensUI))}showOnRamp(){return this.request(p(q.ShowOnRamp))}showNFTs(){return this.request(p(q.ShowNFTs))}showBalances(){return this.request(p(q.ShowBalances))}sendGaslessTransaction(e,t){return this.request(p(q.SendGaslessTransaction,[e,t]))}};import{LocalStorageKeys as W,MagicPayloadMethod as be}from"@magic-sdk/types";var Pe=class extends f{eventListeners=[];enabledWallets={};isConnected=!1;resetThirdPartyWalletState(){localStorage.removeItem(W.PROVIDER),localStorage.removeItem(W.ADDRESS),localStorage.removeItem(W.CHAIN_ID),this.isConnected=!1}requestOverride(e){if(e.method===be.Login)return this.resetThirdPartyWalletState(),super.request(e);if(e.method===be.GetInfo)return this.getInfo(e);if(e.method===be.IsLoggedIn)return this.isLoggedIn(e);if(e.method===be.Logout)return this.logout(e);switch(localStorage.getItem(W.PROVIDER)){case"web3modal":return this.web3modalRequest(e);default:return this.resetThirdPartyWalletState(),super.request(e)}}isLoggedIn(e){switch(localStorage.getItem(W.PROVIDER)){case"web3modal":return this.web3modalIsLoggedIn();default:return this.resetThirdPartyWalletState(),super.request(e)}}getInfo(e){switch(localStorage.getItem(W.PROVIDER)){case"web3modal":return this.web3modalGetInfo();default:return this.resetThirdPartyWalletState(),super.request(e)}}logout(e){let t=localStorage.getItem(W.PROVIDER);switch(this.resetThirdPartyWalletState(),t){case"web3modal":return this.web3modalLogout();default:return super.request(e)}}web3modalRequest(e){return b((t,s)=>{this.sdk.web3modal.modal.getWalletProvider().request(e).then(t).catch(s)})}web3modalIsLoggedIn(){return b(e=>{let t=this.sdk.web3modal.modal.getStatus();if(t==="connected"&&e(!0),t==="disconnected"&&(this.resetThirdPartyWalletState(),e(!1)),t==="reconnecting"){let s=this.sdk.web3modal.modal.subscribeProvider(({status:n})=>{n==="connected"&&(s(),e(!0)),n==="disconnected"&&(s(),this.resetThirdPartyWalletState(),e(!1))})}})}formatWeb3modalGetInfoResponse(){let e=this.sdk.web3modal.modal.getWalletInfo()?.name,t=this.sdk.web3modal.modal.getAddress();return{publicAddress:t,email:null,issuer:`did:ethr:${t}`,phoneNumber:null,isMfaEnabled:!1,recoveryFactors:[],walletType:e||"web3modal",firstLoginAt:null}}web3modalGetInfo(){return b((e,t)=>{let s=this.sdk.web3modal.modal.getStatus();if(s==="connected"&&e(this.formatWeb3modalGetInfoResponse()),s==="disconnected"&&(this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access.")),s==="reconnecting"){let n=this.sdk.web3modal.modal.subscribeProvider(({status:o})=>{o==="connected"&&(n(),e(this.formatWeb3modalGetInfoResponse())),o==="disconnected"&&(n(),this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access."))})}})}web3modalLogout(){return b(async e=>{try{await this.sdk.web3modal.modal.disconnect()}catch(t){console.error(t)}e(!0)})}};import{MagicOutgoingWindowMessage as Wt,MagicPayloadMethod as Sn}from"@magic-sdk/types";var{createBoundEmitterMethod:we,createChainingEmitterMethod:H}=fe(),xe=class extends f{isMagic=!0;sendAsync(e,t){if(!t)throw gt({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(Wt.MAGIC_HANDLE_REQUEST,e.map(s=>{let n=F(s);return this.prefixPayloadMethodForTestMode(n),n})).then(s=>{t(null,s.map(n=>({...n.payload,error:n.hasError?new U(n.payload.error):null})))});else{let s=F(e);this.prefixPayloadMethodForTestMode(s),this.overlay.post(Wt.MAGIC_HANDLE_REQUEST,s).then(n=>{t(n.hasError?new U(n.payload.error):null,n.payload)})}}send(e,t){if(typeof e=="string"){let n=p(e,Array.isArray(t)?t:[]);return this.request(n)}if(Array.isArray(e)||t){this.sendAsync(e,t);return}let s=yt();return s.log(),new K(e).applyError({code:-32603,message:s.rawMessage}).payload}enable(){let e=p(Sn.Login);return this.request(e)}request(e){return this.prefixPayloadMethodForTestMode(e),super.request(e)}prefixPayloadMethodForTestMode(e){let t="testMode/eth/";this.sdk.testMode&&(e.method=`${t}${e.method}`)}on=H("on",this);once=H("once",this);addListener=H("addListener",this);off=H("off",this);removeListener=H("removeListener",this);removeAllListeners=H("removeAllListeners",this);emit=we("emit");eventNames=we("eventNames");listeners=we("listeners");listenerCount=we("listenerCount")};import{MagicPayloadMethod as Ke,NftCheckoutIntermediaryEvents as Se}from"@magic-sdk/types";var Me=class extends f{purchase(e){let t=p(Ke.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=this.sdk.thirdPartyWallets.isConnected,s=p(Ke.NFTCheckout,[{...e,walletProvider:t?"web3modal":"magic"}]),n=this.request(s);return t&&(n.on(Se.Initiated,async o=>{try{let i=await this.request({method:"eth_sendTransaction",params:[o]});this.createIntermediaryEvent(Se.Success,s.id)(i)}catch{this.createIntermediaryEvent(Se.Failure,s.id)()}}),n.on(Se.Disconnect,()=>{this.sdk.thirdPartyWallets.resetThirdPartyWalletState(),n.emit("disconnect")})),n}transfer(e){let t=p(Ke.NFTTransfer,[e]);return this.request(t)}};function Jt(r){return r.compat&&r.compat[m.sdkName]!=null?typeof r.compat[m.sdkName]=="string"?it(at(m.version),r.compat[m.sdkName]):!!r.compat[m.sdkName]:!0}function Mn(r,e,t){return!e&&!t?`${r}_eth_mainnet`:t?`${r}_${JSON.stringify(t)}`:e?typeof e=="string"?`${r}_eth_${e}`:`${r}_${e.rpcUrl}_${e.chainId}_${e.chainType}`:`${r}_unknown`}function Cn(r){let e=r?.extensions??[],t={},s=[];if(Array.isArray(e)?e.forEach(n=>{Jt(n)?(n.init(this),n.name&&(this[n.name]=n),ee(n.config)||(t[n.name]=n.config)):s.push(n)}):Object.keys(e).forEach(n=>{if(Jt(e[n])){e[n].init(this);let o=e[n];this[n]=o,ee(o.config)||(t[e[n].name]=o.config)}else s.push(e[n])}),s.length)throw ft(s);return t}var Ve=class r{constructor(e,t){this.apiKey=e;if(!e)throw pt();m.platform==="react-native"&&t?.endpoint&&Rt().log();let{defaultEndpoint:s,version:n}=m;this.testMode=!!t?.testMode,this.useStorageCache=!!t?.useStorageCache,this.endpoint=Ge(t?.endpoint??s).origin,this.auth=new ye(this),this.user=new Te(this),this.wallet=new Ie(this),this.nft=new Me(this),this.thirdPartyWallets=new Pe(this),this.rpcProvider=new xe(this);let o=Cn.call(this,t);this.parameters=ce({API_KEY:this.apiKey,DOMAIN_ORIGIN:typeof window<"u"&&window?.location?window?.location.origin:"",ETH_NETWORK:t?.network,host:Ge(this.endpoint).host,sdk:ut[m.sdkName],version:n,ext:ee(o)?void 0:o,locale:t?.locale||"en_US",authConfig:t?.authConfig?{...t.authConfig}:void 0,...m.bundleId?{bundleId:m.bundleId}:{},meta:t?.meta}),this.networkHash=Mn(this.apiKey,t?.network,ee(o)?void 0:o),t?.deferPreload||this.preload()}static __overlays__=new Map;endpoint;parameters;networkHash;testMode;useStorageCache;auth;user;wallet;nft;thirdPartyWallets;rpcProvider;get overlay(){if(!r.__overlays__.has(this.parameters)){let e=new m.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),r.__overlays__.set(this.parameters,e)}return r.__overlays__.get(this.parameters)}async preload(){await this.overlay.waitForReady()}};import{MagicIncomingWindowMessage as se,MagicOutgoingWindowMessage as An,SDKWarningCode as $n}from"@magic-sdk/types";function Nn(r,e){return e&&Array.isArray(r)?r.find(t=>t.id===e):r}function Gt(r,e){let t=e.data.response?.id,s=Nn(r,t);if(t&&s){let n=new K(s).applyResult(e.data.response.result).applyError(e.data.response.error);return{id:t,response:n}}return{}}async function Kt(r,e,t){let s=await R("rt"),n;if(m.platform==="web")try{n=await R("jwt")??await wt()}catch(a){console.error("webcrypto error",a)}let o={msgType:r,payload:e};n&&(o.jwt=n),n&&s&&(o.rt=s);let i=await Ut(t);return i&&(o.deviceShare=i),o}async function Vt(r){r.data.rt&&await x("rt",r.data.rt)}function Bt(r,e){let t=null;return function(...s){t&&clearTimeout(t),t=setTimeout(()=>{r(...s)},e)}}var Ln=1e3,Ht=60*Ln,jt=5*Ht,On=60*Ht,Be=class{constructor(e,t,s){this.endpoint=e;this.parameters=t;this.networkHash=s;this.listen()}isReadyForRequest=!1;messageHandlers=new Set;isConnectedToInternet=!0;lastPongTime=null;heartbeatIntervalTimer=null;heartbeatDebounce=Bt(()=>{this.endpoint==="https://auth.magic.link/"&&this.heartBeatCheck()},On);async post(e,t){return qe(async(s,n)=>{if(!this.isConnectedToInternet){let l=mt();n(l)}await this.checkRelayerExistsInDOM()||(this.isReadyForRequest=!1,await this.reloadRelayer()),this.isReadyForRequest||await this.waitForReady();let o=[],i=Array.isArray(t)?t.map(l=>l.id):[],a=await Kt(`${e}-${this.parameters}`,t,this.networkHash);await this._post(a);let c=l=>u=>{let{id:P,response:w}=Gt(t,u);if(Vt(u),w?.payload.error?.message==="User denied account access.")Re();else if(u.data.deviceShare){let{deviceShare:Yt}=u.data;qt(Yt,this.networkHash)}P&&w&&Array.isArray(t)&&i.includes(P)?(o.push(w),o.length===t.length&&(l(),s(o))):P&&w&&!Array.isArray(t)&&P===t.id&&(l(),s(w))},d=this.on(se.MAGIC_HANDLE_RESPONSE,c(()=>d()))})}on(e,t){let s=t.bind(window),n=o=>{o.data.msgType===`${e}-${this.parameters}`&&s(o)};return this.messageHandlers.add(n),()=>this.messageHandlers.delete(n)}waitForReady(){return new Promise(e=>{let t=this.on(se.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()})})}listen(){this.on(se.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(se.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(se.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new L($n.ProductAnnouncement,e.data.response.result.product_announcement).log()})}heartBeatCheck(){let e=!0,t=async()=>{let s={msgType:`${An.MAGIC_PING}-${this.parameters}`,payload:[]};await this._post(s)};this.heartbeatIntervalTimer=setInterval(async()=>{if(this.lastPongTime){if(Date.now()-this.lastPongTime>jt*2){this.reloadRelayer(),e=!0;return}}else if(!e){this.reloadRelayer(),e=!0;return}await t(),e=!1},jt)}stopHeartBeat(){this.heartbeatDebounce(),this.lastPongTime=null,this.heartbeatIntervalTimer&&(clearInterval(this.heartbeatIntervalTimer),this.heartbeatIntervalTimer=null)}};import{MagicPayloadMethod as Xt}from"@magic-sdk/types";var zt=["request","overlay","sdk"];function _n(r){let e=Object.getPrototypeOf(r),t=[e];for(;e!==f.prototype;)e=Object.getPrototypeOf(e),t.push(e);return t}var je=class extends f{compat;__sdk_access_field_descriptors__=new Map;__is_initialized__=!1;utils={createPromiEvent:b,isPromiEvent:Lt,encodeJSON:ce,decodeJSON:ct,createJsonRpcRequestPayload:p,standardizeJsonRpcRequestPayload:F,storage:me};constructor(){super(void 0);let e=[this,..._n(this)];zt.forEach(t=>{let s=e.map(a=>Object.getOwnPropertyDescriptor(a,t)),n=s.findIndex(a=>!!a),o=n>0,i=s[n];i&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:i,isPrototypeField:o}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw Et(t)}}))})}init(e){this.__is_initialized__||(zt.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:s,isPrototypeField:n}=this.__sdk_access_field_descriptors__.get(t);n?delete this[t]:Object.defineProperty(this,t,s)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:s,useInstead:n}=e,o=n?` Use \`${n}\` instead.`:"",i=`\`${t}\` will be removed from this Extension in version \`${s}\`.${o}`;return new te(this,"DEPRECATION_NOTICE",i)}createWarning(e,t){return new te(this,e,t)}createError(e,t,s){return new de(this,e,t,s)}},Ce=class extends je{},He=class{static Internal=Ce},Xe=class extends Ce{constructor(t){super();this.config=t;this.chain=t.chainType}chain;getPublicAddress(){return this.request(this.utils.createJsonRpcRequestPayload(Xt.GetMultichainPublicAddress,[{chain:this.chain}]))}revealPrivateKey(){return this.request(this.utils.createJsonRpcRequestPayload(Xt.RevealPK,[{chain:this.chain}]))}};export{He as Extension,de as MagicExtensionError,te as MagicExtensionWarning,U as MagicRPCError,$ as MagicSDKError,L as MagicSDKWarning,Xe as MultichainExtension,Ve as SDKBase,_e as STORE_KEY_PRIVATE_KEY,he as STORE_KEY_PUBLIC_JWK,De as TypedEmitter,Be as ViewController,Pt as clearKeys,vt as createDeprecationWarning,zn as createDuplicateIframeWarning,Et as createExtensionNotInitializedError,ft as createIncompatibleExtensionsError,gt as createInvalidArgumentError,wt as createJwt,ht as createMalformedResponseError,pt as createMissingApiKeyError,mt as createModalNotReadyError,b as createPromiEvent,qe as createPromise,Rt as createReactNativeEndpointConfigurationWarning,zr as createSDK,yt as createSynchronousWeb3MethodWarning,fe as createTypedEmitter,Ge as createURL,ct as decodeJSON,ce as encodeJSON,Le as getPayloadId,ee as isEmpty,dt as isJsonRpcErrorCode,Jn as isJsonRpcRequestPayload,lt as isJsonRpcResponsePayload,Gn as isMagicPayloadMethod,Ot as isMajorVersionAtLeast,Lt as isPromiEvent,re as isWebCryptoSupported,me as storage,Tt as uuid};
|
|
5
|
+
Received: \`${r.received}\``)}function zn(){return new L(ue.DuplicateIframe,"Duplicate iframes found.")}function yt(){return new L(ue.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 Rt(){return new L(ue.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 \`${m.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}function vt(r){let{method:e,removalVersions:t,useInstead:s}=r,n=t[m.sdkName],o=s?` Use \`${s}\` instead.`:"",i=`\`${e}\` will be removed from \`${m.sdkName}\` in version \`${n}\`.${o}`;return new L(ue.DeprecationNotice,i)}import{MagicPayloadMethod as S,DeviceVerificationEventEmit as _t,LoginWithEmailOTPEventEmit as C,UpdateEmailEventEmit as V,RecencyCheckEventEmit as _,LoginWithSmsOTPEventEmit as ge}from"@magic-sdk/types";import{MagicOutgoingWindowMessage as Rn,MagicIncomingWindowMessage as vn,MagicPayloadMethod as Tn,routeToMagicMethods as In}from"@magic-sdk/types";import{RPCErrorCode as mn}from"@magic-sdk/types";function*Qr(){let r=0;for(;;)r<Number.MAX_SAFE_INTEGER?yield++r:r=0}var Zr=Qr();function en(){return Math.floor(Math.random()*1e5)+1}function Le(){return m.sdkName==="@magic-sdk/react-native-bare"||m.sdkName==="@magic-sdk/react-native-expo"?en():Zr.next().value}var me={};sr(me,{clear:()=>tn,getItem:()=>R,iterate:()=>Oe,key:()=>nn,keys:()=>sn,length:()=>rn,removeItem:()=>A,setItem:()=>x});var pe;function O(r){return async(...e)=>(pe||(pe=await m.configureStorage()),await pe.ready(),pe[r](...e))}var R=O("getItem"),x=O("setItem"),A=O("removeItem"),tn=O("clear"),rn=O("length"),nn=O("key"),sn=O("keys"),Oe=O("iterate");function Tt(){let r=window.crypto.getRandomValues(new Uint8Array(16));r[6]=r[6]&15|64,r[8]=r[8]&191|128;let e="";return e+=r[0].toString(16),e+=r[1].toString(16),e+=r[2].toString(16),e+=r[3].toString(16),e+="-",e+=r[4].toString(16),e+=r[5].toString(16),e+="-",e+=r[6].toString(16),e+=r[7].toString(16),e+="-",e+=r[8].toString(16),e+=r[9].toString(16),e+="-",e+=r[10].toString(16),e+=r[11].toString(16),e+=r[12].toString(16),e+=r[13].toString(16),e+=r[14].toString(16),e+=r[15].toString(16),e}var _e="STORE_KEY_PRIVATE_KEY",he="STORE_KEY_PUBLIC_JWK",bt="ECDSA",on="P-256",an={name:bt,namedCurve:on};function re(){let r=typeof window<"u"&&!!window.crypto,e=r&&!!window.crypto.subtle;return r&&e}function Pt(){A(he),A(_e)}async function wt(){let r=await cn();if(!r){console.info("unable to creat kee publicy or webcrypto is unsupported");return}let{subtle:e}=window.crypto,t=await R(_e);if(!t||!e){console.info("unable to find private key or webcrypto unsupported");return}let s={iat:Math.floor(new Date().getTime()/1e3),jti:Tt()},o={protected:It(JSON.stringify({typ:"dpop+jwt",alg:"ES256",jwk:r})),claims:It(JSON.stringify(s))},i=dn(`${o.protected}.${o.claims}`),a={name:bt,hash:{name:"SHA-256"}},c=pn(new Uint8Array(await e.sign(a,t,i)));return`${o.protected}.${o.claims}.${c}`}async function cn(){if(!re()){console.info("webcrypto is not supported");return}return await R(he)||await ln(),R(he)}async function ln(){let{subtle:r}=window.crypto,e=await r.generateKey(an,!1,["sign"]),t=await r.exportKey("jwk",e.publicKey);await x(_e,e.privateKey),await x(he,t)}function It(r){return xt(un(r))}function dn(r){return new TextEncoder().encode(r)}function xt(r){return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}function un(r){return encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,(t,s)=>String.fromCharCode(parseInt(s,16)))}function pn(r){let e="";return r.forEach(t=>{e+=String.fromCharCode(t)}),xt(e)}var St=Symbol("Payload pre-processed by Magic SDK");function Mt(r){return Object.defineProperty(r,St,{value:!0,enumerable:!1}),r}function hn(r){return!!r[St]}function F(r){return hn(r)||(r.jsonrpc=r.jsonrpc??"2.0",r.id=Le(),r.method=r.method??"noop",r.params=r.params??[],Mt(r)),r}function p(r,e=[]){return Mt({params:e,method:r,jsonrpc:"2.0",id:Le()})}var K=class r{_jsonrpc;_id;_result;_error;constructor(e){e instanceof r?(this._jsonrpc=e.payload.jsonrpc,this._id=e.payload.id,this._result=e.payload.result,this._error=e.payload.error):lt(e)?(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=e.result,this._error=e.error):(this._jsonrpc=e.jsonrpc,this._id=e.id,this._result=void 0,this._error=void 0)}applyError(e){return this._error=e,this}applyResult(e){return this._result=e,this}get hasError(){return this._error?.code===mn.DpopInvalidated&&Pt(),typeof this._error<"u"&&this._error!==null}get hasResult(){return typeof this._result<"u"}get payload(){return{jsonrpc:this._jsonrpc,id:this._id,result:this._result,error:this._error}}};import{UserEventsEmit as gn,UserEventsOnReceived as yn}from"@magic-sdk/types";var At=ir(Nt()),De=class extends At.default{};function fe(){let r=new De;return{emitter:r,createChainingEmitterMethod:(s,n)=>(...o)=>(r[s].apply(r,o),n),createBoundEmitterMethod:s=>(...n)=>r[s].apply(r,n)}}var $t=Symbol("isPromiEvent");function Lt(r){return!!r[$t]}function b(r){let e=qe(r),{createBoundEmitterMethod:t,createChainingEmitterMethod:s}=fe(),n=Symbol("Promise.then"),o=Symbol("Promise.catch"),i=Symbol("Promise.finally"),a=(l,u)=>(...P)=>{let w=u[l].apply(u,P);return c(w)},c=l=>Object.assign(l,{[$t]:!0,[n]:l[n]||l.then,[o]:l[o]||l.catch,[i]:l[i]||l.finally,then:a(n,l),catch:a(o,l),finally:a(i,l),on:s("on",l),once:s("once",l),addListener:s("addListener",l),off:s("off",l),removeListener:s("removeListener",l),removeAllListeners:s("removeAllListeners",l),emit:t("emit"),eventNames:t("eventNames"),listeners:t("listeners"),listenerCount:t("listenerCount")}),d=c(e.then(l=>(d.emit("done",l),d.emit("settled"),l),l=>{throw d.emit("error",l),d.emit("settled"),l}));return d.on(yn.ClosedByUser,()=>{d.emit(gn.ClosedByUser)}),d}function qe(r){return new Promise((e,t)=>{let s=r(e,t);Promise.resolve(s).catch(t)})}var f=class{constructor(e){this.sdk=e}get overlay(){return this.sdk.overlay}request(e){if(this.sdk.thirdPartyWallets.isConnected&&!In.includes(e.method))return b((i,a)=>{this.sdk.thirdPartyWallets.requestOverride(e).then(i).catch(a)});let t=this.overlay.post(Rn.MAGIC_HANDLE_REQUEST,F(e)),s=b((o,i)=>{t.then(a=>{if(n(),a.hasError)i(new U(a.payload.error));else if(a.hasResult)o(a.payload.result);else throw ht()}).catch(a=>{n(),i(a)})}),n=this.overlay.on(vn.MAGIC_HANDLE_EVENT,o=>{let{response:i}=o.data;if(i.id===e.id&&i.result?.event){let{event:a,params:c=[]}=i.result;s.emit(a,...c)}});return s}createIntermediaryEvent(e,t){return n=>{let o=p(Tn.IntermediaryEvent,[{payloadId:t,eventType:e,args:n}]);this.request(o)}}};function Ot(r,e){let[t]=r.split(".").map(Number);return t>=e}var bn={"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"},ye=class extends f{loginWithMagicLink(e){let t=m.sdkName==="@magic-sdk/react-native"||m.sdkName==="@magic-sdk/react-native-bare"||m.sdkName==="@magic-sdk/react-native-expo";if(t&&Ot(m.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utilize a passcode method like loginWithSMS or loginWithEmailOTP instead.");t&&vt({method:"auth.loginWithMagicLink()",removalVersions:bn,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:s,showUI:n=!0,redirectURI:o,overrides:i,lifespan:a}=e,c=p(this.sdk.testMode?S.LoginWithMagicLinkTestMode:S.LoginWithMagicLink,[{email:s,showUI:n,redirectURI:o,overrides:i,lifespan:a}]);return this.request(c)}loginWithSMS(e){let{phoneNumber:t,showUI:s=!0,lifespan:n}=e,o=p(this.sdk.testMode?S.LoginWithSmsTestMode:S.LoginWithSms,[{phoneNumber:t,showUI:s,lifespan:n}]),i=this.request(o);return!s&&i&&(i.on(ge.VerifySmsOtp,a=>{this.createIntermediaryEvent(ge.VerifySmsOtp,o.id)(a)}),i.on(ge.Cancel,()=>{this.createIntermediaryEvent(ge.Cancel,o.id)()})),i}loginWithEmailOTP(e){let{email:t,showUI:s,deviceCheckUI:n,overrides:o,lifespan:i}=e,a=p(this.sdk.testMode?S.LoginWithEmailOTPTestMode:S.LoginWithEmailOTP,[{email:t,showUI:s,deviceCheckUI:n,overrides:o,lifespan:i}]),c=this.request(a);return!n&&c&&c.on(_t.Retry,()=>{this.createIntermediaryEvent(_t.Retry,a.id)()}),!s&&c&&(c.on(C.VerifyEmailOtp,d=>{this.createIntermediaryEvent(C.VerifyEmailOtp,a.id)(d)}),c.on(C.VerifyMFACode,d=>{this.createIntermediaryEvent(C.VerifyMFACode,a.id)(d)}),c.on(C.LostDevice,()=>{this.createIntermediaryEvent(C.LostDevice,a.id)()}),c.on(C.VerifyRecoveryCode,d=>{this.createIntermediaryEvent(C.VerifyRecoveryCode,a.id)(d)}),c.on(C.Cancel,()=>{this.createIntermediaryEvent(C.Cancel,a.id)()})),c}loginWithCredential(e){let{credentialOrQueryString:t,lifespan:s}=e||{},n=t??"";if(!t&&m.platform==="web"){n=window.location.search;let i=window.location.origin+window.location.pathname;window.history.replaceState(null,"",i)}let o=p(this.sdk.testMode?S.LoginWithCredentialTestMode:S.LoginWithCredential,[n,s]);return this.request(o)}setAuthorizationToken(e){let t=p(S.SetAuthorizationToken,[{jwt:e}]);return this.request(t)}updateEmailWithUI(e){let{email:t,showUI:s=!0}=e,n=p(this.sdk.testMode?S.UpdateEmailTestMode:S.UpdateEmail,[{email:t,showUI:s}]),o=this.request(n);return s||(o.on(_.Retry,()=>{this.createIntermediaryEvent(_.Retry,n.id)()}),o.on(_.Cancel,()=>{this.createIntermediaryEvent(_.Cancel,n.id)()}),o.on(_.VerifyEmailOtp,i=>{this.createIntermediaryEvent(_.VerifyEmailOtp,n.id)(i)}),o.on(_.VerifyMFACode,i=>{this.createIntermediaryEvent(_.VerifyMFACode,n.id)(i)}),o.on(V.RetryWithNewEmail,i=>{this.createIntermediaryEvent(V.RetryWithNewEmail,n.id)(i)}),o.on(V.Cancel,()=>{this.createIntermediaryEvent(V.Cancel,n.id)()}),o.on(V.VerifyEmailOtp,i=>{this.createIntermediaryEvent(V.VerifyEmailOtp,n.id)(i)})),o}};import{MagicPayloadMethod as g,EnableMFAEventEmit as ve,DisableMFAEventEmit as B,RecencyCheckEventEmit as Ft,RecoveryFactorEventEmit as k,RecoverAccountEventEmit as D,UpdateEmailEventEmit as j}from"@magic-sdk/types";var Ue="ds",Fe="ek",We="iv",Je="AES-GCM",Pn=256;async function Re(){let r=[];await Oe((e,t,s)=>{t.startsWith(`${Ue}_`)&&r.push(t)});for(let e of r)await A(e)}function kt(r){let e="",t=new Uint8Array(r),s=t.byteLength;for(let n=0;n<s;n++)e+=String.fromCharCode(t[n]);return window.btoa(e)}function Dt(r){let e=window.atob(r),t=e.length,s=new Uint8Array(t);for(let n=0;n<t;n++)s[n]=e.charCodeAt(n);return s.buffer}async function wn(){if(!re()){console.info("webcrypto is not supported");return}let{crypto:r}=window,e=await R(We);return e||r.getRandomValues(new Uint8Array(12))}async function xn(){if(!re()){console.info("webcrypto is not supported");return}let{subtle:r}=window.crypto,e=await R(Fe);return e||await r.generateKey({name:Je,length:Pn},!1,["encrypt","decrypt"])}async function qt(r,e){let t=await wn(),s=await xn();if(!t||!s||!r)return;let n=Dt(r),{subtle:o}=window.crypto,i=await o.encrypt({name:Je,iv:t},s,n),a=kt(i);await x(`${Ue}_${e}`,a),await x(Fe,s),await x(We,t)}async function Ut(r){let e=await R(`${Ue}_${r}`),t=await R(We),s=await R(Fe);if(!t||!e||!s||!re())return;let{subtle:n}=window.crypto,o=await n.decrypt({name:Je,iv:t},s,Dt(e));return kt(o)}function Ge(r,e){return e?new URL(r,e):new URL(r)}var Te=class extends f{getIdToken(e){let t=p(this.sdk.testMode?g.GetIdTokenTestMode:g.GetIdToken,[e]);return this.request(t)}generateIdToken(e){let t=p(this.sdk.testMode?g.GenerateIdTokenTestMode:g.GenerateIdToken,[e]);return this.request(t)}getInfo(){let e=p(g.GetInfo,[]);return this.request(e)}isLoggedIn(){return b(async(e,t)=>{try{let s=!1;this.sdk.useStorageCache&&(s=await R(this.localForageIsLoggedInKey)==="true",s&&e(!0));let n=p(this.sdk.testMode?g.IsLoggedInTestMode:g.IsLoggedIn),o=await this.request(n);this.sdk.useStorageCache&&(o?x(this.localForageIsLoggedInKey,!0):A(this.localForageIsLoggedInKey),s&&!o&&this.emitUserLoggedOut(!0)),e(o)}catch(s){t(s)}})}logout(){return A(this.localForageIsLoggedInKey),Re(),b(async(e,t)=>{try{let s=p(this.sdk.testMode?g.LogoutTestMode:g.Logout),n=await this.request(s);this.sdk.useStorageCache&&this.emitUserLoggedOut(n),e(n)}catch(s){t(s)}})}requestInfoWithUI(e){let t=p(g.RequestUserInfoWithUI,e?[e]:[]);return this.request(t)}showSettings(e){let{showUI:t=!0}=e||{},s=p(this.sdk.testMode?g.UserSettingsTestMode:g.UserSettings,[e]),n=this.request(s);return!t&&n&&(n.on(k.SendNewPhoneNumber,o=>{this.createIntermediaryEvent(k.SendNewPhoneNumber,s.id)(o)}),n.on(k.SendOtpCode,o=>{this.createIntermediaryEvent(k.SendOtpCode,s.id)(o)}),n.on(k.StartEditPhoneNumber,()=>{this.createIntermediaryEvent(k.StartEditPhoneNumber,s.id)()}),n.on(k.Cancel,()=>{this.createIntermediaryEvent(k.Cancel,s.id)()}),n.on(Ft.VerifyEmailOtp,o=>{this.createIntermediaryEvent(Ft.VerifyEmailOtp,s.id)(o)})),n}recoverAccount(e){let{email:t,showUI:s}=e,n=p(this.sdk.testMode?g.RecoverAccountTestMode:g.RecoverAccount,[{email:t,showUI:s}]),o=this.request(n);return!s&&o&&(o.on(D.Cancel,()=>{this.createIntermediaryEvent(D.Cancel,n.id)()}),o.on(D.ResendSms,()=>{this.createIntermediaryEvent(D.ResendSms,n.id)()}),o.on(D.VerifyOtp,i=>{this.createIntermediaryEvent(D.VerifyOtp,n.id)(i)}),o.on(D.UpdateEmail,i=>{this.createIntermediaryEvent(D.UpdateEmail,n.id)(i)}),o.on(j.Cancel,()=>{this.createIntermediaryEvent(j.Cancel,n.id)()}),o.on(j.RetryWithNewEmail,i=>{this.createIntermediaryEvent(j.RetryWithNewEmail,n.id)(i)}),o.on(j.VerifyEmailOtp,i=>{this.createIntermediaryEvent(j.VerifyEmailOtp,n.id)(i)})),o}revealEVMPrivateKey(){let e=p(g.RevealPK,[{chain:"ETH"}]);return this.request(e)}revealPrivateKey(){throw new Error("revealPrivateKey() has been decommissioned. For EVM chains, use `user.revealEVMPrivateKey()` instead. For non-EVM chains, use `[extension].revealPrivateKey()` instead.")}onUserLoggedOut(e){this.userLoggedOutCallbacks.push(e)}enableMFA(e){let{showUI:t=!0}=e,s=p(g.EnableMFA,[{showUI:t}]),n=this.request(s);return!t&&n&&(n.on(ve.VerifyMFACode,o=>{this.createIntermediaryEvent(ve.VerifyMFACode,s.id)(o)}),n.on(ve.Cancel,()=>{this.createIntermediaryEvent(ve.Cancel,s.id)()})),n}disableMFA(e){let{showUI:t=!0}=e,s=p(g.DisableMFA,[{showUI:t}]),n=this.request(s);return!t&&n&&(n.on(B.VerifyMFACode,o=>{this.createIntermediaryEvent(B.VerifyMFACode,s.id)(o)}),n.on(B.LostDevice,o=>{this.createIntermediaryEvent(B.LostDevice,s.id)(o)}),n.on(B.Cancel,()=>{this.createIntermediaryEvent(B.Cancel,s.id)()})),n}emitUserLoggedOut(e){this.userLoggedOutCallbacks.forEach(t=>{t(e)})}localForageIsLoggedInKey="magic_auth_is_logged_in";userLoggedOutCallbacks=[]};import{MagicPayloadMethod as q}from"@magic-sdk/types";var Ie=class extends f{connectWithUI(e){let t=b(async(s,n)=>{try{let o=p(q.Login,[{enabledWallets:this.sdk.thirdPartyWallets.enabledWallets,...e}]),i=this.request(o);this.sdk.thirdPartyWallets.eventListeners.forEach(({event:c,callback:d})=>{i.on(c,()=>d(o.id))}),i.on("id-token-created",c=>{t.emit("id-token-created",c)});let a=await i;a.error&&n(a),s(a)}catch(o){n(o)}});return t}showUI(e){return this.request(p(q.ShowUI,[e]))}showAddress(){return this.request(p(q.ShowAddress))}showSendTokensUI(){return this.request(p(q.ShowSendTokensUI))}showOnRamp(){return this.request(p(q.ShowOnRamp))}showNFTs(){return this.request(p(q.ShowNFTs))}showBalances(){return this.request(p(q.ShowBalances))}sendGaslessTransaction(e,t){return this.request(p(q.SendGaslessTransaction,[e,t]))}};import{LocalStorageKeys as W,MagicPayloadMethod as be}from"@magic-sdk/types";var Pe=class extends f{eventListeners=[];enabledWallets={};isConnected=!1;resetThirdPartyWalletState(){localStorage.removeItem(W.PROVIDER),localStorage.removeItem(W.ADDRESS),localStorage.removeItem(W.CHAIN_ID),this.isConnected=!1}requestOverride(e){if(e.method===be.Login)return this.resetThirdPartyWalletState(),super.request(e);if(e.method===be.GetInfo)return this.getInfo(e);if(e.method===be.IsLoggedIn)return this.isLoggedIn(e);if(e.method===be.Logout)return this.logout(e);switch(localStorage.getItem(W.PROVIDER)){case"web3modal":return this.web3modalRequest(e);default:return this.resetThirdPartyWalletState(),super.request(e)}}isLoggedIn(e){switch(localStorage.getItem(W.PROVIDER)){case"web3modal":return this.web3modalIsLoggedIn();default:return this.resetThirdPartyWalletState(),super.request(e)}}getInfo(e){switch(localStorage.getItem(W.PROVIDER)){case"web3modal":return this.web3modalGetInfo();default:return this.resetThirdPartyWalletState(),super.request(e)}}logout(e){let t=localStorage.getItem(W.PROVIDER);switch(this.resetThirdPartyWalletState(),t){case"web3modal":return this.web3modalLogout();default:return super.request(e)}}web3modalRequest(e){return b((t,s)=>{this.sdk.web3modal.modal.getWalletProvider().request(e).then(t).catch(s)})}web3modalIsLoggedIn(){return b(e=>{let t=this.sdk.web3modal.modal.getStatus();if(t==="connected"&&e(!0),t==="disconnected"&&(this.resetThirdPartyWalletState(),e(!1)),t==="reconnecting"){let s=this.sdk.web3modal.modal.subscribeProvider(({status:n})=>{n==="connected"&&(s(),e(!0)),n==="disconnected"&&(s(),this.resetThirdPartyWalletState(),e(!1))})}})}formatWeb3modalGetInfoResponse(){let e=this.sdk.web3modal.modal.getWalletInfo()?.name,t=this.sdk.web3modal.modal.getAddress();return{publicAddress:t,email:null,issuer:`did:ethr:${t}`,phoneNumber:null,isMfaEnabled:!1,recoveryFactors:[],walletType:e||"web3modal",firstLoginAt:null}}web3modalGetInfo(){return b((e,t)=>{let s=this.sdk.web3modal.modal.getStatus();if(s==="connected"&&e(this.formatWeb3modalGetInfoResponse()),s==="disconnected"&&(this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access.")),s==="reconnecting"){let n=this.sdk.web3modal.modal.subscribeProvider(({status:o})=>{o==="connected"&&(n(),e(this.formatWeb3modalGetInfoResponse())),o==="disconnected"&&(n(),this.resetThirdPartyWalletState(),t("Magic RPC Error: [-32603] Internal error: User denied account access."))})}})}web3modalLogout(){return b(async e=>{try{await this.sdk.web3modal.modal.disconnect()}catch(t){console.error(t)}e(!0)})}};import{MagicOutgoingWindowMessage as Wt,MagicPayloadMethod as Sn}from"@magic-sdk/types";var{createBoundEmitterMethod:we,createChainingEmitterMethod:H}=fe(),xe=class extends f{isMagic=!0;sendAsync(e,t){if(!t)throw gt({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:t===null?"null":typeof t});if(Array.isArray(e))this.overlay.post(Wt.MAGIC_HANDLE_REQUEST,e.map(s=>{let n=F(s);return this.prefixPayloadMethodForTestMode(n),n})).then(s=>{t(null,s.map(n=>({...n.payload,error:n.hasError?new U(n.payload.error):null})))});else{let s=F(e);this.prefixPayloadMethodForTestMode(s),this.overlay.post(Wt.MAGIC_HANDLE_REQUEST,s).then(n=>{t(n.hasError?new U(n.payload.error):null,n.payload)})}}send(e,t){if(typeof e=="string"){let n=p(e,Array.isArray(t)?t:[]);return this.request(n)}if(Array.isArray(e)||t){this.sendAsync(e,t);return}let s=yt();return s.log(),new K(e).applyError({code:-32603,message:s.rawMessage}).payload}enable(){let e=p(Sn.Login);return this.request(e)}request(e){return this.prefixPayloadMethodForTestMode(e),super.request(e)}prefixPayloadMethodForTestMode(e){let t="testMode/eth/";this.sdk.testMode&&(e.method=`${t}${e.method}`)}on=H("on",this);once=H("once",this);addListener=H("addListener",this);off=H("off",this);removeListener=H("removeListener",this);removeAllListeners=H("removeAllListeners",this);emit=we("emit");eventNames=we("eventNames");listeners=we("listeners");listenerCount=we("listenerCount")};import{MagicPayloadMethod as Ke,NftCheckoutIntermediaryEvents as Se}from"@magic-sdk/types";var Me=class extends f{purchase(e){let t=p(Ke.NFTPurchase,[e]);return this.request(t)}checkout(e){let t=this.sdk.thirdPartyWallets.isConnected,s=p(Ke.NFTCheckout,[{...e,walletProvider:t?"web3modal":"magic"}]),n=this.request(s);return t&&(n.on(Se.Initiated,async o=>{try{let i=await this.request({method:"eth_sendTransaction",params:[o]});this.createIntermediaryEvent(Se.Success,s.id)(i)}catch{this.createIntermediaryEvent(Se.Failure,s.id)()}}),n.on(Se.Disconnect,()=>{this.sdk.thirdPartyWallets.resetThirdPartyWalletState(),n.emit("disconnect")})),n}transfer(e){let t=p(Ke.NFTTransfer,[e]);return this.request(t)}};function Jt(r){return r.compat&&r.compat[m.sdkName]!=null?typeof r.compat[m.sdkName]=="string"?it(at(m.version),r.compat[m.sdkName]):!!r.compat[m.sdkName]:!0}function Mn(r,e,t){return!e&&!t?`${r}_eth_mainnet`:t?`${r}_${JSON.stringify(t)}`:e?typeof e=="string"?`${r}_eth_${e}`:`${r}_${e.rpcUrl}_${e.chainId}_${e.chainType}`:`${r}_unknown`}function Cn(r){let e=r?.extensions??[],t={},s=[];if(Array.isArray(e)?e.forEach(n=>{Jt(n)?(n.init(this),n.name&&(this[n.name]=n),ee(n.config)||(t[n.name]=n.config)):s.push(n)}):Object.keys(e).forEach(n=>{if(Jt(e[n])){e[n].init(this);let o=e[n];this[n]=o,ee(o.config)||(t[e[n].name]=o.config)}else s.push(e[n])}),s.length)throw ft(s);return t}var Ve=class r{constructor(e,t){this.apiKey=e;if(!e)throw pt();m.platform==="react-native"&&t?.endpoint&&Rt().log();let{defaultEndpoint:s,version:n}=m;this.testMode=!!t?.testMode,this.useStorageCache=!!t?.useStorageCache,this.endpoint=Ge(t?.endpoint??s).origin,this.auth=new ye(this),this.user=new Te(this),this.wallet=new Ie(this),this.nft=new Me(this),this.thirdPartyWallets=new Pe(this),this.rpcProvider=new xe(this);let o=Cn.call(this,t);this.parameters=ce({API_KEY:this.apiKey,DOMAIN_ORIGIN:typeof window<"u"&&window?.location?window?.location.origin:"",ETH_NETWORK:t?.network,host:Ge(this.endpoint).host,sdk:ut[m.sdkName],version:n,ext:ee(o)?void 0:o,locale:t?.locale||"en_US",authConfig:t?.authConfig?{...t.authConfig}:void 0,...m.bundleId?{bundleId:m.bundleId}:{},meta:t?.meta}),this.networkHash=Mn(this.apiKey,t?.network,ee(o)?void 0:o),t?.deferPreload||this.preload()}static __overlays__=new Map;endpoint;parameters;networkHash;testMode;useStorageCache;auth;user;wallet;nft;thirdPartyWallets;rpcProvider;get overlay(){if(!r.__overlays__.has(this.parameters)){let e=new m.ViewController(this.endpoint,this.parameters,this.networkHash);e.init(),r.__overlays__.set(this.parameters,e)}return r.__overlays__.get(this.parameters)}async preload(){await this.overlay.waitForReady()}};import{MagicIncomingWindowMessage as se,MagicOutgoingWindowMessage as An,SDKWarningCode as $n}from"@magic-sdk/types";function Nn(r,e){return e&&Array.isArray(r)?r.find(t=>t.id===e):r}function Gt(r,e){let t=e.data.response?.id,s=Nn(r,t);if(t&&s){let n=new K(s).applyResult(e.data.response.result).applyError(e.data.response.error);return{id:t,response:n}}return{}}async function Kt(r,e,t){let s=await R("rt"),n;if(m.platform==="web")try{n=await R("jwt")??await wt()}catch(a){console.error("webcrypto error",a)}let o={msgType:r,payload:e};n&&(o.jwt=n),n&&s&&(o.rt=s);let i=await Ut(t);return i&&(o.deviceShare=i),o}async function Vt(r){r.data.rt&&await x("rt",r.data.rt)}function Bt(r,e){let t=null;return function(...s){t&&clearTimeout(t),t=setTimeout(()=>{r(...s)},e)}}var Ln=1e3,Ht=60*Ln,jt=5*Ht,On=60*Ht,Be=class{constructor(e,t,s){this.endpoint=e;this.parameters=t;this.networkHash=s;this.listen()}isReadyForRequest=!1;messageHandlers=new Set;isConnectedToInternet=!0;lastPongTime=null;heartbeatIntervalTimer=null;heartbeatDebounce=Bt(()=>{this.endpoint==="https://auth.magic.link/"&&this.heartBeatCheck()},On);async post(e,t){return qe(async(s,n)=>{if(!this.isConnectedToInternet){let l=mt();n(l)}await this.checkRelayerExistsInDOM()||(this.isReadyForRequest=!1,await this.reloadRelayer()),this.isReadyForRequest||await this.waitForReady();let o=[],i=Array.isArray(t)?t.map(l=>l.id):[],a=await Kt(`${e}-${this.parameters}`,t,this.networkHash);await this._post(a);let c=l=>u=>{let{id:P,response:w}=Gt(t,u);if(Vt(u),w?.payload.error?.message==="User denied account access.")Re();else if(u.data.deviceShare){let{deviceShare:Yt}=u.data;qt(Yt,this.networkHash)}P&&w&&Array.isArray(t)&&i.includes(P)?(o.push(w),o.length===t.length&&(l(),s(o))):P&&w&&!Array.isArray(t)&&P===t.id&&(l(),s(w))},d=this.on(se.MAGIC_HANDLE_RESPONSE,c(()=>d()))})}on(e,t){let s=t.bind(window),n=o=>{o.data.msgType===`${e}-${this.parameters}`&&s(o)};return this.messageHandlers.add(n),()=>this.messageHandlers.delete(n)}waitForReady(){return new Promise(e=>{let t=this.on(se.MAGIC_OVERLAY_READY,()=>{this.isReadyForRequest=!0,e(),t()})})}listen(){this.on(se.MAGIC_HIDE_OVERLAY,()=>{this.hideOverlay()}),this.on(se.MAGIC_SHOW_OVERLAY,()=>{this.showOverlay()}),this.on(se.MAGIC_SEND_PRODUCT_ANNOUNCEMENT,e=>{e.data.response.result.product_announcement&&new L($n.ProductAnnouncement,e.data.response.result.product_announcement).log()})}heartBeatCheck(){let e=!0,t=async()=>{let s={msgType:`${An.MAGIC_PING}-${this.parameters}`,payload:[]};await this._post(s)};this.heartbeatIntervalTimer=setInterval(async()=>{if(this.lastPongTime){if(Date.now()-this.lastPongTime>jt*2){this.reloadRelayer(),e=!0;return}}else if(!e){this.reloadRelayer(),e=!0;return}await t(),e=!1},jt)}stopHeartBeat(){this.heartbeatDebounce(),this.lastPongTime=null,this.heartbeatIntervalTimer&&(clearInterval(this.heartbeatIntervalTimer),this.heartbeatIntervalTimer=null)}};import{MagicPayloadMethod as Xt}from"@magic-sdk/types";var zt=["request","overlay","sdk"];function _n(r){let e=Object.getPrototypeOf(r),t=[e];for(;e!==f.prototype;)e=Object.getPrototypeOf(e),t.push(e);return t}var je=class extends f{compat;__sdk_access_field_descriptors__=new Map;__is_initialized__=!1;utils={createPromiEvent:b,isPromiEvent:Lt,encodeJSON:ce,decodeJSON:ct,createJsonRpcRequestPayload:p,standardizeJsonRpcRequestPayload:F,storage:me};constructor(){super(void 0);let e=[this,..._n(this)];zt.forEach(t=>{let s=e.map(a=>Object.getOwnPropertyDescriptor(a,t)),n=s.findIndex(a=>!!a),o=n>0,i=s[n];i&&(this.__sdk_access_field_descriptors__.set(t,{descriptor:i,isPrototypeField:o}),Object.defineProperty(this,t,{configurable:!0,get:()=>{throw Et(t)}}))})}init(e){this.__is_initialized__||(zt.forEach(t=>{if(this.__sdk_access_field_descriptors__.has(t)){let{descriptor:s,isPrototypeField:n}=this.__sdk_access_field_descriptors__.get(t);n?delete this[t]:Object.defineProperty(this,t,s)}}),this.sdk=e,this.__is_initialized__=!0)}createDeprecationWarning(e){let{method:t,removalVersion:s,useInstead:n}=e,o=n?` Use \`${n}\` instead.`:"",i=`\`${t}\` will be removed from this Extension in version \`${s}\`.${o}`;return new te(this,"DEPRECATION_NOTICE",i)}createWarning(e,t){return new te(this,e,t)}createError(e,t,s){return new de(this,e,t,s)}},Ce=class extends je{},He=class{static Internal=Ce},Xe=class extends Ce{constructor(t){super();this.config=t;this.chain=t.chainType}chain;getPublicAddress(){return this.request(this.utils.createJsonRpcRequestPayload(Xt.GetMultichainPublicAddress,[{chain:this.chain}]))}revealPrivateKey(){return this.request(this.utils.createJsonRpcRequestPayload(Xt.RevealPK,[{chain:this.chain}]))}};export{He as Extension,de as MagicExtensionError,te as MagicExtensionWarning,U as MagicRPCError,$ as MagicSDKError,L as MagicSDKWarning,Xe as MultichainExtension,Ve as SDKBase,_e as STORE_KEY_PRIVATE_KEY,he as STORE_KEY_PUBLIC_JWK,De as TypedEmitter,Be as ViewController,Pt as clearKeys,vt as createDeprecationWarning,zn as createDuplicateIframeWarning,Et as createExtensionNotInitializedError,ft as createIncompatibleExtensionsError,gt as createInvalidArgumentError,wt as createJwt,ht as createMalformedResponseError,pt as createMissingApiKeyError,mt as createModalNotReadyError,b as createPromiEvent,qe as createPromise,Rt as createReactNativeEndpointConfigurationWarning,zr as createSDK,yt as createSynchronousWeb3MethodWarning,fe as createTypedEmitter,Ge as createURL,ct as decodeJSON,ce as encodeJSON,Le as getPayloadId,ee as isEmpty,dt as isJsonRpcErrorCode,Jn as isJsonRpcRequestPayload,lt as isJsonRpcResponsePayload,Gn as isMagicPayloadMethod,Ot as isMajorVersionAtLeast,Lt as isPromiEvent,re as isWebCryptoSupported,me as storage,Tt as uuid};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|