@imtbl/auth 2.10.7-alpha.6 → 2.11.1-alpha.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/.eslintrc.cjs +1 -1
- package/dist/browser/index.js +23 -23
- package/dist/node/index.cjs +42 -41
- package/dist/node/index.js +30 -30
- package/dist/types/Auth.d.ts +1 -1
- package/dist/types/errors.d.ts +2 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types.d.ts +2 -0
- package/jest.config.ts +27 -0
- package/jest.setup.js +4 -0
- package/package.json +14 -6
- package/src/Auth.test.ts +186 -0
- package/src/Auth.ts +22 -53
- package/src/errors.test.ts +21 -0
- package/src/errors.ts +7 -1
- package/src/index.ts +3 -1
- package/src/types.ts +2 -0
- package/tsconfig.eslint.json +6 -0
- package/tsconfig.json +4 -0
package/.eslintrc.cjs
CHANGED
package/dist/browser/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { UserManager, User, ErrorTimeout, ErrorResponse, InMemoryWebStorage, WebStorageStateStore } from 'oidc-client-ts';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { track, getDetail, Detail, trackFlow, trackError
|
|
2
|
+
import Ur, { isAxiosError } from 'axios';
|
|
3
|
+
import De from 'jwt-decode';
|
|
4
|
+
import Pr from 'localforage';
|
|
5
|
+
import { track, identify, getDetail, Detail, trackFlow, trackError } from '@imtbl/metrics';
|
|
6
6
|
|
|
7
|
-
var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var Ge=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var $=(r,e)=>()=>(r&&(e=r(r=0)),e);var Ke=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Ze=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ve(e))!Be.call(r,i)&&i!==t&&oe(r,i,{get:()=>e[i],enumerable:!(n=He(e,i))||n.enumerable});return r};var We=(r,e,t)=>(t=r!=null?Fe(Ge(r)):{},Ze(oe(t,"default",{value:r,enumerable:!0}),r));function Q(r){throw new Error("Node.js process "+r+" is not supported by JSPM core outside of Node.js")}function $e(){!w||!P||(w=!1,P.length?y=P.concat(y):S=-1,y.length&&se());}function se(){if(!w){var r=setTimeout($e,0);w=!0;for(var e=y.length;e;){for(P=y,y=[];++S<e;)P&&P[S].run();S=-1,e=y.length;}P=null,w=!1,clearTimeout(r);}}function Ye(r){var e=new Array(arguments.length-1);if(arguments.length>1)for(var t=1;t<arguments.length;t++)e[t-1]=arguments[t];y.push(new ae(r,e)),y.length===1&&!w&&setTimeout(se,0);}function ae(r,e){this.fun=r,this.array=e;}function h(){}function ct(r){Q("_linkedBinding");}function mt(r){Q("dlopen");}function gt(){return []}function ht(){return []}function Tt(r,e){if(!r)throw new Error(e||"assertion error")}function bt(){return !1}function $t(){return R.now()/1e3}function z(r){var e=Math.floor((Date.now()-R.now())*.001),t=R.now()*.001,n=Math.floor(t)+e,i=Math.floor(t%1*1e9);return r&&(n=n-r[0],i=i-r[1],i<0&&(n--,i+=j)),[n,i]}function L(){return u}function ir(r){return []}var y,w,P,S,je,ze,Qe,qe,Je,Xe,et,tt,rt,nt,it,ot,st,at,lt,dt,pt,ut,ft,vt,Et,q,_t,Ct,yt,Ot,Rt,Lt,Pt,wt,It,kt,At,xt,Ut,Mt,Nt,Dt,St,Ft,Ht,Vt,Gt,Bt,Kt,Zt,Wt,R,Y,j,Yt,jt,zt,Qt,qt,Jt,Xt,er,tr,rr,nr,u,le=$(()=>{l();a();y=[],w=!1,S=-1;ae.prototype.run=function(){this.fun.apply(null,this.array);};je="browser",ze="x64",Qe="browser",qe={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},Je=["/usr/bin/node"],Xe=[],et="v16.8.0",tt={},rt=function(r,e){console.warn((e?e+": ":"")+r);},nt=function(r){Q("binding");},it=function(r){return 0},ot=function(){return "/"},st=function(r){},at={name:"node",sourceUrl:"",headersUrl:"",libUrl:""};lt=h,dt=[];pt={},ut=!1,ft={};vt=h,Et=h,q=function(){return {}},_t=q,Ct=q,yt=h,Ot=h,Rt=h,Lt={};Pt={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},wt=h,It=h;kt=h,At=h,xt=h,Ut=h,Mt=h,Nt=void 0,Dt=void 0,St=void 0,Ft=h,Ht=2,Vt=1,Gt="/bin/usr/node",Bt=9229,Kt="node",Zt=[],Wt=h,R={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0};R.now===void 0&&(Y=Date.now(),R.timing&&R.timing.navigationStart&&(Y=R.timing.navigationStart),R.now=()=>Date.now()-Y);j=1e9;z.bigint=function(r){var e=z(r);return typeof BigInt>"u"?e[0]*j+e[1]:BigInt(e[0]*j)+BigInt(e[1])};Yt=10,jt={},zt=0;Qt=L,qt=L,Jt=L,Xt=L,er=L,tr=h,rr=L,nr=L;u={version:et,versions:tt,arch:ze,platform:Qe,release:at,_rawDebug:lt,moduleLoadList:dt,binding:nt,_linkedBinding:ct,_events:jt,_eventsCount:zt,_maxListeners:Yt,on:L,addListener:Qt,once:qt,off:Jt,removeListener:Xt,removeAllListeners:er,emit:tr,prependListener:rr,prependOnceListener:nr,listeners:ir,domain:pt,_exiting:ut,config:ft,dlopen:mt,uptime:$t,_getActiveRequests:gt,_getActiveHandles:ht,reallyExit:vt,_kill:Et,cpuUsage:q,resourceUsage:_t,memoryUsage:Ct,kill:yt,exit:Ot,openStdin:Rt,allowedNodeEnvironmentFlags:Lt,assert:Tt,features:Pt,_fatalExceptions:wt,setUncaughtExceptionCaptureCallback:It,hasUncaughtExceptionCaptureCallback:bt,emitWarning:rt,nextTick:Ye,_tickCallback:kt,_debugProcess:At,_debugEnd:xt,_startProfilerIdleNotifier:Ut,_stopProfilerIdleNotifier:Mt,stdout:Nt,stdin:St,stderr:Dt,abort:Ft,umask:it,chdir:st,cwd:ot,env:qe,title:je,argv:Je,execArgv:Xe,pid:Ht,ppid:Vt,execPath:Gt,debugPort:Bt,hrtime:z,argv0:Kt,_preload_modules:Zt,setSourceMapsEnabled:Wt};});var a=$(()=>{le();});var l=$(()=>{});var Ae=Ke((Sn,te)=>{l();a();var b=typeof Reflect=="object"?Reflect:null,ye=b&&typeof b.apply=="function"?b.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},B;b&&typeof b.ownKeys=="function"?B=b.ownKeys:Object.getOwnPropertySymbols?B=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:B=function(e){return Object.getOwnPropertyNames(e)};function hr(r){console&&console.warn&&console.warn(r);}var Re=Number.isNaN||function(e){return e!==e};function c(){c.init.call(this);}te.exports=c;te.exports.once=Cr;c.EventEmitter=c;c.prototype._events=void 0;c.prototype._eventsCount=0;c.prototype._maxListeners=void 0;var Oe=10;function K(r){if(typeof r!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r)}Object.defineProperty(c,"defaultMaxListeners",{enumerable:!0,get:function(){return Oe},set:function(r){if(typeof r!="number"||r<0||Re(r))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+r+".");Oe=r;}});c.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0;};c.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||Re(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function Le(r){return r._maxListeners===void 0?c.defaultMaxListeners:r._maxListeners}c.prototype.getMaxListeners=function(){return Le(this)};c.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i=e==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return !1;if(i){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var d=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw d.context=s,d}var m=o[e];if(m===void 0)return !1;if(typeof m=="function")ye(m,this,t);else for(var C=m.length,p=be(m,C),n=0;n<C;++n)ye(p[n],this,t);return !0};function Te(r,e,t,n){var i,o,s;if(K(t),o=r._events,o===void 0?(o=r._events=Object.create(null),r._eventsCount=0):(o.newListener!==void 0&&(r.emit("newListener",e,t.listener?t.listener:t),o=r._events),s=o[e]),s===void 0)s=o[e]=t,++r._eventsCount;else if(typeof s=="function"?s=o[e]=n?[t,s]:[s,t]:n?s.unshift(t):s.push(t),i=Le(r),i>0&&s.length>i&&!s.warned){s.warned=!0;var d=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");d.name="MaxListenersExceededWarning",d.emitter=r,d.type=e,d.count=s.length,hr(d);}return r}c.prototype.addListener=function(e,t){return Te(this,e,t,!1)};c.prototype.on=c.prototype.addListener;c.prototype.prependListener=function(e,t){return Te(this,e,t,!0)};function vr(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Pe(r,e,t){var n={fired:!1,wrapFn:void 0,target:r,type:e,listener:t},i=vr.bind(n);return i.listener=t,n.wrapFn=i,i}c.prototype.once=function(e,t){return K(t),this.on(e,Pe(this,e,t)),this};c.prototype.prependOnceListener=function(e,t){return K(t),this.prependListener(e,Pe(this,e,t)),this};c.prototype.removeListener=function(e,t){var n,i,o,s,d;if(K(t),i=this._events,i===void 0)return this;if(n=i[e],n===void 0)return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||t));else if(typeof n!="function"){for(o=-1,s=n.length-1;s>=0;s--)if(n[s]===t||n[s].listener===t){d=n[s].listener,o=s;break}if(o<0)return this;o===0?n.shift():Er(n,o),n.length===1&&(i[e]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",e,d||t);}return this};c.prototype.off=c.prototype.removeListener;c.prototype.removeAllListeners=function(e){var t,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var o=Object.keys(n),s;for(i=0;i<o.length;++i)s=o[i],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(t=n[e],typeof t=="function")this.removeListener(e,t);else if(t!==void 0)for(i=t.length-1;i>=0;i--)this.removeListener(e,t[i]);return this};function we(r,e,t){var n=r._events;if(n===void 0)return [];var i=n[e];return i===void 0?[]:typeof i=="function"?t?[i.listener||i]:[i]:t?_r(i):be(i,i.length)}c.prototype.listeners=function(e){return we(this,e,!0)};c.prototype.rawListeners=function(e){return we(this,e,!1)};c.listenerCount=function(r,e){return typeof r.listenerCount=="function"?r.listenerCount(e):Ie.call(r,e)};c.prototype.listenerCount=Ie;function Ie(r){var e=this._events;if(e!==void 0){var t=e[r];if(typeof t=="function")return 1;if(t!==void 0)return t.length}return 0}c.prototype.eventNames=function(){return this._eventsCount>0?B(this._events):[]};function be(r,e){for(var t=new Array(e),n=0;n<e;++n)t[n]=r[n];return t}function Er(r,e){for(;e+1<r.length;e++)r[e]=r[e+1];r.pop();}function _r(r){for(var e=new Array(r.length),t=0;t<e.length;++t)e[t]=r[t].listener||r[t];return e}function Cr(r,e){return new Promise(function(t,n){function i(s){r.removeListener(e,o),n(s);}function o(){typeof r.removeListener=="function"&&r.removeListener("error",i),t([].slice.call(arguments));}ke(r,e,o,{once:!0}),e!=="error"&&yr(r,i,{once:!0});})}function yr(r,e,t){typeof r.on=="function"&&ke(r,"error",e,t);}function ke(r,e,t,n){if(typeof r.on=="function")n.once?r.once(e,t):r.on(e,t);else if(typeof r.addEventListener=="function")r.addEventListener(e,function i(o){n.once&&r.removeEventListener(e,i),t(o);});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof r)}});l();a();l();a();l();a();l();a();var F=(f=>(f.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",f.INVALID_CONFIGURATION="INVALID_CONFIGURATION",f.WALLET_CONNECTION_ERROR="WALLET_CONNECTION_ERROR",f.NOT_LOGGED_IN_ERROR="NOT_LOGGED_IN_ERROR",f.SILENT_LOGIN_ERROR="SILENT_LOGIN_ERROR",f.REFRESH_TOKEN_ERROR="REFRESH_TOKEN_ERROR",f.USER_REGISTRATION_ERROR="USER_REGISTRATION_ERROR",f.USER_NOT_REGISTERED_ERROR="USER_NOT_REGISTERED_ERROR",f.LOGOUT_ERROR="LOGOUT_ERROR",f.TRANSFER_ERROR="TRANSFER_ERROR",f.CREATE_ORDER_ERROR="CREATE_ORDER_ERROR",f.CANCEL_ORDER_ERROR="CANCEL_ORDER_ERROR",f.EXCHANGE_TRANSFER_ERROR="EXCHANGE_TRANSFER_ERROR",f.CREATE_TRADE_ERROR="CREATE_TRADE_ERROR",f.OPERATION_NOT_SUPPORTED_ERROR="OPERATION_NOT_SUPPORTED_ERROR",f.LINK_WALLET_ALREADY_LINKED_ERROR="LINK_WALLET_ALREADY_LINKED_ERROR",f.LINK_WALLET_MAX_WALLETS_LINKED_ERROR="LINK_WALLET_MAX_WALLETS_LINKED_ERROR",f.LINK_WALLET_VALIDATION_ERROR="LINK_WALLET_VALIDATION_ERROR",f.LINK_WALLET_DUPLICATE_NONCE_ERROR="LINK_WALLET_DUPLICATE_NONCE_ERROR",f.LINK_WALLET_GENERIC_ERROR="LINK_WALLET_GENERIC_ERROR",f.SERVICE_UNAVAILABLE_ERROR="SERVICE_UNAVAILABLE_ERROR",f))(F||{});function sr(r){return "code"in r&&"message"in r}var E=class extends Error{type;constructor(e,t){super(e),this.type=t;}},T=async(r,e)=>{try{return await r()}catch(t){let n;throw t instanceof E&&t.type==="SERVICE_UNAVAILABLE_ERROR"?new E(t.message,t.type):(isAxiosError(t)&&t.response?.data&&sr(t.response.data)?n=t.response.data.message:n=t.message,new E(n,e))}};var ar=(r,e,t)=>{let n=e.map(i=>!r[i]&&i).filter(i=>i).join(", ");if(n!==""){let i=`${n} cannot be null`;throw new E(i,"INVALID_CONFIGURATION")}},x=class{authenticationDomain;passportDomain;oidcConfiguration;crossSdkBridgeEnabled;popupOverlayOptions;constructor({authenticationDomain:e,passportDomain:t,crossSdkBridgeEnabled:n,popupOverlayOptions:i,...o}){ar(o,["clientId","redirectUri"]),this.oidcConfiguration=o,this.crossSdkBridgeEnabled=n||!1,this.popupOverlayOptions=i,this.authenticationDomain=e||"https://auth.immutable.com",this.passportDomain=t||"https://passport.immutable.com";}};l();a();var de=(e=>(e.ZKEVM="zkEvm",e))(de||{}),J=r=>!!r.zkEvm,ce=(t=>(t.OptedIn="opted_in",t.Unsubscribed="unsubscribed",t))(ce||{}),X=(t=>(t.LOGGED_OUT="loggedOut",t.LOGGED_IN="loggedIn",t))(X||{});l();a();l();a();var pe="im_passport_embedded_login_prompt";l();a();l();a();var I="passport-overlay",U="passport-overlay-contents",H=`${I}-close`,V=`${I}-try-again`,ue=`
|
|
7
|
+
var Se=Object.create;var ne=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var He=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Ge=Object.prototype.hasOwnProperty;var W=(r,e)=>()=>(r&&(e=r(r=0)),e);var Be=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Ke=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of He(e))!Ge.call(r,i)&&i!==t&&ne(r,i,{get:()=>e[i],enumerable:!(n=Fe(e,i))||n.enumerable});return r};var Ze=(r,e,t)=>(t=r!=null?Se(Ve(r)):{},Ke(ne(t,"default",{value:r,enumerable:!0}),r));function z(r){throw new Error("Node.js process "+r+" is not supported by JSPM core outside of Node.js")}function We(){!w||!T||(w=!1,T.length?C=T.concat(C):S=-1,C.length&&ie());}function ie(){if(!w){var r=setTimeout(We,0);w=!0;for(var e=C.length;e;){for(T=C,C=[];++S<e;)T&&T[S].run();S=-1,e=C.length;}T=null,w=!1,clearTimeout(r);}}function $e(r){var e=new Array(arguments.length-1);if(arguments.length>1)for(var t=1;t<arguments.length;t++)e[t-1]=arguments[t];C.push(new oe(r,e)),C.length===1&&!w&&setTimeout(ie,0);}function oe(r,e){this.fun=r,this.array=e;}function g(){}function dt(r){z("_linkedBinding");}function ft(r){z("dlopen");}function mt(){return []}function gt(){return []}function Lt(r,e){if(!r)throw new Error(e||"assertion error")}function It(){return !1}function Wt(){return y.now()/1e3}function Y(r){var e=Math.floor((Date.now()-y.now())*.001),t=y.now()*.001,n=Math.floor(t)+e,i=Math.floor(t%1*1e9);return r&&(n=n-r[0],i=i-r[1],i<0&&(n--,i+=j)),[n,i]}function R(){return p}function nr(r){return []}var C,w,T,S,je,Ye,ze,Qe,qe,Je,Xe,et,tt,rt,nt,it,ot,st,at,lt,ct,ut,pt,ht,vt,Q,Et,_t,Ct,yt,Rt,Ot,Tt,Pt,wt,bt,At,kt,xt,Ut,Mt,Nt,Dt,St,Ft,Ht,Vt,Gt,Bt,Kt,Zt,y,$,j,$t,jt,Yt,zt,Qt,qt,Jt,Xt,er,tr,rr,p,se=W(()=>{l();a();C=[],w=!1,S=-1;oe.prototype.run=function(){this.fun.apply(null,this.array);};je="browser",Ye="x64",ze="browser",Qe={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},qe=["/usr/bin/node"],Je=[],Xe="v16.8.0",et={},tt=function(r,e){console.warn((e?e+": ":"")+r);},rt=function(r){z("binding");},nt=function(r){return 0},it=function(){return "/"},ot=function(r){},st={name:"node",sourceUrl:"",headersUrl:"",libUrl:""};at=g,lt=[];ct={},ut=!1,pt={};ht=g,vt=g,Q=function(){return {}},Et=Q,_t=Q,Ct=g,yt=g,Rt=g,Ot={};Tt={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},Pt=g,wt=g;bt=g,At=g,kt=g,xt=g,Ut=g,Mt=void 0,Nt=void 0,Dt=void 0,St=g,Ft=2,Ht=1,Vt="/bin/usr/node",Gt=9229,Bt="node",Kt=[],Zt=g,y={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0};y.now===void 0&&($=Date.now(),y.timing&&y.timing.navigationStart&&($=y.timing.navigationStart),y.now=()=>Date.now()-$);j=1e9;Y.bigint=function(r){var e=Y(r);return typeof BigInt>"u"?e[0]*j+e[1]:BigInt(e[0]*j)+BigInt(e[1])};$t=10,jt={},Yt=0;zt=R,Qt=R,qt=R,Jt=R,Xt=R,er=g,tr=R,rr=R;p={version:Xe,versions:et,arch:Ye,platform:ze,release:st,_rawDebug:at,moduleLoadList:lt,binding:rt,_linkedBinding:dt,_events:jt,_eventsCount:Yt,_maxListeners:$t,on:R,addListener:zt,once:Qt,off:qt,removeListener:Jt,removeAllListeners:Xt,emit:er,prependListener:tr,prependOnceListener:rr,listeners:nr,domain:ct,_exiting:ut,config:pt,dlopen:ft,uptime:Wt,_getActiveRequests:mt,_getActiveHandles:gt,reallyExit:ht,_kill:vt,cpuUsage:Q,resourceUsage:Et,memoryUsage:_t,kill:Ct,exit:yt,openStdin:Rt,allowedNodeEnvironmentFlags:Ot,assert:Lt,features:Tt,_fatalExceptions:Pt,setUncaughtExceptionCaptureCallback:wt,hasUncaughtExceptionCaptureCallback:It,emitWarning:tt,nextTick:$e,_tickCallback:bt,_debugProcess:At,_debugEnd:kt,_startProfilerIdleNotifier:xt,_stopProfilerIdleNotifier:Ut,stdout:Mt,stdin:Dt,stderr:Nt,abort:St,umask:nt,chdir:ot,cwd:it,env:Qe,title:je,argv:qe,execArgv:Je,pid:Ft,ppid:Ht,execPath:Vt,debugPort:Gt,hrtime:Y,argv0:Bt,_preload_modules:Kt,setSourceMapsEnabled:Zt};});var a=W(()=>{se();});var l=W(()=>{});var Ae=Be((Nn,ee)=>{l();a();var b=typeof Reflect=="object"?Reflect:null,Ce=b&&typeof b.apply=="function"?b.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},B;b&&typeof b.ownKeys=="function"?B=b.ownKeys:Object.getOwnPropertySymbols?B=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:B=function(e){return Object.getOwnPropertyNames(e)};function mr(r){console&&console.warn&&console.warn(r);}var Re=Number.isNaN||function(e){return e!==e};function d(){d.init.call(this);}ee.exports=d;ee.exports.once=Er;d.EventEmitter=d;d.prototype._events=void 0;d.prototype._eventsCount=0;d.prototype._maxListeners=void 0;var ye=10;function K(r){if(typeof r!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r)}Object.defineProperty(d,"defaultMaxListeners",{enumerable:!0,get:function(){return ye},set:function(r){if(typeof r!="number"||r<0||Re(r))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+r+".");ye=r;}});d.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0;};d.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||Re(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function Oe(r){return r._maxListeners===void 0?d.defaultMaxListeners:r._maxListeners}d.prototype.getMaxListeners=function(){return Oe(this)};d.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i=e==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return !1;if(i){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var c=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw c.context=s,c}var h=o[e];if(h===void 0)return !1;if(typeof h=="function")Ce(h,this,t);else for(var L=h.length,f=Ie(h,L),n=0;n<L;++n)Ce(f[n],this,t);return !0};function Le(r,e,t,n){var i,o,s;if(K(t),o=r._events,o===void 0?(o=r._events=Object.create(null),r._eventsCount=0):(o.newListener!==void 0&&(r.emit("newListener",e,t.listener?t.listener:t),o=r._events),s=o[e]),s===void 0)s=o[e]=t,++r._eventsCount;else if(typeof s=="function"?s=o[e]=n?[t,s]:[s,t]:n?s.unshift(t):s.push(t),i=Oe(r),i>0&&s.length>i&&!s.warned){s.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=r,c.type=e,c.count=s.length,mr(c);}return r}d.prototype.addListener=function(e,t){return Le(this,e,t,!1)};d.prototype.on=d.prototype.addListener;d.prototype.prependListener=function(e,t){return Le(this,e,t,!0)};function gr(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Te(r,e,t){var n={fired:!1,wrapFn:void 0,target:r,type:e,listener:t},i=gr.bind(n);return i.listener=t,n.wrapFn=i,i}d.prototype.once=function(e,t){return K(t),this.on(e,Te(this,e,t)),this};d.prototype.prependOnceListener=function(e,t){return K(t),this.prependListener(e,Te(this,e,t)),this};d.prototype.removeListener=function(e,t){var n,i,o,s,c;if(K(t),i=this._events,i===void 0)return this;if(n=i[e],n===void 0)return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||t));else if(typeof n!="function"){for(o=-1,s=n.length-1;s>=0;s--)if(n[s]===t||n[s].listener===t){c=n[s].listener,o=s;break}if(o<0)return this;o===0?n.shift():hr(n,o),n.length===1&&(i[e]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",e,c||t);}return this};d.prototype.off=d.prototype.removeListener;d.prototype.removeAllListeners=function(e){var t,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var o=Object.keys(n),s;for(i=0;i<o.length;++i)s=o[i],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(t=n[e],typeof t=="function")this.removeListener(e,t);else if(t!==void 0)for(i=t.length-1;i>=0;i--)this.removeListener(e,t[i]);return this};function Pe(r,e,t){var n=r._events;if(n===void 0)return [];var i=n[e];return i===void 0?[]:typeof i=="function"?t?[i.listener||i]:[i]:t?vr(i):Ie(i,i.length)}d.prototype.listeners=function(e){return Pe(this,e,!0)};d.prototype.rawListeners=function(e){return Pe(this,e,!1)};d.listenerCount=function(r,e){return typeof r.listenerCount=="function"?r.listenerCount(e):we.call(r,e)};d.prototype.listenerCount=we;function we(r){var e=this._events;if(e!==void 0){var t=e[r];if(typeof t=="function")return 1;if(t!==void 0)return t.length}return 0}d.prototype.eventNames=function(){return this._eventsCount>0?B(this._events):[]};function Ie(r,e){for(var t=new Array(e),n=0;n<e;++n)t[n]=r[n];return t}function hr(r,e){for(;e+1<r.length;e++)r[e]=r[e+1];r.pop();}function vr(r){for(var e=new Array(r.length),t=0;t<e.length;++t)e[t]=r[t].listener||r[t];return e}function Er(r,e){return new Promise(function(t,n){function i(s){r.removeListener(e,o),n(s);}function o(){typeof r.removeListener=="function"&&r.removeListener("error",i),t([].slice.call(arguments));}be(r,e,o,{once:!0}),e!=="error"&&_r(r,i,{once:!0});})}function _r(r,e,t){typeof r.on=="function"&&be(r,"error",e,t);}function be(r,e,t,n){if(typeof r.on=="function")n.once?r.once(e,t):r.on(e,t);else if(typeof r.addEventListener=="function")r.addEventListener(e,function i(o){n.once&&r.removeEventListener(e,i),t(o);});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof r)}});l();a();l();a();l();a();l();a();var F=(u=>(u.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",u.INVALID_CONFIGURATION="INVALID_CONFIGURATION",u.WALLET_CONNECTION_ERROR="WALLET_CONNECTION_ERROR",u.NOT_LOGGED_IN_ERROR="NOT_LOGGED_IN_ERROR",u.SILENT_LOGIN_ERROR="SILENT_LOGIN_ERROR",u.REFRESH_TOKEN_ERROR="REFRESH_TOKEN_ERROR",u.USER_REGISTRATION_ERROR="USER_REGISTRATION_ERROR",u.USER_NOT_REGISTERED_ERROR="USER_NOT_REGISTERED_ERROR",u.LOGOUT_ERROR="LOGOUT_ERROR",u.TRANSFER_ERROR="TRANSFER_ERROR",u.CREATE_ORDER_ERROR="CREATE_ORDER_ERROR",u.CANCEL_ORDER_ERROR="CANCEL_ORDER_ERROR",u.EXCHANGE_TRANSFER_ERROR="EXCHANGE_TRANSFER_ERROR",u.CREATE_TRADE_ERROR="CREATE_TRADE_ERROR",u.OPERATION_NOT_SUPPORTED_ERROR="OPERATION_NOT_SUPPORTED_ERROR",u.LINK_WALLET_ALREADY_LINKED_ERROR="LINK_WALLET_ALREADY_LINKED_ERROR",u.LINK_WALLET_MAX_WALLETS_LINKED_ERROR="LINK_WALLET_MAX_WALLETS_LINKED_ERROR",u.LINK_WALLET_VALIDATION_ERROR="LINK_WALLET_VALIDATION_ERROR",u.LINK_WALLET_DUPLICATE_NONCE_ERROR="LINK_WALLET_DUPLICATE_NONCE_ERROR",u.LINK_WALLET_GENERIC_ERROR="LINK_WALLET_GENERIC_ERROR",u.SERVICE_UNAVAILABLE_ERROR="SERVICE_UNAVAILABLE_ERROR",u.TRANSACTION_REJECTED="TRANSACTION_REJECTED",u))(F||{});function ae(r){return typeof r=="object"&&r!==null&&"code"in r&&"message"in r}var E=class extends Error{type;constructor(e,t){super(e),this.type=t;}},O=async(r,e)=>{try{return await r()}catch(t){let n;throw t instanceof E&&t.type==="SERVICE_UNAVAILABLE_ERROR"?new E(t.message,t.type):(isAxiosError(t)&&t.response?.data&&ae(t.response.data)?n=t.response.data.message:n=t.message,new E(n,e))}};var or=(r,e,t)=>{let n=e.map(i=>!r[i]&&i).filter(i=>i).join(", ");if(n!==""){let i=`${n} cannot be null`;throw new E(i,"INVALID_CONFIGURATION")}},x=class{authenticationDomain;passportDomain;oidcConfiguration;crossSdkBridgeEnabled;popupOverlayOptions;constructor({authenticationDomain:e,passportDomain:t,crossSdkBridgeEnabled:n,popupOverlayOptions:i,...o}){or(o,["clientId","redirectUri"]),this.oidcConfiguration=o,this.crossSdkBridgeEnabled=n||!1,this.popupOverlayOptions=i,this.authenticationDomain=e||"https://auth.immutable.com",this.passportDomain=t||"https://passport.immutable.com";}};l();a();var le=(e=>(e.ZKEVM="zkEvm",e))(le||{}),q=r=>!!r.zkEvm,de=(t=>(t.OptedIn="opted_in",t.Unsubscribed="unsubscribed",t))(de||{}),J=(t=>(t.LOGGED_OUT="loggedOut",t.LOGGED_IN="loggedIn",t))(J||{});l();a();l();a();var ce="im_passport_embedded_login_prompt";l();a();l();a();var I="passport-overlay",U="passport-overlay-contents",H=`${I}-close`,V=`${I}-try-again`,ue=`
|
|
8
8
|
<svg
|
|
9
9
|
viewBox="0 0 20 20"
|
|
10
10
|
fill="none"
|
|
@@ -16,7 +16,7 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
16
16
|
fill="#F3F3F3"
|
|
17
17
|
/>
|
|
18
18
|
</svg>
|
|
19
|
-
`,
|
|
19
|
+
`,pe=`
|
|
20
20
|
<svg
|
|
21
21
|
viewBox="0 0 17 16"
|
|
22
22
|
fill="none"
|
|
@@ -30,7 +30,7 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
30
30
|
fill="#E01A3D"
|
|
31
31
|
/>
|
|
32
32
|
</svg>
|
|
33
|
-
`,
|
|
33
|
+
`,X=`
|
|
34
34
|
<svg
|
|
35
35
|
style="
|
|
36
36
|
max-width: 123px !important;
|
|
@@ -213,7 +213,7 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
213
213
|
</clipPath>
|
|
214
214
|
</defs>
|
|
215
215
|
</svg>
|
|
216
|
-
`;l();a();var
|
|
216
|
+
`;l();a();var sr=()=>`
|
|
217
217
|
<button
|
|
218
218
|
id="${H}"
|
|
219
219
|
style="
|
|
@@ -233,7 +233,7 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
233
233
|
>
|
|
234
234
|
${ue}
|
|
235
235
|
</button>
|
|
236
|
-
`,
|
|
236
|
+
`,fe=()=>`
|
|
237
237
|
<button
|
|
238
238
|
id="${V}"
|
|
239
239
|
style="
|
|
@@ -250,8 +250,8 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
250
250
|
>
|
|
251
251
|
Try again
|
|
252
252
|
</button>
|
|
253
|
-
`,
|
|
254
|
-
${
|
|
253
|
+
`,ar=()=>`
|
|
254
|
+
${X}
|
|
255
255
|
<div
|
|
256
256
|
style="
|
|
257
257
|
color: #e01a3d !important;
|
|
@@ -261,7 +261,7 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
261
261
|
margin-bottom: 10px !important;
|
|
262
262
|
"
|
|
263
263
|
>
|
|
264
|
-
${
|
|
264
|
+
${pe}
|
|
265
265
|
Pop-up blocked
|
|
266
266
|
</div>
|
|
267
267
|
<p style="
|
|
@@ -274,9 +274,9 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
274
274
|
If the problem continues, adjust your<br />
|
|
275
275
|
browser settings.
|
|
276
276
|
</p>
|
|
277
|
-
${
|
|
278
|
-
`,
|
|
279
|
-
${
|
|
277
|
+
${fe()}
|
|
278
|
+
`,lr=()=>`
|
|
279
|
+
${X}
|
|
280
280
|
<p style="
|
|
281
281
|
color: #b6b6b6 !important;
|
|
282
282
|
text-align: center !important;
|
|
@@ -285,8 +285,8 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
285
285
|
>
|
|
286
286
|
Secure pop-up not showing?<br />We'll help you re-launch
|
|
287
287
|
</p>
|
|
288
|
-
${
|
|
289
|
-
`,
|
|
288
|
+
${fe()}
|
|
289
|
+
`,me=r=>`
|
|
290
290
|
<div
|
|
291
291
|
id="${I}"
|
|
292
292
|
style="
|
|
@@ -311,7 +311,7 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
311
311
|
z-index: 2147483647 !important;
|
|
312
312
|
"
|
|
313
313
|
>
|
|
314
|
-
${
|
|
314
|
+
${sr()}
|
|
315
315
|
<div
|
|
316
316
|
id="${U}"
|
|
317
317
|
style="
|
|
@@ -324,7 +324,7 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
324
324
|
${r??""}
|
|
325
325
|
</div>
|
|
326
326
|
</div>
|
|
327
|
-
`,
|
|
327
|
+
`,ge=()=>`
|
|
328
328
|
<div
|
|
329
329
|
id="${I}"
|
|
330
330
|
style="
|
|
@@ -353,7 +353,7 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
353
353
|
"
|
|
354
354
|
/>
|
|
355
355
|
</div>
|
|
356
|
-
`;function G({id:r,href:e,rel:t,crossOrigin:n}){let i=`${I}-${r}`;if(!document.getElementById(i)){let o=document.createElement("link");o.id=i,o.href=e,t&&(o.rel=t),n&&(o.crossOrigin=n),document.head.appendChild(o);}}var
|
|
356
|
+
`;function G({id:r,href:e,rel:t,crossOrigin:n}){let i=`${I}-${r}`;if(!document.getElementById(i)){let o=document.createElement("link");o.id=i,o.href=e,t&&(o.rel=t),n&&(o.crossOrigin=n),document.head.appendChild(o);}}var he=()=>me(ar()),ve=()=>me(lr());var _=class{static overlay;static onCloseListener;static closeButton;static remove(){this.onCloseListener&&this.closeButton?.removeEventListener?.("click",this.onCloseListener),this.overlay?.remove(),this.closeButton=void 0,this.onCloseListener=void 0,this.overlay=void 0;}static appendOverlay(e,t){if(!this.overlay){let n=document.createElement("div");n.innerHTML=ge(),document.body.insertAdjacentElement("beforeend",n);let i=document.querySelector(`#${U}`);i&&i.appendChild(e),n.addEventListener("click",t),this.overlay=n;}}};var ur=660,pr=440,fr="16px",Ee="passport-embedded-login-keyframes",_e="passport-embedded-login-iframe",M=class r{config;constructor(e){this.config=e;}getHref=()=>`${this.config.authenticationDomain}/im-embedded-login-prompt?client_id=${this.config.oidcConfiguration.clientId}&rid=${getDetail(Detail.RUNTIME_ID)}`;static appendIFrameStylesIfNeeded=()=>{if(document.getElementById(Ee))return;let e=document.createElement("style");e.id=Ee,e.textContent=`
|
|
357
357
|
@keyframes passportEmbeddedLoginPromptPopBounceIn {
|
|
358
358
|
0% {
|
|
359
359
|
opacity: 0.5;
|
|
@@ -372,7 +372,7 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
372
372
|
}
|
|
373
373
|
|
|
374
374
|
@media (max-height: 400px) {
|
|
375
|
-
#${
|
|
375
|
+
#${_e} {
|
|
376
376
|
width: 100% !important;
|
|
377
377
|
max-width: none !important;
|
|
378
378
|
}
|
|
@@ -386,6 +386,6 @@ var Fe=Object.create;var oe=Object.defineProperty;var He=Object.getOwnPropertyDe
|
|
|
386
386
|
opacity: 1;
|
|
387
387
|
}
|
|
388
388
|
}
|
|
389
|
-
`,document.head.appendChild(e);};getEmbeddedLoginIFrame=()=>{let e=document.createElement("iframe");return e.id=Ce,e.src=this.getHref(),e.style.height="100vh",e.style.width="100vw",e.style.maxHeight=`${fr}px`,e.style.maxWidth=`${mr}px`,e.style.borderRadius=gr,e.style.opacity="0",e.style.transform="scale(0.6)",e.style.animation="passportEmbeddedLoginPromptPopBounceIn 1s ease forwards",r.appendIFrameStylesIfNeeded(),e};displayEmbeddedLoginPrompt(){return new Promise((e,t)=>{let n=this.getEmbeddedLoginIFrame(),i=({data:o,origin:s})=>{if(!(s!==this.config.authenticationDomain||o.eventType!==pe))switch(o.messageType){case"login_method_selected":{let d=o.payload;window.removeEventListener("message",i),_.remove(),e(d);break}case"login_prompt_error":{window.removeEventListener("message",i),_.remove(),t(new Error("Error during embedded login prompt",{cause:o.payload}));break}case"login_prompt_closed":{window.removeEventListener("message",i),_.remove(),t(new Error("Popup closed by user"));break}default:window.removeEventListener("message",i),_.remove(),t(new Error(`Unsupported message type: ${o.messageType}`));break}};window.addEventListener("message",i),_.appendOverlay(n,()=>{window.removeEventListener("message",i),_.remove(),t(new Error("Popup closed by user"));});})}};l();a();var xe=We(Ae()),k=class{emitter=new xe.EventEmitter;emit(e,...t){this.emitter.emit(e,...t);}on(e,t){this.emitter.on(e,t);}removeListener(e,t){this.emitter.removeListener(e,t);}};l();a();var v=async(r,e,t=!0,n=!0)=>{let i=trackFlow("passport",e,t);try{return await r(i)}catch(o){throw o instanceof Error?trackError("passport",e,o,{flowId:i.details.flowId}):i.addEvent("errored"),o}finally{n&&i.addEvent("End");}};l();a();var Ue="pkce_state",Me="pkce_verifier",Tr=3600,N=class{isTokenValid(e){try{let n=Se(e).exp??0,i=Date.now()/1e3+Tr;return n>i}catch{return !1}}savePKCEData(e){localStorage.setItem(Ue,e.state),localStorage.setItem(Me,e.verifier);}getPKCEData(){let e=localStorage.getItem(Ue),t=localStorage.getItem(Me);return e&&t?{state:e,verifier:t}:null}};l();a();var Pr=(...r)=>{if(typeof u>"u")return;u?.env?.JEST_WORKER_ID===void 0&&console.warn(...r);},A={warn:Pr};l();a();function Ne(r){try{let e=Se(r),t=Math.floor(Date.now()/1e3);return e.exp?e.exp<=t+30:!0}catch{return !0}}function De(r){let{id_token:e,access_token:t}=r;return !t||!e?!0:Ne(t)||Ne(e)}l();a();var D=class{disableGenericPopupOverlay;disableBlockedPopupOverlay;overlay;isBlockedOverlay;tryAgainListener;onCloseListener;constructor(e,t=!1){this.disableBlockedPopupOverlay=e.disableBlockedPopupOverlay||!1,this.disableGenericPopupOverlay=e.disableGenericPopupOverlay||!1,this.isBlockedOverlay=t;}append(e,t){this.shouldAppendOverlay()&&(this.appendOverlay(),this.updateTryAgainButton(e),this.updateCloseButton(t));}update(e){this.updateTryAgainButton(e);}remove(){this.overlay&&this.overlay.remove();}shouldAppendOverlay(){return !(this.disableGenericPopupOverlay&&this.disableBlockedPopupOverlay||this.disableGenericPopupOverlay&&!this.isBlockedOverlay||this.disableBlockedPopupOverlay&&this.isBlockedOverlay)}appendOverlay(){if(!this.overlay){G({id:"link-googleapis",href:"https://fonts.googleapis.com"}),G({id:"link-gstatic",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),G({id:"link-roboto",href:"https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap",rel:"stylesheet"});let t=document.createElement("div");t.innerHTML=this.isBlockedOverlay?ve():Ee(),document.body.insertAdjacentElement("beforeend",t),this.overlay=t;}}updateTryAgainButton(e){let t=document.getElementById(V);t&&(this.tryAgainListener&&t.removeEventListener("click",this.tryAgainListener),this.tryAgainListener=e,t.addEventListener("click",e));}updateCloseButton(e){let t=document.getElementById(H);t&&(this.onCloseListener&&t.removeEventListener("click",this.onCloseListener),this.onCloseListener=e,t.addEventListener("click",e));}};l();a();var Z=class{storage;constructor(e,t){this.storage=Ir.createInstance({name:e,driver:t});}get length(){return this.storage.length()}clear(){return this.storage.clear()}getItem(e){return this.storage.getItem(e)}key(e){return this.storage.key(e)}async removeItem(e){await this.storage.removeItem(e);}async setItem(e,t){await this.storage.setItem(e,t);}};var Gr=500,Br={headers:{"Content-Type":"application/x-www-form-urlencoded"}},Kr="/v2/logout",Zr="/im-logged-out",Wr="/authorize",$r=r=>r?Zr:Kr,Yr=r=>{let{authenticationDomain:e,oidcConfiguration:t}=r,n;r.crossSdkBridgeEnabled?n=new Z("ImmutableSDKPassport",Ir.INDEXEDDB):typeof window<"u"?n=window.localStorage:n=new InMemoryWebStorage;let i=new WebStorageStateStore({store:n}),o=new URL($r(r.crossSdkBridgeEnabled),e.replace(/^(?:https?:\/\/)?(.*)/,"https://$1"));return o.searchParams.set("client_id",t.clientId),t.logoutRedirectUri&&o.searchParams.set("returnTo",t.logoutRedirectUri),{authority:e,redirect_uri:t.redirectUri,popup_redirect_uri:t.popupRedirectUri||t.redirectUri,client_id:t.clientId,metadata:{authorization_endpoint:`${e}/authorize`,token_endpoint:`${e}/oauth/token`,userinfo_endpoint:`${e}/userinfo`,end_session_endpoint:o.toString(),revocation_endpoint:`${e}/oauth/revoke`},automaticSilentRenew:!1,scope:t.scope,userStore:i,revokeTokenTypes:["refresh_token"],extraQueryParams:{...t.audience?{audience:t.audience}:{}}}};function re(r){return btoa(String.fromCharCode(...new Uint8Array(r))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}async function jr(r){let t=new TextEncoder().encode(r);return window.crypto.subtle.digest("SHA-256",t)}var ne=class r{config;userManager;deviceCredentialsManager;embeddedLoginPrompt;logoutMode;refreshingPromise=null;eventEmitter;constructor(e){this.config=new x(e),this.embeddedLoginPrompt=new M(this.config),this.userManager=new UserManager(Yr(this.config)),this.deviceCredentialsManager=new N,this.logoutMode=this.config.oidcConfiguration.logoutMode||"redirect",this.eventEmitter=new k,track("passport","initialise");}async login(e){return v(async()=>{let{useCachedSession:t=!1,useSilentLogin:n}=e||{},i=null;try{i=await this.getUserInternal();}catch(o){if(o instanceof Error&&!o.message.includes("Unknown or invalid refresh token")&&trackError("passport","login",o),t)throw o;A.warn("Failed to retrieve a cached user session",o);}if(!i&&n)i=await this.forceUserRefreshInternal();else if(!i&&!t){if(e?.useRedirectFlow)return await this.loginWithRedirectInternal(e?.directLoginOptions),null;i=await this.loginWithPopup(e?.directLoginOptions);}return i&&(this.eventEmitter.emit("loggedIn",i),identify({passportId:i.profile.sub})),i},"login")}async loginWithRedirect(e){await this.loginWithRedirectInternal(e);}async loginCallback(){return v(async()=>{let e=await this.loginCallbackInternal();return e&&(this.eventEmitter.emit("loggedIn",e),identify({passportId:e.profile.sub})),e},"loginCallback")}async logout(){await v(async()=>{await this.logoutInternal(),this.eventEmitter.emit("loggedOut");},"logout");}async getUser(){return v(async()=>this.getUserInternal(),"getUserInfo",!1)}async getUserOrLogin(){let e=null;try{e=await this.getUserInternal();}catch(t){A.warn("Failed to retrieve a cached user session",t);}return e||this.loginWithPopup()}async getUserZkEvm(){return this.getUserZkEvmInternal()}async getIdToken(){return v(async()=>(await this.getUserInternal())?.idToken,"getIdToken",!1)}async getAccessToken(){return v(async()=>(await this.getUserInternal())?.accessToken,"getAccessToken",!1,!1)}async isLoggedIn(){return await this.getUser()!==null}async forceUserRefresh(){return this.forceUserRefreshInternal()}forceUserRefreshInBackground(){this.forceUserRefreshInBackgroundInternal();}async loginWithPKCEFlow(e,t){return v(async()=>this.getPKCEAuthorizationUrl(e,t),"loginWithPKCEFlow")}async loginWithPKCEFlowCallback(e,t){return v(async()=>{let n=await this.loginWithPKCEFlowCallbackInternal(e,t);return this.eventEmitter.emit("loggedIn",n),identify({passportId:n.profile.sub}),n},"loginWithPKCEFlowCallback")}async storeTokens(e){return v(async()=>{let t=await this.storeTokensInternal(e);return this.eventEmitter.emit("loggedIn",t),identify({passportId:t.profile.sub}),t},"storeTokens")}async getLogoutUrl(){return v(async()=>(await this.userManager.removeUser(),this.eventEmitter.emit("loggedOut"),await this.getLogoutUrlInternal()||void 0),"getLogoutUrl")}async logoutSilentCallback(e){return v(()=>this.userManager.signoutSilentCallback(e),"logoutSilentCallback")}getConfig(){return this.config}async getClientId(){return this.config.oidcConfiguration.clientId}buildExtraQueryParams(e,t){let n={...this.userManager.settings?.extraQueryParams??{},rid:getDetail(Detail.RUNTIME_ID)||"",third_party_a_id:""};if(e){if(e.directLoginMethod==="email"){let i=e.email;i&&(n.direct=e.directLoginMethod,n.email=i);}else n.direct=e.directLoginMethod;e.marketingConsentStatus&&(n.marketingConsent=e.marketingConsentStatus);}return t&&(n.im_passport_trace_id=t),n}async loginWithRedirectInternal(e){await this.userManager.clearStaleState(),await T(async()=>{let t=this.buildExtraQueryParams(e);await this.userManager.signinRedirect({extraQueryParams:t});},"AUTHENTICATION_ERROR");}async loginWithPopup(e){return T(async()=>{let t,n;if(e)t=e;else if(!this.config.popupOverlayOptions?.disableHeadlessLoginPromptOverlay){let{imPassportTraceId:s,...d}=await this.embeddedLoginPrompt.displayEmbeddedLoginPrompt();t=d,n=s;}let i=window.crypto.randomUUID(),o=async()=>{let s=this.buildExtraQueryParams(t,n),d=this.userManager.signinPopup({extraQueryParams:s,popupWindowFeatures:{width:410,height:450},popupWindowTarget:i}),m=window.open("",i);if(m){let C=new Promise((p,O)=>{let ie=setInterval(()=>{m.closed&&(clearInterval(ie),O(new Error("Popup closed by user")));},Gr);d.finally(()=>{clearInterval(ie),m.close();});});return Promise.race([d,C])}return d};return new Promise((s,d)=>{o().then(m=>s(r.mapOidcUserToDomainModel(m))).catch(m=>{if(!(m instanceof Error)||m.message!=="Attempted to navigate on a disposed window"){d(m);return}let C=!1,p=new D(this.config.popupOverlayOptions||{},!0);p.append(async()=>{try{if(C)window.open("",i);else {C=!0;let O=await o();p.remove(),s(r.mapOidcUserToDomainModel(O));}}catch(O){p.remove(),d(O);}},()=>{p.remove(),d(new Error("Popup closed by user"));});});})},"AUTHENTICATION_ERROR")}static mapOidcUserToDomainModel=e=>{let t;e.id_token&&(t=Se(e.id_token)?.passport);let n={expired:e.expired,idToken:e.id_token,accessToken:e.access_token,refreshToken:e.refresh_token,profile:{sub:e.profile.sub,email:e.profile.email,nickname:e.profile.nickname}};return t?.zkevm_eth_address&&t?.zkevm_user_admin_address&&(n.zkEvm={ethAddress:t.zkevm_eth_address,userAdminAddress:t.zkevm_user_admin_address}),n};static mapDeviceTokenResponseToOidcUser=e=>{let t=Se(e.id_token);return new User({id_token:e.id_token,access_token:e.access_token,refresh_token:e.refresh_token,token_type:e.token_type,profile:{sub:t.sub,iss:t.iss,aud:t.aud,exp:t.exp,iat:t.iat,email:t.email,nickname:t.nickname,passport:t.passport}})};static shouldUseSigninPopupCallback(){try{let n=`oidc.${new URLSearchParams(window.location.search).get("state")}`,i=localStorage.getItem(n);return JSON.parse(i||"{}")?.request_type==="si:p"}catch{return !1}}async loginCallbackInternal(){return T(async()=>{if(r.shouldUseSigninPopupCallback()){await this.userManager.signinPopupCallback(void 0,!0);return}let e=await this.userManager.signinCallback();if(e)return r.mapOidcUserToDomainModel(e)},"AUTHENTICATION_ERROR")}async getPKCEAuthorizationUrl(e,t){let n=re(window.crypto.getRandomValues(new Uint8Array(32))),i=re(await jr(n)),o=re(window.crypto.getRandomValues(new Uint8Array(32))),{redirectUri:s,scope:d,audience:m,clientId:C}=this.config.oidcConfiguration;this.deviceCredentialsManager.savePKCEData({state:o,verifier:n});let p=new URL(Wr,this.config.authenticationDomain);if(p.searchParams.set("response_type","code"),p.searchParams.set("code_challenge",i),p.searchParams.set("code_challenge_method","S256"),p.searchParams.set("client_id",C),p.searchParams.set("redirect_uri",s),p.searchParams.set("state",o),d&&p.searchParams.set("scope",d),m&&p.searchParams.set("audience",m),e){if(e.directLoginMethod==="email"){let O=e.email;O&&(p.searchParams.set("direct",e.directLoginMethod),p.searchParams.set("email",O));}else p.searchParams.set("direct",e.directLoginMethod);e.marketingConsentStatus&&p.searchParams.set("marketingConsent",e.marketingConsentStatus);}return t&&p.searchParams.set("im_passport_trace_id",t),p.toString()}async loginWithPKCEFlowCallbackInternal(e,t){return T(async()=>{let n=this.deviceCredentialsManager.getPKCEData();if(!n)throw new Error("No code verifier or state for PKCE");if(t!==n.state)throw new Error("Provided state does not match stored state");let i=await this.getPKCEToken(e,n.verifier),o=r.mapDeviceTokenResponseToOidcUser(i),s=r.mapOidcUserToDomainModel(o);return await this.userManager.storeUser(o),s},"AUTHENTICATION_ERROR")}async getPKCEToken(e,t){return (await Nr.post(`${this.config.authenticationDomain}/oauth/token`,{client_id:this.config.oidcConfiguration.clientId,grant_type:"authorization_code",code_verifier:t,code:e,redirect_uri:this.config.oidcConfiguration.redirectUri},Br)).data}async storeTokensInternal(e){return T(async()=>{let t=r.mapDeviceTokenResponseToOidcUser(e),n=r.mapOidcUserToDomainModel(t);return await this.userManager.storeUser(t),n},"AUTHENTICATION_ERROR")}async logoutInternal(){await T(async()=>{await this.userManager.revokeTokens(["refresh_token"]),this.logoutMode==="silent"?await this.userManager.signoutSilent():await this.userManager.signoutRedirect();},"LOGOUT_ERROR");}async getLogoutUrlInternal(){let e=this.userManager.settings?.metadata?.end_session_endpoint;return e||(A.warn("Failed to get logout URL"),null)}forceUserRefreshInBackgroundInternal(){this.refreshTokenAndUpdatePromise().catch(e=>{A.warn("Failed to refresh user token",e);});}async forceUserRefreshInternal(){return this.refreshTokenAndUpdatePromise().catch(e=>(A.warn("Failed to refresh user token",e),null))}async refreshTokenAndUpdatePromise(){return this.refreshingPromise?this.refreshingPromise:(this.refreshingPromise=new Promise((e,t)=>{(async()=>{try{let n=await this.userManager.signinSilent();if(n){e(r.mapOidcUserToDomainModel(n));return}e(null);}catch(n){let i="AUTHENTICATION_ERROR",o="Failed to refresh token",s=!0;if(n instanceof ErrorTimeout?(i="SILENT_LOGIN_ERROR",o=`${o}: ${n.message}`,s=!1):n instanceof ErrorResponse?(i="NOT_LOGGED_IN_ERROR",o=`${o}: ${n.message||n.error_description}`):n instanceof Error?o=`${o}: ${n.message}`:typeof n=="string"&&(o=`${o}: ${n}`),s)try{await this.userManager.removeUser();}catch(d){d instanceof Error&&(o=`${o}: Failed to remove user: ${d.message}`);}t(new E(o,i));}finally{this.refreshingPromise=null;}})();}),this.refreshingPromise)}async getUserInternal(e=t=>!0){if(this.refreshingPromise){let n=await this.refreshingPromise;return n&&e(n)?n:null}let t=await this.userManager.getUser();if(!t)return null;if(!De(t)){let n=r.mapOidcUserToDomainModel(t);if(n&&e(n))return n}if(t.refresh_token){let n=await this.refreshTokenAndUpdatePromise();if(n&&e(n))return n}return null}async getUserZkEvmInternal(){let e=await this.getUserInternal(J);if(!e)throw new Error("Failed to obtain a User with the required ZkEvm attributes");return e}};
|
|
389
|
+
`,document.head.appendChild(e);};getEmbeddedLoginIFrame=()=>{let e=document.createElement("iframe");return e.id=_e,e.src=this.getHref(),e.style.height="100vh",e.style.width="100vw",e.style.maxHeight=`${ur}px`,e.style.maxWidth=`${pr}px`,e.style.borderRadius=fr,e.style.opacity="0",e.style.transform="scale(0.6)",e.style.animation="passportEmbeddedLoginPromptPopBounceIn 1s ease forwards",r.appendIFrameStylesIfNeeded(),e};displayEmbeddedLoginPrompt(){return new Promise((e,t)=>{let n=this.getEmbeddedLoginIFrame(),i=({data:o,origin:s})=>{if(!(s!==this.config.authenticationDomain||o.eventType!==ce))switch(o.messageType){case"login_method_selected":{let c=o.payload;window.removeEventListener("message",i),_.remove(),e(c);break}case"login_prompt_error":{window.removeEventListener("message",i),_.remove(),t(new Error("Error during embedded login prompt",{cause:o.payload}));break}case"login_prompt_closed":{window.removeEventListener("message",i),_.remove(),t(new Error("Popup closed by user"));break}default:window.removeEventListener("message",i),_.remove(),t(new Error(`Unsupported message type: ${o.messageType}`));break}};window.addEventListener("message",i),_.appendOverlay(n,()=>{window.removeEventListener("message",i),_.remove(),t(new Error("Popup closed by user"));});})}};l();a();var ke=Ze(Ae()),A=class{emitter=new ke.EventEmitter;emit(e,...t){this.emitter.emit(e,...t);}on(e,t){this.emitter.on(e,t);}removeListener(e,t){this.emitter.removeListener(e,t);}};l();a();var v=async(r,e,t=!0,n=!0)=>{let i=trackFlow("passport",e,t);try{return await r(i)}catch(o){throw o instanceof Error?trackError("passport",e,o,{flowId:i.details.flowId}):i.addEvent("errored"),o}finally{n&&i.addEvent("End");}};l();a();var xe="pkce_state",Ue="pkce_verifier",Or=3600,N=class{isTokenValid(e){try{let n=De(e).exp??0,i=Date.now()/1e3+Or;return n>i}catch{return !1}}savePKCEData(e){localStorage.setItem(xe,e.state),localStorage.setItem(Ue,e.verifier);}getPKCEData(){let e=localStorage.getItem(xe),t=localStorage.getItem(Ue);return e&&t?{state:e,verifier:t}:null}};l();a();var Lr=(...r)=>{if(typeof p>"u")return;p?.env?.JEST_WORKER_ID===void 0&&console.warn(...r);},k={warn:Lr};l();a();function Me(r){try{let e=De(r),t=Math.floor(Date.now()/1e3);return e.exp?e.exp<=t+30:!0}catch{return !0}}function Ne(r){let{id_token:e,access_token:t}=r;return !t||!e?!0:Me(t)||Me(e)}l();a();var D=class{disableGenericPopupOverlay;disableBlockedPopupOverlay;overlay;isBlockedOverlay;tryAgainListener;onCloseListener;constructor(e,t=!1){this.disableBlockedPopupOverlay=e.disableBlockedPopupOverlay||!1,this.disableGenericPopupOverlay=e.disableGenericPopupOverlay||!1,this.isBlockedOverlay=t;}append(e,t){this.shouldAppendOverlay()&&(this.appendOverlay(),this.updateTryAgainButton(e),this.updateCloseButton(t));}update(e){this.updateTryAgainButton(e);}remove(){this.overlay&&this.overlay.remove();}shouldAppendOverlay(){return !(this.disableGenericPopupOverlay&&this.disableBlockedPopupOverlay||this.disableGenericPopupOverlay&&!this.isBlockedOverlay||this.disableBlockedPopupOverlay&&this.isBlockedOverlay)}appendOverlay(){if(!this.overlay){G({id:"link-googleapis",href:"https://fonts.googleapis.com"}),G({id:"link-gstatic",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),G({id:"link-roboto",href:"https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap",rel:"stylesheet"});let t=document.createElement("div");t.innerHTML=this.isBlockedOverlay?he():ve(),document.body.insertAdjacentElement("beforeend",t),this.overlay=t;}}updateTryAgainButton(e){let t=document.getElementById(V);t&&(this.tryAgainListener&&t.removeEventListener("click",this.tryAgainListener),this.tryAgainListener=e,t.addEventListener("click",e));}updateCloseButton(e){let t=document.getElementById(H);t&&(this.onCloseListener&&t.removeEventListener("click",this.onCloseListener),this.onCloseListener=e,t.addEventListener("click",e));}};l();a();var Z=class{storage;constructor(e,t){this.storage=Pr.createInstance({name:e,driver:t});}get length(){return this.storage.length()}clear(){return this.storage.clear()}getItem(e){return this.storage.getItem(e)}key(e){return this.storage.key(e)}async removeItem(e){await this.storage.removeItem(e);}async setItem(e,t){await this.storage.setItem(e,t);}};var Vr={headers:{"Content-Type":"application/x-www-form-urlencoded"}},Gr="/v2/logout",Br="/im-logged-out",Kr="/authorize",Zr=r=>r?Br:Gr,Wr=r=>{let{authenticationDomain:e,oidcConfiguration:t}=r,n;r.crossSdkBridgeEnabled?n=new Z("ImmutableSDKPassport",Pr.INDEXEDDB):typeof window<"u"?n=window.localStorage:n=new InMemoryWebStorage;let i=new WebStorageStateStore({store:n}),o=new URL(Zr(r.crossSdkBridgeEnabled),e.replace(/^(?:https?:\/\/)?(.*)/,"https://$1"));return o.searchParams.set("client_id",t.clientId),t.logoutRedirectUri&&o.searchParams.set("returnTo",t.logoutRedirectUri),{authority:e,redirect_uri:t.redirectUri,popup_redirect_uri:t.popupRedirectUri||t.redirectUri,client_id:t.clientId,metadata:{authorization_endpoint:`${e}/authorize`,token_endpoint:`${e}/oauth/token`,userinfo_endpoint:`${e}/userinfo`,end_session_endpoint:o.toString(),revocation_endpoint:`${e}/oauth/revoke`},automaticSilentRenew:!1,scope:t.scope,userStore:i,revokeTokenTypes:["refresh_token"],extraQueryParams:{...t.audience?{audience:t.audience}:{}}}};function te(r){return btoa(String.fromCharCode(...new Uint8Array(r))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}async function $r(r){let t=new TextEncoder().encode(r);return window.crypto.subtle.digest("SHA-256",t)}var re=class r{config;userManager;deviceCredentialsManager;embeddedLoginPrompt;logoutMode;refreshingPromise=null;eventEmitter;constructor(e){this.config=new x(e),this.embeddedLoginPrompt=new M(this.config),this.userManager=new UserManager(Wr(this.config)),this.deviceCredentialsManager=new N,this.logoutMode=this.config.oidcConfiguration.logoutMode||"redirect",this.eventEmitter=new A,track("passport","initialise");}async login(e){return v(async()=>{let{useCachedSession:t=!1,useSilentLogin:n}=e||{},i=null;try{i=await this.getUserInternal();}catch(o){if(o instanceof Error&&!o.message.includes("Unknown or invalid refresh token")&&trackError("passport","login",o),t)throw o;k.warn("Failed to retrieve a cached user session",o);}if(!i&&n)i=await this.forceUserRefreshInternal();else if(!i&&!t){if(e?.useRedirectFlow)return await this.loginWithRedirectInternal(e?.directLoginOptions),null;i=await this.loginWithPopup(e?.directLoginOptions);}return i&&this.handleSuccessfulLogin(i),i},"login")}async loginWithRedirect(e){await this.loginWithRedirectInternal(e);}async loginCallback(){return v(async()=>{let e=await this.loginCallbackInternal();return e&&this.handleSuccessfulLogin(e),e},"loginCallback")}async logout(){await v(async()=>{await this.logoutInternal(),this.eventEmitter.emit("loggedOut");},"logout");}async getUser(){return this.getUserInternal()}async getUserOrLogin(){let e=null;try{e=await this.getUserInternal();}catch(n){k.warn("Failed to retrieve a cached user session",n);}if(e)return e;let t=await this.loginWithPopup();return this.handleSuccessfulLogin(t),t}async getUserZkEvm(){return this.getUserZkEvmInternal()}async getIdToken(){return v(async()=>(await this.getUserInternal())?.idToken,"getIdToken",!1)}async getAccessToken(){return v(async()=>(await this.getUserInternal())?.accessToken,"getAccessToken",!1,!1)}async isLoggedIn(){return await this.getUser()!==null}async forceUserRefresh(){return this.forceUserRefreshInternal()}forceUserRefreshInBackground(){this.forceUserRefreshInBackgroundInternal();}async loginWithPKCEFlow(e,t){return v(async()=>this.getPKCEAuthorizationUrl(e,t),"loginWithPKCEFlow")}async loginWithPKCEFlowCallback(e,t){return v(async()=>{let n=await this.loginWithPKCEFlowCallbackInternal(e,t);return this.handleSuccessfulLogin(n),n},"loginWithPKCEFlowCallback")}async storeTokens(e){return v(async()=>{let t=await this.storeTokensInternal(e);return this.handleSuccessfulLogin(t),t},"storeTokens")}async getLogoutUrl(){return v(async()=>(await this.userManager.removeUser(),this.eventEmitter.emit("loggedOut"),await this.getLogoutUrlInternal()||void 0),"getLogoutUrl")}async logoutSilentCallback(e){return v(()=>this.userManager.signoutSilentCallback(e),"logoutSilentCallback")}getConfig(){return this.config}async getClientId(){return this.config.oidcConfiguration.clientId}handleSuccessfulLogin(e){this.eventEmitter.emit("loggedIn",e),identify({passportId:e.profile.sub});}buildExtraQueryParams(e,t){let n={...this.userManager.settings?.extraQueryParams??{},rid:getDetail(Detail.RUNTIME_ID)||""};if(e){if(e.directLoginMethod==="email"){let i=e.email;i&&(n.direct=e.directLoginMethod,n.email=i);}else n.direct=e.directLoginMethod;e.marketingConsentStatus&&(n.marketingConsent=e.marketingConsentStatus);}return t&&(n.im_passport_trace_id=t),n}async loginWithRedirectInternal(e){await this.userManager.clearStaleState(),await O(async()=>{let t=this.buildExtraQueryParams(e);await this.userManager.signinRedirect({extraQueryParams:t});},"AUTHENTICATION_ERROR");}async loginWithPopup(e){return O(async()=>{let t,n;if(e)t=e;else if(!this.config.popupOverlayOptions?.disableHeadlessLoginPromptOverlay){let{imPassportTraceId:s,...c}=await this.embeddedLoginPrompt.displayEmbeddedLoginPrompt();t=c,n=s;}let i=window.crypto.randomUUID(),o=async()=>{let s=this.buildExtraQueryParams(t,n);return this.userManager.signinPopup({extraQueryParams:s,popupWindowFeatures:{width:410,height:450},popupWindowTarget:i})};return new Promise((s,c)=>{o().then(h=>s(r.mapOidcUserToDomainModel(h))).catch(h=>{if(!(h instanceof Error)||h.message!=="Attempted to navigate on a disposed window"){c(h);return}let L=!1,f=new D(this.config.popupOverlayOptions||{},!0);f.append(async()=>{try{if(L)window.open("",i);else {L=!0;let P=await o();f.remove(),s(r.mapOidcUserToDomainModel(P));}}catch(P){f.remove(),c(P);}},()=>{f.remove(),c(new Error("Popup closed by user"));});});})},"AUTHENTICATION_ERROR")}static mapOidcUserToDomainModel=e=>{let t,n;if(e.id_token){let o=De(e.id_token);t=o?.passport,o?.username&&(n=o?.username);}let i={expired:e.expired,idToken:e.id_token,accessToken:e.access_token,refreshToken:e.refresh_token,profile:{sub:e.profile.sub,email:e.profile.email,nickname:e.profile.nickname,username:n}};return t?.zkevm_eth_address&&t?.zkevm_user_admin_address&&(i.zkEvm={ethAddress:t.zkevm_eth_address,userAdminAddress:t.zkevm_user_admin_address}),i};static mapDeviceTokenResponseToOidcUser=e=>{let t=De(e.id_token);return new User({id_token:e.id_token,access_token:e.access_token,refresh_token:e.refresh_token,token_type:e.token_type,profile:{sub:t.sub,iss:t.iss,aud:t.aud,exp:t.exp,iat:t.iat,email:t.email,nickname:t.nickname,passport:t.passport,...t.username?{username:t.username}:{}}})};async loginCallbackInternal(){return O(async()=>{let e=await this.userManager.signinCallback();if(e)return r.mapOidcUserToDomainModel(e)},"AUTHENTICATION_ERROR")}async getPKCEAuthorizationUrl(e,t){let n=te(window.crypto.getRandomValues(new Uint8Array(32))),i=te(await $r(n)),o=te(window.crypto.getRandomValues(new Uint8Array(32))),{redirectUri:s,scope:c,audience:h,clientId:L}=this.config.oidcConfiguration;this.deviceCredentialsManager.savePKCEData({state:o,verifier:n});let f=new URL(Kr,this.config.authenticationDomain);if(f.searchParams.set("response_type","code"),f.searchParams.set("code_challenge",i),f.searchParams.set("code_challenge_method","S256"),f.searchParams.set("client_id",L),f.searchParams.set("redirect_uri",s),f.searchParams.set("state",o),c&&f.searchParams.set("scope",c),h&&f.searchParams.set("audience",h),e){if(e.directLoginMethod==="email"){let P=e.email;P&&(f.searchParams.set("direct",e.directLoginMethod),f.searchParams.set("email",P));}else f.searchParams.set("direct",e.directLoginMethod);e.marketingConsentStatus&&f.searchParams.set("marketingConsent",e.marketingConsentStatus);}return t&&f.searchParams.set("im_passport_trace_id",t),f.toString()}async loginWithPKCEFlowCallbackInternal(e,t){return O(async()=>{let n=this.deviceCredentialsManager.getPKCEData();if(!n)throw new Error("No code verifier or state for PKCE");if(t!==n.state)throw new Error("Provided state does not match stored state");let i=await this.getPKCEToken(e,n.verifier),o=r.mapDeviceTokenResponseToOidcUser(i),s=r.mapOidcUserToDomainModel(o);return await this.userManager.storeUser(o),s},"AUTHENTICATION_ERROR")}async getPKCEToken(e,t){return (await Ur.post(`${this.config.authenticationDomain}/oauth/token`,{client_id:this.config.oidcConfiguration.clientId,grant_type:"authorization_code",code_verifier:t,code:e,redirect_uri:this.config.oidcConfiguration.redirectUri},Vr)).data}async storeTokensInternal(e){return O(async()=>{let t=r.mapDeviceTokenResponseToOidcUser(e),n=r.mapOidcUserToDomainModel(t);return await this.userManager.storeUser(t),n},"AUTHENTICATION_ERROR")}async logoutInternal(){await O(async()=>{await this.userManager.revokeTokens(["refresh_token"]),this.logoutMode==="silent"?await this.userManager.signoutSilent():await this.userManager.signoutRedirect();},"LOGOUT_ERROR");}async getLogoutUrlInternal(){let e=this.userManager.settings?.metadata?.end_session_endpoint;return e||(k.warn("Failed to get logout URL"),null)}forceUserRefreshInBackgroundInternal(){this.refreshTokenAndUpdatePromise().catch(e=>{k.warn("Failed to refresh user token",e);});}async forceUserRefreshInternal(){return this.refreshTokenAndUpdatePromise().catch(e=>(k.warn("Failed to refresh user token",e),null))}async refreshTokenAndUpdatePromise(){return this.refreshingPromise?this.refreshingPromise:(this.refreshingPromise=new Promise((e,t)=>{(async()=>{try{let n=await this.userManager.signinSilent();if(n){e(r.mapOidcUserToDomainModel(n));return}e(null);}catch(n){let i="AUTHENTICATION_ERROR",o="Failed to refresh token",s=!0;if(n instanceof ErrorTimeout?(i="SILENT_LOGIN_ERROR",o=`${o}: ${n.message}`,s=!1):n instanceof ErrorResponse?(i="NOT_LOGGED_IN_ERROR",o=`${o}: ${n.message||n.error_description}`):n instanceof Error?o=`${o}: ${n.message}`:typeof n=="string"&&(o=`${o}: ${n}`),s)try{await this.userManager.removeUser();}catch(c){c instanceof Error&&(o=`${o}: Failed to remove user: ${c.message}`);}t(new E(o,i));}finally{this.refreshingPromise=null;}})();}),this.refreshingPromise)}async getUserInternal(e=t=>!0){if(this.refreshingPromise){let n=await this.refreshingPromise;return n&&e(n)?n:null}let t=await this.userManager.getUser();if(!t)return null;if(!Ne(t)){let n=r.mapOidcUserToDomainModel(t);if(n&&e(n))return n}if(t.refresh_token){let n=await this.refreshTokenAndUpdatePromise();if(n&&e(n))return n}return null}async getUserZkEvmInternal(){let e=await this.getUserInternal(q);if(!e)throw new Error("Failed to obtain a User with the required ZkEvm attributes");return e}};
|
|
390
390
|
|
|
391
|
-
export {
|
|
391
|
+
export { re as Auth, x as AuthConfiguration, J as AuthEvents, de as MarketingConsentStatus, E as PassportError, F as PassportErrorType, le as RollupType, A as TypedEventEmitter, ae as isAPIError, q as isUserZkEvm, O as withPassportError };
|
package/dist/node/index.cjs
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var oidcClientTs = require('oidc-client-ts');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
4
|
+
var ve = require('axios');
|
|
5
|
+
var X = require('jwt-decode');
|
|
6
|
+
var Ee = require('localforage');
|
|
7
7
|
var metrics = require('@imtbl/metrics');
|
|
8
8
|
var events = require('events');
|
|
9
9
|
|
|
10
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
12
|
+
var ve__default = /*#__PURE__*/_interopDefault(ve);
|
|
13
|
+
var X__default = /*#__PURE__*/_interopDefault(X);
|
|
14
|
+
var Ee__default = /*#__PURE__*/_interopDefault(Ee);
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var L=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION="INVALID_CONFIGURATION",s.WALLET_CONNECTION_ERROR="WALLET_CONNECTION_ERROR",s.NOT_LOGGED_IN_ERROR="NOT_LOGGED_IN_ERROR",s.SILENT_LOGIN_ERROR="SILENT_LOGIN_ERROR",s.REFRESH_TOKEN_ERROR="REFRESH_TOKEN_ERROR",s.USER_REGISTRATION_ERROR="USER_REGISTRATION_ERROR",s.USER_NOT_REGISTERED_ERROR="USER_NOT_REGISTERED_ERROR",s.LOGOUT_ERROR="LOGOUT_ERROR",s.TRANSFER_ERROR="TRANSFER_ERROR",s.CREATE_ORDER_ERROR="CREATE_ORDER_ERROR",s.CANCEL_ORDER_ERROR="CANCEL_ORDER_ERROR",s.EXCHANGE_TRANSFER_ERROR="EXCHANGE_TRANSFER_ERROR",s.CREATE_TRADE_ERROR="CREATE_TRADE_ERROR",s.OPERATION_NOT_SUPPORTED_ERROR="OPERATION_NOT_SUPPORTED_ERROR",s.LINK_WALLET_ALREADY_LINKED_ERROR="LINK_WALLET_ALREADY_LINKED_ERROR",s.LINK_WALLET_MAX_WALLETS_LINKED_ERROR="LINK_WALLET_MAX_WALLETS_LINKED_ERROR",s.LINK_WALLET_VALIDATION_ERROR="LINK_WALLET_VALIDATION_ERROR",s.LINK_WALLET_DUPLICATE_NONCE_ERROR="LINK_WALLET_DUPLICATE_NONCE_ERROR",s.LINK_WALLET_GENERIC_ERROR="LINK_WALLET_GENERIC_ERROR",s.SERVICE_UNAVAILABLE_ERROR="SERVICE_UNAVAILABLE_ERROR",s.TRANSACTION_REJECTED="TRANSACTION_REJECTED",s))(L||{});function D(o){return typeof o=="object"&&o!==null&&"code"in o&&"message"in o}var p=class extends Error{type;constructor(e,t){super(e),this.type=t;}},g=async(o,e)=>{try{return await o()}catch(t){let r;throw t instanceof p&&t.type==="SERVICE_UNAVAILABLE_ERROR"?new p(t.message,t.type):(ve.isAxiosError(t)&&t.response?.data&&D(t.response.data)?r=t.response.data.message:r=t.message,new p(r,e))}};var ee=(o,e,t)=>{let r=e.map(n=>!o[n]&&n).filter(n=>n).join(", ");if(r!==""){let n=`${r} cannot be null`;throw new p(n,"INVALID_CONFIGURATION")}},_=class{authenticationDomain;passportDomain;oidcConfiguration;crossSdkBridgeEnabled;popupOverlayOptions;constructor({authenticationDomain:e,passportDomain:t,crossSdkBridgeEnabled:r,popupOverlayOptions:n,...i}){ee(i,["clientId","redirectUri"]),this.oidcConfiguration=i,this.crossSdkBridgeEnabled=r||!1,this.popupOverlayOptions=n,this.authenticationDomain=e||"https://auth.immutable.com",this.passportDomain=t||"https://passport.immutable.com";}};var N=(e=>(e.ZKEVM="zkEvm",e))(N||{}),w=o=>!!o.zkEvm,S=(t=>(t.OptedIn="opted_in",t.Unsubscribed="unsubscribed",t))(S||{}),U=(t=>(t.LOGGED_OUT="loggedOut",t.LOGGED_IN="loggedIn",t))(U||{});var F="im_passport_embedded_login_prompt";var E="passport-overlay",R="passport-overlay-contents",P=`${E}-close`,I=`${E}-try-again`,H=`
|
|
17
17
|
<svg
|
|
18
18
|
viewBox="0 0 20 20"
|
|
19
19
|
fill="none"
|
|
@@ -25,7 +25,7 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
25
25
|
fill="#F3F3F3"
|
|
26
26
|
/>
|
|
27
27
|
</svg>
|
|
28
|
-
`,
|
|
28
|
+
`,V=`
|
|
29
29
|
<svg
|
|
30
30
|
viewBox="0 0 17 16"
|
|
31
31
|
fill="none"
|
|
@@ -39,7 +39,7 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
39
39
|
fill="#E01A3D"
|
|
40
40
|
/>
|
|
41
41
|
</svg>
|
|
42
|
-
`,
|
|
42
|
+
`,b=`
|
|
43
43
|
<svg
|
|
44
44
|
style="
|
|
45
45
|
max-width: 123px !important;
|
|
@@ -222,9 +222,9 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
222
222
|
</clipPath>
|
|
223
223
|
</defs>
|
|
224
224
|
</svg>
|
|
225
|
-
`;var
|
|
225
|
+
`;var te=()=>`
|
|
226
226
|
<button
|
|
227
|
-
id="${
|
|
227
|
+
id="${P}"
|
|
228
228
|
style="
|
|
229
229
|
background: #f3f3f326 !important;
|
|
230
230
|
border: none !important;
|
|
@@ -240,9 +240,9 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
240
240
|
justify-content: center !important;
|
|
241
241
|
"
|
|
242
242
|
>
|
|
243
|
-
${
|
|
243
|
+
${H}
|
|
244
244
|
</button>
|
|
245
|
-
`,
|
|
245
|
+
`,G=()=>`
|
|
246
246
|
<button
|
|
247
247
|
id="${I}"
|
|
248
248
|
style="
|
|
@@ -259,8 +259,8 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
259
259
|
>
|
|
260
260
|
Try again
|
|
261
261
|
</button>
|
|
262
|
-
`,
|
|
263
|
-
${
|
|
262
|
+
`,re=()=>`
|
|
263
|
+
${b}
|
|
264
264
|
<div
|
|
265
265
|
style="
|
|
266
266
|
color: #e01a3d !important;
|
|
@@ -270,7 +270,7 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
270
270
|
margin-bottom: 10px !important;
|
|
271
271
|
"
|
|
272
272
|
>
|
|
273
|
-
${
|
|
273
|
+
${V}
|
|
274
274
|
Pop-up blocked
|
|
275
275
|
</div>
|
|
276
276
|
<p style="
|
|
@@ -283,9 +283,9 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
283
283
|
If the problem continues, adjust your<br />
|
|
284
284
|
browser settings.
|
|
285
285
|
</p>
|
|
286
|
-
${
|
|
287
|
-
`,
|
|
288
|
-
${
|
|
286
|
+
${G()}
|
|
287
|
+
`,ne=()=>`
|
|
288
|
+
${b}
|
|
289
289
|
<p style="
|
|
290
290
|
color: #b6b6b6 !important;
|
|
291
291
|
text-align: center !important;
|
|
@@ -294,10 +294,10 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
294
294
|
>
|
|
295
295
|
Secure pop-up not showing?<br />We'll help you re-launch
|
|
296
296
|
</p>
|
|
297
|
-
${
|
|
298
|
-
`,
|
|
297
|
+
${G()}
|
|
298
|
+
`,B=o=>`
|
|
299
299
|
<div
|
|
300
|
-
id="${
|
|
300
|
+
id="${E}"
|
|
301
301
|
style="
|
|
302
302
|
position: fixed !important;
|
|
303
303
|
top: 0 !important;
|
|
@@ -320,9 +320,9 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
320
320
|
z-index: 2147483647 !important;
|
|
321
321
|
"
|
|
322
322
|
>
|
|
323
|
-
${
|
|
323
|
+
${te()}
|
|
324
324
|
<div
|
|
325
|
-
id="${
|
|
325
|
+
id="${R}"
|
|
326
326
|
style="
|
|
327
327
|
display: flex !important;
|
|
328
328
|
flex-direction: column !important;
|
|
@@ -330,12 +330,12 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
330
330
|
max-width: 400px !important;
|
|
331
331
|
"
|
|
332
332
|
>
|
|
333
|
-
${
|
|
333
|
+
${o??""}
|
|
334
334
|
</div>
|
|
335
335
|
</div>
|
|
336
|
-
`,
|
|
336
|
+
`,Z=()=>`
|
|
337
337
|
<div
|
|
338
|
-
id="${
|
|
338
|
+
id="${E}"
|
|
339
339
|
style="
|
|
340
340
|
position: fixed;
|
|
341
341
|
top: 0;
|
|
@@ -353,7 +353,7 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
353
353
|
"
|
|
354
354
|
>
|
|
355
355
|
<div
|
|
356
|
-
id="${
|
|
356
|
+
id="${R}"
|
|
357
357
|
style="
|
|
358
358
|
display: flex;
|
|
359
359
|
flex-direction: column;
|
|
@@ -362,7 +362,7 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
362
362
|
"
|
|
363
363
|
/>
|
|
364
364
|
</div>
|
|
365
|
-
`;function
|
|
365
|
+
`;function A({id:o,href:e,rel:t,crossOrigin:r}){let n=`${E}-${o}`;if(!document.getElementById(n)){let i=document.createElement("link");i.id=n,i.href=e,t&&(i.rel=t),r&&(i.crossOrigin=r),document.head.appendChild(i);}}var K=()=>B(re()),W=()=>B(ne());var m=class{static overlay;static onCloseListener;static closeButton;static remove(){this.onCloseListener&&this.closeButton?.removeEventListener?.("click",this.onCloseListener),this.overlay?.remove(),this.closeButton=void 0,this.onCloseListener=void 0,this.overlay=void 0;}static appendOverlay(e,t){if(!this.overlay){let r=document.createElement("div");r.innerHTML=Z(),document.body.insertAdjacentElement("beforeend",r);let n=document.querySelector(`#${R}`);n&&n.appendChild(e),r.addEventListener("click",t),this.overlay=r;}}};var se=660,ae=440,le="16px",$="passport-embedded-login-keyframes",Y="passport-embedded-login-iframe",O=class o{config;constructor(e){this.config=e;}getHref=()=>`${this.config.authenticationDomain}/im-embedded-login-prompt?client_id=${this.config.oidcConfiguration.clientId}&rid=${metrics.getDetail(metrics.Detail.RUNTIME_ID)}`;static appendIFrameStylesIfNeeded=()=>{if(document.getElementById($))return;let e=document.createElement("style");e.id=$,e.textContent=`
|
|
366
366
|
@keyframes passportEmbeddedLoginPromptPopBounceIn {
|
|
367
367
|
0% {
|
|
368
368
|
opacity: 0.5;
|
|
@@ -381,7 +381,7 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
381
381
|
}
|
|
382
382
|
|
|
383
383
|
@media (max-height: 400px) {
|
|
384
|
-
#${
|
|
384
|
+
#${Y} {
|
|
385
385
|
width: 100% !important;
|
|
386
386
|
max-width: none !important;
|
|
387
387
|
}
|
|
@@ -395,15 +395,16 @@ var P=(s=>(s.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",s.INVALID_CONFIGURATION
|
|
|
395
395
|
opacity: 1;
|
|
396
396
|
}
|
|
397
397
|
}
|
|
398
|
-
`,document.head.appendChild(e);};getEmbeddedLoginIFrame=()=>{let e=document.createElement("iframe");return e.id=z,e.src=this.getHref(),e.style.height="100vh",e.style.width="100vw",e.style.maxHeight=`${le}px`,e.style.maxWidth=`${de}px`,e.style.borderRadius=ce,e.style.opacity="0",e.style.transform="scale(0.6)",e.style.animation="passportEmbeddedLoginPromptPopBounceIn 1s ease forwards",n.appendIFrameStylesIfNeeded(),e};displayEmbeddedLoginPrompt(){return new Promise((e,t)=>{let r=this.getEmbeddedLoginIFrame(),i=({data:o,origin:d})=>{if(!(d!==this.config.authenticationDomain||o.eventType!==H))switch(o.messageType){case"login_method_selected":{let l=o.payload;window.removeEventListener("message",i),u.remove(),e(l);break}case"login_prompt_error":{window.removeEventListener("message",i),u.remove(),t(new Error("Error during embedded login prompt",{cause:o.payload}));break}case"login_prompt_closed":{window.removeEventListener("message",i),u.remove(),t(new Error("Popup closed by user"));break}default:window.removeEventListener("message",i),u.remove(),t(new Error(`Unsupported message type: ${o.messageType}`));break}};window.addEventListener("message",i),u.appendOverlay(r,()=>{window.removeEventListener("message",i),u.remove(),t(new Error("Popup closed by user"));});})}};var C=class{emitter=new events.EventEmitter;emit(e,...t){this.emitter.emit(e,...t);}on(e,t){this.emitter.on(e,t);}removeListener(e,t){this.emitter.removeListener(e,t);}};var p=async(n,e,t=!0,r=!0)=>{let i=metrics.trackFlow("passport",e,t);try{return await n(i)}catch(o){throw o instanceof Error?metrics.trackError("passport",e,o,{flowId:i.details.flowId}):i.addEvent("errored"),o}finally{r&&i.addEvent("End");}};var j="pkce_state",Q="pkce_verifier",fe=3600,v=class{isTokenValid(e){try{let r=J__default.default(e).exp??0,i=Date.now()/1e3+fe;return r>i}catch{return !1}}savePKCEData(e){localStorage.setItem(j,e.state),localStorage.setItem(Q,e.verifier);}getPKCEData(){let e=localStorage.getItem(j),t=localStorage.getItem(Q);return e&&t?{state:e,verifier:t}:null}};var Ee=(...n)=>{if(typeof process>"u")return;process?.env?.JEST_WORKER_ID===void 0&&console.warn(...n);},_={warn:Ee};function q(n){try{let e=J__default.default(n),t=Math.floor(Date.now()/1e3);return e.exp?e.exp<=t+30:!0}catch{return !0}}function X(n){let{id_token:e,access_token:t}=n;return !t||!e?!0:q(t)||q(e)}var T=class{disableGenericPopupOverlay;disableBlockedPopupOverlay;overlay;isBlockedOverlay;tryAgainListener;onCloseListener;constructor(e,t=!1){this.disableBlockedPopupOverlay=e.disableBlockedPopupOverlay||!1,this.disableGenericPopupOverlay=e.disableGenericPopupOverlay||!1,this.isBlockedOverlay=t;}append(e,t){this.shouldAppendOverlay()&&(this.appendOverlay(),this.updateTryAgainButton(e),this.updateCloseButton(t));}update(e){this.updateTryAgainButton(e);}remove(){this.overlay&&this.overlay.remove();}shouldAppendOverlay(){return !(this.disableGenericPopupOverlay&&this.disableBlockedPopupOverlay||this.disableGenericPopupOverlay&&!this.isBlockedOverlay||this.disableBlockedPopupOverlay&&this.isBlockedOverlay)}appendOverlay(){if(!this.overlay){k({id:"link-googleapis",href:"https://fonts.googleapis.com"}),k({id:"link-gstatic",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),k({id:"link-roboto",href:"https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap",rel:"stylesheet"});let t=document.createElement("div");t.innerHTML=this.isBlockedOverlay?$():W(),document.body.insertAdjacentElement("beforeend",t),this.overlay=t;}}updateTryAgainButton(e){let t=document.getElementById(I);t&&(this.tryAgainListener&&t.removeEventListener("click",this.tryAgainListener),this.tryAgainListener=e,t.addEventListener("click",e));}updateCloseButton(e){let t=document.getElementById(L);t&&(this.onCloseListener&&t.removeEventListener("click",this.onCloseListener),this.onCloseListener=e,t.addEventListener("click",e));}};var w=class{storage;constructor(e,t){this.storage=Ce__default.default.createInstance({name:e,driver:t});}get length(){return this.storage.length()}clear(){return this.storage.clear()}getItem(e){return this.storage.getItem(e)}key(e){return this.storage.key(e)}async removeItem(e){await this.storage.removeItem(e);}async setItem(e,t){await this.storage.setItem(e,t);}};var Ue=500,be={headers:{"Content-Type":"application/x-www-form-urlencoded"}},xe="/v2/logout",Me="/im-logged-out",De="/authorize",Ne=n=>n?Me:xe,Se=n=>{let{authenticationDomain:e,oidcConfiguration:t}=n,r;n.crossSdkBridgeEnabled?r=new w("ImmutableSDKPassport",Ce__default.default.INDEXEDDB):typeof window<"u"?r=window.localStorage:r=new oidcClientTs.InMemoryWebStorage;let i=new oidcClientTs.WebStorageStateStore({store:r}),o=new URL(Ne(n.crossSdkBridgeEnabled),e.replace(/^(?:https?:\/\/)?(.*)/,"https://$1"));return o.searchParams.set("client_id",t.clientId),t.logoutRedirectUri&&o.searchParams.set("returnTo",t.logoutRedirectUri),{authority:e,redirect_uri:t.redirectUri,popup_redirect_uri:t.popupRedirectUri||t.redirectUri,client_id:t.clientId,metadata:{authorization_endpoint:`${e}/authorize`,token_endpoint:`${e}/oauth/token`,userinfo_endpoint:`${e}/userinfo`,end_session_endpoint:o.toString(),revocation_endpoint:`${e}/oauth/revoke`},automaticSilentRenew:!1,scope:t.scope,userStore:i,revokeTokenTypes:["refresh_token"],extraQueryParams:{...t.audience?{audience:t.audience}:{}}}};function M(n){return btoa(String.fromCharCode(...new Uint8Array(n))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}async function Fe(n){let t=new TextEncoder().encode(n);return window.crypto.subtle.digest("SHA-256",t)}var D=class n{config;userManager;deviceCredentialsManager;embeddedLoginPrompt;logoutMode;refreshingPromise=null;eventEmitter;constructor(e){this.config=new R(e),this.embeddedLoginPrompt=new y(this.config),this.userManager=new oidcClientTs.UserManager(Se(this.config)),this.deviceCredentialsManager=new v,this.logoutMode=this.config.oidcConfiguration.logoutMode||"redirect",this.eventEmitter=new C,metrics.track("passport","initialise");}async login(e){return p(async()=>{let{useCachedSession:t=!1,useSilentLogin:r}=e||{},i=null;try{i=await this.getUserInternal();}catch(o){if(o instanceof Error&&!o.message.includes("Unknown or invalid refresh token")&&metrics.trackError("passport","login",o),t)throw o;_.warn("Failed to retrieve a cached user session",o);}if(!i&&r)i=await this.forceUserRefreshInternal();else if(!i&&!t){if(e?.useRedirectFlow)return await this.loginWithRedirectInternal(e?.directLoginOptions),null;i=await this.loginWithPopup(e?.directLoginOptions);}return i&&(this.eventEmitter.emit("loggedIn",i),metrics.identify({passportId:i.profile.sub})),i},"login")}async loginWithRedirect(e){await this.loginWithRedirectInternal(e);}async loginCallback(){return p(async()=>{let e=await this.loginCallbackInternal();return e&&(this.eventEmitter.emit("loggedIn",e),metrics.identify({passportId:e.profile.sub})),e},"loginCallback")}async logout(){await p(async()=>{await this.logoutInternal(),this.eventEmitter.emit("loggedOut");},"logout");}async getUser(){return p(async()=>this.getUserInternal(),"getUserInfo",!1)}async getUserOrLogin(){let e=null;try{e=await this.getUserInternal();}catch(t){_.warn("Failed to retrieve a cached user session",t);}return e||this.loginWithPopup()}async getUserZkEvm(){return this.getUserZkEvmInternal()}async getIdToken(){return p(async()=>(await this.getUserInternal())?.idToken,"getIdToken",!1)}async getAccessToken(){return p(async()=>(await this.getUserInternal())?.accessToken,"getAccessToken",!1,!1)}async isLoggedIn(){return await this.getUser()!==null}async forceUserRefresh(){return this.forceUserRefreshInternal()}forceUserRefreshInBackground(){this.forceUserRefreshInBackgroundInternal();}async loginWithPKCEFlow(e,t){return p(async()=>this.getPKCEAuthorizationUrl(e,t),"loginWithPKCEFlow")}async loginWithPKCEFlowCallback(e,t){return p(async()=>{let r=await this.loginWithPKCEFlowCallbackInternal(e,t);return this.eventEmitter.emit("loggedIn",r),metrics.identify({passportId:r.profile.sub}),r},"loginWithPKCEFlowCallback")}async storeTokens(e){return p(async()=>{let t=await this.storeTokensInternal(e);return this.eventEmitter.emit("loggedIn",t),metrics.identify({passportId:t.profile.sub}),t},"storeTokens")}async getLogoutUrl(){return p(async()=>(await this.userManager.removeUser(),this.eventEmitter.emit("loggedOut"),await this.getLogoutUrlInternal()||void 0),"getLogoutUrl")}async logoutSilentCallback(e){return p(()=>this.userManager.signoutSilentCallback(e),"logoutSilentCallback")}getConfig(){return this.config}async getClientId(){return this.config.oidcConfiguration.clientId}buildExtraQueryParams(e,t){let r={...this.userManager.settings?.extraQueryParams??{},rid:metrics.getDetail(metrics.Detail.RUNTIME_ID)||"",third_party_a_id:""};if(e){if(e.directLoginMethod==="email"){let i=e.email;i&&(r.direct=e.directLoginMethod,r.email=i);}else r.direct=e.directLoginMethod;e.marketingConsentStatus&&(r.marketingConsent=e.marketingConsentStatus);}return t&&(r.im_passport_trace_id=t),r}async loginWithRedirectInternal(e){await this.userManager.clearStaleState(),await f(async()=>{let t=this.buildExtraQueryParams(e);await this.userManager.signinRedirect({extraQueryParams:t});},"AUTHENTICATION_ERROR");}async loginWithPopup(e){return f(async()=>{let t,r;if(e)t=e;else if(!this.config.popupOverlayOptions?.disableHeadlessLoginPromptOverlay){let{imPassportTraceId:d,...l}=await this.embeddedLoginPrompt.displayEmbeddedLoginPrompt();t=l,r=d;}let i=window.crypto.randomUUID(),o=async()=>{let d=this.buildExtraQueryParams(t,r),l=this.userManager.signinPopup({extraQueryParams:d,popupWindowFeatures:{width:410,height:450},popupWindowTarget:i}),c=window.open("",i);if(c){let E=new Promise((a,g)=>{let N=setInterval(()=>{c.closed&&(clearInterval(N),g(new Error("Popup closed by user")));},Ue);l.finally(()=>{clearInterval(N),c.close();});});return Promise.race([l,E])}return l};return new Promise((d,l)=>{o().then(c=>d(n.mapOidcUserToDomainModel(c))).catch(c=>{if(!(c instanceof Error)||c.message!=="Attempted to navigate on a disposed window"){l(c);return}let E=!1,a=new T(this.config.popupOverlayOptions||{},!0);a.append(async()=>{try{if(E)window.open("",i);else {E=!0;let g=await o();a.remove(),d(n.mapOidcUserToDomainModel(g));}}catch(g){a.remove(),l(g);}},()=>{a.remove(),l(new Error("Popup closed by user"));});});})},"AUTHENTICATION_ERROR")}static mapOidcUserToDomainModel=e=>{let t;e.id_token&&(t=J__default.default(e.id_token)?.passport);let r={expired:e.expired,idToken:e.id_token,accessToken:e.access_token,refreshToken:e.refresh_token,profile:{sub:e.profile.sub,email:e.profile.email,nickname:e.profile.nickname}};return t?.zkevm_eth_address&&t?.zkevm_user_admin_address&&(r.zkEvm={ethAddress:t.zkevm_eth_address,userAdminAddress:t.zkevm_user_admin_address}),r};static mapDeviceTokenResponseToOidcUser=e=>{let t=J__default.default(e.id_token);return new oidcClientTs.User({id_token:e.id_token,access_token:e.access_token,refresh_token:e.refresh_token,token_type:e.token_type,profile:{sub:t.sub,iss:t.iss,aud:t.aud,exp:t.exp,iat:t.iat,email:t.email,nickname:t.nickname,passport:t.passport}})};static shouldUseSigninPopupCallback(){try{let r=`oidc.${new URLSearchParams(window.location.search).get("state")}`,i=localStorage.getItem(r);return JSON.parse(i||"{}")?.request_type==="si:p"}catch{return !1}}async loginCallbackInternal(){return f(async()=>{if(n.shouldUseSigninPopupCallback()){await this.userManager.signinPopupCallback(void 0,!0);return}let e=await this.userManager.signinCallback();if(e)return n.mapOidcUserToDomainModel(e)},"AUTHENTICATION_ERROR")}async getPKCEAuthorizationUrl(e,t){let r=M(window.crypto.getRandomValues(new Uint8Array(32))),i=M(await Fe(r)),o=M(window.crypto.getRandomValues(new Uint8Array(32))),{redirectUri:d,scope:l,audience:c,clientId:E}=this.config.oidcConfiguration;this.deviceCredentialsManager.savePKCEData({state:o,verifier:r});let a=new URL(De,this.config.authenticationDomain);if(a.searchParams.set("response_type","code"),a.searchParams.set("code_challenge",i),a.searchParams.set("code_challenge_method","S256"),a.searchParams.set("client_id",E),a.searchParams.set("redirect_uri",d),a.searchParams.set("state",o),l&&a.searchParams.set("scope",l),c&&a.searchParams.set("audience",c),e){if(e.directLoginMethod==="email"){let g=e.email;g&&(a.searchParams.set("direct",e.directLoginMethod),a.searchParams.set("email",g));}else a.searchParams.set("direct",e.directLoginMethod);e.marketingConsentStatus&&a.searchParams.set("marketingConsent",e.marketingConsentStatus);}return t&&a.searchParams.set("im_passport_trace_id",t),a.toString()}async loginWithPKCEFlowCallbackInternal(e,t){return f(async()=>{let r=this.deviceCredentialsManager.getPKCEData();if(!r)throw new Error("No code verifier or state for PKCE");if(t!==r.state)throw new Error("Provided state does not match stored state");let i=await this.getPKCEToken(e,r.verifier),o=n.mapDeviceTokenResponseToOidcUser(i),d=n.mapOidcUserToDomainModel(o);return await this.userManager.storeUser(o),d},"AUTHENTICATION_ERROR")}async getPKCEToken(e,t){return (await Pe__default.default.post(`${this.config.authenticationDomain}/oauth/token`,{client_id:this.config.oidcConfiguration.clientId,grant_type:"authorization_code",code_verifier:t,code:e,redirect_uri:this.config.oidcConfiguration.redirectUri},be)).data}async storeTokensInternal(e){return f(async()=>{let t=n.mapDeviceTokenResponseToOidcUser(e),r=n.mapOidcUserToDomainModel(t);return await this.userManager.storeUser(t),r},"AUTHENTICATION_ERROR")}async logoutInternal(){await f(async()=>{await this.userManager.revokeTokens(["refresh_token"]),this.logoutMode==="silent"?await this.userManager.signoutSilent():await this.userManager.signoutRedirect();},"LOGOUT_ERROR");}async getLogoutUrlInternal(){let e=this.userManager.settings?.metadata?.end_session_endpoint;return e||(_.warn("Failed to get logout URL"),null)}forceUserRefreshInBackgroundInternal(){this.refreshTokenAndUpdatePromise().catch(e=>{_.warn("Failed to refresh user token",e);});}async forceUserRefreshInternal(){return this.refreshTokenAndUpdatePromise().catch(e=>(_.warn("Failed to refresh user token",e),null))}async refreshTokenAndUpdatePromise(){return this.refreshingPromise?this.refreshingPromise:(this.refreshingPromise=new Promise((e,t)=>{(async()=>{try{let r=await this.userManager.signinSilent();if(r){e(n.mapOidcUserToDomainModel(r));return}e(null);}catch(r){let i="AUTHENTICATION_ERROR",o="Failed to refresh token",d=!0;if(r instanceof oidcClientTs.ErrorTimeout?(i="SILENT_LOGIN_ERROR",o=`${o}: ${r.message}`,d=!1):r instanceof oidcClientTs.ErrorResponse?(i="NOT_LOGGED_IN_ERROR",o=`${o}: ${r.message||r.error_description}`):r instanceof Error?o=`${o}: ${r.message}`:typeof r=="string"&&(o=`${o}: ${r}`),d)try{await this.userManager.removeUser();}catch(l){l instanceof Error&&(o=`${o}: Failed to remove user: ${l.message}`);}t(new m(o,i));}finally{this.refreshingPromise=null;}})();}),this.refreshingPromise)}async getUserInternal(e=t=>!0){if(this.refreshingPromise){let r=await this.refreshingPromise;return r&&e(r)?r:null}let t=await this.userManager.getUser();if(!t)return null;if(!X(t)){let r=n.mapOidcUserToDomainModel(t);if(r&&e(r))return r}if(t.refresh_token){let r=await this.refreshTokenAndUpdatePromise();if(r&&e(r))return r}return null}async getUserZkEvmInternal(){let e=await this.getUserInternal(U);if(!e)throw new Error("Failed to obtain a User with the required ZkEvm attributes");return e}};
|
|
398
|
+
`,document.head.appendChild(e);};getEmbeddedLoginIFrame=()=>{let e=document.createElement("iframe");return e.id=Y,e.src=this.getHref(),e.style.height="100vh",e.style.width="100vw",e.style.maxHeight=`${se}px`,e.style.maxWidth=`${ae}px`,e.style.borderRadius=le,e.style.opacity="0",e.style.transform="scale(0.6)",e.style.animation="passportEmbeddedLoginPromptPopBounceIn 1s ease forwards",o.appendIFrameStylesIfNeeded(),e};displayEmbeddedLoginPrompt(){return new Promise((e,t)=>{let r=this.getEmbeddedLoginIFrame(),n=({data:i,origin:l})=>{if(!(l!==this.config.authenticationDomain||i.eventType!==F))switch(i.messageType){case"login_method_selected":{let d=i.payload;window.removeEventListener("message",n),m.remove(),e(d);break}case"login_prompt_error":{window.removeEventListener("message",n),m.remove(),t(new Error("Error during embedded login prompt",{cause:i.payload}));break}case"login_prompt_closed":{window.removeEventListener("message",n),m.remove(),t(new Error("Popup closed by user"));break}default:window.removeEventListener("message",n),m.remove(),t(new Error(`Unsupported message type: ${i.messageType}`));break}};window.addEventListener("message",n),m.appendOverlay(r,()=>{window.removeEventListener("message",n),m.remove(),t(new Error("Popup closed by user"));});})}};var h=class{emitter=new events.EventEmitter;emit(e,...t){this.emitter.emit(e,...t);}on(e,t){this.emitter.on(e,t);}removeListener(e,t){this.emitter.removeListener(e,t);}};var c=async(o,e,t=!0,r=!0)=>{let n=metrics.trackFlow("passport",e,t);try{return await o(n)}catch(i){throw i instanceof Error?metrics.trackError("passport",e,i,{flowId:n.details.flowId}):n.addEvent("errored"),i}finally{r&&n.addEvent("End");}};var z="pkce_state",j="pkce_verifier",ue=3600,y=class{isTokenValid(e){try{let r=X__default.default(e).exp??0,n=Date.now()/1e3+ue;return r>n}catch{return !1}}savePKCEData(e){localStorage.setItem(z,e.state),localStorage.setItem(j,e.verifier);}getPKCEData(){let e=localStorage.getItem(z),t=localStorage.getItem(j);return e&&t?{state:e,verifier:t}:null}};var ge=(...o)=>{if(typeof process>"u")return;process?.env?.JEST_WORKER_ID===void 0&&console.warn(...o);},C={warn:ge};function Q(o){try{let e=X__default.default(o),t=Math.floor(Date.now()/1e3);return e.exp?e.exp<=t+30:!0}catch{return !0}}function J(o){let{id_token:e,access_token:t}=o;return !t||!e?!0:Q(t)||Q(e)}var v=class{disableGenericPopupOverlay;disableBlockedPopupOverlay;overlay;isBlockedOverlay;tryAgainListener;onCloseListener;constructor(e,t=!1){this.disableBlockedPopupOverlay=e.disableBlockedPopupOverlay||!1,this.disableGenericPopupOverlay=e.disableGenericPopupOverlay||!1,this.isBlockedOverlay=t;}append(e,t){this.shouldAppendOverlay()&&(this.appendOverlay(),this.updateTryAgainButton(e),this.updateCloseButton(t));}update(e){this.updateTryAgainButton(e);}remove(){this.overlay&&this.overlay.remove();}shouldAppendOverlay(){return !(this.disableGenericPopupOverlay&&this.disableBlockedPopupOverlay||this.disableGenericPopupOverlay&&!this.isBlockedOverlay||this.disableBlockedPopupOverlay&&this.isBlockedOverlay)}appendOverlay(){if(!this.overlay){A({id:"link-googleapis",href:"https://fonts.googleapis.com"}),A({id:"link-gstatic",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),A({id:"link-roboto",href:"https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap",rel:"stylesheet"});let t=document.createElement("div");t.innerHTML=this.isBlockedOverlay?K():W(),document.body.insertAdjacentElement("beforeend",t),this.overlay=t;}}updateTryAgainButton(e){let t=document.getElementById(I);t&&(this.tryAgainListener&&t.removeEventListener("click",this.tryAgainListener),this.tryAgainListener=e,t.addEventListener("click",e));}updateCloseButton(e){let t=document.getElementById(P);t&&(this.onCloseListener&&t.removeEventListener("click",this.onCloseListener),this.onCloseListener=e,t.addEventListener("click",e));}};var k=class{storage;constructor(e,t){this.storage=Ee__default.default.createInstance({name:e,driver:t});}get length(){return this.storage.length()}clear(){return this.storage.clear()}getItem(e){return this.storage.getItem(e)}key(e){return this.storage.key(e)}async removeItem(e){await this.storage.removeItem(e);}async setItem(e,t){await this.storage.setItem(e,t);}};var we={headers:{"Content-Type":"application/x-www-form-urlencoded"}},Ue="/v2/logout",be="/im-logged-out",xe="/authorize",Me=o=>o?be:Ue,De=o=>{let{authenticationDomain:e,oidcConfiguration:t}=o,r;o.crossSdkBridgeEnabled?r=new k("ImmutableSDKPassport",Ee__default.default.INDEXEDDB):typeof window<"u"?r=window.localStorage:r=new oidcClientTs.InMemoryWebStorage;let n=new oidcClientTs.WebStorageStateStore({store:r}),i=new URL(Me(o.crossSdkBridgeEnabled),e.replace(/^(?:https?:\/\/)?(.*)/,"https://$1"));return i.searchParams.set("client_id",t.clientId),t.logoutRedirectUri&&i.searchParams.set("returnTo",t.logoutRedirectUri),{authority:e,redirect_uri:t.redirectUri,popup_redirect_uri:t.popupRedirectUri||t.redirectUri,client_id:t.clientId,metadata:{authorization_endpoint:`${e}/authorize`,token_endpoint:`${e}/oauth/token`,userinfo_endpoint:`${e}/userinfo`,end_session_endpoint:i.toString(),revocation_endpoint:`${e}/oauth/revoke`},automaticSilentRenew:!1,scope:t.scope,userStore:n,revokeTokenTypes:["refresh_token"],extraQueryParams:{...t.audience?{audience:t.audience}:{}}}};function x(o){return btoa(String.fromCharCode(...new Uint8Array(o))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}async function Ne(o){let t=new TextEncoder().encode(o);return window.crypto.subtle.digest("SHA-256",t)}var M=class o{config;userManager;deviceCredentialsManager;embeddedLoginPrompt;logoutMode;refreshingPromise=null;eventEmitter;constructor(e){this.config=new _(e),this.embeddedLoginPrompt=new O(this.config),this.userManager=new oidcClientTs.UserManager(De(this.config)),this.deviceCredentialsManager=new y,this.logoutMode=this.config.oidcConfiguration.logoutMode||"redirect",this.eventEmitter=new h,metrics.track("passport","initialise");}async login(e){return c(async()=>{let{useCachedSession:t=!1,useSilentLogin:r}=e||{},n=null;try{n=await this.getUserInternal();}catch(i){if(i instanceof Error&&!i.message.includes("Unknown or invalid refresh token")&&metrics.trackError("passport","login",i),t)throw i;C.warn("Failed to retrieve a cached user session",i);}if(!n&&r)n=await this.forceUserRefreshInternal();else if(!n&&!t){if(e?.useRedirectFlow)return await this.loginWithRedirectInternal(e?.directLoginOptions),null;n=await this.loginWithPopup(e?.directLoginOptions);}return n&&this.handleSuccessfulLogin(n),n},"login")}async loginWithRedirect(e){await this.loginWithRedirectInternal(e);}async loginCallback(){return c(async()=>{let e=await this.loginCallbackInternal();return e&&this.handleSuccessfulLogin(e),e},"loginCallback")}async logout(){await c(async()=>{await this.logoutInternal(),this.eventEmitter.emit("loggedOut");},"logout");}async getUser(){return this.getUserInternal()}async getUserOrLogin(){let e=null;try{e=await this.getUserInternal();}catch(r){C.warn("Failed to retrieve a cached user session",r);}if(e)return e;let t=await this.loginWithPopup();return this.handleSuccessfulLogin(t),t}async getUserZkEvm(){return this.getUserZkEvmInternal()}async getIdToken(){return c(async()=>(await this.getUserInternal())?.idToken,"getIdToken",!1)}async getAccessToken(){return c(async()=>(await this.getUserInternal())?.accessToken,"getAccessToken",!1,!1)}async isLoggedIn(){return await this.getUser()!==null}async forceUserRefresh(){return this.forceUserRefreshInternal()}forceUserRefreshInBackground(){this.forceUserRefreshInBackgroundInternal();}async loginWithPKCEFlow(e,t){return c(async()=>this.getPKCEAuthorizationUrl(e,t),"loginWithPKCEFlow")}async loginWithPKCEFlowCallback(e,t){return c(async()=>{let r=await this.loginWithPKCEFlowCallbackInternal(e,t);return this.handleSuccessfulLogin(r),r},"loginWithPKCEFlowCallback")}async storeTokens(e){return c(async()=>{let t=await this.storeTokensInternal(e);return this.handleSuccessfulLogin(t),t},"storeTokens")}async getLogoutUrl(){return c(async()=>(await this.userManager.removeUser(),this.eventEmitter.emit("loggedOut"),await this.getLogoutUrlInternal()||void 0),"getLogoutUrl")}async logoutSilentCallback(e){return c(()=>this.userManager.signoutSilentCallback(e),"logoutSilentCallback")}getConfig(){return this.config}async getClientId(){return this.config.oidcConfiguration.clientId}handleSuccessfulLogin(e){this.eventEmitter.emit("loggedIn",e),metrics.identify({passportId:e.profile.sub});}buildExtraQueryParams(e,t){let r={...this.userManager.settings?.extraQueryParams??{},rid:metrics.getDetail(metrics.Detail.RUNTIME_ID)||""};if(e){if(e.directLoginMethod==="email"){let n=e.email;n&&(r.direct=e.directLoginMethod,r.email=n);}else r.direct=e.directLoginMethod;e.marketingConsentStatus&&(r.marketingConsent=e.marketingConsentStatus);}return t&&(r.im_passport_trace_id=t),r}async loginWithRedirectInternal(e){await this.userManager.clearStaleState(),await g(async()=>{let t=this.buildExtraQueryParams(e);await this.userManager.signinRedirect({extraQueryParams:t});},"AUTHENTICATION_ERROR");}async loginWithPopup(e){return g(async()=>{let t,r;if(e)t=e;else if(!this.config.popupOverlayOptions?.disableHeadlessLoginPromptOverlay){let{imPassportTraceId:l,...d}=await this.embeddedLoginPrompt.displayEmbeddedLoginPrompt();t=d,r=l;}let n=window.crypto.randomUUID(),i=async()=>{let l=this.buildExtraQueryParams(t,r);return this.userManager.signinPopup({extraQueryParams:l,popupWindowFeatures:{width:410,height:450},popupWindowTarget:n})};return new Promise((l,d)=>{i().then(u=>l(o.mapOidcUserToDomainModel(u))).catch(u=>{if(!(u instanceof Error)||u.message!=="Attempted to navigate on a disposed window"){d(u);return}let T=!1,a=new v(this.config.popupOverlayOptions||{},!0);a.append(async()=>{try{if(T)window.open("",n);else {T=!0;let f=await i();a.remove(),l(o.mapOidcUserToDomainModel(f));}}catch(f){a.remove(),d(f);}},()=>{a.remove(),d(new Error("Popup closed by user"));});});})},"AUTHENTICATION_ERROR")}static mapOidcUserToDomainModel=e=>{let t,r;if(e.id_token){let i=X__default.default(e.id_token);t=i?.passport,i?.username&&(r=i?.username);}let n={expired:e.expired,idToken:e.id_token,accessToken:e.access_token,refreshToken:e.refresh_token,profile:{sub:e.profile.sub,email:e.profile.email,nickname:e.profile.nickname,username:r}};return t?.zkevm_eth_address&&t?.zkevm_user_admin_address&&(n.zkEvm={ethAddress:t.zkevm_eth_address,userAdminAddress:t.zkevm_user_admin_address}),n};static mapDeviceTokenResponseToOidcUser=e=>{let t=X__default.default(e.id_token);return new oidcClientTs.User({id_token:e.id_token,access_token:e.access_token,refresh_token:e.refresh_token,token_type:e.token_type,profile:{sub:t.sub,iss:t.iss,aud:t.aud,exp:t.exp,iat:t.iat,email:t.email,nickname:t.nickname,passport:t.passport,...t.username?{username:t.username}:{}}})};async loginCallbackInternal(){return g(async()=>{let e=await this.userManager.signinCallback();if(e)return o.mapOidcUserToDomainModel(e)},"AUTHENTICATION_ERROR")}async getPKCEAuthorizationUrl(e,t){let r=x(window.crypto.getRandomValues(new Uint8Array(32))),n=x(await Ne(r)),i=x(window.crypto.getRandomValues(new Uint8Array(32))),{redirectUri:l,scope:d,audience:u,clientId:T}=this.config.oidcConfiguration;this.deviceCredentialsManager.savePKCEData({state:i,verifier:r});let a=new URL(xe,this.config.authenticationDomain);if(a.searchParams.set("response_type","code"),a.searchParams.set("code_challenge",n),a.searchParams.set("code_challenge_method","S256"),a.searchParams.set("client_id",T),a.searchParams.set("redirect_uri",l),a.searchParams.set("state",i),d&&a.searchParams.set("scope",d),u&&a.searchParams.set("audience",u),e){if(e.directLoginMethod==="email"){let f=e.email;f&&(a.searchParams.set("direct",e.directLoginMethod),a.searchParams.set("email",f));}else a.searchParams.set("direct",e.directLoginMethod);e.marketingConsentStatus&&a.searchParams.set("marketingConsent",e.marketingConsentStatus);}return t&&a.searchParams.set("im_passport_trace_id",t),a.toString()}async loginWithPKCEFlowCallbackInternal(e,t){return g(async()=>{let r=this.deviceCredentialsManager.getPKCEData();if(!r)throw new Error("No code verifier or state for PKCE");if(t!==r.state)throw new Error("Provided state does not match stored state");let n=await this.getPKCEToken(e,r.verifier),i=o.mapDeviceTokenResponseToOidcUser(n),l=o.mapOidcUserToDomainModel(i);return await this.userManager.storeUser(i),l},"AUTHENTICATION_ERROR")}async getPKCEToken(e,t){return (await ve__default.default.post(`${this.config.authenticationDomain}/oauth/token`,{client_id:this.config.oidcConfiguration.clientId,grant_type:"authorization_code",code_verifier:t,code:e,redirect_uri:this.config.oidcConfiguration.redirectUri},we)).data}async storeTokensInternal(e){return g(async()=>{let t=o.mapDeviceTokenResponseToOidcUser(e),r=o.mapOidcUserToDomainModel(t);return await this.userManager.storeUser(t),r},"AUTHENTICATION_ERROR")}async logoutInternal(){await g(async()=>{await this.userManager.revokeTokens(["refresh_token"]),this.logoutMode==="silent"?await this.userManager.signoutSilent():await this.userManager.signoutRedirect();},"LOGOUT_ERROR");}async getLogoutUrlInternal(){let e=this.userManager.settings?.metadata?.end_session_endpoint;return e||(C.warn("Failed to get logout URL"),null)}forceUserRefreshInBackgroundInternal(){this.refreshTokenAndUpdatePromise().catch(e=>{C.warn("Failed to refresh user token",e);});}async forceUserRefreshInternal(){return this.refreshTokenAndUpdatePromise().catch(e=>(C.warn("Failed to refresh user token",e),null))}async refreshTokenAndUpdatePromise(){return this.refreshingPromise?this.refreshingPromise:(this.refreshingPromise=new Promise((e,t)=>{(async()=>{try{let r=await this.userManager.signinSilent();if(r){e(o.mapOidcUserToDomainModel(r));return}e(null);}catch(r){let n="AUTHENTICATION_ERROR",i="Failed to refresh token",l=!0;if(r instanceof oidcClientTs.ErrorTimeout?(n="SILENT_LOGIN_ERROR",i=`${i}: ${r.message}`,l=!1):r instanceof oidcClientTs.ErrorResponse?(n="NOT_LOGGED_IN_ERROR",i=`${i}: ${r.message||r.error_description}`):r instanceof Error?i=`${i}: ${r.message}`:typeof r=="string"&&(i=`${i}: ${r}`),l)try{await this.userManager.removeUser();}catch(d){d instanceof Error&&(i=`${i}: Failed to remove user: ${d.message}`);}t(new p(i,n));}finally{this.refreshingPromise=null;}})();}),this.refreshingPromise)}async getUserInternal(e=t=>!0){if(this.refreshingPromise){let r=await this.refreshingPromise;return r&&e(r)?r:null}let t=await this.userManager.getUser();if(!t)return null;if(!J(t)){let r=o.mapOidcUserToDomainModel(t);if(r&&e(r))return r}if(t.refresh_token){let r=await this.refreshTokenAndUpdatePromise();if(r&&e(r))return r}return null}async getUserZkEvmInternal(){let e=await this.getUserInternal(w);if(!e)throw new Error("Failed to obtain a User with the required ZkEvm attributes");return e}};
|
|
399
399
|
|
|
400
|
-
exports.Auth =
|
|
401
|
-
exports.AuthConfiguration =
|
|
402
|
-
exports.AuthEvents =
|
|
403
|
-
exports.MarketingConsentStatus =
|
|
404
|
-
exports.PassportError =
|
|
405
|
-
exports.PassportErrorType =
|
|
406
|
-
exports.RollupType =
|
|
407
|
-
exports.TypedEventEmitter =
|
|
408
|
-
exports.
|
|
409
|
-
exports.
|
|
400
|
+
exports.Auth = M;
|
|
401
|
+
exports.AuthConfiguration = _;
|
|
402
|
+
exports.AuthEvents = U;
|
|
403
|
+
exports.MarketingConsentStatus = S;
|
|
404
|
+
exports.PassportError = p;
|
|
405
|
+
exports.PassportErrorType = L;
|
|
406
|
+
exports.RollupType = N;
|
|
407
|
+
exports.TypedEventEmitter = h;
|
|
408
|
+
exports.isAPIError = D;
|
|
409
|
+
exports.isUserZkEvm = w;
|
|
410
|
+
exports.withPassportError = g;
|