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