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