@descope/web-js-sdk 1.51.6 → 1.52.1

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/index.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Descope=t()}(this,(function(){"use strict";var e=function(){return e=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},e.apply(this,arguments)};function t(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}"function"==typeof SuppressedError&&SuppressedError;class n extends Error{}function o(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return function(e){return decodeURIComponent(atob(e).replace(/(.)/g,((e,t)=>{let n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(t)}catch(e){return atob(t)}}function r(e,t){if("string"!=typeof e)throw new n("Invalid token specified: must be a string");t||(t={});const r=!0===t.header?0:1,i=e.split(".")[r];if("string"!=typeof i)throw new n(`Invalid token specified: missing part #${r+1}`);let s;try{s=o(i)}catch(e){throw new n(`Invalid token specified: invalid base64 for part #${r+1} (${e.message})`)}try{return JSON.parse(s)}catch(e){throw new n(`Invalid token specified: invalid json for part #${r+1} (${e.message})`)}}n.prototype.name="InvalidTokenError";const i="3.2.0",s="undefined"!=typeof window,a=Math.pow(2,31)-1,l=`https://descopecdn.com/npm/oidc-client-ts@${i}/dist/browser/oidc-client-ts.min.js`,c=`https://cdn.jsdelivr.net/npm/oidc-client-ts@${i}/dist/browser/oidc-client-ts.min.js`;const u=["/v1/auth/refresh","/v1/auth/try-refresh","/v1/auth/me","/v1/auth/me/tenants","/v1/auth/me/history"];let d;const p=e=>{try{return r(e).exp}catch(e){return null}},g=e=>{const{refresh_expire_in:t,refresh_token:n}=e;return t?Math.floor(Date.now()/1e3)+t:p(n)},v=e=>{const{expires_in:t,expires_at:n,access_token:o}=e;return n||(t?Math.floor(Date.now()/1e3)+t:o?p(o):void 0)},h=e=>{const{access_token:n,id_token:o,refresh_token:r,refresh_expire_in:i}=e,s=t(e,["access_token","id_token","refresh_token","refresh_expire_in"]);return Object.assign({sessionJwt:e.sessionJwt||n,idToken:o,refreshJwt:e.refreshJwt||r,sessionExpiration:e.sessionExpiration||v(e),cookieExpiration:e.cookieExpiration||g(e)},s)},f=(e,t)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,o)=>{var r;return n[o]=[].concat((null===(r=e.hooks)||void 0===r?void 0:r[o])||[]).concat((null==t?void 0:t[o])||[]),n}),null!==(n=e.hooks)&&void 0!==n?n:e.hooks={}),e},w=async e=>{if(!(null==e?void 0:e.ok))return{};const t=await(null==e?void 0:e.clone().json()),n=(null==t?void 0:t.authInfo)||t||{};return h(n)},m=()=>s&&!!window.descopeBridge,y=(e,t)=>{if(!((null==t?void 0:t.status)>=400&&(null==t?void 0:t.status)<500))return!1;const n=(null==e?void 0:e.path)||"";return u.includes(n)},b=void 0!==d||s&&void 0!==window.localStorage,k=(e,t)=>{var n,o;return null===(o=null===(n=d||s&&window.localStorage)||void 0===n?void 0:n.setItem)||void 0===o?void 0:o.call(n,e,t)},I=e=>{var t,n;return null===(n=null===(t=d||s&&window.localStorage)||void 0===t?void 0:t.getItem)||void 0===n?void 0:n.call(t,e)},O=e=>{var t,n;return null===(n=null===(t=d||s&&window.localStorage)||void 0===t?void 0:t.removeItem)||void 0===n?void 0:n.call(t,e)},S=e=>{var t,n,o,r,i;return null!==(i=null!==(n=null===(t=null==d?void 0:d.key)||void 0===t?void 0:t.call(d,e))&&void 0!==n?n:s&&(null===(r=null===(o=window.localStorage)||void 0===o?void 0:o.key)||void 0===r?void 0:r.call(o,e)))&&void 0!==i?i:null},j=e=>{var t,n;return s&&(null===(n=null===(t=window.localStorage)||void 0===t?void 0:t.getItem)||void 0===n?void 0:n.call(t,e))||null},U=e=>{var t,n;try{s&&(null===(n=null===(t=window.localStorage)||void 0===t?void 0:t.removeItem)||void 0===n||n.call(t,e))}catch(e){}};var x={accessKey:{exchange:"/v1/auth/accesskey/exchange"},otp:{verify:"/v1/auth/otp/verify",signIn:"/v1/auth/otp/signin",signUp:"/v1/auth/otp/signup",update:{email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},signUpOrIn:"/v1/auth/otp/signup-in"},magicLink:{verify:"/v1/auth/magiclink/verify",signIn:"/v1/auth/magiclink/signin",signUp:"/v1/auth/magiclink/signup",update:{email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/phone"},signUpOrIn:"/v1/auth/magiclink/signup-in"},enchantedLink:{verify:"/v1/auth/enchantedlink/verify",signIn:"/v1/auth/enchantedlink/signin",signUp:"/v1/auth/enchantedlink/signup",session:"/v1/auth/enchantedlink/pending-session",update:{email:"/v1/auth/enchantedlink/update/email"},signUpOrIn:"/v1/auth/enchantedlink/signup-in"},oauth:{start:"/v1/auth/oauth/authorize",exchange:"/v1/auth/oauth/exchange",startNative:"v1/auth/oauth/native/start",finishNative:"v1/auth/oauth/native/finish",oneTap:{getOneTapClientId:"/v1/auth/onetap/clientid/{provider}",exchangeOneTapIDToken:"/v1/auth/onetap/idtoken/exchange",verifyOneTapIDToken:"/v1/auth/onetap/idtoken/verify"}},outbound:{connect:"/v1/outbound/oauth/connect"},saml:{start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},sso:{start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},totp:{verify:"/v1/auth/totp/verify",signUp:"/v1/auth/totp/signup",update:"/v1/auth/totp/update"},notp:{signIn:"/v1/auth/notp/whatsapp/signin",signUp:"/v1/auth/notp/whatsapp/signup",signUpOrIn:"/v1/auth/notp/whatsapp/signup-in",session:"/v1/auth/notp/pending-session"},webauthn:{signUp:{start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},signIn:{start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},signUpOrIn:{start:"/v1/auth/webauthn/signup-in/start"},update:{start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"}},password:{signUp:"/v1/auth/password/signup",signIn:"/v1/auth/password/signin",sendReset:"/v1/auth/password/reset",update:"/v1/auth/password/update",replace:"/v1/auth/password/replace",policy:"/v1/auth/password/policy"},refresh:"/v1/auth/refresh",tryRefresh:"/v1/auth/try-refresh",selectTenant:"/v1/auth/tenant/select",logout:"/v1/auth/logout",logoutAll:"/v1/auth/logoutall",me:"/v1/auth/me",myTenants:"/v1/auth/me/tenants",history:"/v1/auth/me/history",flow:{start:"/v1/flow/start",next:"/v1/flow/next"}};const T="<region>",R=`https://api.${T}descope.com`,C=6e5,E=()=>{const e={};return{headers(t){const n="function"==typeof t.entries?Object.fromEntries(t.entries()):t;return e.Headers=JSON.stringify(n),this},body(t){return e.Body=t,this},url(t){return e.Url=t.toString(),this},method(t){return e.Method=t,this},title(t){return e.Title=t,this},status(t){return e.Status=t,this},retries(t){return e.Retries=t,this},build:()=>Object.keys(e).flatMap((t=>e[t]?[`${"Title"!==t?`${t}: `:""}${e[t]}`]:[])).join("\n")}},_=[503,520,521,522,524,530],A=[100,5e3,5e3],$=e=>new Promise((t=>setTimeout(t,e))),P=e=>async function(...t){let n=await e(...t),o=0;for(;_.includes(n.status)&&o<A.length;)await $(A[o]),n=await e(...t),o++;o>0&&(n.retries=o);const r=await n.text();return n.text=()=>Promise.resolve(r),n.json=()=>Promise.resolve(JSON.parse(r)),n.clone=()=>n,n},D=(e,t)=>{const n=t||fetch;return n||null==e||e.warn("Fetch is not defined, you will not be able to send http requests, if you are running in a test, make sure fetch is defined globally"),e?async function(...t){if(!n)throw Error("Cannot send http request, fetch is not defined, if you are running in a test, make sure fetch is defined globally");e.log((e=>E().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const o=await P(n)(...t);return e[o.ok?"log":"error"](await(async e=>{const t=await e.text();return E().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).retries(e.retries).build()})(o)),o}:P(n)};let q;const N=()=>{if(q)return q;const e=new Date,t=`${e.getUTCFullYear().toString()}-${(e.getUTCMonth()+1).toString().padStart(2,"0")}-${e.getUTCDate().toString().padStart(2,"0")}-${e.getUTCHours().toString().padStart(2,"0")}:${e.getUTCMinutes().toString().padStart(2,"0")}:${e.getUTCSeconds().toString().padStart(2,"0")}:${e.getUTCMilliseconds().toString()}`,n=Math.floor(1e3+9e3*Math.random());return q=`${t}-${n}`,q};var L,J;(J=L||(L={})).get="GET",J.delete="DELETE",J.post="POST",J.put="PUT",J.patch="PATCH";const K=({path:e,baseUrl:t,queryParams:n,projectId:o})=>{const r=o.slice(1,-27);t=t.replace(T,r?r+".":"");let i=e?`${t.replace(/\/$/,"")}/${null==e?void 0:e.replace(/^\//,"")}`:t;if(n){const e=Object.keys(n);e.forEach(((t,o)=>{i=`${i}${0===o?"?":""}${t}=${encodeURIComponent(n[t])}${o===e.length-1?"":"&"}`}))}return i},M=(...e)=>new Headers(e.reduce(((e,t)=>((e=>Array.isArray(e)?e:e instanceof Headers?Array.from(e.entries()):e?Object.entries(e):[])(t).forEach((([t,n])=>{e[t]="function"==typeof n?n():n})),e)),{})),V={"Content-Type":"application/json"},F=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},H=(e,t)=>{const n={"x-descope-sdk-session-id":N(),"x-descope-sdk-name":"core-js","x-descope-sdk-version":"2.69.0","x-descope-project-id":e};return t&&(n["x-descope-refresh-cookie-name"]=t),n},B=e=>{try{e=JSON.parse(e)}catch(e){return!1}return"object"==typeof e&&null!==e};var z=e=>{var t;return(({baseUrl:e,projectId:t,baseConfig:n,refreshCookieName:o,logger:r,hooks:i,cookiePolicy:s,fetch:a})=>{const l=e||R,c=D(r,a),u=async e=>{var r;const a=(null==i?void 0:i.beforeRequest)?i.beforeRequest(e):e,{path:u,body:d,headers:p,queryParams:g,method:v,token:h}=a,f=(e=>void 0===e?void 0:JSON.stringify(e))(d),w={headers:M(F(t,h),H(t,o),(null==n?void 0:n.baseHeaders)||{},B(f)?V:{},p),method:v,body:f};null!==s&&(w.credentials=s||"include");const m=await c(K({path:u,baseUrl:l,queryParams:g,projectId:t}),w);if((null==i?void 0:i.afterRequest)&&await i.afterRequest(e,null==m?void 0:m.clone()),null==i?void 0:i.transformResponse){const e=await m.json(),t=(y=(null===(r=m.headers)||void 0===r?void 0:r.get("set-cookie"))||"",Object.fromEntries(function(e){if(!e)return[];const t=[];let n=0;function o(){for(;n<e.length&&/\s/.test(e.charAt(n));)n+=1;return n<e.length}function r(){const t=e.charAt(n);return"="!==t&&";"!==t&&","!==t}for(;n<e.length;){const i=n;let s,a,l=!1;for(;o();)if(","===e.charAt(n)){for(s=n,n+=1,o(),a=n;n<e.length&&r();)n+=1;if(n<e.length&&"="===e.charAt(n)){l=!0,n=a,t.push(e.substring(i,s));break}n=s+1}else n+=1;(!l||n>=e.length)&&t.push(e.substring(i,e.length))}return t}(y).map((e=>{const t=e.split(";")[0],n=t.indexOf("=");return n<1?null:[t.substring(0,n).trim(),t.substring(n+1).trim()]})).filter(Boolean))),n=Object.assign(Object.assign({},m),{json:()=>Promise.resolve(e),cookies:t});return n.clone=()=>n,i.transformResponse(n)}var y;return m};return{get:(e,{headers:t,queryParams:n,token:o}={})=>u({path:e,headers:t,queryParams:n,body:void 0,method:L.get,token:o}),post:(e,t,{headers:n,queryParams:o,token:r}={})=>u({path:e,headers:n,queryParams:o,body:t,method:L.post,token:r}),patch:(e,t,{headers:n,queryParams:o,token:r}={})=>u({path:e,headers:n,queryParams:o,body:t,method:L.patch,token:r}),put:(e,t,{headers:n,queryParams:o,token:r}={})=>u({path:e,headers:n,queryParams:o,body:t,method:L.put,token:r}),delete:(e,{headers:t,queryParams:n,token:o}={})=>u({path:e,headers:t,queryParams:n,body:void 0,method:L.delete,token:o}),hooks:i,buildUrl:(e,n)=>K({projectId:t,baseUrl:l,path:e,queryParams:n})}})(Object.assign(Object.assign({},e),{hooks:{beforeRequest:t=>{var n;const o=[].concat((null===(n=e.hooks)||void 0===n?void 0:n.beforeRequest)||[]);return null==o?void 0:o.reduce(((e,t)=>t(e)),t)},afterRequest:async(t,n)=>{var o;const r=[].concat((null===(o=e.hooks)||void 0===o?void 0:o.afterRequest)||[]);0!=r.length&&(await Promise.allSettled(null==r?void 0:r.map((e=>e(t,null==n?void 0:n.clone()))))).forEach((t=>{var n;return"rejected"===t.status&&(null===(n=e.logger)||void 0===n?void 0:n.error(t.reason))}))},transformResponse:null===(t=e.hooks)||void 0===t?void 0:t.transformResponse}}))},Z=429;function G(e,t,n){var o;let r=W(e);if(t){if(!(null==r?void 0:r.tenants)&&(null==r?void 0:r.dct)===t)return(null==r?void 0:r[n])||[];r=null===(o=null==r?void 0:r.tenants)||void 0===o?void 0:o[t]}const i=null==r?void 0:r[n];return Array.isArray(i)?i:[]}function W(e){if("string"!=typeof e||!e)throw new Error("Invalid token provided");return r(e)}function X(e){const{exp:t}=W(e);return(new Date).getTime()/1e3>t}function Y(e){let t=W(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function Q(e,t){return G(e,t,"permissions")}function ee(e,t){return G(e,t,"roles")}const te=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function ne(e,t){var n;const o=await e,r={code:o.status,ok:o.ok,response:o},i=await o.clone().json();return o.ok?r.data=i:(r.error=i,o.status===Z&&Object.assign(r.error,{retryAfter:Number.parseInt(null===(n=o.headers)||void 0===n?void 0:n.get("retry-after"))||0})),r}function oe(e){var t;return(null===(t=W(e))||void 0===t?void 0:t.dct)||""}const re=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),ie=(e,t)=>(n=t)=>t=>{const o=e.filter((e=>e(t)));return!(o.length<e.length)&&(n?n.replace("{val}",t):o.join(" OR "))},se=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),ae=e=>t=>e.test(t),le=ae(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),ce=ae(/^\+[1-9]{1}[0-9]{3,14}$/),ue=re(le,'"{val}" is not a valid email'),de=re(ce,'"{val}" is not a valid phone number'),pe=re((e=>e.length>=1),"Minimum length is 1");const ge=re((e=>"string"==typeof e),"Input is not a string"),ve=re((e=>Array.isArray(e)),"Input is not an array"),he=re((e=>"boolean"==typeof e),"Input is not a boolean"),fe=re((e=>void 0===e),"Input is defined"),we=ie([ge(),fe()],"Input is not a string or undefined"),me=ie([ve(),he()],"Input is not an array or boolean"),ye=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>se(...e).validate(n[t]))),t(...n)),be=e=>[ge(`"${e}" must be a string`)],ke=e=>[we(`"${e}" must be string or undefined`)],Ie=e=>[ge(`"${e}" must be a string`),pe(`"${e}" must not be empty`)],Oe=e=>[ge(`"${e}" must be a string`),ue()],Se=e=>[ge(`"${e}" must be a string`),de()],je=ye(Ie("accessKey")),Ue=e=>({exchange:je(((t,n)=>ne(e.post(x.accessKey.exchange,{loginOptions:n},{token:t}))))}),xe=(e,t,n)=>(t.forEach((t=>{const o=t.split(".");let r=o.shift(),i=e;for(;o.length>0;){if(i=i[r],!r||!i)throw Error(`Invalid path "${t}", "${r}" is missing or has no value`);r=o.shift()}if("function"!=typeof i[r])throw Error(`"${t}" is not a function`);const s=i[r];i[r]=n(s)})),e),Te=({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||1e3,1e3),timeoutMs:Math.min(t||C,C)});var Re,Ce;!function(e){e.sms="sms",e.voice="voice",e.whatsapp="whatsapp",e.im="im"}(Re||(Re={})),function(e){e.email="email"}(Ce||(Ce={}));const Ee=Object.assign(Object.assign({},Re),Ce);var _e;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(_e||(_e={}));const Ae=Ie("loginId"),$e=ye(Ie("token")),Pe=ye(Ae),De=ye(Ie("pendingRef")),qe=ye(Ae,Oe("email")),Ne=e=>({verify:$e((t=>ne(e.post(x.enchantedLink.verify,{token:t})))),signIn:Pe(((n,o,r={},i)=>{var{providerId:s}=r,a=t(r,["providerId"]);return ne(e.post(te(x.enchantedLink.signIn,Ee.email),{loginId:n,URI:o,loginOptions:a,providerId:s},{token:i}))})),signUpOrIn:Pe(((n,o,r={})=>{var{providerId:i}=r,s=t(r,["providerId"]);return ne(e.post(te(x.enchantedLink.signUpOrIn,Ee.email),{loginId:n,URI:o,loginOptions:s,providerId:i}))})),signUp:Pe(((n,o,r,i={})=>{var{providerId:s}=i,a=t(i,["providerId"]);return ne(e.post(te(x.enchantedLink.signUp,Ee.email),{loginId:n,URI:o,user:r,loginOptions:a,providerId:s}))})),waitForSession:De(((t,n)=>new Promise((o=>{const{pollingIntervalMs:r,timeoutMs:i}=Te(n);let s;const a=setInterval((async()=>{const n=await e.post(x.enchantedLink.session,{pendingRef:t});n.ok&&(clearInterval(a),s&&clearTimeout(s),o(ne(Promise.resolve(n))))}),r);s=setTimeout((()=>{o({error:{errorDescription:`Session polling timeout exceeded: ${i}ms`,errorCode:"0"},ok:!1}),clearInterval(a)}),i)})))),update:{email:qe(((t,n,o,r,i)=>ne(e.post(x.enchantedLink.update.email,Object.assign({loginId:t,email:n,URI:o},i),{token:r}))))}}),Le=ye(Ie("flowId")),Je=ye(Ie("executionId"),Ie("stepId"),Ie("interactionId")),Ke=e=>({start:Le(((t,n,o,r,i,s,a,l=!1)=>ne(e.post(x.flow.start,{flowId:t,options:n,conditionInteractionId:o,interactionId:r,componentsVersion:i,flowVersions:s,input:a,isCustomScreen:l})))),next:Je(((t,n,o,r,i,s,a=!1)=>ne(e.post(x.flow.next,{executionId:t,stepId:n,interactionId:o,version:r,componentsVersion:i,input:s,isCustomScreen:a}))))}),Me=Ie("loginId"),Ve=ye(Ie("token")),Fe=ye(Me),He=ye(Me,Se("phone")),Be=ye(Me,Oe("email")),ze=Object.keys(Ee).filter((e=>e!==Re.voice&&e!==Re.im)),Ze=e=>({verify:Ve((t=>ne(e.post(x.magicLink.verify,{token:t})))),signIn:ze.reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:Fe(((n,r,i={},s)=>{var{providerId:a}=i,l=t(i,["providerId"]);return ne(e.post(te(x.magicLink.signIn,o),{loginId:n,URI:r,loginOptions:l,providerId:a},{token:s}))}))})),{}),signUp:ze.reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:Fe(((n,r,i,s={})=>{var{providerId:a}=s,l=t(s,["providerId"]);return ne(e.post(te(x.magicLink.signUp,o),{loginId:n,URI:r,user:i,loginOptions:l,providerId:a}))}))})),{}),signUpOrIn:ze.reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:Fe(((n,r,i={})=>{var{providerId:s}=i,a=t(i,["providerId"]);return ne(e.post(te(x.magicLink.signUpOrIn,o),{loginId:n,URI:r,loginOptions:a,providerId:s}))}))})),{}),update:{email:Be(((t,n,o,r,i)=>ne(e.post(x.magicLink.update.email,Object.assign({loginId:t,email:n,URI:o},i),{token:r})))),phone:Object.keys(Re).filter((e=>e!==Re.voice)).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:He(((t,o,r,i,s)=>ne(e.post(te(x.magicLink.update.phone,n),Object.assign({loginId:t,phone:o,URI:r},s),{token:i}))))})),{})}});var Ge;!function(e){e.facebook="facebook",e.github="github",e.google="google",e.microsoft="microsoft",e.gitlab="gitlab",e.apple="apple",e.discord="discord",e.linkedin="linkedin",e.slack="slack"}(Ge||(Ge={}));const We=ye(Ie("code")),Xe=e=>({start:Object.assign(((t,n,o,r,i)=>ne(e.post(x.oauth.start,o||{},{queryParams:Object.assign(Object.assign({provider:t},n&&{redirectURL:n}),i&&{loginHint:i}),token:r}))),Object.keys(Ge).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,o,r,i)=>ne(e.post(x.oauth.start,o||{},{queryParams:Object.assign(Object.assign({provider:n},t&&{redirectURL:t}),i&&{loginHint:i}),token:r}))})),{})),exchange:We((t=>ne(e.post(x.oauth.exchange,{code:t})))),startNative:(t,n,o)=>ne(e.post(x.oauth.startNative,{provider:t,loginOptions:n,implicit:o})),finishNative:(t,n,o,r,i)=>ne(e.post(x.oauth.finishNative,{provider:t,stateId:n,user:o,code:r,idToken:i})),getOneTapClientId:t=>ne(e.get(x.oauth.oneTap.getOneTapClientId.replace("{provider}",t))),verifyOneTapIDToken:(t,n,o,r)=>ne(e.post(x.oauth.oneTap.verifyOneTapIDToken,{provider:t,idToken:n,nonce:o,loginOptions:r})),exchangeOneTapIDToken:(t,n,o,r)=>ne(e.post(x.oauth.oneTap.exchangeOneTapIDToken,{provider:t,idToken:n,nonce:o,loginOptions:r}))}),Ye=Ie("appId"),Qe=ye(Ye),et=e=>({connect:Qe(((t,n,o)=>{const r=null==n?void 0:n.tenantId,i=null==n?void 0:n.tenantLevel;return null==n||delete n.tenantId,null==n||delete n.tenantLevel,ne(e.post(x.outbound.connect,{appId:t,tenantId:r,tenantLevel:i,options:n},{token:o}))}))}),tt=Ie("loginId"),nt=ye(tt,Ie("code")),ot=ye(tt),rt=ye(tt,Se("phone")),it=ye(tt,Oe("email")),st=e=>({verify:Object.keys(Ee).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:nt(((t,o)=>ne(e.post(te(x.otp.verify,n),{code:o,loginId:t}))))})),{}),signIn:Object.keys(Ee).reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:ot(((n,r={},i)=>{var{providerId:s}=r,a=t(r,["providerId"]);return ne(e.post(te(x.otp.signIn,o),{loginId:n,loginOptions:a,providerId:s},{token:i}))}))})),{}),signUp:Object.keys(Ee).reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:ot(((n,r,i={})=>{var{providerId:s}=i,a=t(i,["providerId"]);return ne(e.post(te(x.otp.signUp,o),{loginId:n,user:r,loginOptions:a,providerId:s}))}))})),{}),signUpOrIn:Object.keys(Ee).reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:ot(((n,r={})=>{var{providerId:i}=r,s=t(r,["providerId"]);return ne(e.post(te(x.otp.signUpOrIn,o),{loginId:n,loginOptions:s,providerId:i}))}))})),{}),update:{email:it(((t,n,o,r)=>ne(e.post(x.otp.update.email,Object.assign({loginId:t,email:n},r),{token:o})))),phone:Object.keys(Re).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:rt(((t,o,r,i)=>ne(e.post(te(x.otp.update.phone,n),Object.assign({loginId:t,phone:o},i),{token:r}))))})),{})}}),at=ye(Ie("tenant")),lt=ye(Ie("code")),ct=e=>({start:at(((t,n,o,r,i,s,a,l)=>ne(e.post(x.sso.start,o||{},Object.assign({queryParams:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({tenant:t},n&&{redirectURL:n}),i&&{ssoId:i}),s&&{forceAuthn:"true"}),a&&{loginHint:a}),l&&{initiatedEmail:t})},r&&{token:r}))))),exchange:lt((t=>ne(e.post(x.sso.exchange,{code:t}))))}),ut=Ie("loginId"),dt=ye(ut,Ie("code")),pt=ye(ut),gt=ye(ut),vt=e=>({signUp:pt(((t,n)=>ne(e.post(x.totp.signUp,{loginId:t,user:n})))),verify:dt(((t,n,o,r)=>ne(e.post(x.totp.verify,{loginId:t,code:n,loginOptions:o},{token:r})))),update:gt(((t,n)=>ne(e.post(x.totp.update,{loginId:t},{token:n}))))}),ht=Ie("loginId"),ft=Ie("newPassword"),wt=ye(ht,Ie("password")),mt=ye(ht),yt=ye(ht,ft),bt=ye(ht,Ie("oldPassword"),ft),kt=e=>({signUp:wt(((n,o,r,i={})=>{var{providerId:s}=i,a=t(i,["providerId"]);return ne(e.post(x.password.signUp,{loginId:n,password:o,user:r,loginOptions:a,providerId:s}))})),signIn:wt(((n,o,r={})=>{var{providerId:i}=r,s=t(r,["providerId"]);return ne(e.post(x.password.signIn,{loginId:n,password:o,loginOptions:s,providerId:i}))})),sendReset:mt(((t,n,o)=>ne(e.post(x.password.sendReset,{loginId:t,redirectUrl:n,templateOptions:o})))),update:yt(((t,n,o)=>ne(e.post(x.password.update,{loginId:t,newPassword:n},{token:o})))),replace:bt(((t,n,o)=>ne(e.post(x.password.replace,{loginId:t,oldPassword:n,newPassword:o})))),policy:()=>ne(e.get(x.password.policy))}),It=be("loginId"),Ot=Ie("loginId"),St=be("origin"),jt=ye(Ot,St,Ie("name")),Ut=ye(Ot,St),xt=ye(It,St),Tt=ye(Ot,St,ke("token")),Rt=ye(Ie("transactionId"),Ie("response")),Ct=e=>({signUp:{start:jt(((t,n,o,r,i)=>ne(e.post(x.webauthn.signUp.start,{user:{loginId:t,name:o},origin:n,loginOptions:i,passkeyOptions:r})))),finish:Rt(((t,n)=>ne(e.post(x.webauthn.signUp.finish,{transactionId:t,response:n}))))},signIn:{start:xt(((t,n,o,r,i)=>ne(e.post(x.webauthn.signIn.start,{loginId:t,origin:n,loginOptions:o,passkeyOptions:i},{token:r})))),finish:Rt(((t,n)=>ne(e.post(x.webauthn.signIn.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:Ut(((t,n,o,r)=>ne(e.post(x.webauthn.signUpOrIn.start,{loginId:t,origin:n,loginOptions:r,passkeyOptions:o}))))},update:{start:Tt(((t,n,o,r,i)=>ne(e.post(x.webauthn.update.start,{loginId:t,origin:n,passkeyOptions:r,mfa:i},{token:o})))),finish:Rt(((t,n)=>ne(e.post(x.webauthn.update.finish,{transactionId:t,response:n}))))}}),Et=be("loginId"),_t=ye(Et),At=ye(Ie("pendingRef")),$t=e=>({signUpOrIn:_t(((n,o={})=>{var{providerId:r}=o,i=t(o,["providerId"]);return ne(e.post(x.notp.signUpOrIn,{loginId:n,loginOptions:i,providerId:r}))})),signUp:_t(((n,o,r={})=>{var{providerId:i}=r,s=t(r,["providerId"]);return ne(e.post(x.notp.signUp,{loginId:n,user:o,providerId:i,loginOptions:s}))})),signIn:_t(((n,o={},r)=>{var{providerId:i}=o,s=t(o,["providerId"]);return ne(e.post(x.notp.signIn,{loginId:n,loginOptions:s,providerId:i},{token:r}))})),waitForSession:At(((t,n)=>new Promise((o=>{const{pollingIntervalMs:r,timeoutMs:i}=Te(n);let s;const a=setInterval((async()=>{const n=await e.post(x.notp.session,{pendingRef:t});n.ok&&(clearInterval(a),s&&clearTimeout(s),o(ne(Promise.resolve(n))))}),r);s=setTimeout((()=>{o({error:{errorDescription:`Session polling timeout exceeded: ${i}ms`,errorCode:"0"},ok:!1}),clearInterval(a)}),i)}))))}),Pt=ye(Ie("token")),Dt=ye(ke("token"));var qt,Nt=ye([(qt=Ie("projectId"),re(((e,t)=>n=>se(...t).validate(((e,t)=>{const n=(Array.isArray(t)?t.join("."):String(t)).replace(/\[\\?("|')?(\w|d)+\\?("|')?\]/g,((e,t,n)=>"."+n)).split("."),o=n.length;let r=0,i=e===Object(e)?e:void 0;for(;null!=i&&r<o;)i=i[n[r++]];return r&&r===o&&void 0!==i?i:void 0})(n,e)))("projectId",qt))())])((e=>{const{projectId:t,logger:n,baseUrl:o,cookiePolicy:r,baseHeaders:i={},refreshCookieName:s,fetch:a}=e;return l=z({baseUrl:o,projectId:t,logger:n,hooks:{get beforeRequest(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.beforeRequest},get afterRequest(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.afterRequest},get transformResponse(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.transformResponse}},cookiePolicy:r,baseConfig:{baseHeaders:i},refreshCookieName:s,fetch:a}),{accessKey:Ue(l),otp:st(l),magicLink:Ze(l),enchantedLink:Ne(l),oauth:Xe(l),outbound:et(l),sso:ct(l),saml:ct(l),totp:vt(l),notp:$t(l),webauthn:Ct(l),password:kt(l),flow:Ke(l),refresh:Dt(((e,t,n,o)=>{const r={};n&&(r.externalToken=n);const i=o?x.tryRefresh:x.refresh;return ne(l.post(i,r,{token:e,queryParams:t}))})),selectTenant:ye([ge("tenantId")],[we('"token" must be string or undefined')])(((e,t)=>ne(l.post(x.selectTenant,{tenant:e},{token:t})))),logout:Dt((e=>ne(l.post(x.logout,{},{token:e})))),logoutAll:Dt((e=>ne(l.post(x.logoutAll,{},{token:e})))),me:Dt((e=>ne(l.get(x.me,{token:e})))),myTenants:ye([me('"tenants" must a string array or a boolean')],[we('"token" must be string or undefined')])(((e,t)=>{const n={};return"boolean"==typeof e?n.dct=e:n.ids=e,ne(l.post(x.myTenants,n,{token:t}))})),history:Dt((e=>ne(l.get(x.history,{token:e})))),isJwtExpired:Pt(X),getTenants:Pt(Y),getJwtPermissions:Pt(Q),getJwtRoles:Pt(ee),getCurrentTenant:Pt(oe),httpClient:l};var l})),Lt=Object.assign(Nt,{DeliveryMethods:Ee});const Jt=(...e)=>{console.debug(...e)},Kt=(...e)=>{console.warn(...e)},Mt=(e,t)=>{let n;var o;return t>0?(n=1e3*t,Jt(`Using provided nextRefreshSeconds: ${t}s`)):n=((o=e)?o.getTime()-(new Date).getTime():0)-2e4,n>a&&(Jt(`Timeout is too large (${n}ms), setting it to ${a}ms`),n=a),n};
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Descope=t()}(this,(function(){"use strict";var e=function(){return e=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},e.apply(this,arguments)};function t(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}"function"==typeof SuppressedError&&SuppressedError;class n extends Error{}function o(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return function(e){return decodeURIComponent(atob(e).replace(/(.)/g,((e,t)=>{let n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(t)}catch(e){return atob(t)}}function r(e,t){if("string"!=typeof e)throw new n("Invalid token specified: must be a string");t||(t={});const r=!0===t.header?0:1,i=e.split(".")[r];if("string"!=typeof i)throw new n(`Invalid token specified: missing part #${r+1}`);let s;try{s=o(i)}catch(e){throw new n(`Invalid token specified: invalid base64 for part #${r+1} (${e.message})`)}try{return JSON.parse(s)}catch(e){throw new n(`Invalid token specified: invalid json for part #${r+1} (${e.message})`)}}n.prototype.name="InvalidTokenError";const i="3.2.0",s="undefined"!=typeof window,a=Math.pow(2,31)-1,l=`https://descopecdn.com/npm/oidc-client-ts@${i}/dist/browser/oidc-client-ts.min.js`,c=`https://cdn.jsdelivr.net/npm/oidc-client-ts@${i}/dist/browser/oidc-client-ts.min.js`;const u=["/v1/auth/refresh","/v1/auth/try-refresh","/v1/auth/me","/v1/auth/me/tenants","/v1/auth/me/history"];let d;const p=e=>{try{return r(e).exp}catch(e){return null}},g=e=>{const{refresh_expire_in:t,refresh_token:n}=e;return t?Math.floor(Date.now()/1e3)+t:p(n)},v=e=>{const{expires_in:t,expires_at:n,access_token:o}=e;return n||(t?Math.floor(Date.now()/1e3)+t:o?p(o):void 0)},h=e=>{const{access_token:n,id_token:o,refresh_token:r,refresh_expire_in:i}=e,s=t(e,["access_token","id_token","refresh_token","refresh_expire_in"]);return Object.assign({sessionJwt:e.sessionJwt||n,idToken:o,refreshJwt:e.refreshJwt||r,sessionExpiration:e.sessionExpiration||v(e),cookieExpiration:e.cookieExpiration||g(e)},s)},f=(e,t)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,o)=>{var r;return n[o]=[].concat((null===(r=e.hooks)||void 0===r?void 0:r[o])||[]).concat((null==t?void 0:t[o])||[]),n}),null!==(n=e.hooks)&&void 0!==n?n:e.hooks={}),e},w=async e=>{if(!(null==e?void 0:e.ok))return{};const t=await(null==e?void 0:e.clone().json()),n=(null==t?void 0:t.authInfo)||t||{};return h(n)},m=()=>s&&!!window.descopeBridge,y=(e,t)=>{if(!((null==t?void 0:t.status)>=400&&(null==t?void 0:t.status)<500))return!1;const n=(null==e?void 0:e.path)||"";return u.includes(n)},b=void 0!==d||s&&void 0!==window.localStorage,k=(e,t)=>{var n,o;return null===(o=null===(n=d||s&&window.localStorage)||void 0===n?void 0:n.setItem)||void 0===o?void 0:o.call(n,e,t)},I=e=>{var t,n;return null===(n=null===(t=d||s&&window.localStorage)||void 0===t?void 0:t.getItem)||void 0===n?void 0:n.call(t,e)},O=e=>{var t,n;return null===(n=null===(t=d||s&&window.localStorage)||void 0===t?void 0:t.removeItem)||void 0===n?void 0:n.call(t,e)},S=e=>{var t,n,o,r,i;return null!==(i=null!==(n=null===(t=null==d?void 0:d.key)||void 0===t?void 0:t.call(d,e))&&void 0!==n?n:s&&(null===(r=null===(o=window.localStorage)||void 0===o?void 0:o.key)||void 0===r?void 0:r.call(o,e)))&&void 0!==i?i:null},j=e=>{var t,n;return s&&(null===(n=null===(t=window.localStorage)||void 0===t?void 0:t.getItem)||void 0===n?void 0:n.call(t,e))||null},U=e=>{var t,n;try{s&&(null===(n=null===(t=window.localStorage)||void 0===t?void 0:t.removeItem)||void 0===n||n.call(t,e))}catch(e){}};var x={accessKey:{exchange:"/v1/auth/accesskey/exchange"},otp:{verify:"/v1/auth/otp/verify",signIn:"/v1/auth/otp/signin",signUp:"/v1/auth/otp/signup",update:{email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},signUpOrIn:"/v1/auth/otp/signup-in"},magicLink:{verify:"/v1/auth/magiclink/verify",signIn:"/v1/auth/magiclink/signin",signUp:"/v1/auth/magiclink/signup",update:{email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/phone"},signUpOrIn:"/v1/auth/magiclink/signup-in"},enchantedLink:{verify:"/v1/auth/enchantedlink/verify",signIn:"/v1/auth/enchantedlink/signin",signUp:"/v1/auth/enchantedlink/signup",session:"/v1/auth/enchantedlink/pending-session",update:{email:"/v1/auth/enchantedlink/update/email"},signUpOrIn:"/v1/auth/enchantedlink/signup-in"},oauth:{start:"/v1/auth/oauth/authorize",exchange:"/v1/auth/oauth/exchange",startNative:"v1/auth/oauth/native/start",finishNative:"v1/auth/oauth/native/finish",oneTap:{getOneTapClientId:"/v1/auth/onetap/clientid/{provider}",exchangeOneTapIDToken:"/v1/auth/onetap/idtoken/exchange",verifyOneTapIDToken:"/v1/auth/onetap/idtoken/verify"}},outbound:{connect:"/v1/outbound/oauth/connect"},saml:{start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},sso:{start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},totp:{verify:"/v1/auth/totp/verify",signUp:"/v1/auth/totp/signup",update:"/v1/auth/totp/update"},notp:{signIn:"/v1/auth/notp/whatsapp/signin",signUp:"/v1/auth/notp/whatsapp/signup",signUpOrIn:"/v1/auth/notp/whatsapp/signup-in",session:"/v1/auth/notp/pending-session"},webauthn:{signUp:{start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},signIn:{start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},signUpOrIn:{start:"/v1/auth/webauthn/signup-in/start"},update:{start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"}},password:{signUp:"/v1/auth/password/signup",signIn:"/v1/auth/password/signin",sendReset:"/v1/auth/password/reset",update:"/v1/auth/password/update",replace:"/v1/auth/password/replace",policy:"/v1/auth/password/policy"},refresh:"/v1/auth/refresh",tryRefresh:"/v1/auth/try-refresh",selectTenant:"/v1/auth/tenant/select",logout:"/v1/auth/logout",logoutAll:"/v1/auth/logoutall",me:"/v1/auth/me",myTenants:"/v1/auth/me/tenants",history:"/v1/auth/me/history",flow:{start:"/v1/flow/start",next:"/v1/flow/next"}};const T="<region>",R=`https://api.${T}descope.com`,C=6e5,E=()=>{const e={};return{headers(t){const n="function"==typeof t.entries?Object.fromEntries(t.entries()):t;return e.Headers=JSON.stringify(n),this},body(t){return e.Body=t,this},url(t){return e.Url=t.toString(),this},method(t){return e.Method=t,this},title(t){return e.Title=t,this},status(t){return e.Status=t,this},retries(t){return e.Retries=t,this},build:()=>Object.keys(e).flatMap((t=>e[t]?[`${"Title"!==t?`${t}: `:""}${e[t]}`]:[])).join("\n")}},_=[503,520,521,522,524,530],A=[100,5e3,5e3],$=e=>new Promise((t=>setTimeout(t,e))),P=e=>async function(...t){let n=await e(...t),o=0;for(;_.includes(n.status)&&o<A.length;)await $(A[o]),n=await e(...t),o++;o>0&&(n.retries=o);const r=await n.text();return n.text=()=>Promise.resolve(r),n.json=()=>Promise.resolve(JSON.parse(r)),n.clone=()=>n,n},D=(e,t)=>{const n=t||fetch;return n||null==e||e.warn("Fetch is not defined, you will not be able to send http requests, if you are running in a test, make sure fetch is defined globally"),e?async function(...t){if(!n)throw Error("Cannot send http request, fetch is not defined, if you are running in a test, make sure fetch is defined globally");e.log((e=>E().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const o=await P(n)(...t);return e[o.ok?"log":"error"](await(async e=>{const t=await e.text();return E().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).retries(e.retries).build()})(o)),o}:P(n)};let q;const N=()=>{if(q)return q;const e=new Date,t=`${e.getUTCFullYear().toString()}-${(e.getUTCMonth()+1).toString().padStart(2,"0")}-${e.getUTCDate().toString().padStart(2,"0")}-${e.getUTCHours().toString().padStart(2,"0")}:${e.getUTCMinutes().toString().padStart(2,"0")}:${e.getUTCSeconds().toString().padStart(2,"0")}:${e.getUTCMilliseconds().toString()}`,n=Math.floor(1e3+9e3*Math.random());return q=`${t}-${n}`,q};var L,J;(J=L||(L={})).get="GET",J.delete="DELETE",J.post="POST",J.put="PUT",J.patch="PATCH";const K=({path:e,baseUrl:t,queryParams:n,projectId:o})=>{const r=o.slice(1,-27);t=t.replace(T,r?r+".":"");let i=e?`${t.replace(/\/$/,"")}/${null==e?void 0:e.replace(/^\//,"")}`:t;if(n){const e=Object.keys(n);e.forEach(((t,o)=>{i=`${i}${0===o?"?":""}${t}=${encodeURIComponent(n[t])}${o===e.length-1?"":"&"}`}))}return i},M=(...e)=>new Headers(e.reduce(((e,t)=>((e=>Array.isArray(e)?e:e instanceof Headers?Array.from(e.entries()):e?Object.entries(e):[])(t).forEach((([t,n])=>{e[t]="function"==typeof n?n():n})),e)),{})),V={"Content-Type":"application/json"},F=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},H=(e,t)=>{const n={"x-descope-sdk-session-id":N(),"x-descope-sdk-name":"core-js","x-descope-sdk-version":"2.70.1","x-descope-project-id":e};return t&&(n["x-descope-refresh-cookie-name"]=t),n},B=e=>{try{e=JSON.parse(e)}catch(e){return!1}return"object"==typeof e&&null!==e};var z=e=>{var t;return(({baseUrl:e,projectId:t,baseConfig:n,refreshCookieName:o,logger:r,hooks:i,cookiePolicy:s,fetch:a})=>{const l=e||R,c=D(r,a),u=async e=>{var r;const a=(null==i?void 0:i.beforeRequest)?i.beforeRequest(e):e,{path:u,body:d,headers:p,queryParams:g,method:v,token:h}=a,f=(e=>void 0===e?void 0:JSON.stringify(e))(d),w={headers:M(F(t,h),H(t,o),(null==n?void 0:n.baseHeaders)||{},B(f)?V:{},p),method:v,body:f};null!==s&&(w.credentials=s||"include");const m=await c(K({path:u,baseUrl:l,queryParams:g,projectId:t}),w);if((null==i?void 0:i.afterRequest)&&await i.afterRequest(e,null==m?void 0:m.clone()),null==i?void 0:i.transformResponse){const e=await m.json(),t=(y=(null===(r=m.headers)||void 0===r?void 0:r.get("set-cookie"))||"",Object.fromEntries(function(e){if(!e)return[];const t=[];let n=0;function o(){for(;n<e.length&&/\s/.test(e.charAt(n));)n+=1;return n<e.length}function r(){const t=e.charAt(n);return"="!==t&&";"!==t&&","!==t}for(;n<e.length;){const i=n;let s,a,l=!1;for(;o();)if(","===e.charAt(n)){for(s=n,n+=1,o(),a=n;n<e.length&&r();)n+=1;if(n<e.length&&"="===e.charAt(n)){l=!0,n=a,t.push(e.substring(i,s));break}n=s+1}else n+=1;(!l||n>=e.length)&&t.push(e.substring(i,e.length))}return t}(y).map((e=>{const t=e.split(";")[0],n=t.indexOf("=");return n<1?null:[t.substring(0,n).trim(),t.substring(n+1).trim()]})).filter(Boolean))),n=Object.assign(Object.create(null),{json:()=>Promise.resolve(e),cookies:t}),o=new Proxy(m,{get:(e,t)=>{if(t in n)return n[t];const o=e[t];return"function"==typeof o?o.bind(e):o},set:(e,t,o)=>(n[t]=o,!0),has:(e,t)=>t in n||t in e});return n.clone=()=>o,i.transformResponse(o)}var y;return m};return{get:(e,{headers:t,queryParams:n,token:o}={})=>u({path:e,headers:t,queryParams:n,body:void 0,method:L.get,token:o}),post:(e,t,{headers:n,queryParams:o,token:r}={})=>u({path:e,headers:n,queryParams:o,body:t,method:L.post,token:r}),patch:(e,t,{headers:n,queryParams:o,token:r}={})=>u({path:e,headers:n,queryParams:o,body:t,method:L.patch,token:r}),put:(e,t,{headers:n,queryParams:o,token:r}={})=>u({path:e,headers:n,queryParams:o,body:t,method:L.put,token:r}),delete:(e,{headers:t,queryParams:n,token:o}={})=>u({path:e,headers:t,queryParams:n,body:void 0,method:L.delete,token:o}),hooks:i,buildUrl:(e,n)=>K({projectId:t,baseUrl:l,path:e,queryParams:n})}})(Object.assign(Object.assign({},e),{hooks:{beforeRequest:t=>{var n;const o=[].concat((null===(n=e.hooks)||void 0===n?void 0:n.beforeRequest)||[]);return null==o?void 0:o.reduce(((e,t)=>t(e)),t)},afterRequest:async(t,n)=>{var o;const r=[].concat((null===(o=e.hooks)||void 0===o?void 0:o.afterRequest)||[]);0!=r.length&&(await Promise.allSettled(null==r?void 0:r.map((e=>e(t,null==n?void 0:n.clone()))))).forEach((t=>{var n;return"rejected"===t.status&&(null===(n=e.logger)||void 0===n?void 0:n.error(t.reason))}))},transformResponse:null===(t=e.hooks)||void 0===t?void 0:t.transformResponse}}))},Z=429;function G(e,t,n){var o;let r=W(e);if(t){if(!(null==r?void 0:r.tenants)&&(null==r?void 0:r.dct)===t)return(null==r?void 0:r[n])||[];r=null===(o=null==r?void 0:r.tenants)||void 0===o?void 0:o[t]}const i=null==r?void 0:r[n];return Array.isArray(i)?i:[]}function W(e){if("string"!=typeof e||!e)throw new Error("Invalid token provided");return r(e)}function X(e){const{exp:t}=W(e);return(new Date).getTime()/1e3>t}function Y(e){let t=W(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function Q(e,t){return G(e,t,"permissions")}function ee(e,t){return G(e,t,"roles")}const te=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function ne(e,t){var n;const o=await e,r={code:o.status,ok:o.ok,response:o},i=await o.clone().json();return o.ok?r.data=i:(r.error=i,o.status===Z&&Object.assign(r.error,{retryAfter:Number.parseInt(null===(n=o.headers)||void 0===n?void 0:n.get("retry-after"))||0})),r}function oe(e){var t;return(null===(t=W(e))||void 0===t?void 0:t.dct)||""}const re=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),ie=(e,t)=>(n=t)=>t=>{const o=e.filter((e=>e(t)));return!(o.length<e.length)&&(n?n.replace("{val}",t):o.join(" OR "))},se=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),ae=e=>t=>e.test(t),le=ae(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),ce=ae(/^\+[1-9]{1}[0-9]{3,14}$/),ue=re(le,'"{val}" is not a valid email'),de=re(ce,'"{val}" is not a valid phone number'),pe=re((e=>e.length>=1),"Minimum length is 1");const ge=re((e=>"string"==typeof e),"Input is not a string"),ve=re((e=>Array.isArray(e)),"Input is not an array"),he=re((e=>"boolean"==typeof e),"Input is not a boolean"),fe=re((e=>void 0===e),"Input is defined"),we=ie([ge(),fe()],"Input is not a string or undefined"),me=ie([ve(),he()],"Input is not an array or boolean"),ye=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>se(...e).validate(n[t]))),t(...n)),be=e=>[ge(`"${e}" must be a string`)],ke=e=>[we(`"${e}" must be string or undefined`)],Ie=e=>[ge(`"${e}" must be a string`),pe(`"${e}" must not be empty`)],Oe=e=>[ge(`"${e}" must be a string`),ue()],Se=e=>[ge(`"${e}" must be a string`),de()],je=ye(Ie("accessKey")),Ue=e=>({exchange:je(((t,n)=>ne(e.post(x.accessKey.exchange,{loginOptions:n},{token:t}))))}),xe=(e,t,n)=>(t.forEach((t=>{const o=t.split(".");let r=o.shift(),i=e;for(;o.length>0;){if(i=i[r],!r||!i)throw Error(`Invalid path "${t}", "${r}" is missing or has no value`);r=o.shift()}if("function"!=typeof i[r])throw Error(`"${t}" is not a function`);const s=i[r];i[r]=n(s)})),e),Te=({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||1e3,1e3),timeoutMs:Math.min(t||C,C)});var Re,Ce;!function(e){e.sms="sms",e.voice="voice",e.whatsapp="whatsapp",e.im="im"}(Re||(Re={})),function(e){e.email="email"}(Ce||(Ce={}));const Ee=Object.assign(Object.assign({},Re),Ce);var _e;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(_e||(_e={}));const Ae=Ie("loginId"),$e=ye(Ie("token")),Pe=ye(Ae),De=ye(Ie("pendingRef")),qe=ye(Ae,Oe("email")),Ne=e=>({verify:$e((t=>ne(e.post(x.enchantedLink.verify,{token:t})))),signIn:Pe(((n,o,r={},i)=>{var{providerId:s}=r,a=t(r,["providerId"]);return ne(e.post(te(x.enchantedLink.signIn,Ee.email),{loginId:n,URI:o,loginOptions:a,providerId:s},{token:i}))})),signUpOrIn:Pe(((n,o,r={})=>{var{providerId:i}=r,s=t(r,["providerId"]);return ne(e.post(te(x.enchantedLink.signUpOrIn,Ee.email),{loginId:n,URI:o,loginOptions:s,providerId:i}))})),signUp:Pe(((n,o,r,i={})=>{var{providerId:s}=i,a=t(i,["providerId"]);return ne(e.post(te(x.enchantedLink.signUp,Ee.email),{loginId:n,URI:o,user:r,loginOptions:a,providerId:s}))})),waitForSession:De(((t,n)=>new Promise((o=>{const{pollingIntervalMs:r,timeoutMs:i}=Te(n);let s;const a=setInterval((async()=>{const n=await e.post(x.enchantedLink.session,{pendingRef:t});n.ok&&(clearInterval(a),s&&clearTimeout(s),o(ne(Promise.resolve(n))))}),r);s=setTimeout((()=>{o({error:{errorDescription:`Session polling timeout exceeded: ${i}ms`,errorCode:"0"},ok:!1}),clearInterval(a)}),i)})))),update:{email:qe(((t,n,o,r,i)=>ne(e.post(x.enchantedLink.update.email,Object.assign({loginId:t,email:n,URI:o},i),{token:r}))))}}),Le=ye(Ie("flowId")),Je=ye(Ie("executionId"),Ie("stepId"),Ie("interactionId")),Ke=e=>({start:Le(((t,n,o,r,i,s,a,l=!1)=>ne(e.post(x.flow.start,{flowId:t,options:n,conditionInteractionId:o,interactionId:r,componentsVersion:i,flowVersions:s,input:a,isCustomScreen:l})))),next:Je(((t,n,o,r,i,s,a=!1,l)=>ne(e.post(x.flow.next,{executionId:t,stepId:n,interactionId:o,version:r,componentsVersion:i,input:s,isCustomScreen:a,options:l}))))}),Me=Ie("loginId"),Ve=ye(Ie("token")),Fe=ye(Me),He=ye(Me,Se("phone")),Be=ye(Me,Oe("email")),ze=Object.keys(Ee).filter((e=>e!==Re.voice&&e!==Re.im)),Ze=e=>({verify:Ve((t=>ne(e.post(x.magicLink.verify,{token:t})))),signIn:ze.reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:Fe(((n,r,i={},s)=>{var{providerId:a}=i,l=t(i,["providerId"]);return ne(e.post(te(x.magicLink.signIn,o),{loginId:n,URI:r,loginOptions:l,providerId:a},{token:s}))}))})),{}),signUp:ze.reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:Fe(((n,r,i,s={})=>{var{providerId:a}=s,l=t(s,["providerId"]);return ne(e.post(te(x.magicLink.signUp,o),{loginId:n,URI:r,user:i,loginOptions:l,providerId:a}))}))})),{}),signUpOrIn:ze.reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:Fe(((n,r,i={})=>{var{providerId:s}=i,a=t(i,["providerId"]);return ne(e.post(te(x.magicLink.signUpOrIn,o),{loginId:n,URI:r,loginOptions:a,providerId:s}))}))})),{}),update:{email:Be(((t,n,o,r,i)=>ne(e.post(x.magicLink.update.email,Object.assign({loginId:t,email:n,URI:o},i),{token:r})))),phone:Object.keys(Re).filter((e=>e!==Re.voice)).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:He(((t,o,r,i,s)=>ne(e.post(te(x.magicLink.update.phone,n),Object.assign({loginId:t,phone:o,URI:r},s),{token:i}))))})),{})}});var Ge;!function(e){e.facebook="facebook",e.github="github",e.google="google",e.microsoft="microsoft",e.gitlab="gitlab",e.apple="apple",e.discord="discord",e.linkedin="linkedin",e.slack="slack"}(Ge||(Ge={}));const We=ye(Ie("code")),Xe=e=>({start:Object.assign(((t,n,o,r,i)=>ne(e.post(x.oauth.start,o||{},{queryParams:Object.assign(Object.assign({provider:t},n&&{redirectURL:n}),i&&{loginHint:i}),token:r}))),Object.keys(Ge).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,o,r,i)=>ne(e.post(x.oauth.start,o||{},{queryParams:Object.assign(Object.assign({provider:n},t&&{redirectURL:t}),i&&{loginHint:i}),token:r}))})),{})),exchange:We((t=>ne(e.post(x.oauth.exchange,{code:t})))),startNative:(t,n,o)=>ne(e.post(x.oauth.startNative,{provider:t,loginOptions:n,implicit:o})),finishNative:(t,n,o,r,i)=>ne(e.post(x.oauth.finishNative,{provider:t,stateId:n,user:o,code:r,idToken:i})),getOneTapClientId:t=>ne(e.get(x.oauth.oneTap.getOneTapClientId.replace("{provider}",t))),verifyOneTapIDToken:(t,n,o,r)=>ne(e.post(x.oauth.oneTap.verifyOneTapIDToken,{provider:t,idToken:n,nonce:o,loginOptions:r})),exchangeOneTapIDToken:(t,n,o,r)=>ne(e.post(x.oauth.oneTap.exchangeOneTapIDToken,{provider:t,idToken:n,nonce:o,loginOptions:r}))}),Ye=Ie("appId"),Qe=ye(Ye),et=e=>({connect:Qe(((t,n,o)=>{const r=null==n?void 0:n.tenantId,i=null==n?void 0:n.tenantLevel;return null==n||delete n.tenantId,null==n||delete n.tenantLevel,ne(e.post(x.outbound.connect,{appId:t,tenantId:r,tenantLevel:i,options:n},{token:o}))}))}),tt=Ie("loginId"),nt=ye(tt,Ie("code")),ot=ye(tt),rt=ye(tt,Se("phone")),it=ye(tt,Oe("email")),st=e=>({verify:Object.keys(Ee).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:nt(((t,o)=>ne(e.post(te(x.otp.verify,n),{code:o,loginId:t}))))})),{}),signIn:Object.keys(Ee).reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:ot(((n,r={},i)=>{var{providerId:s}=r,a=t(r,["providerId"]);return ne(e.post(te(x.otp.signIn,o),{loginId:n,loginOptions:a,providerId:s},{token:i}))}))})),{}),signUp:Object.keys(Ee).reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:ot(((n,r,i={})=>{var{providerId:s}=i,a=t(i,["providerId"]);return ne(e.post(te(x.otp.signUp,o),{loginId:n,user:r,loginOptions:a,providerId:s}))}))})),{}),signUpOrIn:Object.keys(Ee).reduce(((n,o)=>Object.assign(Object.assign({},n),{[o]:ot(((n,r={})=>{var{providerId:i}=r,s=t(r,["providerId"]);return ne(e.post(te(x.otp.signUpOrIn,o),{loginId:n,loginOptions:s,providerId:i}))}))})),{}),update:{email:it(((t,n,o,r)=>ne(e.post(x.otp.update.email,Object.assign({loginId:t,email:n},r),{token:o})))),phone:Object.keys(Re).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:rt(((t,o,r,i)=>ne(e.post(te(x.otp.update.phone,n),Object.assign({loginId:t,phone:o},i),{token:r}))))})),{})}}),at=ye(Ie("tenant")),lt=ye(Ie("code")),ct=e=>({start:at(((t,n,o,r,i,s,a,l)=>ne(e.post(x.sso.start,o||{},Object.assign({queryParams:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({tenant:t},n&&{redirectURL:n}),i&&{ssoId:i}),s&&{forceAuthn:"true"}),a&&{loginHint:a}),l&&{initiatedEmail:t})},r&&{token:r}))))),exchange:lt((t=>ne(e.post(x.sso.exchange,{code:t}))))}),ut=Ie("loginId"),dt=ye(ut,Ie("code")),pt=ye(ut),gt=ye(ut),vt=e=>({signUp:pt(((t,n)=>ne(e.post(x.totp.signUp,{loginId:t,user:n})))),verify:dt(((t,n,o,r)=>ne(e.post(x.totp.verify,{loginId:t,code:n,loginOptions:o},{token:r})))),update:gt(((t,n)=>ne(e.post(x.totp.update,{loginId:t},{token:n}))))}),ht=Ie("loginId"),ft=Ie("newPassword"),wt=ye(ht,Ie("password")),mt=ye(ht),yt=ye(ht,ft),bt=ye(ht,Ie("oldPassword"),ft),kt=e=>({signUp:wt(((n,o,r,i={})=>{var{providerId:s}=i,a=t(i,["providerId"]);return ne(e.post(x.password.signUp,{loginId:n,password:o,user:r,loginOptions:a,providerId:s}))})),signIn:wt(((n,o,r={})=>{var{providerId:i}=r,s=t(r,["providerId"]);return ne(e.post(x.password.signIn,{loginId:n,password:o,loginOptions:s,providerId:i}))})),sendReset:mt(((t,n,o)=>ne(e.post(x.password.sendReset,{loginId:t,redirectUrl:n,templateOptions:o})))),update:yt(((t,n,o)=>ne(e.post(x.password.update,{loginId:t,newPassword:n},{token:o})))),replace:bt(((t,n,o)=>ne(e.post(x.password.replace,{loginId:t,oldPassword:n,newPassword:o})))),policy:()=>ne(e.get(x.password.policy))}),It=be("loginId"),Ot=Ie("loginId"),St=be("origin"),jt=ye(Ot,St,Ie("name")),Ut=ye(Ot,St),xt=ye(It,St),Tt=ye(Ot,St,ke("token")),Rt=ye(Ie("transactionId"),Ie("response")),Ct=e=>({signUp:{start:jt(((t,n,o,r,i)=>ne(e.post(x.webauthn.signUp.start,{user:{loginId:t,name:o},origin:n,loginOptions:i,passkeyOptions:r})))),finish:Rt(((t,n)=>ne(e.post(x.webauthn.signUp.finish,{transactionId:t,response:n}))))},signIn:{start:xt(((t,n,o,r,i)=>ne(e.post(x.webauthn.signIn.start,{loginId:t,origin:n,loginOptions:o,passkeyOptions:i},{token:r})))),finish:Rt(((t,n)=>ne(e.post(x.webauthn.signIn.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:Ut(((t,n,o,r)=>ne(e.post(x.webauthn.signUpOrIn.start,{loginId:t,origin:n,loginOptions:r,passkeyOptions:o}))))},update:{start:Tt(((t,n,o,r,i)=>ne(e.post(x.webauthn.update.start,{loginId:t,origin:n,passkeyOptions:r,mfa:i},{token:o})))),finish:Rt(((t,n)=>ne(e.post(x.webauthn.update.finish,{transactionId:t,response:n}))))}}),Et=be("loginId"),_t=ye(Et),At=ye(Ie("pendingRef")),$t=e=>({signUpOrIn:_t(((n,o={})=>{var{providerId:r}=o,i=t(o,["providerId"]);return ne(e.post(x.notp.signUpOrIn,{loginId:n,loginOptions:i,providerId:r}))})),signUp:_t(((n,o,r={})=>{var{providerId:i}=r,s=t(r,["providerId"]);return ne(e.post(x.notp.signUp,{loginId:n,user:o,providerId:i,loginOptions:s}))})),signIn:_t(((n,o={},r)=>{var{providerId:i}=o,s=t(o,["providerId"]);return ne(e.post(x.notp.signIn,{loginId:n,loginOptions:s,providerId:i},{token:r}))})),waitForSession:At(((t,n)=>new Promise((o=>{const{pollingIntervalMs:r,timeoutMs:i}=Te(n);let s;const a=setInterval((async()=>{const n=await e.post(x.notp.session,{pendingRef:t});n.ok&&(clearInterval(a),s&&clearTimeout(s),o(ne(Promise.resolve(n))))}),r);s=setTimeout((()=>{o({error:{errorDescription:`Session polling timeout exceeded: ${i}ms`,errorCode:"0"},ok:!1}),clearInterval(a)}),i)}))))}),Pt=ye(Ie("token")),Dt=ye(ke("token"));var qt,Nt=ye([(qt=Ie("projectId"),re(((e,t)=>n=>se(...t).validate(((e,t)=>{const n=(Array.isArray(t)?t.join("."):String(t)).replace(/\[\\?("|')?(\w|d)+\\?("|')?\]/g,((e,t,n)=>"."+n)).split("."),o=n.length;let r=0,i=e===Object(e)?e:void 0;for(;null!=i&&r<o;)i=i[n[r++]];return r&&r===o&&void 0!==i?i:void 0})(n,e)))("projectId",qt))())])((e=>{const{projectId:t,logger:n,baseUrl:o,cookiePolicy:r,baseHeaders:i={},refreshCookieName:s,fetch:a}=e;return l=z({baseUrl:o,projectId:t,logger:n,hooks:{get beforeRequest(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.beforeRequest},get afterRequest(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.afterRequest},get transformResponse(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.transformResponse}},cookiePolicy:r,baseConfig:{baseHeaders:i},refreshCookieName:s,fetch:a}),{accessKey:Ue(l),otp:st(l),magicLink:Ze(l),enchantedLink:Ne(l),oauth:Xe(l),outbound:et(l),sso:ct(l),saml:ct(l),totp:vt(l),notp:$t(l),webauthn:Ct(l),password:kt(l),flow:Ke(l),refresh:Dt(((e,t,n,o)=>{const r={};n&&(r.externalToken=n);const i=o?x.tryRefresh:x.refresh;return ne(l.post(i,r,{token:e,queryParams:t}))})),selectTenant:ye([ge("tenantId")],[we('"token" must be string or undefined')])(((e,t)=>ne(l.post(x.selectTenant,{tenant:e},{token:t})))),logout:Dt((e=>ne(l.post(x.logout,{},{token:e})))),logoutAll:Dt((e=>ne(l.post(x.logoutAll,{},{token:e})))),me:Dt((e=>ne(l.get(x.me,{token:e})))),myTenants:ye([me('"tenants" must a string array or a boolean')],[we('"token" must be string or undefined')])(((e,t)=>{const n={};return"boolean"==typeof e?n.dct=e:n.ids=e,ne(l.post(x.myTenants,n,{token:t}))})),history:Dt((e=>ne(l.get(x.history,{token:e})))),isJwtExpired:Pt(X),getTenants:Pt(Y),getJwtPermissions:Pt(Q),getJwtRoles:Pt(ee),getCurrentTenant:Pt(oe),httpClient:l};var l})),Lt=Object.assign(Nt,{DeliveryMethods:Ee});const Jt=(...e)=>{console.debug(...e)},Kt=(...e)=>{console.warn(...e)},Mt=(e,t)=>{let n;var o;return t>0?(n=1e3*t,Jt(`Using provided nextRefreshSeconds: ${t}s`)):n=((o=e)?o.getTime()-(new Date).getTime():0)-2e4,n>a&&(Jt(`Timeout is too large (${n}ms), setting it to ${a}ms`),n=a),n};
2
2
  /*! js-cookie v3.0.8 | MIT */
3
- function Vt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)"__proto__"!==o&&(e[o]=n[o])}return e}var Ft=function e(t,n){function o(e,o,r){if("undefined"!=typeof document){"number"==typeof(r=Vt({},n,r)).expires&&(r.expires=new Date(Date.now()+864e5*r.expires)),r.expires&&(r.expires=r.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var i="";for(var s in r)r[s]&&(i+="; "+s,!0!==r[s]&&(i+="="+r[s].split(";")[0]));return document.cookie=e+"="+t.write(o,e)+i}}return Object.create({set:o,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var n=document.cookie?document.cookie.split("; "):[],o={},r=0;r<n.length;r++){var i=n[r].split("="),s=i.slice(1).join("=");try{var a=decodeURIComponent(i[0]);if(a in o||(o[a]=t.read(s,a)),e===a)break}catch(e){}}return e?o[e]:o}},remove:function(e,t){o(e,"",Vt({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,Vt({},this.attributes,t))},withConverter:function(t){return e(Vt({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(n)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"});const Ht="DS",Bt="DSR",zt="DSI",Zt="DSRCN";function Gt(e,t,n){if(t){const{cookieDomain:o,cookiePath:r,cookieSameSite:i,cookieExpiration:s,cookieSecure:a}=n,l=new Date(1e3*s),c=Wt(o);Ft.set(e,t,{path:r,domain:c?o:void 0,expires:l,sameSite:i,secure:a})}}function Wt(e){const t=window.location.hostname.split("."),n=null==e?void 0:e.split(".");return t.slice(-(null==n?void 0:n.length)).join(".")===e}const Xt=e=>(null==e?void 0:e.cookieName)||Ht,Yt=e=>(null==e?void 0:e.cookieName)||Bt;function Qt(e="",t){return Ft.get(Yt(t))||I(`${e}${Bt}`)||""}function en(e="",t){return Ft.get(Xt(t))||I(`${e}${Ht}`)||""}function tn(e=""){return I(`${e}${zt}`)||""}function nn(e="",t,n,o){O(`${e}${Bt}`),O(`${e}${Ht}`),O(`${e}${zt}`),O(`${e}${Zt}`);const r=Xt(t);Ft.remove(r,null==o?void 0:o.session);const i=Yt(n);Ft.remove(i,null==o?void 0:o.refresh)}const on=(e,t,n)=>o=>{const r=Object.assign(o,{token:o.token||Qt(e,t)});if(!n){const t=function(e=""){return I(`${e}${Zt}`)}(e);t&&(r.headers=Object.assign(Object.assign({},r.headers||{}),{"x-descope-refresh-cookie-name":t}))}const i=function(e=""){return I(`${e}DTD`)||""}(e);return i&&(r.headers=Object.assign(Object.assign({},r.headers||{}),{"x-descope-trusted-device-token":i})),r},rn=s&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://api.descope.com",sn="vsid",an="vrid";var ln={default:"endpoint"},cn="Blocked by CSP",un="The endpoint parameter is not a valid URL",dn="Failed to load the JS script of the agent",pn="9319";function gn(e,t){var n,o,r,i,s,a=[],l=(n=function(e){var t=function(e,t,n){if(n||2===arguments.length)for(var o,r=0,i=t.length;r<i;r++)!o&&r in t||(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}([],e,!0);return{current:function(){return t[0]},postpone:function(){var e=t.shift();void 0!==e&&t.push(e)},exclude:function(){t.shift()}}}(e),i=0,o=function(){return Math.random()*Math.min(3e3,100*Math.pow(2,i++))},r=new Set,[n.current(),function(e,t){var i,s=t instanceof Error?t.message:"";if(s===cn||s===un)n.exclude(),i=0;else if(s===pn)n.exclude();else if(s===dn){var a=Date.now()-e.getTime()<50,l=n.current();l&&a&&!r.has(l)&&(r.add(l),i=0),n.postpone()}else n.postpone();var c=n.current();return void 0===c?void 0:[c,null!=i?i:e.getTime()+o()-Date.now()]}]),c=l[0],u=l[1];if(void 0===c)return Promise.reject(new TypeError("The list of script URL patterns is empty"));var d=function(e){var n=new Date,o=function(t){return a.push({url:e,startedAt:n,finishedAt:new Date,error:t})},r=t(e);return r.then((function(){return o()}),o),r.catch((function(e){if(null!=s||(s=e),a.length>=5)throw s;var t=u(n,e);if(!t)throw s;var o,r=t[0],i=t[1];return(o=i,new Promise((function(e){return setTimeout(e,o)}))).then((function(){return d(r)}))}))};return d(c).then((function(e){return[e,a]}))}var vn="https://fpnpmcdn.net/v<version>/<apiKey>/loader_v<loaderVersion>.js",hn=vn;function fn(n){var o;n.scriptUrlPattern;var r=n.token,i=n.apiKey,s=void 0===i?r:i,a=t(n,["scriptUrlPattern","token","apiKey"]),l=null!==(o=function(e,t){return function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}(e,t)?e[t]:void 0}(n,"scriptUrlPattern"))&&void 0!==o?o:vn,c=function(){var e=[],t=function(){e.push({time:new Date,state:document.visibilityState})},n=function(e,t,n,o){return e.addEventListener(t,n,o),function(){return e.removeEventListener(t,n,o)}}(document,"visibilitychange",t);return t(),[e,n]}(),u=c[0],d=c[1];return Promise.resolve().then((function(){if(!s||"string"!=typeof s)throw new Error("API key required");var e=function(e,t){return(Array.isArray(e)?e:[e]).map((function(e){return function(e,t){var n=encodeURIComponent;return e.replace(/<[^<>]+>/g,(function(e){return"<version>"===e?"3":"<apiKey>"===e?n(t):"<loaderVersion>"===e?n("3.11.6"):e}))}(String(e),t)}))}(l,s);return gn(e,wn)})).catch((function(e){throw d(),function(e){return e instanceof Error&&e.message===pn?new Error(dn):e}(e)})).then((function(t){var n=t[0],o=t[1];return d(),n.load(e(e({},a),{ldi:{attempts:o,visibilityStates:u}}))}))}function wn(e){return function(e,t,n){var o,r=document,i="securitypolicyviolation",s=function(t){var n=new URL(e,location.href),r=t.blockedURI;r!==n.href&&r!==n.protocol.slice(0,-1)&&r!==n.origin||(o=t,a())};r.addEventListener(i,s);var a=function(){return r.removeEventListener(i,s)};return Promise.resolve().then(t).then((function(e){return a(),e}),(function(e){return new Promise((function(e){var t=new MessageChannel;t.port1.onmessage=function(){return e()},t.port2.postMessage(null)})).then((function(){if(a(),o)return n(o);throw e}))}))}(e,(function(){return function(e){return new Promise((function(t,n){if(function(e){if(URL.prototype)try{return new URL(e,location.href),!1}catch(e){if(e instanceof Error&&"TypeError"===e.name)return!0;throw e}}(e))throw new Error(un);var o=document.createElement("script"),r=function(){var e;return null===(e=o.parentNode)||void 0===e?void 0:e.removeChild(o)},i=document.head||document.getElementsByTagName("head")[0];o.onload=function(){r(),t()},o.onerror=function(){r(),n(new Error(dn))},o.async=!0,o.src=e,i.appendChild(o)}))}(e)}),(function(){throw new Error(cn)})).then(mn)}function mn(){var e=window,t="__fpjs_p_l_b",n=e[t];if(function(e,t){var n,o=null===(n=Object.getOwnPropertyDescriptor)||void 0===n?void 0:n.call(Object,e,t);(null==o?void 0:o.configurable)?delete e[t]:o&&!o.writable||(e[t]=void 0)}(e,t),"function"!=typeof(null==n?void 0:n.load))throw new Error(pn);return n}const yn=(e=!1)=>{const t=I("fp");if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},bn=async(e,t=rn)=>{try{if(yn())return;const n=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),o=new URL(t);o.pathname="/fXj8gt3x8VulJBna/x96Emn69oZwcd7I6";const r=new URL(t);r.pathname="/fXj8gt3x8VulJBna/w78aRZnnDZ3Aqw0I";const i=r.toString()+"?apiKey=<apiKey>&version=<version>&loaderVersion=<loaderVersion>",s=fn({apiKey:e,endpoint:[o.toString(),ln],scriptUrlPattern:[i,hn]}),a=await s,{requestId:l}=await a.get({linkedId:n}),c=((e,t)=>({[sn]:e,[an]:t}))(n,l);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};k("fp",JSON.stringify(t))})(c)}catch(e){console.warn("Could not load fingerprint",e)}},kn=e=>{const t=yn(!0);return t&&e.body&&(e.body.fpData=t),e},In="descopeFlowNonce",On="X-Descope-Flow-Nonce",Sn="/v1/flow/start",jn="/v1/flow/next",Un=(e,t=In)=>`${t}${e}`,xn=(e,t=In)=>{try{const n=Un(e,t),o=I(n);if(!o)return null;const r=JSON.parse(o);return r.expiry<Date.now()?(Tn(e,t),null):{value:r.value,seq:r.seq}}catch(e){return console.error("Error getting flow nonce:",e),null}},Tn=(e,t=In)=>{try{const n=Un(e,t);O(n)}catch(e){console.error("Error removing flow nonce:",e)}},Rn=e=>{var t;return(null===(t=/.*\|#\|(.*)/.exec(e))||void 0===t?void 0:t[1])||null},Cn=async(e,t)=>{try{const n=t.headers.get(On),o=null===n?void 0:(e=>{const t=e.indexOf(".");if(t<=0)return;const n=e.slice(0,t);if(!/^\d+$/.test(n))return;const o=Number(n);return Number.isSafeInteger(o)?o:void 0})(n);let r=await t.clone().json().then((e=>(null==e?void 0:e.executionId)||null)).catch((()=>null));return r||(r=En(e)),{nonce:n,seq:o,executionId:Rn(r)}}catch(e){return{nonce:null,seq:void 0,executionId:null}}},En=e=>{var t;return e.path===jn&&(null===(t=e.body)||void 0===t?void 0:t.executionId)?Rn(e.body.executionId):null},_n="dls_last_user_login_id",An="dls_last_user_display_name",$n=e=>k(_n,e),Pn=()=>I(_n),Dn=()=>I(An),qn=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,o={}]=t,r=Pn(),i=Dn();r&&(null!==(n=o.lastAuth)&&void 0!==n||(o.lastAuth={}),o.lastAuth.loginId=r,o.lastAuth.name=i);return await e(...t)},Nn=e=>t=>async(...n)=>{const o=await t(...n);return e||(O(_n),O(An)),o},Ln="DSLI",Jn=e=>async(...t)=>{const n=await e(...t);return U(Ln),n};function Kn(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}const Mn=(e,t,n,o)=>r=>async(...i)=>{const s=await r(...i);return nn(e,t,n,null==o?void 0:o()),s};async function Vn(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=Wn(n.publicKey.challenge),n.publicKey.user.id=Wn(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=Wn(e.id)})),n}(e);try{const e=await navigator.credentials.create(t);return n=e,JSON.stringify({id:n.id,rawId:Xn(n.rawId),type:n.type,response:{attestationObject:Xn(n.response.attestationObject),clientDataJSON:Xn(n.response.clientDataJSON)}})}catch(e){throw await Bn(e,t,!0)}var n}async function Fn(e){const t=Zn(e);try{return Gn(await navigator.credentials.get(t))}catch(e){throw await Bn(e,t,!1)}}async function Hn(e,t){const n=Zn(e);n.signal=t.signal,n.mediation="conditional";try{return Gn(await navigator.credentials.get(n))}catch(e){throw await Bn(e,n,!1)}}async function Bn(e,t,n){if(e&&"object"==typeof e)try{e.reason=await async function(e,t,n){var o,r;const i=null==e?void 0:e.name;if("AbortError"===i&&(null==t?void 0:t.signal)instanceof AbortSignal)return"aborted";if("InvalidStateError"===i&&n)return"authenticator_already_registered";if("NotSupportedError"===i)return"no_supported_algorithm";if("ConstraintError"===i)return"authenticator_constraints_unsupported";if("SecurityError"===i){const e=window.location.hostname;return"localhost"===e||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(e)?"invalid_rpid":"invalid_domain"}if(!await zn())return"webauthn_unsupported";const s="platform"===(null===(r=null===(o=null==t?void 0:t.publicKey)||void 0===o?void 0:o.authenticatorSelection)||void 0===r?void 0:r.authenticatorAttachment);return n&&s&&!await zn(!0)?"platform_authenticator_unsupported":"NotAllowedError"===i?"not_allowed":"unknown"}(e,t,n)}catch(e){}return e}async function zn(e=!1){var t,n;if(!s)return Promise.resolve(!1);if(m()){const e=null===(n=null===(t=window.descopeBridge)||void 0===t?void 0:t.hostInfo)||void 0===n?void 0:n.webauthn;if("boolean"==typeof e)return e}const o=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return o&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():o}function Zn(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=Wn(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=Wn(e.id)})),n}function Gn(e){return JSON.stringify({id:e.id,rawId:Xn(e.rawId),type:e.type,response:{authenticatorData:Xn(e.response.authenticatorData),clientDataJSON:Xn(e.response.clientDataJSON),signature:Xn(e.response.signature),userHandle:e.response.userHandle?Xn(e.response.userHandle):void 0}})}function Wn(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function Xn(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var Yn,Qn=(Yn=e=>({async signUp(t,n,o){const r=await e.webauthn.signUp.start(t,window.location.origin,n,o);if(!r.ok)return r;const i=await Vn(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,i)},async signIn(t,n){const o=await e.webauthn.signIn.start(t,window.location.origin,void 0,void 0,n);if(!o.ok)return o;const r=await Fn(o.data.options);return await e.webauthn.signIn.finish(o.data.transactionId,r)},async signUpOrIn(t,n){var o;const r=await e.webauthn.signUpOrIn.start(t,window.location.origin,n);if(!r.ok)return r;if(null===(o=r.data)||void 0===o?void 0:o.create){const t=await Vn(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,t)}{const t=await Fn(r.data.options);return await e.webauthn.signIn.finish(r.data.transactionId,t)}},async update(t,n,o){const r=await e.webauthn.update.start(t,window.location.origin,n,o);if(!r.ok)return r;const i=await Vn(r.data.options);return await e.webauthn.update.finish(r.data.transactionId,i)},helpers:{create:Vn,get:Fn,isSupported:zn,conditional:Hn}}),(...e)=>{const t=Yn(...e);return Object.assign(t.signUp,e[0].webauthn.signUp),Object.assign(t.signIn,e[0].webauthn.signIn),Object.assign(t.signUpOrIn,e[0].webauthn.signUpOrIn),Object.assign(t.update,e[0].webauthn.update),t});const eo={config:"/fedcm/config"};async function to(e,t){var n;try{await no(e,t)}catch(e){null===(n=null==t?void 0:t.onFailed)||void 0===n||n.call(t,e)}}async function no(e,t){var n,o;const r=await async function(e,t="google",n,o,r){const i=(()=>{if(window.crypto&&window.crypto.getRandomValues){const e=new Uint8Array(16);return window.crypto.getRandomValues(e),Array.from(e,(e=>e.toString(16).padStart(2,"0"))).join("")}return Math.random().toString(36).substring(2)})(),s=await async function(){return new Promise(((e,t)=>{if(window.google)return void e(window.google.accounts.id);let n=document.getElementById("google-gsi-client-script");n||(n=document.createElement("script"),document.head.appendChild(n),n.async=!0,n.defer=!0,n.id="google-gsi-client-script",n.src="https://accounts.google.com/gsi/client"),n.onload=function(){window.google?e(window.google.accounts.id):t("Failed to load Google GSI client script - not loaded properly")},n.onerror=function(){t("Failed to load Google GSI client script - failed to load")}}))}(),a=await e.oauth.getOneTapClientId(t);if(!a.ok)throw new Error("Failed to get OneTap client ID for provider "+t);const l=a.data.clientId;return new Promise((e=>{var a,c;const u=n=>{e({provider:t,nonce:i,credential:null==n?void 0:n.credential})};s.initialize(Object.assign(Object.assign({},n),{itp_support:null===(a=null==n?void 0:n.itp_support)||void 0===a||a,use_fedcm_for_prompt:null===(c=null==n?void 0:n.use_fedcm_for_prompt)||void 0===c||c,client_id:l,callback:u,nonce:i})),s.prompt((e=>{var t,n;if(r&&(null==e?void 0:e.isDismissedMoment())){const n=null===(t=e.getDismissedReason)||void 0===t?void 0:t.call(e);return null==r||r(n),void u()}if(o&&(null==e?void 0:e.isSkippedMoment())){const t=null===(n=e.getSkippedReason)||void 0===n?void 0:n.call(e);return null==o||o(t),void u()}}))}))}(e,t.provider,t.oneTapConfig,t.onSkipped,t.onDismissed);if(!r.credential)return null;if(null==t?void 0:t.onCodeReceived){const o=await e.oauth.verifyOneTapIDToken(r.provider,r.credential,r.nonce,null==t?void 0:t.loginOptions);if(!o.ok||!o.data)throw new Error("Failed to verify OneTap client ID for provider "+r.provider);null===(n=null==t?void 0:t.onCodeReceived)||void 0===n||n.call(t,o.data.code)}else{const n=await e.oauth.exchangeOneTapIDToken(r.provider,r.credential,r.nonce,null==t?void 0:t.loginOptions);if(!n.ok||!n.data)throw new Error("Failed to exchange OneTap client ID for provider "+r.provider);null===(o=null==t?void 0:t.onAuthenticated)||void 0===o||o.call(t,n.data)}}var oo=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await zn(),o=Object.assign(Object.assign({location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});return t[1]=o,e.flow.start(...t)}});let ro;const io=(e,t)=>new Promise(((n,o)=>{if(!e.length)return o(new Error("No URLs provided to loadScriptWithFallback"));const r=t();if(r)return n(r);const i=e.shift(),s=document.createElement("script");s.src=i,s.id=(e=>{let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return Math.abs(t).toString(16)})(i),s.onload=()=>{const e=t();if(e)return n(e);throw new Error("Could not get entry after loading script from URL")},s.addEventListener("error",(()=>{io(e,t),s.setAttribute("data-error","true")})),document.body.appendChild(s)}));const so=async(e,t,n)=>{ro||(ro=(async()=>{try{return require("oidc-client-ts")}catch(e){return io([l,c],(()=>window.oidc))}})());const{OidcClient:o,WebStorageStateStore:r}=await ro;if(!o)throw new Error("oidc-client-ts is not installed. Please install it by running `npm install oidc-client-ts`");const i=(null==n?void 0:n.redirectUri)||window.location.href;let s,a,u,d;if(null==n?void 0:n.issuer){if(!n.clientId)throw new Error("clientId is required when providing a custom issuer/authority");s=n.issuer,a=n.clientId,u=`${a}_user`,d="openid"}else(null==n?void 0:n.applicationId)?(s=e.httpClient.buildUrl(t),s=`${s}/${n.applicationId}`,a=t,u=`${a}_user`,d="openid email roles descope.custom_claims offline_access"):(s=e.httpClient.buildUrl(t),a=t,u=`${a}_user`,d="openid email roles descope.custom_claims offline_access");const p={authority:s,client_id:a,redirect_uri:i,response_type:"code",scope:(null==n?void 0:n.scope)||d,stateStore:new r({store:window.localStorage,prefix:a}),loadUserInfo:!0,fetchRequestCredentials:"same-origin"};return(null==n?void 0:n.redirectUri)&&(p.redirect_uri=n.redirectUri),{client:new o(p),stateUserKey:u}},ao=(e,t,n)=>{const o=async()=>{let o,r;return o&&r||({client:o,stateUserKey:r}=await so(e,t,n)),{client:o,stateUserKey:r}},r=async(t="")=>{var n;const{client:r,stateUserKey:i}=await o(),s=await r.processSigninResponse(t||window.location.href);var a;return await(null===(n=e.httpClient.hooks)||void 0===n?void 0:n.afterRequest({},new Response(JSON.stringify(s)))),k(i,JSON.stringify({id_token:(a=s).id_token,session_state:a.session_state,profile:a.profile})),(()=>{const e=new URL(window.location.href);e.searchParams.delete("code"),e.searchParams.delete("state"),window.history.replaceState({},document.title,e.toString())})(),s};return{loginWithRedirect:async(t={},n=!1)=>{var r;const{client:i}=await o(),s=await i.createSigninRequest(t),{url:a}=s;return n||(await(null===(r=e.httpClient.hooks)||void 0===r?void 0:r.afterRequest({},new Response(JSON.stringify(s)))),window.location.href=a),{ok:!0,data:s}},finishLogin:r,finishLoginIfNeed:async(e="")=>{if(window.location.search.includes("code")&&window.location.search.includes("state"))return await r(e)},refreshToken:async t=>{var n;const{client:r,stateUserKey:i}=await o(),s=(e=>{const t=I(e);return t?JSON.parse(t):null})(i);if(!s)throw new Error("User not found in storage to refresh token");let a=t;if(!a){const t={};e.httpClient.hooks.beforeRequest(t),a=t.token}const l=await r.useRefreshToken({state:{refresh_token:a,session_state:s.session_state,profile:s.profile}});return await(null===(n=e.httpClient.hooks)||void 0===n?void 0:n.afterRequest({},new Response(JSON.stringify(l)))),l},logout:async(e,t=!1)=>{const{client:n,stateUserKey:r}=await o();e||(e={}),e.id_token_hint=e.id_token_hint||tn(),e.post_logout_redirect_uri=e.post_logout_redirect_uri||window.location.href;const i=await n.createSignoutRequest(e),{url:s}=i;return O(r),t||window.location.replace(s),i}}},lo=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((e=>t=>{var n;return n=t.customStorage,d=n,e(t)}),(e=>n=>{var{fpKey:o,fpLoad:r}=n,i=t(n,["fpKey","fpLoad"]);return s?(o&&r&&bn(o).catch((()=>null)),e(f(i,{beforeRequest:kn}))):e(i)}),(e=>t=>e(Object.assign(Object.assign({},t),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.51.6"},t.baseHeaders)}))),(e=>t=>{const n=Kn(),o=Kn(),r=Kn(),i=Kn(),s=e(f(t,{afterRequest:async(e,t)=>{if(y(e,t))Jt("Session invalidated, notifying subscribers with empty values"),o.pub(null),r.pub(null),n.pub(null),i.pub(null);else{const e=await(async e=>{const t=await w(e);return(null==t?void 0:t.user)||((null==t?void 0:t.hasOwnProperty("userId"))?t:void 0)})(t);e&&r.pub(e);const{sessionJwt:s,sessionExpiration:a,claims:l}=await w(t);s&&o.pub(s),l&&i.pub(l),(a||s)&&n.pub(a||42)}}})),a=xe(s,["logout","logoutAll","oidc.logout"],(e=>async(...t)=>{const s=await e(...t);return o.pub(null),r.pub(null),n.pub(null),i.pub(null),s}));return Object.assign(a,{onSessionTokenChange:o.sub,onUserChange:r.sub,onClaimsChange:i.sub,onIsAuthenticatedChange:e=>n.sub((t=>{e(!!t)}))})}),(e=>n=>{var o;const{enableFlowNonce:r=!0,nonceStoragePrefix:i=In}=n,a=t(n,["enableFlowNonce","nonceStoragePrefix"]);if(!r)return e(a);((e=In)=>{try{if(!b)return;for(let r=0;r<(t=void 0,n=void 0,o=void 0,null!==(o=null!==(t=null==d?void 0:d.length)&&void 0!==t?t:s&&(null===(n=window.localStorage)||void 0===n?void 0:n.length))&&void 0!==o?o:0);r++){const t=S(r);if(t&&t.startsWith(e)){const e=I(t);if(e)try{JSON.parse(e).expiry<Date.now()&&O(t)}catch(e){O(t)}}}}catch(e){console.error("Error cleaning up expired nonces:",e)}var t,n,o})(i);const l=e(f(a,{afterRequest:async(e,t)=>{var n;if(e.path!==Sn&&e.path!==jn)return;const{nonce:o,seq:r,executionId:s}=await Cn(e,t);if(!o||!s)return;const a=e.path===Sn,l=null===(n=xn(s,i))||void 0===n?void 0:n.seq;if(!a&&void 0!==r&&void 0!==l&&r<=l)return;((e,t,n,o=In,r)=>{try{const i=Un(e,o),s=n?172800:10800,a={value:t,expiry:Date.now()+1e3*s,isStart:n,seq:r};k(i,JSON.stringify(a))}catch(e){console.error("Error setting flow nonce:",e)}})(s,o,a,i,null!=r?r:a?void 0:l)},beforeRequest:e=>{if(e.path===jn){const t=En(e);if(t){const n=((e,t=In)=>{var n,o;return null!==(o=null===(n=xn(e,t))||void 0===n?void 0:n.value)&&void 0!==o?o:null})(t,i);n&&(e.headers=e.headers||{},e.headers[On]=n)}}return e}}));if(null===(o=l.flow)||void 0===o?void 0:o.next){let e=Promise.resolve();const t=l.flow.next.bind(l.flow);l.flow.next=async(...n)=>{const o=e;let r;e=new Promise((e=>{r=e})),await o;try{return await t(...n)}finally{r()}}}return l}),(e=>t=>{const n=e(f(t,{afterRequest:async(e,t)=>{if(y(e,t))return void U(Ln);const n=await w(t);(null==n?void 0:n.sessionExpiration)&&((e,t)=>{var n,o;try{s&&(null===(o=null===(n=window.localStorage)||void 0===n?void 0:n.setItem)||void 0===o||o.call(n,e,t))}catch(e){}})(Ln,String(n.sessionExpiration))}}));return xe(n,["logout","logoutAll","oidc.logout"],Jn)}),(e=>n=>{var{autoRefresh:o}=n,i=t(n,["autoRefresh"]);const a=!!o,l="object"==typeof o&&(null==o?void 0:o.customActivityTracking);if(!a||m())return Object.assign(e(i),{markUserActive:()=>{Kt("markUserActive() called but has no effect")}});const{clearAllTimers:c,setTimer:u}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})();let d,p,g=null,v=!1,h=!1;l&&(Jt("Activity-based refresh enabled"),g=(()=>{let e=!0;return{hadActivity:()=>e,reset:()=>{e=!1},markActive:()=>{e=!0}}})()),s&&document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&d&&new Date>d&&(Jt("Expiration time passed, refreshing session"),b.refresh(Qt()||p))}));const b=e(f(i,{afterRequest:async(e,t)=>{const{sessionJwt:n,refreshJwt:o,sessionExpiration:i,nextRefreshSeconds:a}=await w(t);if(y(e,t))Jt("Session invalidated, canceling all timers"),c();else if(n||i){if(d=((e,t)=>{if(t)return new Date(1e3*t);Jt("Could not extract expiration time from session token, trying to decode the token");try{const t=r(e);if(t.exp)return new Date(1e3*t.exp)}catch(e){return null}})(n,i),!d)return void Jt("Could not extract expiration time from session token");p=o,v=a>0;const e=Mt(d,a);if(c(),e<=2e4)return void Jt("Session is too close to expiration, not setting refresh timer");const t=new Date(Date.now()+e).toLocaleTimeString("en-US",{hour12:!1});Jt(`Setting refresh timer for ${t}. (${e}ms)`),g&&(g.reset(),h=!1),u((()=>{if(s&&"hidden"===document.visibilityState)Jt("Skipping refresh due to timer - document is hidden");else{if(g&&v&&!g.hadActivity())return Jt("Skipping refresh due to timer - user is idle"),void(h=!0);Jt("Refreshing session due to timer"),b.refresh(Qt()||o)}}),e)}}}));return Object.assign(xe(b,["logout","logoutAll","oidc.logout"],(e=>async(...t)=>{const n=await e(...t);return Jt("Clearing all timers"),c(),n})),{markUserActive:g?()=>{Jt("markUserActive() called"),v||Jt("markUserActive() called but server does not have inactivity timeout configured (no nextRefreshSeconds)"),g.markActive(),h&&(Jt("User became active after skipped refresh, triggering refresh"),h=!1,c(),b.refresh(Qt()||p))}:()=>{Kt("markUserActive() called but customActivityTracking is not enabled — this call has no effect")}})}),(e=>n=>{var{storeLastAuthenticatedUser:o=!0,keepLastAuthenticatedUserAfterLogout:r=!1}=n,i=t(n,["storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout"]);if(!o)return Object.assign(e(i),{getLastUserLoginId:Pn,getLastUserDisplayName:Dn});const s=e(f(i,{afterRequest:async(e,t)=>{var n;const{userInfo:o,lastAuth:r}=await(async e=>{if(!(null==e?void 0:e.ok))return{userInfo:void 0,lastAuth:void 0};const t=await(null==e?void 0:e.clone().json()),n=h((null==t?void 0:t.authInfo)||t||{});return{userInfo:(null==n?void 0:n.user)||((null==n?void 0:n.hasOwnProperty("userId"))?n:void 0),lastAuth:t.lastAuth}})(t),i=null===(n=null==o?void 0:o.loginIds)||void 0===n?void 0:n[0],s=null==o?void 0:o.name;i?($n(i),(e=>{k(An,e)})(s)):(null==r?void 0:r.loginId)&&$n(r.loginId)}}));let a=xe(s,["flow.start"],qn);return a=xe(a,["logout","logoutAll"],Nn(r)),Object.assign(a,{getLastUserLoginId:Pn,getLastUserDisplayName:Dn})}),(e=>n=>{var{persistTokens:o,sessionTokenViaCookie:r,refreshTokenViaCookie:i,storagePrefix:a,refreshCookieName:l}=n,c=t(n,["persistTokens","sessionTokenViaCookie","refreshTokenViaCookie","storagePrefix","refreshCookieName"]);if(!o||!s)return e(Object.assign({refreshCookieName:l},c));let u;const d=e(f(Object.assign({refreshCookieName:l},c),{beforeRequest:on(a,i,l),afterRequest:async(e,t)=>{if(y(e,t))Jt("Session invalidated, clearing persisted tokens"),nn(a,r,i,u);else{const e=await w(t);e.cookieName?k(`${a||""}${Zt}`,e.cookieName):e.refreshJwt&&O(`${a||""}${Zt}`);const n=((e={},t=!1,n="",o=!1)=>{var r,i,s,a;const{sessionJwt:l,refreshJwt:c,trustedDeviceJwt:u}=e;let d;if(c)if(o){O(`${n}${Bt}`);const t=o.sameSite||"Strict",s=null===(r=o.secure)||void 0===r||r,a=null!==(i=o.domain)&&void 0!==i?i:e.cookieDomain,l=Yt(o);s&&"https:"!==window.location.protocol&&Kt("Refresh token cookie is configured with secure=true but the page is not using HTTPS. The cookie will not be set. To fix this, pass refreshTokenViaCookie: { secure: process.env['NODE_ENV'] !== 'development' }");const u=Object.assign(Object.assign({},e),{cookieSameSite:t,cookieSecure:s,cookieDomain:a});Gt(l,c,u);const p=Wt(a);d=Object.assign(Object.assign({},d),{refresh:{path:u.cookiePath,domain:p?a:void 0}})}else{const e=Yt(o);Ft.remove(e),k(`${n}${Bt}`,c)}if(l)if(t){const n=t.sameSite||"Strict",o=null===(s=t.secure)||void 0===s||s,r=null!==(a=t.domain)&&void 0!==a?a:e.cookieDomain,i=Xt(t);o&&"https:"!==window.location.protocol&&Kt("Session token cookie is configured with secure=true but the page is not using HTTPS. The cookie will not be set. To fix this, pass sessionTokenViaCookie: { secure: process.env['NODE_ENV'] !== 'development' }");const c=Object.assign(Object.assign({},e),{cookieSameSite:n,cookieSecure:o,cookieDomain:r});Gt(i,l,c);const u=Wt(r);d=Object.assign(Object.assign({},d),{session:{path:c.cookiePath,domain:u?r:void 0}})}else k(`${n}${Ht}`,l);return e.idToken&&k(`${n}${zt}`,e.idToken),u&&k(`${n}DTD`,u),d})(e,r,a,i);n&&(u=n)}}})),p=xe(d,["logout","logoutAll","oidc.logout"],Mn(a,r,i,(()=>u)));return Object.assign(p,{getRefreshToken:()=>Qt(a,i),getSessionToken:()=>en(a,r),getIdToken:()=>tn(a)})}))((e=>{const t=Lt(e),n=ao(t,e.projectId,e.oidcConfig);return Object.assign(Object.assign({},t),{refresh:async(o,r)=>{var i;if(m())return Jt(`Refresh called in native flow: ${(new Error).stack}`),Promise.resolve({ok:!1,error:{errorCode:"J171000",errorDescription:"Refresh is not supported in native flows via the web SDK"}});if(e.oidcConfig)try{return await n.refreshToken(o),Promise.resolve({ok:!0})}catch(e){return Promise.resolve({ok:!1,error:{errorCode:"J161001",errorDescription:e.toString()}})}if(r&&s&&void 0!==window.localStorage&&!j(Ln)&&!I(_n)&&!j("DSLI_DISABLED"))return Promise.resolve({ok:!0});const a=en(),l=Qt();let c="";if(e.getExternalToken)try{c=await(null===(i=e.getExternalToken)||void 0===i?void 0:i.call(e))}catch(e){Jt("Error getting external token while refreshing",e)}return t.refresh(o,{dcs:a?"t":"f",dcr:l?"t":"f"},c,r)},logout:async o=>{if(e.oidcConfig)try{return await n.logout({id_token_hint:o}),Promise.resolve({ok:!0})}catch(e){return Promise.resolve({ok:!1,error:{errorCode:"J161000",errorDescription:e.toString()}})}return t.logout(o)},flow:oo(t),webauthn:Qn(t),fedcm:(o=t,r=e.projectId,{onetap:{requestExchangeCode(e){to(o,e)},requestAuthentication(e){to(o,e)}},async oneTap(e,t,n,r,i){await no(o,{provider:e,oneTapConfig:t,loginOptions:n,onSkipped:r,onDismissed:i})},async launch(e){var t;const n={identity:{context:e||"signin",providers:[{configURL:o.httpClient.buildUrl(r+eo.config),clientId:r}]}},i=await(null===(t=navigator.credentials)||void 0===t?void 0:t.get(n));return o.refresh(i.token)},isSupported:()=>s&&"IdentityCredential"in window,async isLoggedIn(e){var t;const n=o.httpClient.buildUrl(r+eo.config);try{const o={identity:{context:e||"signin",providers:[{configURL:n,clientId:r}]}},i=await(null===(t=navigator.credentials)||void 0===t?void 0:t.get(o));return!!i&&!!i.token}catch(e){return!1}}}),oidc:n});var o,r}));return lo.REFRESH_TOKEN_KEY=Bt,lo.SESSION_TOKEN_KEY=Ht,lo}));
3
+ function Vt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)"__proto__"!==o&&(e[o]=n[o])}return e}var Ft=function e(t,n){function o(e,o,r){if("undefined"!=typeof document){"number"==typeof(r=Vt({},n,r)).expires&&(r.expires=new Date(Date.now()+864e5*r.expires)),r.expires&&(r.expires=r.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var i="";for(var s in r)r[s]&&(i+="; "+s,!0!==r[s]&&(i+="="+r[s].split(";")[0]));return document.cookie=e+"="+t.write(o,e)+i}}return Object.create({set:o,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var n=document.cookie?document.cookie.split("; "):[],o={},r=0;r<n.length;r++){var i=n[r].split("="),s=i.slice(1).join("=");try{var a=decodeURIComponent(i[0]);if(a in o||(o[a]=t.read(s,a)),e===a)break}catch(e){}}return e?o[e]:o}},remove:function(e,t){o(e,"",Vt({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,Vt({},this.attributes,t))},withConverter:function(t){return e(Vt({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(n)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"});const Ht="DS",Bt="DSR",zt="DSI",Zt="DSRCN";function Gt(e,t,n){if(t){const{cookieDomain:o,cookiePath:r,cookieSameSite:i,cookieExpiration:s,cookieSecure:a}=n,l=new Date(1e3*s),c=Wt(o);Ft.set(e,t,{path:r,domain:c?o:void 0,expires:l,sameSite:i,secure:a})}}function Wt(e){const t=window.location.hostname.split("."),n=null==e?void 0:e.split(".");return t.slice(-(null==n?void 0:n.length)).join(".")===e}const Xt=e=>(null==e?void 0:e.cookieName)||Ht,Yt=e=>(null==e?void 0:e.cookieName)||Bt;function Qt(e="",t){return Ft.get(Yt(t))||I(`${e}${Bt}`)||""}function en(e="",t){return Ft.get(Xt(t))||I(`${e}${Ht}`)||""}function tn(e=""){return I(`${e}${zt}`)||""}function nn(e="",t,n,o){O(`${e}${Bt}`),O(`${e}${Ht}`),O(`${e}${zt}`),O(`${e}${Zt}`);const r=Xt(t);Ft.remove(r,null==o?void 0:o.session);const i=Yt(n);Ft.remove(i,null==o?void 0:o.refresh)}const on=(e,t,n)=>o=>{const r=Object.assign(o,{token:o.token||Qt(e,t)});if(!n){const t=function(e=""){return I(`${e}${Zt}`)}(e);t&&(r.headers=Object.assign(Object.assign({},r.headers||{}),{"x-descope-refresh-cookie-name":t}))}const i=function(e=""){return I(`${e}DTD`)||""}(e);return i&&(r.headers=Object.assign(Object.assign({},r.headers||{}),{"x-descope-trusted-device-token":i})),r},rn=s&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://api.descope.com",sn="vsid",an="vrid";var ln={default:"endpoint"},cn="Blocked by CSP",un="The endpoint parameter is not a valid URL",dn="Failed to load the JS script of the agent",pn="9319";function gn(e,t){var n,o,r,i,s,a=[],l=(n=function(e){var t=function(e,t,n){if(n||2===arguments.length)for(var o,r=0,i=t.length;r<i;r++)!o&&r in t||(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}([],e,!0);return{current:function(){return t[0]},postpone:function(){var e=t.shift();void 0!==e&&t.push(e)},exclude:function(){t.shift()}}}(e),i=0,o=function(){return Math.random()*Math.min(3e3,100*Math.pow(2,i++))},r=new Set,[n.current(),function(e,t){var i,s=t instanceof Error?t.message:"";if(s===cn||s===un)n.exclude(),i=0;else if(s===pn)n.exclude();else if(s===dn){var a=Date.now()-e.getTime()<50,l=n.current();l&&a&&!r.has(l)&&(r.add(l),i=0),n.postpone()}else n.postpone();var c=n.current();return void 0===c?void 0:[c,null!=i?i:e.getTime()+o()-Date.now()]}]),c=l[0],u=l[1];if(void 0===c)return Promise.reject(new TypeError("The list of script URL patterns is empty"));var d=function(e){var n=new Date,o=function(t){return a.push({url:e,startedAt:n,finishedAt:new Date,error:t})},r=t(e);return r.then((function(){return o()}),o),r.catch((function(e){if(null!=s||(s=e),a.length>=5)throw s;var t=u(n,e);if(!t)throw s;var o,r=t[0],i=t[1];return(o=i,new Promise((function(e){return setTimeout(e,o)}))).then((function(){return d(r)}))}))};return d(c).then((function(e){return[e,a]}))}var vn="https://fpnpmcdn.net/v<version>/<apiKey>/loader_v<loaderVersion>.js",hn=vn;function fn(n){var o;n.scriptUrlPattern;var r=n.token,i=n.apiKey,s=void 0===i?r:i,a=t(n,["scriptUrlPattern","token","apiKey"]),l=null!==(o=function(e,t){return function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}(e,t)?e[t]:void 0}(n,"scriptUrlPattern"))&&void 0!==o?o:vn,c=function(){var e=[],t=function(){e.push({time:new Date,state:document.visibilityState})},n=function(e,t,n,o){return e.addEventListener(t,n,o),function(){return e.removeEventListener(t,n,o)}}(document,"visibilitychange",t);return t(),[e,n]}(),u=c[0],d=c[1];return Promise.resolve().then((function(){if(!s||"string"!=typeof s)throw new Error("API key required");var e=function(e,t){return(Array.isArray(e)?e:[e]).map((function(e){return function(e,t){var n=encodeURIComponent;return e.replace(/<[^<>]+>/g,(function(e){return"<version>"===e?"3":"<apiKey>"===e?n(t):"<loaderVersion>"===e?n("3.11.6"):e}))}(String(e),t)}))}(l,s);return gn(e,wn)})).catch((function(e){throw d(),function(e){return e instanceof Error&&e.message===pn?new Error(dn):e}(e)})).then((function(t){var n=t[0],o=t[1];return d(),n.load(e(e({},a),{ldi:{attempts:o,visibilityStates:u}}))}))}function wn(e){return function(e,t,n){var o,r=document,i="securitypolicyviolation",s=function(t){var n=new URL(e,location.href),r=t.blockedURI;r!==n.href&&r!==n.protocol.slice(0,-1)&&r!==n.origin||(o=t,a())};r.addEventListener(i,s);var a=function(){return r.removeEventListener(i,s)};return Promise.resolve().then(t).then((function(e){return a(),e}),(function(e){return new Promise((function(e){var t=new MessageChannel;t.port1.onmessage=function(){return e()},t.port2.postMessage(null)})).then((function(){if(a(),o)return n(o);throw e}))}))}(e,(function(){return function(e){return new Promise((function(t,n){if(function(e){if(URL.prototype)try{return new URL(e,location.href),!1}catch(e){if(e instanceof Error&&"TypeError"===e.name)return!0;throw e}}(e))throw new Error(un);var o=document.createElement("script"),r=function(){var e;return null===(e=o.parentNode)||void 0===e?void 0:e.removeChild(o)},i=document.head||document.getElementsByTagName("head")[0];o.onload=function(){r(),t()},o.onerror=function(){r(),n(new Error(dn))},o.async=!0,o.src=e,i.appendChild(o)}))}(e)}),(function(){throw new Error(cn)})).then(mn)}function mn(){var e=window,t="__fpjs_p_l_b",n=e[t];if(function(e,t){var n,o=null===(n=Object.getOwnPropertyDescriptor)||void 0===n?void 0:n.call(Object,e,t);(null==o?void 0:o.configurable)?delete e[t]:o&&!o.writable||(e[t]=void 0)}(e,t),"function"!=typeof(null==n?void 0:n.load))throw new Error(pn);return n}const yn=(e=!1)=>{const t=I("fp");if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},bn=async(e,t=rn)=>{try{if(yn())return;const n=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),o=new URL(t);o.pathname="/fXj8gt3x8VulJBna/x96Emn69oZwcd7I6";const r=new URL(t);r.pathname="/fXj8gt3x8VulJBna/w78aRZnnDZ3Aqw0I";const i=r.toString()+"?apiKey=<apiKey>&version=<version>&loaderVersion=<loaderVersion>",s=fn({apiKey:e,endpoint:[o.toString(),ln],scriptUrlPattern:[i,hn]}),a=await s,{requestId:l}=await a.get({linkedId:n}),c=((e,t)=>({[sn]:e,[an]:t}))(n,l);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};k("fp",JSON.stringify(t))})(c)}catch(e){console.warn("Could not load fingerprint",e)}},kn=e=>{const t=yn(!0);return t&&e.body&&(e.body.fpData=t),e},In="descopeFlowNonce",On="X-Descope-Flow-Nonce",Sn="/v1/flow/start",jn="/v1/flow/next",Un=(e,t=In)=>`${t}${e}`,xn=(e,t=In)=>{try{const n=Un(e,t),o=I(n);if(!o)return null;const r=JSON.parse(o);return r.expiry<Date.now()?(Tn(e,t),null):{value:r.value,seq:r.seq}}catch(e){return console.error("Error getting flow nonce:",e),null}},Tn=(e,t=In)=>{try{const n=Un(e,t);O(n)}catch(e){console.error("Error removing flow nonce:",e)}},Rn=e=>{var t;return(null===(t=/.*\|#\|(.*)/.exec(e))||void 0===t?void 0:t[1])||null},Cn=async(e,t)=>{try{const n=t.headers.get(On),o=null===n?void 0:(e=>{const t=e.indexOf(".");if(t<=0)return;const n=e.slice(0,t);if(!/^\d+$/.test(n))return;const o=Number(n);return Number.isSafeInteger(o)?o:void 0})(n);let r=await t.clone().json().then((e=>(null==e?void 0:e.executionId)||null)).catch((()=>null));return r||(r=En(e)),{nonce:n,seq:o,executionId:Rn(r)}}catch(e){return{nonce:null,seq:void 0,executionId:null}}},En=e=>{var t;return e.path===jn&&(null===(t=e.body)||void 0===t?void 0:t.executionId)?Rn(e.body.executionId):null},_n="dls_last_user_login_id",An="dls_last_user_display_name",$n=e=>k(_n,e),Pn=()=>I(_n),Dn=()=>I(An),qn=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,o={}]=t,r=Pn(),i=Dn();r&&(null!==(n=o.lastAuth)&&void 0!==n||(o.lastAuth={}),o.lastAuth.loginId=r,o.lastAuth.name=i);return await e(...t)},Nn=e=>t=>async(...n)=>{const o=await t(...n);return e||(O(_n),O(An)),o},Ln="DSLI",Jn=e=>async(...t)=>{const n=await e(...t);return U(Ln),n};function Kn(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}const Mn=(e,t,n,o)=>r=>async(...i)=>{const s=await r(...i);return nn(e,t,n,null==o?void 0:o()),s};async function Vn(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=Wn(n.publicKey.challenge),n.publicKey.user.id=Wn(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=Wn(e.id)})),n}(e);try{const e=await navigator.credentials.create(t);return n=e,JSON.stringify({id:n.id,rawId:Xn(n.rawId),type:n.type,response:{attestationObject:Xn(n.response.attestationObject),clientDataJSON:Xn(n.response.clientDataJSON)}})}catch(e){throw await Bn(e,t,!0)}var n}async function Fn(e){const t=Zn(e);try{return Gn(await navigator.credentials.get(t))}catch(e){throw await Bn(e,t,!1)}}async function Hn(e,t){const n=Zn(e);n.signal=t.signal,n.mediation="conditional";try{return Gn(await navigator.credentials.get(n))}catch(e){throw await Bn(e,n,!1)}}async function Bn(e,t,n){if(e&&"object"==typeof e)try{e.reason=await async function(e,t,n){var o,r;const i=null==e?void 0:e.name;if("AbortError"===i&&(null==t?void 0:t.signal)instanceof AbortSignal)return"aborted";if("InvalidStateError"===i&&n)return"authenticator_already_registered";if("NotSupportedError"===i)return"no_supported_algorithm";if("ConstraintError"===i)return"authenticator_constraints_unsupported";if("SecurityError"===i){const e=window.location.hostname;return"localhost"===e||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(e)?"invalid_rpid":"invalid_domain"}if(!await zn())return"webauthn_unsupported";const s="platform"===(null===(r=null===(o=null==t?void 0:t.publicKey)||void 0===o?void 0:o.authenticatorSelection)||void 0===r?void 0:r.authenticatorAttachment);return n&&s&&!await zn(!0)?"platform_authenticator_unsupported":"NotAllowedError"===i?"not_allowed":"unknown"}(e,t,n)}catch(e){}return e}async function zn(e=!1){var t,n;if(!s)return Promise.resolve(!1);if(m()){const e=null===(n=null===(t=window.descopeBridge)||void 0===t?void 0:t.hostInfo)||void 0===n?void 0:n.webauthn;if("boolean"==typeof e)return e}const o=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return o&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():o}function Zn(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=Wn(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=Wn(e.id)})),n}function Gn(e){return JSON.stringify({id:e.id,rawId:Xn(e.rawId),type:e.type,response:{authenticatorData:Xn(e.response.authenticatorData),clientDataJSON:Xn(e.response.clientDataJSON),signature:Xn(e.response.signature),userHandle:e.response.userHandle?Xn(e.response.userHandle):void 0}})}function Wn(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function Xn(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var Yn,Qn=(Yn=e=>({async signUp(t,n,o){const r=await e.webauthn.signUp.start(t,window.location.origin,n,o);if(!r.ok)return r;const i=await Vn(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,i)},async signIn(t,n){const o=await e.webauthn.signIn.start(t,window.location.origin,void 0,void 0,n);if(!o.ok)return o;const r=await Fn(o.data.options);return await e.webauthn.signIn.finish(o.data.transactionId,r)},async signUpOrIn(t,n){var o;const r=await e.webauthn.signUpOrIn.start(t,window.location.origin,n);if(!r.ok)return r;if(null===(o=r.data)||void 0===o?void 0:o.create){const t=await Vn(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,t)}{const t=await Fn(r.data.options);return await e.webauthn.signIn.finish(r.data.transactionId,t)}},async update(t,n,o){const r=await e.webauthn.update.start(t,window.location.origin,n,o);if(!r.ok)return r;const i=await Vn(r.data.options);return await e.webauthn.update.finish(r.data.transactionId,i)},helpers:{create:Vn,get:Fn,isSupported:zn,conditional:Hn}}),(...e)=>{const t=Yn(...e);return Object.assign(t.signUp,e[0].webauthn.signUp),Object.assign(t.signIn,e[0].webauthn.signIn),Object.assign(t.signUpOrIn,e[0].webauthn.signUpOrIn),Object.assign(t.update,e[0].webauthn.update),t});const eo={config:"/fedcm/config"};async function to(e,t){var n;try{await no(e,t)}catch(e){null===(n=null==t?void 0:t.onFailed)||void 0===n||n.call(t,e)}}async function no(e,t){var n,o;const r=await async function(e,t="google",n,o,r){const i=(()=>{if(window.crypto&&window.crypto.getRandomValues){const e=new Uint8Array(16);return window.crypto.getRandomValues(e),Array.from(e,(e=>e.toString(16).padStart(2,"0"))).join("")}return Math.random().toString(36).substring(2)})(),s=await async function(){return new Promise(((e,t)=>{if(window.google)return void e(window.google.accounts.id);let n=document.getElementById("google-gsi-client-script");n||(n=document.createElement("script"),document.head.appendChild(n),n.async=!0,n.defer=!0,n.id="google-gsi-client-script",n.src="https://accounts.google.com/gsi/client"),n.onload=function(){window.google?e(window.google.accounts.id):t("Failed to load Google GSI client script - not loaded properly")},n.onerror=function(){t("Failed to load Google GSI client script - failed to load")}}))}(),a=await e.oauth.getOneTapClientId(t);if(!a.ok)throw new Error("Failed to get OneTap client ID for provider "+t);const l=a.data.clientId;return new Promise((e=>{var a,c;const u=n=>{e({provider:t,nonce:i,credential:null==n?void 0:n.credential})};s.initialize(Object.assign(Object.assign({},n),{itp_support:null===(a=null==n?void 0:n.itp_support)||void 0===a||a,use_fedcm_for_prompt:null===(c=null==n?void 0:n.use_fedcm_for_prompt)||void 0===c||c,client_id:l,callback:u,nonce:i})),s.prompt((e=>{var t,n;if(r&&(null==e?void 0:e.isDismissedMoment())){const n=null===(t=e.getDismissedReason)||void 0===t?void 0:t.call(e);return null==r||r(n),void u()}if(o&&(null==e?void 0:e.isSkippedMoment())){const t=null===(n=e.getSkippedReason)||void 0===n?void 0:n.call(e);return null==o||o(t),void u()}}))}))}(e,t.provider,t.oneTapConfig,t.onSkipped,t.onDismissed);if(!r.credential)return null;if(null==t?void 0:t.onCodeReceived){const o=await e.oauth.verifyOneTapIDToken(r.provider,r.credential,r.nonce,null==t?void 0:t.loginOptions);if(!o.ok||!o.data)throw new Error("Failed to verify OneTap client ID for provider "+r.provider);null===(n=null==t?void 0:t.onCodeReceived)||void 0===n||n.call(t,o.data.code)}else{const n=await e.oauth.exchangeOneTapIDToken(r.provider,r.credential,r.nonce,null==t?void 0:t.loginOptions);if(!n.ok||!n.data)throw new Error("Failed to exchange OneTap client ID for provider "+r.provider);null===(o=null==t?void 0:t.onAuthenticated)||void 0===o||o.call(t,n.data)}}var oo=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await zn(),o=Object.assign(Object.assign({location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});return t[1]=o,e.flow.start(...t)}});let ro;const io=(e,t)=>new Promise(((n,o)=>{if(!e.length)return o(new Error("No URLs provided to loadScriptWithFallback"));const r=t();if(r)return n(r);const i=e.shift(),s=document.createElement("script");s.src=i,s.id=(e=>{let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return Math.abs(t).toString(16)})(i),s.onload=()=>{const e=t();if(e)return n(e);throw new Error("Could not get entry after loading script from URL")},s.addEventListener("error",(()=>{io(e,t),s.setAttribute("data-error","true")})),document.body.appendChild(s)}));const so=async(e,t,n)=>{ro||(ro=(async()=>{try{return require("oidc-client-ts")}catch(e){return io([l,c],(()=>window.oidc))}})());const{OidcClient:o,WebStorageStateStore:r}=await ro;if(!o)throw new Error("oidc-client-ts is not installed. Please install it by running `npm install oidc-client-ts`");const i=(null==n?void 0:n.redirectUri)||window.location.href;let s,a,u,d;if(null==n?void 0:n.issuer){if(!n.clientId)throw new Error("clientId is required when providing a custom issuer/authority");s=n.issuer,a=n.clientId,u=`${a}_user`,d="openid"}else(null==n?void 0:n.applicationId)?(s=e.httpClient.buildUrl(t),s=`${s}/${n.applicationId}`,a=t,u=`${a}_user`,d="openid email roles descope.custom_claims offline_access"):(s=e.httpClient.buildUrl(t),a=t,u=`${a}_user`,d="openid email roles descope.custom_claims offline_access");const p={authority:s,client_id:a,redirect_uri:i,response_type:"code",scope:(null==n?void 0:n.scope)||d,stateStore:new r({store:window.localStorage,prefix:a}),loadUserInfo:!0,fetchRequestCredentials:"same-origin"};return(null==n?void 0:n.redirectUri)&&(p.redirect_uri=n.redirectUri),{client:new o(p),stateUserKey:u}},ao=(e,t,n)=>{const o=async()=>{let o,r;return o&&r||({client:o,stateUserKey:r}=await so(e,t,n)),{client:o,stateUserKey:r}},r=async(t="")=>{var n;const{client:r,stateUserKey:i}=await o(),s=await r.processSigninResponse(t||window.location.href);var a;return await(null===(n=e.httpClient.hooks)||void 0===n?void 0:n.afterRequest({},new Response(JSON.stringify(s)))),k(i,JSON.stringify({id_token:(a=s).id_token,session_state:a.session_state,profile:a.profile})),(()=>{const e=new URL(window.location.href);e.searchParams.delete("code"),e.searchParams.delete("state"),window.history.replaceState({},document.title,e.toString())})(),s};return{loginWithRedirect:async(t={},n=!1)=>{var r;const{client:i}=await o(),s=await i.createSigninRequest(t),{url:a}=s;return n||(await(null===(r=e.httpClient.hooks)||void 0===r?void 0:r.afterRequest({},new Response(JSON.stringify(s)))),window.location.href=a),{ok:!0,data:s}},finishLogin:r,finishLoginIfNeed:async(e="")=>{if(window.location.search.includes("code")&&window.location.search.includes("state"))return await r(e)},refreshToken:async t=>{var n;const{client:r,stateUserKey:i}=await o(),s=(e=>{const t=I(e);return t?JSON.parse(t):null})(i);if(!s)throw new Error("User not found in storage to refresh token");let a=t;if(!a){const t={};e.httpClient.hooks.beforeRequest(t),a=t.token}const l=await r.useRefreshToken({state:{refresh_token:a,session_state:s.session_state,profile:s.profile}});return await(null===(n=e.httpClient.hooks)||void 0===n?void 0:n.afterRequest({},new Response(JSON.stringify(l)))),l},logout:async(e,t=!1)=>{const{client:n,stateUserKey:r}=await o();e||(e={}),e.id_token_hint=e.id_token_hint||tn(),e.post_logout_redirect_uri=e.post_logout_redirect_uri||window.location.href;const i=await n.createSignoutRequest(e),{url:s}=i;return O(r),t||window.location.replace(s),i}}},lo=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((e=>t=>{var n;return n=t.customStorage,d=n,e(t)}),(e=>n=>{var{fpKey:o,fpLoad:r}=n,i=t(n,["fpKey","fpLoad"]);return s?(o&&r&&bn(o).catch((()=>null)),e(f(i,{beforeRequest:kn}))):e(i)}),(e=>t=>e(Object.assign(Object.assign({},t),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.52.1"},t.baseHeaders)}))),(e=>t=>{const n=Kn(),o=Kn(),r=Kn(),i=Kn(),s=e(f(t,{afterRequest:async(e,t)=>{if(y(e,t))Jt("Session invalidated, notifying subscribers with empty values"),o.pub(null),r.pub(null),n.pub(null),i.pub(null);else{const e=await(async e=>{const t=await w(e);return(null==t?void 0:t.user)||((null==t?void 0:t.hasOwnProperty("userId"))?t:void 0)})(t);e&&r.pub(e);const{sessionJwt:s,sessionExpiration:a,claims:l}=await w(t);s&&o.pub(s),l&&i.pub(l),(a||s)&&n.pub(a||42)}}})),a=xe(s,["logout","logoutAll","oidc.logout"],(e=>async(...t)=>{const s=await e(...t);return o.pub(null),r.pub(null),n.pub(null),i.pub(null),s}));return Object.assign(a,{onSessionTokenChange:o.sub,onUserChange:r.sub,onClaimsChange:i.sub,onIsAuthenticatedChange:e=>n.sub((t=>{e(!!t)}))})}),(e=>n=>{var o;const{enableFlowNonce:r=!0,nonceStoragePrefix:i=In}=n,a=t(n,["enableFlowNonce","nonceStoragePrefix"]);if(!r)return e(a);((e=In)=>{try{if(!b)return;for(let r=0;r<(t=void 0,n=void 0,o=void 0,null!==(o=null!==(t=null==d?void 0:d.length)&&void 0!==t?t:s&&(null===(n=window.localStorage)||void 0===n?void 0:n.length))&&void 0!==o?o:0);r++){const t=S(r);if(t&&t.startsWith(e)){const e=I(t);if(e)try{JSON.parse(e).expiry<Date.now()&&O(t)}catch(e){O(t)}}}}catch(e){console.error("Error cleaning up expired nonces:",e)}var t,n,o})(i);const l=e(f(a,{afterRequest:async(e,t)=>{var n;if(e.path!==Sn&&e.path!==jn)return;const{nonce:o,seq:r,executionId:s}=await Cn(e,t);if(!o||!s)return;const a=e.path===Sn,l=null===(n=xn(s,i))||void 0===n?void 0:n.seq;if(!a&&void 0!==r&&void 0!==l&&r<=l)return;((e,t,n,o=In,r)=>{try{const i=Un(e,o),s=n?172800:10800,a={value:t,expiry:Date.now()+1e3*s,isStart:n,seq:r};k(i,JSON.stringify(a))}catch(e){console.error("Error setting flow nonce:",e)}})(s,o,a,i,null!=r?r:a?void 0:l)},beforeRequest:e=>{if(e.path===jn){const t=En(e);if(t){const n=((e,t=In)=>{var n,o;return null!==(o=null===(n=xn(e,t))||void 0===n?void 0:n.value)&&void 0!==o?o:null})(t,i);n&&(e.headers=e.headers||{},e.headers[On]=n)}}return e}}));if(null===(o=l.flow)||void 0===o?void 0:o.next){let e=Promise.resolve();const t=l.flow.next.bind(l.flow);l.flow.next=async(...n)=>{const o=e;let r;e=new Promise((e=>{r=e})),await o;try{return await t(...n)}finally{r()}}}return l}),(e=>t=>{const n=e(f(t,{afterRequest:async(e,t)=>{if(y(e,t))return void U(Ln);const n=await w(t);(null==n?void 0:n.sessionExpiration)&&((e,t)=>{var n,o;try{s&&(null===(o=null===(n=window.localStorage)||void 0===n?void 0:n.setItem)||void 0===o||o.call(n,e,t))}catch(e){}})(Ln,String(n.sessionExpiration))}}));return xe(n,["logout","logoutAll","oidc.logout"],Jn)}),(e=>n=>{var{autoRefresh:o}=n,i=t(n,["autoRefresh"]);const a=!!o,l="object"==typeof o&&(null==o?void 0:o.customActivityTracking);if(!a||m())return Object.assign(e(i),{markUserActive:()=>{Kt("markUserActive() called but has no effect")}});const{clearAllTimers:c,setTimer:u}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})();let d,p,g=null,v=!1,h=!1;l&&(Jt("Activity-based refresh enabled"),g=(()=>{let e=!0;return{hadActivity:()=>e,reset:()=>{e=!1},markActive:()=>{e=!0}}})()),s&&document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&d&&new Date>d&&(Jt("Expiration time passed, refreshing session"),b.refresh(Qt()||p))}));const b=e(f(i,{afterRequest:async(e,t)=>{const{sessionJwt:n,refreshJwt:o,sessionExpiration:i,nextRefreshSeconds:a}=await w(t);if(y(e,t))Jt("Session invalidated, canceling all timers"),c();else if(n||i){if(d=((e,t)=>{if(t)return new Date(1e3*t);Jt("Could not extract expiration time from session token, trying to decode the token");try{const t=r(e);if(t.exp)return new Date(1e3*t.exp)}catch(e){return null}})(n,i),!d)return void Jt("Could not extract expiration time from session token");p=o,v=a>0;const e=Mt(d,a);if(c(),e<=2e4)return void Jt("Session is too close to expiration, not setting refresh timer");const t=new Date(Date.now()+e).toLocaleTimeString("en-US",{hour12:!1});Jt(`Setting refresh timer for ${t}. (${e}ms)`),g&&(g.reset(),h=!1),u((()=>{if(s&&"hidden"===document.visibilityState)Jt("Skipping refresh due to timer - document is hidden");else{if(g&&v&&!g.hadActivity())return Jt("Skipping refresh due to timer - user is idle"),void(h=!0);Jt("Refreshing session due to timer"),b.refresh(Qt()||o)}}),e)}}}));return Object.assign(xe(b,["logout","logoutAll","oidc.logout"],(e=>async(...t)=>{const n=await e(...t);return Jt("Clearing all timers"),c(),n})),{markUserActive:g?()=>{Jt("markUserActive() called"),v||Jt("markUserActive() called but server does not have inactivity timeout configured (no nextRefreshSeconds)"),g.markActive(),h&&(Jt("User became active after skipped refresh, triggering refresh"),h=!1,c(),b.refresh(Qt()||p))}:()=>{Kt("markUserActive() called but customActivityTracking is not enabled — this call has no effect")}})}),(e=>n=>{var{storeLastAuthenticatedUser:o=!0,keepLastAuthenticatedUserAfterLogout:r=!1}=n,i=t(n,["storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout"]);if(!o)return Object.assign(e(i),{getLastUserLoginId:Pn,getLastUserDisplayName:Dn});const s=e(f(i,{afterRequest:async(e,t)=>{var n;const{userInfo:o,lastAuth:r}=await(async e=>{if(!(null==e?void 0:e.ok))return{userInfo:void 0,lastAuth:void 0};const t=await(null==e?void 0:e.clone().json()),n=h((null==t?void 0:t.authInfo)||t||{});return{userInfo:(null==n?void 0:n.user)||((null==n?void 0:n.hasOwnProperty("userId"))?n:void 0),lastAuth:t.lastAuth}})(t),i=null===(n=null==o?void 0:o.loginIds)||void 0===n?void 0:n[0],s=null==o?void 0:o.name;i?($n(i),(e=>{k(An,e)})(s)):(null==r?void 0:r.loginId)&&$n(r.loginId)}}));let a=xe(s,["flow.start"],qn);return a=xe(a,["logout","logoutAll"],Nn(r)),Object.assign(a,{getLastUserLoginId:Pn,getLastUserDisplayName:Dn})}),(e=>n=>{var{persistTokens:o,sessionTokenViaCookie:r,refreshTokenViaCookie:i,storagePrefix:a,refreshCookieName:l}=n,c=t(n,["persistTokens","sessionTokenViaCookie","refreshTokenViaCookie","storagePrefix","refreshCookieName"]);if(!o||!s)return e(Object.assign({refreshCookieName:l},c));let u;const d=e(f(Object.assign({refreshCookieName:l},c),{beforeRequest:on(a,i,l),afterRequest:async(e,t)=>{if(y(e,t))Jt("Session invalidated, clearing persisted tokens"),nn(a,r,i,u);else{const e=await w(t);e.cookieName?k(`${a||""}${Zt}`,e.cookieName):e.refreshJwt&&O(`${a||""}${Zt}`);const n=((e={},t=!1,n="",o=!1)=>{var r,i,s,a;const{sessionJwt:l,refreshJwt:c,trustedDeviceJwt:u}=e;let d;if(c)if(o){O(`${n}${Bt}`);const t=o.sameSite||"Strict",s=null===(r=o.secure)||void 0===r||r,a=null!==(i=o.domain)&&void 0!==i?i:e.cookieDomain,l=Yt(o);s&&"https:"!==window.location.protocol&&Kt("Refresh token cookie is configured with secure=true but the page is not using HTTPS. The cookie will not be set. To fix this, pass refreshTokenViaCookie: { secure: process.env['NODE_ENV'] !== 'development' }");const u=Object.assign(Object.assign({},e),{cookieSameSite:t,cookieSecure:s,cookieDomain:a});Gt(l,c,u);const p=Wt(a);d=Object.assign(Object.assign({},d),{refresh:{path:u.cookiePath,domain:p?a:void 0}})}else{const e=Yt(o);Ft.remove(e),k(`${n}${Bt}`,c)}if(l)if(t){const n=t.sameSite||"Strict",o=null===(s=t.secure)||void 0===s||s,r=null!==(a=t.domain)&&void 0!==a?a:e.cookieDomain,i=Xt(t);o&&"https:"!==window.location.protocol&&Kt("Session token cookie is configured with secure=true but the page is not using HTTPS. The cookie will not be set. To fix this, pass sessionTokenViaCookie: { secure: process.env['NODE_ENV'] !== 'development' }");const c=Object.assign(Object.assign({},e),{cookieSameSite:n,cookieSecure:o,cookieDomain:r});Gt(i,l,c);const u=Wt(r);d=Object.assign(Object.assign({},d),{session:{path:c.cookiePath,domain:u?r:void 0}})}else k(`${n}${Ht}`,l);return e.idToken&&k(`${n}${zt}`,e.idToken),u&&k(`${n}DTD`,u),d})(e,r,a,i);n&&(u=n)}}})),p=xe(d,["logout","logoutAll","oidc.logout"],Mn(a,r,i,(()=>u)));return Object.assign(p,{getRefreshToken:()=>Qt(a,i),getSessionToken:()=>en(a,r),getIdToken:()=>tn(a)})}))((e=>{const t=Lt(e),n=ao(t,e.projectId,e.oidcConfig);return Object.assign(Object.assign({},t),{refresh:async(o,r)=>{var i;if(m())return Jt(`Refresh called in native flow: ${(new Error).stack}`),Promise.resolve({ok:!1,error:{errorCode:"J171000",errorDescription:"Refresh is not supported in native flows via the web SDK"}});if(e.oidcConfig)try{return await n.refreshToken(o),Promise.resolve({ok:!0})}catch(e){return Promise.resolve({ok:!1,error:{errorCode:"J161001",errorDescription:e.toString()}})}if(r&&s&&void 0!==window.localStorage&&!j(Ln)&&!I(_n)&&!j("DSLI_DISABLED"))return Promise.resolve({ok:!0});const a=en(),l=Qt();let c="";if(e.getExternalToken)try{c=await(null===(i=e.getExternalToken)||void 0===i?void 0:i.call(e))}catch(e){Jt("Error getting external token while refreshing",e)}return t.refresh(o,{dcs:a?"t":"f",dcr:l?"t":"f"},c,r)},logout:async o=>{if(e.oidcConfig)try{return await n.logout({id_token_hint:o}),Promise.resolve({ok:!0})}catch(e){return Promise.resolve({ok:!1,error:{errorCode:"J161000",errorDescription:e.toString()}})}return t.logout(o)},flow:oo(t),webauthn:Qn(t),fedcm:(o=t,r=e.projectId,{onetap:{requestExchangeCode(e){to(o,e)},requestAuthentication(e){to(o,e)}},async oneTap(e,t,n,r,i){await no(o,{provider:e,oneTapConfig:t,loginOptions:n,onSkipped:r,onDismissed:i})},async launch(e){var t;const n={identity:{context:e||"signin",providers:[{configURL:o.httpClient.buildUrl(r+eo.config),clientId:r}]}},i=await(null===(t=navigator.credentials)||void 0===t?void 0:t.get(n));return o.refresh(i.token)},isSupported:()=>s&&"IdentityCredential"in window,async isLoggedIn(e){var t;const n=o.httpClient.buildUrl(r+eo.config);try{const o={identity:{context:e||"signin",providers:[{configURL:n,clientId:r}]}},i=await(null===(t=navigator.credentials)||void 0===t?void 0:t.get(o));return!!i&&!!i.token}catch(e){return!1}}}),oidc:n});var o,r}));return lo.REFRESH_TOKEN_KEY=Bt,lo.SESSION_TOKEN_KEY=Ht,lo}));
4
4
  //# sourceMappingURL=index.umd.js.map