@descope/web-js-sdk
Advanced tools
Comparing version 1.2.9 to 1.2.10
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),t=require("@descope/core-js-sdk"),n=require("@fingerprintjs/fingerprintjs-pro"),a=require("js-cookie");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=i(t),o=i(a);const s=(e,t)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,a)=>{var i;return n[a]=[].concat((null===(i=e.hooks)||void 0===i?void 0:i[a])||[]).concat((null==t?void 0:t[a])||[]),n}),null!==(n=e.hooks)&&void 0!==n?n:e.hooks={}),e},l=async e=>{if(!(null==e?void 0:e.ok))return{};const t=await(null==e?void 0:e.clone().json());return(null==t?void 0:t.authInfo)||t||{}},c=async e=>{const t=await l(e);return(null==t?void 0:t.user)||((null==t?void 0:t.hasOwnProperty("userId"))?t:void 0)},u="undefined"!=typeof localStorage,d=(e,t)=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(e,t)),g=e=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(e)),p=e=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(e)),f=(...e)=>{console.debug(...e)},w="undefined"!=typeof window,b=w&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",h=(e="",t="")=>({vsid:e,vrid:t}),v=(e=!1)=>{const t=localStorage.getItem("fp");if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},y=async e=>{try{if(v())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),a=n.load({apiKey:e,endpoint:b}),i=await a,{requestId:r}=await i.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(h(t,r))}catch(e){global.FB_DEBUG&&console.error(e)}},S=e=>(e.body&&(e.body.fpData=v(!0)||h()),e),m="dls_last_user_login_id",O="dls_last_user_display_name",I=()=>g(m),k=()=>g(O),j=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,a={}]=t,i=I(),r=k();i&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=i,a.lastAuth.name=r);return await e(...t)},_=e=>async(...t)=>{const n=await e(...t);return p(m),p(O),n};function U(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}const A="DS",D="DSR";const J=(t={},n)=>{var{refreshJwt:a,sessionJwt:i}=t,r=e.__rest(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),a&&d(D,a),i&&(n?function(e,t,{cookiePath:n,cookieDomain:a,cookieExpiration:i}){if(t){const r=new Date(1e3*i);o.default.set(e,t,{path:n,domain:a,expires:r,sameSite:"Strict",secure:!0})}}(A,i,r):d(A,i))};function T(){return g(D)||""}function K(){return o.default.get(A)||g(A)||""}function R(){p(D),p(A),o.default.remove(A)}const q=e=>Object.assign(e,{token:e.token||T()}),C=e=>async(...t)=>{const n=await e(...t);return R(),n};async function N(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=W(n.publicKey.challenge),n.publicKey.user.id=W(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=W(e.id)})),n}(e),n=await navigator.credentials.create(t);return a=n,JSON.stringify({id:a.id,rawId:V(a.rawId),type:a.type,response:{attestationObject:V(a.response.attestationObject),clientDataJSON:V(a.response.clientDataJSON)}});var a}async function x(e){const t=H(e);return L(await navigator.credentials.get(t))}async function P(e,t){const n=H(e);n.signal=t.signal,n.mediation="conditional";return L(await navigator.credentials.get(n))}async function E(e=!1){if(!w)return Promise.resolve(!1);const t=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function H(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=W(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=W(e.id)})),n}function L(e){return JSON.stringify({id:e.id,rawId:V(e.rawId),type:e.type,response:{authenticatorData:V(e.response.authenticatorData),clientDataJSON:V(e.response.clientDataJSON),signature:V(e.response.signature),userHandle:e.response.userHandle?V(e.response.userHandle):void 0}})}function W(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function V(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var M,B=(M=e=>({async signUp(t,n){const a=await e.webauthn.signUp.start(t,window.location.origin,n);if(!a.ok)return a;const i=await N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,i)},async signIn(t){const n=await e.webauthn.signIn.start(t,window.location.origin);if(!n.ok)return n;const a=await x(n.data.options);return await e.webauthn.signIn.finish(n.data.transactionId,a)},async signUpOrIn(t){var n;const a=await e.webauthn.signUpOrIn.start(t,window.location.origin);if(!a.ok)return a;if(null===(n=a.data)||void 0===n?void 0:n.create){const t=await N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,t)}{const t=await x(a.data.options);return await e.webauthn.signIn.finish(a.data.transactionId,t)}},async update(t,n){const a=await e.webauthn.update.start(t,window.location.origin,n);if(!a.ok)return a;const i=await N(a.data.options);return await e.webauthn.update.finish(a.data.transactionId,i)},helpers:{create:N,get:x,isSupported:E,conditional:P}}),(...e)=>{const t=M(...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}),F=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await E(),a=Object.assign(Object.assign({redirectUrl:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=a,e.flow.start(...t)}});const G=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>n=>{var{fpKey:a,fpLoad:i}=n,r=e.__rest(n,["fpKey","fpLoad"]);return a?(w?i&&y(a).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(s(r,{beforeRequest:S}))):t(Object.assign({},r))}),(n=>a=>{var{autoRefresh:i}=a,r=e.__rest(a,["autoRefresh"]);if(!i)return n(r);const{clearAllTimers:o,setTimer:c}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})(),u=n(s(r,{afterRequest:async(e,t)=>{const{refreshJwt:n,sessionJwt:a}=await l(t);if(401===(null==t?void 0:t.status))f("Received 401, canceling all timers"),o();else if(a){const e=((i=(e=>{const t=e.split(".");try{if(3===t.length){const e=JSON.parse(window.atob(t[1]));if(e.exp)return new Date(1e3*e.exp)}}catch(e){}return null})(a))?i.getTime()-(new Date).getTime():0)-2e4;o(),f(`Setting refresh timer for ${e}ms`),c((()=>{f("Refreshing session"),u.refresh(n)}),e)}var i}}));return t.wrapWith(u,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return f("Clearing all timers"),o(),n}))}),(e=>t=>e(Object.assign(Object.assign({},t),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.2.9"},t.baseHeaders)}))),(e=>n=>{const a=U(),i=U(),r=e(s(n,{afterRequest:async(e,t)=>{if(401===(null==t?void 0:t.status))a.pub(null),i.pub(null);else{const e=await c(t);e&&i.pub(e);const{sessionJwt:n}=await l(t);n&&a.pub(n)}}})),o=t.wrapWith(r,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return a.pub(null),i.pub(null),n}));return Object.assign(o,{onSessionTokenChange:a.sub,onUserChange:i.sub})}),(e=>n=>{const a=e(s(n,{afterRequest:async(e,t)=>{var n;const a=await c(t),i=null===(n=null==a?void 0:a.loginIds)||void 0===n?void 0:n[0],r=null==a?void 0:a.name;i&&((e=>{d(m,e)})(i),(e=>{d(O,e)})(r))}}));let i=t.wrapWith(a,["flow.start"],j);return i=t.wrapWith(i,["logout","logoutAll"],_),Object.assign(i,{getLastUserLoginId:I,getLastUserDisplayName:k})}),(n=>a=>{var{persistTokens:i,sessionTokenViaCookie:r}=a,o=e.__rest(a,["persistTokens","sessionTokenViaCookie"]);if(!i||!w)return i&&console.warn("Storing auth tokens in local storage and cookies are a client side only capabilities and will not be done when running in the server"),n(o);const c=n(s(o,{beforeRequest:q,afterRequest:async(e,t)=>{401===(null==t?void 0:t.status)?R():J(await l(t),r)}})),u=t.wrapWith(c,["logout","logoutAll"],C);return Object.assign(u,{getRefreshToken:T,getSessionToken:K})}))(((...e)=>{const t=r.default(...e);return Object.assign(Object.assign({},t),{flow:F(t),webauthn:B(t)})}));exports.default=G; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),t=require("@descope/core-js-sdk"),n=require("@fingerprintjs/fingerprintjs-pro"),a=require("js-cookie");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=i(t),o=i(a);const s=(e,t)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,a)=>{var i;return n[a]=[].concat((null===(i=e.hooks)||void 0===i?void 0:i[a])||[]).concat((null==t?void 0:t[a])||[]),n}),null!==(n=e.hooks)&&void 0!==n?n:e.hooks={}),e},l=async e=>{if(!(null==e?void 0:e.ok))return{};const t=await(null==e?void 0:e.clone().json());return(null==t?void 0:t.authInfo)||t||{}},c=async e=>{const t=await l(e);return(null==t?void 0:t.user)||((null==t?void 0:t.hasOwnProperty("userId"))?t:void 0)},u="undefined"!=typeof localStorage,d=(e,t)=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(e,t)),g=e=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(e)),p=e=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(e)),f=(...e)=>{console.debug(...e)},w="undefined"!=typeof window,b=w&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",h=(e="",t="")=>({vsid:e,vrid:t}),v=(e=!1)=>{const t=localStorage.getItem("fp");if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},y=async e=>{try{if(v())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),a=n.load({apiKey:e,endpoint:b}),i=await a,{requestId:r}=await i.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(h(t,r))}catch(e){global.FB_DEBUG&&console.error(e)}},S=e=>(e.body&&(e.body.fpData=v(!0)||h()),e),m="dls_last_user_login_id",O="dls_last_user_display_name",I=()=>g(m),k=()=>g(O),j=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,a={}]=t,i=I(),r=k();i&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=i,a.lastAuth.name=r);return await e(...t)},_=e=>async(...t)=>{const n=await e(...t);return p(m),p(O),n};function U(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}const A="DS",D="DSR";const J=(t={},n)=>{var{refreshJwt:a,sessionJwt:i}=t,r=e.__rest(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),a&&d(D,a),i&&(n?function(e,t,{cookiePath:n,cookieDomain:a,cookieExpiration:i}){if(t){const r=new Date(1e3*i);o.default.set(e,t,{path:n,domain:a,expires:r,sameSite:"Strict",secure:!0})}}(A,i,r):d(A,i))};function T(){return g(D)||""}function K(){return o.default.get(A)||g(A)||""}function R(){p(D),p(A),o.default.remove(A)}const q=e=>Object.assign(e,{token:e.token||T()}),C=e=>async(...t)=>{const n=await e(...t);return R(),n};async function N(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=W(n.publicKey.challenge),n.publicKey.user.id=W(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=W(e.id)})),n}(e),n=await navigator.credentials.create(t);return a=n,JSON.stringify({id:a.id,rawId:V(a.rawId),type:a.type,response:{attestationObject:V(a.response.attestationObject),clientDataJSON:V(a.response.clientDataJSON)}});var a}async function x(e){const t=H(e);return L(await navigator.credentials.get(t))}async function P(e,t){const n=H(e);n.signal=t.signal,n.mediation="conditional";return L(await navigator.credentials.get(n))}async function E(e=!1){if(!w)return Promise.resolve(!1);const t=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function H(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=W(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=W(e.id)})),n}function L(e){return JSON.stringify({id:e.id,rawId:V(e.rawId),type:e.type,response:{authenticatorData:V(e.response.authenticatorData),clientDataJSON:V(e.response.clientDataJSON),signature:V(e.response.signature),userHandle:e.response.userHandle?V(e.response.userHandle):void 0}})}function W(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function V(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var M,B=(M=e=>({async signUp(t,n){const a=await e.webauthn.signUp.start(t,window.location.origin,n);if(!a.ok)return a;const i=await N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,i)},async signIn(t){const n=await e.webauthn.signIn.start(t,window.location.origin);if(!n.ok)return n;const a=await x(n.data.options);return await e.webauthn.signIn.finish(n.data.transactionId,a)},async signUpOrIn(t){var n;const a=await e.webauthn.signUpOrIn.start(t,window.location.origin);if(!a.ok)return a;if(null===(n=a.data)||void 0===n?void 0:n.create){const t=await N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,t)}{const t=await x(a.data.options);return await e.webauthn.signIn.finish(a.data.transactionId,t)}},async update(t,n){const a=await e.webauthn.update.start(t,window.location.origin,n);if(!a.ok)return a;const i=await N(a.data.options);return await e.webauthn.update.finish(a.data.transactionId,i)},helpers:{create:N,get:x,isSupported:E,conditional:P}}),(...e)=>{const t=M(...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}),F=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await E(),a=Object.assign(Object.assign({redirectUrl:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=a,e.flow.start(...t)}});const G=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>n=>{var{fpKey:a,fpLoad:i}=n,r=e.__rest(n,["fpKey","fpLoad"]);return a?(w?i&&y(a).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(s(r,{beforeRequest:S}))):t(Object.assign({},r))}),(n=>a=>{var{autoRefresh:i}=a,r=e.__rest(a,["autoRefresh"]);if(!i)return n(r);const{clearAllTimers:o,setTimer:c}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})(),u=n(s(r,{afterRequest:async(e,t)=>{const{refreshJwt:n,sessionJwt:a}=await l(t);if(401===(null==t?void 0:t.status))f("Received 401, canceling all timers"),o();else if(a){const e=((i=(e=>{const t=e.split(".");try{if(3===t.length){const e=JSON.parse(window.atob(t[1]));if(e.exp)return new Date(1e3*e.exp)}}catch(e){}return null})(a))?i.getTime()-(new Date).getTime():0)-2e4;o(),f(`Setting refresh timer for ${e}ms`),c((()=>{f("Refreshing session"),u.refresh(n)}),e)}var i}}));return t.wrapWith(u,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return f("Clearing all timers"),o(),n}))}),(e=>t=>e(Object.assign(Object.assign({},t),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.2.10"},t.baseHeaders)}))),(e=>n=>{const a=U(),i=U(),r=e(s(n,{afterRequest:async(e,t)=>{if(401===(null==t?void 0:t.status))a.pub(null),i.pub(null);else{const e=await c(t);e&&i.pub(e);const{sessionJwt:n}=await l(t);n&&a.pub(n)}}})),o=t.wrapWith(r,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return a.pub(null),i.pub(null),n}));return Object.assign(o,{onSessionTokenChange:a.sub,onUserChange:i.sub})}),(e=>n=>{const a=e(s(n,{afterRequest:async(e,t)=>{var n;const a=await c(t),i=null===(n=null==a?void 0:a.loginIds)||void 0===n?void 0:n[0],r=null==a?void 0:a.name;i&&((e=>{d(m,e)})(i),(e=>{d(O,e)})(r))}}));let i=t.wrapWith(a,["flow.start"],j);return i=t.wrapWith(i,["logout","logoutAll"],_),Object.assign(i,{getLastUserLoginId:I,getLastUserDisplayName:k})}),(n=>a=>{var{persistTokens:i,sessionTokenViaCookie:r}=a,o=e.__rest(a,["persistTokens","sessionTokenViaCookie"]);if(!i||!w)return i&&console.warn("Storing auth tokens in local storage and cookies are a client side only capabilities and will not be done when running in the server"),n(o);const c=n(s(o,{beforeRequest:q,afterRequest:async(e,t)=>{401===(null==t?void 0:t.status)?R():J(await l(t),r)}})),u=t.wrapWith(c,["logout","logoutAll"],C);return Object.assign(u,{getRefreshToken:T,getSessionToken:K})}))(((...e)=>{const t=r.default(...e);return Object.assign(Object.assign({},t),{flow:F(t),webauthn:B(t)})}));exports.default=G; | ||
//# sourceMappingURL=index.cjs.js.map |
@@ -1,2 +0,2 @@ | ||
import{__rest as e}from"tslib";import t,{wrapWith as n}from"@descope/core-js-sdk";import{load as a}from"@fingerprintjs/fingerprintjs-pro";import i from"js-cookie";const o=(e,t)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,a)=>{var i;return n[a]=[].concat((null===(i=e.hooks)||void 0===i?void 0:i[a])||[]).concat((null==t?void 0:t[a])||[]),n}),null!==(n=e.hooks)&&void 0!==n?n:e.hooks={}),e},r=async e=>{if(!(null==e?void 0:e.ok))return{};const t=await(null==e?void 0:e.clone().json());return(null==t?void 0:t.authInfo)||t||{}},s=async e=>{const t=await r(e);return(null==t?void 0:t.user)||((null==t?void 0:t.hasOwnProperty("userId"))?t:void 0)},l="undefined"!=typeof localStorage,c=(e,t)=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(e,t)),u=e=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(e)),d=e=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(e)),g=(...e)=>{console.debug(...e)},p="undefined"!=typeof window,f=p&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",w=(e="",t="")=>({vsid:e,vrid:t}),b=(e=!1)=>{const t=localStorage.getItem("fp");if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},h=async e=>{try{if(b())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),n=a({apiKey:e,endpoint:f}),i=await n,{requestId:o}=await i.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(w(t,o))}catch(e){global.FB_DEBUG&&console.error(e)}},v=e=>(e.body&&(e.body.fpData=b(!0)||w()),e),y="dls_last_user_login_id",m="dls_last_user_display_name",S=()=>u(y),O=()=>u(m),I=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,a={}]=t,i=S(),o=O();i&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=i,a.lastAuth.name=o);return await e(...t)},k=e=>async(...t)=>{const n=await e(...t);return d(y),d(m),n};function j(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}const U="DS",A="DSR";const D=(t={},n)=>{var{refreshJwt:a,sessionJwt:o}=t,r=e(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),a&&c(A,a),o&&(n?function(e,t,{cookiePath:n,cookieDomain:a,cookieExpiration:o}){if(t){const r=new Date(1e3*o);i.set(e,t,{path:n,domain:a,expires:r,sameSite:"Strict",secure:!0})}}(U,o,r):c(U,o))};function J(){return u(A)||""}function T(){return i.get(U)||u(U)||""}function K(){d(A),d(U),i.remove(U)}const R=e=>Object.assign(e,{token:e.token||J()}),C=e=>async(...t)=>{const n=await e(...t);return K(),n};async function N(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=H(n.publicKey.challenge),n.publicKey.user.id=H(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=H(e.id)})),n}(e),n=await navigator.credentials.create(t);return a=n,JSON.stringify({id:a.id,rawId:L(a.rawId),type:a.type,response:{attestationObject:L(a.response.attestationObject),clientDataJSON:L(a.response.clientDataJSON)}});var a}async function _(e){const t=P(e);return E(await navigator.credentials.get(t))}async function x(e,t){const n=P(e);n.signal=t.signal,n.mediation="conditional";return E(await navigator.credentials.get(n))}async function q(e=!1){if(!p)return Promise.resolve(!1);const t=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function P(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=H(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=H(e.id)})),n}function E(e){return JSON.stringify({id:e.id,rawId:L(e.rawId),type:e.type,response:{authenticatorData:L(e.response.authenticatorData),clientDataJSON:L(e.response.clientDataJSON),signature:L(e.response.signature),userHandle:e.response.userHandle?L(e.response.userHandle):void 0}})}function H(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function L(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var V,B=(V=e=>({async signUp(t,n){const a=await e.webauthn.signUp.start(t,window.location.origin,n);if(!a.ok)return a;const i=await N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,i)},async signIn(t){const n=await e.webauthn.signIn.start(t,window.location.origin);if(!n.ok)return n;const a=await _(n.data.options);return await e.webauthn.signIn.finish(n.data.transactionId,a)},async signUpOrIn(t){var n;const a=await e.webauthn.signUpOrIn.start(t,window.location.origin);if(!a.ok)return a;if(null===(n=a.data)||void 0===n?void 0:n.create){const t=await N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,t)}{const t=await _(a.data.options);return await e.webauthn.signIn.finish(a.data.transactionId,t)}},async update(t,n){const a=await e.webauthn.update.start(t,window.location.origin,n);if(!a.ok)return a;const i=await N(a.data.options);return await e.webauthn.update.finish(a.data.transactionId,i)},helpers:{create:N,get:_,isSupported:q,conditional:x}}),(...e)=>{const t=V(...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}),F=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await q(),a=Object.assign(Object.assign({redirectUrl:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=a,e.flow.start(...t)}});const M=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>n=>{var{fpKey:a,fpLoad:i}=n,r=e(n,["fpKey","fpLoad"]);return a?(p?i&&h(a).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(o(r,{beforeRequest:v}))):t(Object.assign({},r))}),(t=>a=>{var{autoRefresh:i}=a,s=e(a,["autoRefresh"]);if(!i)return t(s);const{clearAllTimers:l,setTimer:c}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})(),u=t(o(s,{afterRequest:async(e,t)=>{const{refreshJwt:n,sessionJwt:a}=await r(t);if(401===(null==t?void 0:t.status))g("Received 401, canceling all timers"),l();else if(a){const e=((i=(e=>{const t=e.split(".");try{if(3===t.length){const e=JSON.parse(window.atob(t[1]));if(e.exp)return new Date(1e3*e.exp)}}catch(e){}return null})(a))?i.getTime()-(new Date).getTime():0)-2e4;l(),g(`Setting refresh timer for ${e}ms`),c((()=>{g("Refreshing session"),u.refresh(n)}),e)}var i}}));return n(u,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return g("Clearing all timers"),l(),n}))}),(e=>t=>e(Object.assign(Object.assign({},t),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.2.9"},t.baseHeaders)}))),(e=>t=>{const a=j(),i=j(),l=e(o(t,{afterRequest:async(e,t)=>{if(401===(null==t?void 0:t.status))a.pub(null),i.pub(null);else{const e=await s(t);e&&i.pub(e);const{sessionJwt:n}=await r(t);n&&a.pub(n)}}})),c=n(l,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return a.pub(null),i.pub(null),n}));return Object.assign(c,{onSessionTokenChange:a.sub,onUserChange:i.sub})}),(e=>t=>{const a=e(o(t,{afterRequest:async(e,t)=>{var n;const a=await s(t),i=null===(n=null==a?void 0:a.loginIds)||void 0===n?void 0:n[0],o=null==a?void 0:a.name;i&&((e=>{c(y,e)})(i),(e=>{c(m,e)})(o))}}));let i=n(a,["flow.start"],I);return i=n(i,["logout","logoutAll"],k),Object.assign(i,{getLastUserLoginId:S,getLastUserDisplayName:O})}),(t=>a=>{var{persistTokens:i,sessionTokenViaCookie:s}=a,l=e(a,["persistTokens","sessionTokenViaCookie"]);if(!i||!p)return i&&console.warn("Storing auth tokens in local storage and cookies are a client side only capabilities and will not be done when running in the server"),t(l);const c=t(o(l,{beforeRequest:R,afterRequest:async(e,t)=>{401===(null==t?void 0:t.status)?K():D(await r(t),s)}})),u=n(c,["logout","logoutAll"],C);return Object.assign(u,{getRefreshToken:J,getSessionToken:T})}))(((...e)=>{const n=t(...e);return Object.assign(Object.assign({},n),{flow:F(n),webauthn:B(n)})}));export{M as default}; | ||
import{__rest as e}from"tslib";import t,{wrapWith as n}from"@descope/core-js-sdk";import{load as a}from"@fingerprintjs/fingerprintjs-pro";import i from"js-cookie";const o=(e,t)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,a)=>{var i;return n[a]=[].concat((null===(i=e.hooks)||void 0===i?void 0:i[a])||[]).concat((null==t?void 0:t[a])||[]),n}),null!==(n=e.hooks)&&void 0!==n?n:e.hooks={}),e},r=async e=>{if(!(null==e?void 0:e.ok))return{};const t=await(null==e?void 0:e.clone().json());return(null==t?void 0:t.authInfo)||t||{}},s=async e=>{const t=await r(e);return(null==t?void 0:t.user)||((null==t?void 0:t.hasOwnProperty("userId"))?t:void 0)},l="undefined"!=typeof localStorage,c=(e,t)=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(e,t)),u=e=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(e)),d=e=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(e)),g=(...e)=>{console.debug(...e)},p="undefined"!=typeof window,f=p&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",w=(e="",t="")=>({vsid:e,vrid:t}),b=(e=!1)=>{const t=localStorage.getItem("fp");if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},h=async e=>{try{if(b())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),n=a({apiKey:e,endpoint:f}),i=await n,{requestId:o}=await i.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(w(t,o))}catch(e){global.FB_DEBUG&&console.error(e)}},v=e=>(e.body&&(e.body.fpData=b(!0)||w()),e),y="dls_last_user_login_id",m="dls_last_user_display_name",S=()=>u(y),O=()=>u(m),I=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,a={}]=t,i=S(),o=O();i&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=i,a.lastAuth.name=o);return await e(...t)},k=e=>async(...t)=>{const n=await e(...t);return d(y),d(m),n};function j(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}const U="DS",A="DSR";const D=(t={},n)=>{var{refreshJwt:a,sessionJwt:o}=t,r=e(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),a&&c(A,a),o&&(n?function(e,t,{cookiePath:n,cookieDomain:a,cookieExpiration:o}){if(t){const r=new Date(1e3*o);i.set(e,t,{path:n,domain:a,expires:r,sameSite:"Strict",secure:!0})}}(U,o,r):c(U,o))};function J(){return u(A)||""}function T(){return i.get(U)||u(U)||""}function K(){d(A),d(U),i.remove(U)}const R=e=>Object.assign(e,{token:e.token||J()}),C=e=>async(...t)=>{const n=await e(...t);return K(),n};async function N(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=H(n.publicKey.challenge),n.publicKey.user.id=H(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=H(e.id)})),n}(e),n=await navigator.credentials.create(t);return a=n,JSON.stringify({id:a.id,rawId:L(a.rawId),type:a.type,response:{attestationObject:L(a.response.attestationObject),clientDataJSON:L(a.response.clientDataJSON)}});var a}async function _(e){const t=P(e);return E(await navigator.credentials.get(t))}async function x(e,t){const n=P(e);n.signal=t.signal,n.mediation="conditional";return E(await navigator.credentials.get(n))}async function q(e=!1){if(!p)return Promise.resolve(!1);const t=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function P(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=H(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=H(e.id)})),n}function E(e){return JSON.stringify({id:e.id,rawId:L(e.rawId),type:e.type,response:{authenticatorData:L(e.response.authenticatorData),clientDataJSON:L(e.response.clientDataJSON),signature:L(e.response.signature),userHandle:e.response.userHandle?L(e.response.userHandle):void 0}})}function H(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function L(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var V,B=(V=e=>({async signUp(t,n){const a=await e.webauthn.signUp.start(t,window.location.origin,n);if(!a.ok)return a;const i=await N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,i)},async signIn(t){const n=await e.webauthn.signIn.start(t,window.location.origin);if(!n.ok)return n;const a=await _(n.data.options);return await e.webauthn.signIn.finish(n.data.transactionId,a)},async signUpOrIn(t){var n;const a=await e.webauthn.signUpOrIn.start(t,window.location.origin);if(!a.ok)return a;if(null===(n=a.data)||void 0===n?void 0:n.create){const t=await N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,t)}{const t=await _(a.data.options);return await e.webauthn.signIn.finish(a.data.transactionId,t)}},async update(t,n){const a=await e.webauthn.update.start(t,window.location.origin,n);if(!a.ok)return a;const i=await N(a.data.options);return await e.webauthn.update.finish(a.data.transactionId,i)},helpers:{create:N,get:_,isSupported:q,conditional:x}}),(...e)=>{const t=V(...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}),F=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await q(),a=Object.assign(Object.assign({redirectUrl:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=a,e.flow.start(...t)}});const M=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>n=>{var{fpKey:a,fpLoad:i}=n,r=e(n,["fpKey","fpLoad"]);return a?(p?i&&h(a).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(o(r,{beforeRequest:v}))):t(Object.assign({},r))}),(t=>a=>{var{autoRefresh:i}=a,s=e(a,["autoRefresh"]);if(!i)return t(s);const{clearAllTimers:l,setTimer:c}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})(),u=t(o(s,{afterRequest:async(e,t)=>{const{refreshJwt:n,sessionJwt:a}=await r(t);if(401===(null==t?void 0:t.status))g("Received 401, canceling all timers"),l();else if(a){const e=((i=(e=>{const t=e.split(".");try{if(3===t.length){const e=JSON.parse(window.atob(t[1]));if(e.exp)return new Date(1e3*e.exp)}}catch(e){}return null})(a))?i.getTime()-(new Date).getTime():0)-2e4;l(),g(`Setting refresh timer for ${e}ms`),c((()=>{g("Refreshing session"),u.refresh(n)}),e)}var i}}));return n(u,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return g("Clearing all timers"),l(),n}))}),(e=>t=>e(Object.assign(Object.assign({},t),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.2.10"},t.baseHeaders)}))),(e=>t=>{const a=j(),i=j(),l=e(o(t,{afterRequest:async(e,t)=>{if(401===(null==t?void 0:t.status))a.pub(null),i.pub(null);else{const e=await s(t);e&&i.pub(e);const{sessionJwt:n}=await r(t);n&&a.pub(n)}}})),c=n(l,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return a.pub(null),i.pub(null),n}));return Object.assign(c,{onSessionTokenChange:a.sub,onUserChange:i.sub})}),(e=>t=>{const a=e(o(t,{afterRequest:async(e,t)=>{var n;const a=await s(t),i=null===(n=null==a?void 0:a.loginIds)||void 0===n?void 0:n[0],o=null==a?void 0:a.name;i&&((e=>{c(y,e)})(i),(e=>{c(m,e)})(o))}}));let i=n(a,["flow.start"],I);return i=n(i,["logout","logoutAll"],k),Object.assign(i,{getLastUserLoginId:S,getLastUserDisplayName:O})}),(t=>a=>{var{persistTokens:i,sessionTokenViaCookie:s}=a,l=e(a,["persistTokens","sessionTokenViaCookie"]);if(!i||!p)return i&&console.warn("Storing auth tokens in local storage and cookies are a client side only capabilities and will not be done when running in the server"),t(l);const c=t(o(l,{beforeRequest:R,afterRequest:async(e,t)=>{401===(null==t?void 0:t.status)?K():D(await r(t),s)}})),u=n(c,["logout","logoutAll"],C);return Object.assign(u,{getRefreshToken:J,getSessionToken:T})}))(((...e)=>{const n=t(...e);return Object.assign(Object.assign({},n),{flow:F(n),webauthn:B(n)})}));export{M as default}; | ||
//# sourceMappingURL=index.esm.js.map |
@@ -1,4 +0,4 @@ | ||
!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";const e=(e,t)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,r)=>{var o;return n[r]=[].concat((null===(o=e.hooks)||void 0===o?void 0:o[r])||[]).concat((null==t?void 0:t[r])||[]),n}),null!==(n=e.hooks)&&void 0!==n?n:e.hooks={}),e},t=async e=>{if(!(null==e?void 0:e.ok))return{};const t=await(null==e?void 0:e.clone().json());return(null==t?void 0:t.authInfo)||t||{}},n=async e=>{const n=await t(e);return(null==n?void 0:n.user)||((null==n?void 0:n.hasOwnProperty("userId"))?n:void 0)},r="undefined"!=typeof localStorage,o=(e,t)=>r&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(e,t)),i=e=>r&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(e)),a=e=>r&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(e));var s=function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},s.apply(this,arguments)};function c(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function u(e){this.message=e}u.prototype=new Error,u.prototype.name="InvalidCharacterError";var l="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new u("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,o=0,i=0,a="";r=t.charAt(i++);~r&&(n=o%4?64*n+r:r,o++%4)?a+=String.fromCharCode(255&n>>(-2*o&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return a};function d(e){this.message=e}function p(e,t){if("string"!=typeof e)throw new d("Invalid token specified");var n=!0===(t=t||{}).header?0:1;try{return JSON.parse(function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(l(e).replace(/(.)/g,(function(e,t){var n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(t)}catch(e){return l(t)}}(e.split(".")[n]))}catch(e){throw new d("Invalid token specified: "+e.message)}}d.prototype=new Error,d.prototype.name="InvalidTokenError";var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function h(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var g="__lodash_hash_undefined__",v=1/0,y="[object Function]",b="[object GeneratorFunction]",w="[object Symbol]",m=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,I=/^\w*$/,k=/^\./,O=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,j=/\\(\\)?/g,_=/^\[object .+?Constructor\]$/,S="object"==typeof f&&f&&f.Object===Object&&f,U="object"==typeof self&&self&&self.Object===Object&&self,P=S||U||Function("return this")();var R,x=Array.prototype,A=Function.prototype,E=Object.prototype,C=P["__core-js_shared__"],T=(R=/[^.]+$/.exec(C&&C.keys&&C.keys.IE_PROTO||""))?"Symbol(src)_1."+R:"",q=A.toString,D=E.hasOwnProperty,$=E.toString,J=RegExp("^"+q.call(D).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),K=P.Symbol,M=x.splice,N=X(P,"Map"),L=X(Object,"create"),F=K?K.prototype:void 0,H=F?F.toString:void 0;function B(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function z(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function V(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function G(e,t){for(var n,r,o=e.length;o--;)if((n=e[o][0])===(r=t)||n!=n&&r!=r)return o;return-1}function Z(e,t){var n;t=function(e,t){if(ne(e))return!1;var n=typeof e;if("number"==n||"symbol"==n||"boolean"==n||null==e||oe(e))return!0;return I.test(e)||!m.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:ne(n=t)?n:Y(n);for(var r=0,o=t.length;null!=e&&r<o;)e=e[ee(t[r++])];return r&&r==o?e:void 0}function Q(e){if(!re(e)||(t=e,T&&T in t))return!1;var t,n=function(e){var t=re(e)?$.call(e):"";return t==y||t==b}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?J:_;return n.test(function(e){if(null!=e){try{return q.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function W(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function X(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Q(n)?n:void 0}B.prototype.clear=function(){this.__data__=L?L(null):{}},B.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},B.prototype.get=function(e){var t=this.__data__;if(L){var n=t[e];return n===g?void 0:n}return D.call(t,e)?t[e]:void 0},B.prototype.has=function(e){var t=this.__data__;return L?void 0!==t[e]:D.call(t,e)},B.prototype.set=function(e,t){return this.__data__[e]=L&&void 0===t?g:t,this},z.prototype.clear=function(){this.__data__=[]},z.prototype.delete=function(e){var t=this.__data__,n=G(t,e);return!(n<0)&&(n==t.length-1?t.pop():M.call(t,n,1),!0)},z.prototype.get=function(e){var t=this.__data__,n=G(t,e);return n<0?void 0:t[n][1]},z.prototype.has=function(e){return G(this.__data__,e)>-1},z.prototype.set=function(e,t){var n=this.__data__,r=G(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},V.prototype.clear=function(){this.__data__={hash:new B,map:new(N||z),string:new B}},V.prototype.delete=function(e){return W(this,e).delete(e)},V.prototype.get=function(e){return W(this,e).get(e)},V.prototype.has=function(e){return W(this,e).has(e)},V.prototype.set=function(e,t){return W(this,e).set(e,t),this};var Y=te((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(oe(e))return H?H.call(e):"";var t=e+"";return"0"==t&&1/e==-v?"-0":t}(t);var n=[];return k.test(e)&&n.push(""),e.replace(O,(function(e,t,r,o){n.push(r?o.replace(j,"$1"):t||e)})),n}));function ee(e){if("string"==typeof e||oe(e))return e;var t=e+"";return"0"==t&&1/e==-v?"-0":t}function te(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a),a};return n.cache=new(te.Cache||V),n}te.Cache=V;var ne=Array.isArray;function re(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function oe(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&$.call(e)==w}var ie=h((function(e,t,n){var r=null==e?void 0:Z(e,t);return void 0===r?n:r})),ae="/v1/auth/accesskey/exchange",se="/v1/auth/otp/verify",ce="/v1/auth/otp/signin",ue="/v1/auth/otp/signup",le={email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},de="/v1/auth/otp/signup-in",pe="/v1/auth/magiclink/verify",fe="/v1/auth/magiclink/signin",he="/v1/auth/magiclink/signup",ge={email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/phone"},ve="/v1/auth/magiclink/signup-in",ye="/v1/auth/enchantedlink/verify",be="/v1/auth/enchantedlink/signin",we="/v1/auth/enchantedlink/signup",me="/v1/auth/enchantedlink/pending-session",Ie={email:"/v1/auth/enchantedlink/update/email"},ke="/v1/auth/enchantedlink/signup-in",Oe="/v1/auth/oauth/authorize",je="/v1/auth/oauth/exchange",_e="/v1/auth/saml/authorize",Se="/v1/auth/saml/exchange",Ue="/v1/auth/totp/verify",Pe="/v1/auth/totp/signup",Re="/v1/auth/totp/update",xe={start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},Ae={start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},Ee={start:"/v1/auth/webauthn/signup-in/start"},Ce={start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"},Te="/v1/auth/password/signup",qe="/v1/auth/password/signin",De="/v1/auth/password/reset",$e="/v1/auth/password/update",Je="/v1/auth/password/replace",Ke="/v1/auth/password/policy",Me="/v1/auth/refresh",Ne="/v1/auth/logout",Le="/v1/auth/logoutall",Fe="/v1/auth/me",He="/v1/flow/start",Be="/v1/flow/next";const ze=6e5,Ve=()=>{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},build:()=>Object.keys(e).flatMap((t=>e[t]?[`${"Title"!==t?`${t}: `:""}${e[t]}`]:[])).join("\n")}};var Ge;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(Ge||(Ge={}));const Ze=(...e)=>new Headers(e.reduce(((e,t)=>{const n=(e=>Array.isArray(e)?e:e instanceof Headers?Array.from(e.entries()):e?Object.entries(e):[])(t);return n.reduce(((t,[n,r])=>(e[n]=r,e)),e),e}),{})),Qe=e=>void 0===e?void 0:JSON.stringify(e),We=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},Xe=({baseUrl:e,projectId:t,baseConfig:n,logger:r,hooks:o,cookiePolicy:i,fetch:a})=>{const s=((e,t)=>{const n=(e=>async(...t)=>{const n=await e(...t),r=await n.text();return n.text=()=>Promise.resolve(r),n.json=()=>Promise.resolve(JSON.parse(r)),n.clone=()=>n,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(...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=>Ve().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const r=await n(...t);return e[r.ok?"log":"error"](await(async e=>{const t=await e.text();return Ve().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(r)),r}:n})(r,a),c=async r=>{const a=(null==o?void 0:o.beforeRequest)?o.beforeRequest(r):r,{path:c,body:u,headers:l,queryParams:d,method:p,token:f}=a,h=await s((({path:e,baseUrl:t,queryParams:n})=>{const r=new URL(e,t);return n&&(r.search=new URLSearchParams(n).toString()),r})({path:c,baseUrl:e,queryParams:d}),{headers:Ze(We(t,f),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"1.3.8"},(null==n?void 0:n.baseHeaders)||{},l),method:p,body:Qe(u),credentials:i||"include"});return(null==o?void 0:o.afterRequest)&&await o.afterRequest(r,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Ge.get,token:r}),post:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Ge.post,token:o}),put:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Ge.put,token:o}),delete:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Ge.delete,token:r}),hooks:o}};var Ye=429;function et(e,t,n){var r;let o=tt(e);t&&(o=null===(r=null==o?void 0:o.tenants)||void 0===r?void 0:r[t]);const i=null==o?void 0:o[n];return Array.isArray(i)?i:[]}function tt(e){if("string"!=typeof e||!e)throw new Error("Invalid token provided");return p(e)}function nt(e){const{exp:t}=tt(e);return(new Date).getTime()/1e3>t}function rt(e,t){return et(e,t,"permissions")}function ot(e,t){return et(e,t,"roles")}const it=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function at(e,t){var n;const r=await e,o={code:r.status,ok:r.ok,response:r},i=await r.clone().json();return r.ok?o.data=t?t(i):i:(o.error=i,r.status===Ye&&Object.assign(o.error,{retryAfter:Number.parseInt(null===(n=r.headers)||void 0===n?void 0:n.get("retry-after"))||0})),o}const st=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),ct=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),ut=e=>t=>e.test(t),lt=ut(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),dt=ut(/^\+[1-9]{1}[0-9]{3,14}$/),pt=st(lt,'"{val}" is not a valid email'),ft=st(dt,'"{val}" is not a valid phone number'),ht=st((1,e=>e.length>=1),"Minimum length is 1");const gt=st((e=>"string"==typeof e),"Input is not a string"),vt=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>ct(...e).validate(n[t]))),t(...n)),yt=e=>[gt(`"${e}" must be a string`),ht(`"${e}" must not be empty`)],bt=e=>[gt(`"${e}" must be a string`),pt()],wt=e=>[gt(`"${e}" must be a string`),ft()],mt=vt(yt("accessKey")),It=e=>({exchange:mt((t=>at(e.post(ae,{},{token:t}))))});var kt,Ot;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(kt||(kt={})),function(e){e.email="email"}(Ot||(Ot={}));const jt=Object.assign(Object.assign({},kt),Ot);var _t;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(_t||(_t={}));const St=yt("loginId"),Ut=vt(yt("token")),Pt=vt(St),Rt=vt(yt("pendingRef")),xt=vt(St,bt("email")),At=e=>({verify:Ut((t=>at(e.post(ye,{token:t})))),signIn:Pt(((t,n,r,o)=>at(e.post(it(be,jt.email),{loginId:t,URI:n,loginOptions:r},{token:o})))),signUpOrIn:Pt(((t,n)=>at(e.post(it(ke,jt.email),{loginId:t,URI:n})))),signUp:Pt(((t,n,r)=>at(e.post(it(we,jt.email),{loginId:t,URI:n,user:r})))),waitForSession:Rt(((t,n)=>new Promise((r=>{const{pollingIntervalMs:o,timeoutMs:i}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||1e3,1e3),timeoutMs:Math.min(t||ze,ze)}))(n);let a;const s=setInterval((async()=>{const n=await e.post(me,{pendingRef:t});n.ok&&(clearInterval(s),a&&clearTimeout(a),r(at(Promise.resolve(n))))}),o);a=setTimeout((()=>{r({error:{errorDescription:`Session polling timeout exceeded: ${i}ms`,errorCode:"0"},ok:!1}),clearInterval(s)}),i)})))),update:{email:xt(((t,n,r,o,i)=>at(e.post(Ie.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o}))))}}),Et=vt(yt("flowId")),Ct=vt(yt("executionId"),yt("stepId"),yt("interactionId")),Tt=e=>({start:Et(((t,n,r,o,i,a)=>at(e.post(He,{flowId:t,options:n,conditionInteractionId:r,interactionId:o,input:i,version:a})))),next:Ct(((t,n,r,o,i)=>at(e.post(Be,{executionId:t,stepId:n,interactionId:r,input:o,version:i}))))}),qt=yt("loginId"),Dt=vt(yt("token")),$t=vt(qt),Jt=vt(qt,wt("phone")),Kt=vt(qt,bt("email")),Mt=e=>({verify:Dt((t=>at(e.post(pe,{token:t})))),signIn:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:$t(((t,r,o,i)=>at(e.post(it(fe,n),{loginId:t,URI:r,loginOptions:o},{token:i}))))})),{}),signUp:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:$t(((t,r,o)=>at(e.post(it(he,n),{loginId:t,URI:r,user:o}))))})),{}),signUpOrIn:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:$t(((t,r)=>at(e.post(it(ve,n),{loginId:t,URI:r}))))})),{}),update:{email:Kt(((t,n,r,o,i)=>at(e.post(ge.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o})))),phone:Object.keys(kt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Jt(((t,r,o,i,a)=>at(e.post(it(ge.phone,n),Object.assign({loginId:t,phone:r,URI:o},a),{token:i}))))})),{})}});var Nt;!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"}(Nt||(Nt={}));const Lt=vt(yt("code")),Ft=e=>({start:Object.keys(Nt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,r,o)=>at(e.post(Oe,r||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:o}))})),{}),exchange:Lt((t=>at(e.post(je,{code:t}))))}),Ht=yt("loginId"),Bt=vt(Ht,yt("code")),zt=vt(Ht),Vt=vt(Ht,wt("phone")),Gt=vt(Ht,bt("email")),Zt=e=>({verify:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Bt(((t,r)=>at(e.post(it(se,n),{code:r,loginId:t}))))})),{}),signIn:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:zt(((t,r,o)=>at(e.post(it(ce,n),{loginId:t,loginOptions:r},{token:o}))))})),{}),signUp:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:zt(((t,r)=>at(e.post(it(ue,n),{loginId:t,user:r}))))})),{}),signUpOrIn:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:zt((t=>at(e.post(it(de,n),{loginId:t}))))})),{}),update:{email:Gt(((t,n,r,o)=>at(e.post(le.email,Object.assign({loginId:t,email:n},o),{token:r})))),phone:Object.keys(kt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Vt(((t,r,o,i)=>at(e.post(it(le.phone,n),Object.assign({loginId:t,phone:r},i),{token:o}))))})),{})}}),Qt=vt(yt("tenant")),Wt=vt(yt("code")),Xt=e=>({start:Qt(((t,n,r,o)=>at(e.post(_e,r||{},{queryParams:{tenant:t,redirectURL:n},token:o})))),exchange:Wt((t=>at(e.post(Se,{code:t}))))}),Yt=yt("loginId"),en=vt(Yt,yt("code")),tn=vt(Yt),nn=vt(Yt),rn=e=>({signUp:tn(((t,n)=>at(e.post(Pe,{loginId:t,user:n})))),verify:en(((t,n,r,o)=>at(e.post(Ue,{loginId:t,code:n,loginOptions:r},{token:o})))),update:nn(((t,n)=>at(e.post(Re,{loginId:t},{token:n}))))}),on=yt("loginId"),an=yt("newPassword"),sn=vt(on,yt("password")),cn=vt(on),un=vt(on,an),ln=vt(on,yt("oldPassword"),an),dn=e=>({signUp:sn(((t,n,r)=>at(e.post(Te,{loginId:t,password:n,user:r})))),signIn:sn(((t,n)=>at(e.post(qe,{loginId:t,password:n})))),sendReset:cn(((t,n)=>at(e.post(De,{loginId:t,redirectUrl:n})))),update:un(((t,n,r)=>at(e.post($e,{loginId:t,newPassword:n},{token:r})))),replace:ln(((t,n,r)=>at(e.post(Je,{loginId:t,oldPassword:n,newPassword:r})))),policy:()=>at(e.get(Ke))}),pn=[gt('"loginId" must be a string')],fn=yt("loginId"),hn=yt("origin"),gn=vt(fn,hn,yt("name")),vn=vt(fn,hn),yn=vt(pn,hn),bn=vt(fn,hn,yt("token")),wn=vt(yt("transactionId"),yt("response")),mn=e=>({signUp:{start:gn(((t,n,r)=>at(e.post(xe.start,{user:{loginId:t,name:r},origin:n})))),finish:wn(((t,n)=>at(e.post(xe.finish,{transactionId:t,response:n}))))},signIn:{start:yn(((t,n,r,o)=>at(e.post(Ae.start,{loginId:t,origin:n,loginOptions:r},{token:o})))),finish:wn(((t,n)=>at(e.post(Ae.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:vn(((t,n)=>at(e.post(Ee.start,{loginId:t,origin:n}))))},update:{start:bn(((t,n,r)=>at(e.post(Ce.start,{loginId:t,origin:n},{token:r})))),finish:wn(((t,n)=>at(e.post(Ce.finish,{transactionId:t,response:n}))))}}),In=vt(yt("token"));var kn,On=vt([("projectId",kn=yt("projectId"),st(((e,t)=>n=>ct(...t).validate(ie(n,e)))("projectId",kn))())])((e=>{var t,n;const r=[].concat((null===(t=e.hooks)||void 0===t?void 0:t.beforeRequest)||[]),o=[].concat((null===(n=e.hooks)||void 0===n?void 0:n.afterRequest)||[]);return(({projectId:e,logger:t,baseUrl:n,hooks:r,cookiePolicy:o,baseHeaders:i={},fetch:a})=>{return s=Xe({baseUrl:n||"https://api.descope.com",projectId:e,logger:t,hooks:r,cookiePolicy:o,baseConfig:{baseHeaders:i},fetch:a}),{accessKey:It(s),otp:Zt(s),magicLink:Mt(s),enchantedLink:At(s),oauth:Ft(s),saml:Xt(s),totp:rn(s),webauthn:mn(s),password:dn(s),flow:Tt(s),refresh:e=>at(s.post(Me,{},{token:e})),logout:e=>at(s.post(Ne,{},{token:e})),logoutAll:e=>at(s.post(Le,{},{token:e})),me:e=>at(s.get(Fe,{token:e})),isJwtExpired:In(nt),getJwtPermissions:In(rt),getJwtRoles:In(ot),httpClient:s};var s})(Object.assign(Object.assign({},e),{hooks:{beforeRequest:e=>null==r?void 0:r.reduce(((e,t)=>t(e)),e),afterRequest:async(t,n)=>{(await Promise.allSettled(null==o?void 0:o.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))}))}}}))}));const jn=(e,t,n)=>(t.forEach((t=>{const r=t.split(".");let o=r.shift(),i=e;for(;r.length>0;){if(i=i[o],!o||!i)throw Error(`Invalid path "${t}", "${o}" is missing or has no value`);o=r.shift()}if("function"!=typeof i[o])throw Error(`"${t}" is not a function`);const a=i[o];i[o]=n(a)})),e);var _n=Object.assign(On,{DeliveryMethods:jt});const Sn=(...e)=>{console.debug(...e)},Un="undefined"!=typeof window,Pn=Un&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com";var Rn="Blocked by CSP",xn="9319";function An(e,t){var n=[];return function(e,t){var n,r,o=(r=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}([],e,!0),{current:function(){return r[0]},postpone:function(){var e=r.shift();void 0!==e&&r.push(e)},exclude:function(){r.shift()}}),i=(100,3e3,n=0,function(){return Math.random()*Math.min(3e3,100*Math.pow(2,n++))}),a=o.current();if(void 0===a)return Promise.reject(new TypeError("The list of script URL patterns is empty"));var s=function(e,n){return t(e).catch((function(e){if(n+1>=5)throw e;!function(e){if(!(e instanceof Error))return!1;var t=e.message;return t===Rn||t===xn}(e)?o.postpone():o.exclude();var t,r=o.current();if(void 0===r)throw e;return(t=i(),new Promise((function(e){return setTimeout(e,t)}))).then((function(){return s(r,n+1)}))}))};return s(a,0)}(e,(function(e){var r=new Date,o=function(){return n.push({url:e,startedAt:r,finishedAt:new Date})},i=t(e);return i.then(o,o),i})).then((function(e){return[e,{attempts:n}]}))}var En="Failed to load the JS script of the agent";function Cn(e){var t;e.scriptUrlPattern;var n=e.token,r=e.apiKey,o=void 0===r?n:r,i=c(e,["scriptUrlPattern","token","apiKey"]),a=null!==(t=function(e,t){return function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}(e,t)?e[t]:void 0}(e,"scriptUrlPattern"))&&void 0!==t?t:"https://fpnpmcdn.net/v<version>/<apiKey>/loader_v<loaderVersion>.js";return Promise.resolve().then((function(){if(!o||"string"!=typeof o)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.8.3"):e}))}(String(e),t)}))}(a,o);return An(e,Tn).catch(Dn)})).then((function(e){var t=e[0],n=e[1];return t.load(s(s({},i),{ldi:n}))}))}function Tn(e){return function(e,t,n,r){var o,i=document,a="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,c())};i.addEventListener(a,s);var c=function(){return i.removeEventListener(a,s)};return Promise.resolve().then(t).then((function(e){return c(),e}),(function(e){return new Promise((function(e){return setTimeout(e)})).then((function(){if(c(),o)return function(){throw new Error(Rn)}();throw e}))}))}(e,(function(){return function(e){return new Promise((function(t,n){var r=document.createElement("script"),o=function(){var e;return null===(e=r.parentNode)||void 0===e?void 0:e.removeChild(r)},i=document.head||document.getElementsByTagName("head")[0];r.onload=function(){o(),t()},r.onerror=function(){o(),n(new Error(En))},r.async=!0,r.src=e,i.appendChild(r)}))}(e)})).then(qn)}function qn(){var e=window,t="__fpjs_p_l_b",n=e[t];if(function(e,t){var n,r=null===(n=Object.getOwnPropertyDescriptor)||void 0===n?void 0:n.call(Object,e,t);(null==r?void 0:r.configurable)?delete e[t]:r&&!r.writable||(e[t]=void 0)}(e,t),"function"!=typeof(null==n?void 0:n.load))throw new Error(xn);return n}function Dn(e){throw e instanceof Error&&e.message===xn?new Error(En):e}const $n=(e="",t="")=>({vsid:e,vrid:t}),Jn=(e=!1)=>{const t=localStorage.getItem("fp");if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},Kn=async e=>{try{if(Jn())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),n=Cn({apiKey:e,endpoint:Pn}),r=await n,{requestId:o}=await r.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})($n(t,o))}catch(e){global.FB_DEBUG&&console.error(e)}},Mn=e=>(e.body&&(e.body.fpData=Jn(!0)||$n()),e),Nn="dls_last_user_login_id",Ln="dls_last_user_display_name",Fn=()=>i(Nn),Hn=()=>i(Ln),Bn=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,r={}]=t,o=Fn(),i=Hn();o&&(null!==(n=r.lastAuth)&&void 0!==n||(r.lastAuth={}),r.lastAuth.loginId=o,r.lastAuth.name=i);return await e(...t)},zn=e=>async(...t)=>{const n=await e(...t);return a(Nn),a(Ln),n};function Vn(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(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";const e=(e,t)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,r)=>{var o;return n[r]=[].concat((null===(o=e.hooks)||void 0===o?void 0:o[r])||[]).concat((null==t?void 0:t[r])||[]),n}),null!==(n=e.hooks)&&void 0!==n?n:e.hooks={}),e},t=async e=>{if(!(null==e?void 0:e.ok))return{};const t=await(null==e?void 0:e.clone().json());return(null==t?void 0:t.authInfo)||t||{}},n=async e=>{const n=await t(e);return(null==n?void 0:n.user)||((null==n?void 0:n.hasOwnProperty("userId"))?n:void 0)},r="undefined"!=typeof localStorage,o=(e,t)=>r&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(e,t)),i=e=>r&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(e)),a=e=>r&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(e));var s=function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},s.apply(this,arguments)};function c(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function u(e){this.message=e}u.prototype=new Error,u.prototype.name="InvalidCharacterError";var l="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new u("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,o=0,i=0,a="";r=t.charAt(i++);~r&&(n=o%4?64*n+r:r,o++%4)?a+=String.fromCharCode(255&n>>(-2*o&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return a};function d(e){this.message=e}function p(e,t){if("string"!=typeof e)throw new d("Invalid token specified");var n=!0===(t=t||{}).header?0:1;try{return JSON.parse(function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(l(e).replace(/(.)/g,(function(e,t){var n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(t)}catch(e){return l(t)}}(e.split(".")[n]))}catch(e){throw new d("Invalid token specified: "+e.message)}}d.prototype=new Error,d.prototype.name="InvalidTokenError";var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function h(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var g="__lodash_hash_undefined__",v=1/0,y="[object Function]",b="[object GeneratorFunction]",w="[object Symbol]",m=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,I=/^\w*$/,k=/^\./,O=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,j=/\\(\\)?/g,_=/^\[object .+?Constructor\]$/,S="object"==typeof f&&f&&f.Object===Object&&f,U="object"==typeof self&&self&&self.Object===Object&&self,P=S||U||Function("return this")();var R,x=Array.prototype,A=Function.prototype,E=Object.prototype,C=P["__core-js_shared__"],T=(R=/[^.]+$/.exec(C&&C.keys&&C.keys.IE_PROTO||""))?"Symbol(src)_1."+R:"",q=A.toString,D=E.hasOwnProperty,$=E.toString,J=RegExp("^"+q.call(D).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),K=P.Symbol,M=x.splice,N=X(P,"Map"),L=X(Object,"create"),F=K?K.prototype:void 0,H=F?F.toString:void 0;function B(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function z(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function V(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function G(e,t){for(var n,r,o=e.length;o--;)if((n=e[o][0])===(r=t)||n!=n&&r!=r)return o;return-1}function Z(e,t){var n;t=function(e,t){if(ne(e))return!1;var n=typeof e;if("number"==n||"symbol"==n||"boolean"==n||null==e||oe(e))return!0;return I.test(e)||!m.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:ne(n=t)?n:Y(n);for(var r=0,o=t.length;null!=e&&r<o;)e=e[ee(t[r++])];return r&&r==o?e:void 0}function Q(e){if(!re(e)||(t=e,T&&T in t))return!1;var t,n=function(e){var t=re(e)?$.call(e):"";return t==y||t==b}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?J:_;return n.test(function(e){if(null!=e){try{return q.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function W(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function X(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Q(n)?n:void 0}B.prototype.clear=function(){this.__data__=L?L(null):{}},B.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},B.prototype.get=function(e){var t=this.__data__;if(L){var n=t[e];return n===g?void 0:n}return D.call(t,e)?t[e]:void 0},B.prototype.has=function(e){var t=this.__data__;return L?void 0!==t[e]:D.call(t,e)},B.prototype.set=function(e,t){return this.__data__[e]=L&&void 0===t?g:t,this},z.prototype.clear=function(){this.__data__=[]},z.prototype.delete=function(e){var t=this.__data__,n=G(t,e);return!(n<0)&&(n==t.length-1?t.pop():M.call(t,n,1),!0)},z.prototype.get=function(e){var t=this.__data__,n=G(t,e);return n<0?void 0:t[n][1]},z.prototype.has=function(e){return G(this.__data__,e)>-1},z.prototype.set=function(e,t){var n=this.__data__,r=G(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},V.prototype.clear=function(){this.__data__={hash:new B,map:new(N||z),string:new B}},V.prototype.delete=function(e){return W(this,e).delete(e)},V.prototype.get=function(e){return W(this,e).get(e)},V.prototype.has=function(e){return W(this,e).has(e)},V.prototype.set=function(e,t){return W(this,e).set(e,t),this};var Y=te((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(oe(e))return H?H.call(e):"";var t=e+"";return"0"==t&&1/e==-v?"-0":t}(t);var n=[];return k.test(e)&&n.push(""),e.replace(O,(function(e,t,r,o){n.push(r?o.replace(j,"$1"):t||e)})),n}));function ee(e){if("string"==typeof e||oe(e))return e;var t=e+"";return"0"==t&&1/e==-v?"-0":t}function te(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a),a};return n.cache=new(te.Cache||V),n}te.Cache=V;var ne=Array.isArray;function re(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function oe(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&$.call(e)==w}var ie=h((function(e,t,n){var r=null==e?void 0:Z(e,t);return void 0===r?n:r})),ae="/v1/auth/accesskey/exchange",se="/v1/auth/otp/verify",ce="/v1/auth/otp/signin",ue="/v1/auth/otp/signup",le={email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},de="/v1/auth/otp/signup-in",pe="/v1/auth/magiclink/verify",fe="/v1/auth/magiclink/signin",he="/v1/auth/magiclink/signup",ge={email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/phone"},ve="/v1/auth/magiclink/signup-in",ye="/v1/auth/enchantedlink/verify",be="/v1/auth/enchantedlink/signin",we="/v1/auth/enchantedlink/signup",me="/v1/auth/enchantedlink/pending-session",Ie={email:"/v1/auth/enchantedlink/update/email"},ke="/v1/auth/enchantedlink/signup-in",Oe="/v1/auth/oauth/authorize",je="/v1/auth/oauth/exchange",_e="/v1/auth/saml/authorize",Se="/v1/auth/saml/exchange",Ue="/v1/auth/totp/verify",Pe="/v1/auth/totp/signup",Re="/v1/auth/totp/update",xe={start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},Ae={start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},Ee={start:"/v1/auth/webauthn/signup-in/start"},Ce={start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"},Te="/v1/auth/password/signup",qe="/v1/auth/password/signin",De="/v1/auth/password/reset",$e="/v1/auth/password/update",Je="/v1/auth/password/replace",Ke="/v1/auth/password/policy",Me="/v1/auth/refresh",Ne="/v1/auth/logout",Le="/v1/auth/logoutall",Fe="/v1/auth/me",He="/v1/flow/start",Be="/v1/flow/next";const ze=6e5,Ve=()=>{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},build:()=>Object.keys(e).flatMap((t=>e[t]?[`${"Title"!==t?`${t}: `:""}${e[t]}`]:[])).join("\n")}};var Ge;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(Ge||(Ge={}));const Ze=(...e)=>new Headers(e.reduce(((e,t)=>{const n=(e=>Array.isArray(e)?e:e instanceof Headers?Array.from(e.entries()):e?Object.entries(e):[])(t);return n.reduce(((t,[n,r])=>(e[n]=r,e)),e),e}),{})),Qe=e=>void 0===e?void 0:JSON.stringify(e),We=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},Xe=({baseUrl:e,projectId:t,baseConfig:n,logger:r,hooks:o,cookiePolicy:i,fetch:a})=>{const s=((e,t)=>{const n=(e=>async(...t)=>{const n=await e(...t),r=await n.text();return n.text=()=>Promise.resolve(r),n.json=()=>Promise.resolve(JSON.parse(r)),n.clone=()=>n,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(...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=>Ve().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const r=await n(...t);return e[r.ok?"log":"error"](await(async e=>{const t=await e.text();return Ve().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(r)),r}:n})(r,a),c=async r=>{const a=(null==o?void 0:o.beforeRequest)?o.beforeRequest(r):r,{path:c,body:u,headers:l,queryParams:d,method:p,token:f}=a,h=await s((({path:e,baseUrl:t,queryParams:n})=>{const r=new URL(e,t);return n&&(r.search=new URLSearchParams(n).toString()),r})({path:c,baseUrl:e,queryParams:d}),{headers:Ze(We(t,f),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"1.3.9"},(null==n?void 0:n.baseHeaders)||{},l),method:p,body:Qe(u),credentials:i||"include"});return(null==o?void 0:o.afterRequest)&&await o.afterRequest(r,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Ge.get,token:r}),post:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Ge.post,token:o}),put:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Ge.put,token:o}),delete:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Ge.delete,token:r}),hooks:o}};var Ye=429;function et(e,t,n){var r;let o=tt(e);t&&(o=null===(r=null==o?void 0:o.tenants)||void 0===r?void 0:r[t]);const i=null==o?void 0:o[n];return Array.isArray(i)?i:[]}function tt(e){if("string"!=typeof e||!e)throw new Error("Invalid token provided");return p(e)}function nt(e){const{exp:t}=tt(e);return(new Date).getTime()/1e3>t}function rt(e,t){return et(e,t,"permissions")}function ot(e,t){return et(e,t,"roles")}const it=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function at(e,t){var n;const r=await e,o={code:r.status,ok:r.ok,response:r},i=await r.clone().json();return r.ok?o.data=t?t(i):i:(o.error=i,r.status===Ye&&Object.assign(o.error,{retryAfter:Number.parseInt(null===(n=r.headers)||void 0===n?void 0:n.get("retry-after"))||0})),o}const st=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),ct=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),ut=e=>t=>e.test(t),lt=ut(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),dt=ut(/^\+[1-9]{1}[0-9]{3,14}$/),pt=st(lt,'"{val}" is not a valid email'),ft=st(dt,'"{val}" is not a valid phone number'),ht=st((1,e=>e.length>=1),"Minimum length is 1");const gt=st((e=>"string"==typeof e),"Input is not a string"),vt=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>ct(...e).validate(n[t]))),t(...n)),yt=e=>[gt(`"${e}" must be a string`),ht(`"${e}" must not be empty`)],bt=e=>[gt(`"${e}" must be a string`),pt()],wt=e=>[gt(`"${e}" must be a string`),ft()],mt=vt(yt("accessKey")),It=e=>({exchange:mt((t=>at(e.post(ae,{},{token:t}))))});var kt,Ot;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(kt||(kt={})),function(e){e.email="email"}(Ot||(Ot={}));const jt=Object.assign(Object.assign({},kt),Ot);var _t;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(_t||(_t={}));const St=yt("loginId"),Ut=vt(yt("token")),Pt=vt(St),Rt=vt(yt("pendingRef")),xt=vt(St,bt("email")),At=e=>({verify:Ut((t=>at(e.post(ye,{token:t})))),signIn:Pt(((t,n,r,o)=>at(e.post(it(be,jt.email),{loginId:t,URI:n,loginOptions:r},{token:o})))),signUpOrIn:Pt(((t,n)=>at(e.post(it(ke,jt.email),{loginId:t,URI:n})))),signUp:Pt(((t,n,r)=>at(e.post(it(we,jt.email),{loginId:t,URI:n,user:r})))),waitForSession:Rt(((t,n)=>new Promise((r=>{const{pollingIntervalMs:o,timeoutMs:i}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||1e3,1e3),timeoutMs:Math.min(t||ze,ze)}))(n);let a;const s=setInterval((async()=>{const n=await e.post(me,{pendingRef:t});n.ok&&(clearInterval(s),a&&clearTimeout(a),r(at(Promise.resolve(n))))}),o);a=setTimeout((()=>{r({error:{errorDescription:`Session polling timeout exceeded: ${i}ms`,errorCode:"0"},ok:!1}),clearInterval(s)}),i)})))),update:{email:xt(((t,n,r,o,i)=>at(e.post(Ie.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o}))))}}),Et=vt(yt("flowId")),Ct=vt(yt("executionId"),yt("stepId"),yt("interactionId")),Tt=e=>({start:Et(((t,n,r,o,i,a)=>at(e.post(He,{flowId:t,options:n,conditionInteractionId:r,interactionId:o,input:i,version:a})))),next:Ct(((t,n,r,o,i)=>at(e.post(Be,{executionId:t,stepId:n,interactionId:r,input:o,version:i}))))}),qt=yt("loginId"),Dt=vt(yt("token")),$t=vt(qt),Jt=vt(qt,wt("phone")),Kt=vt(qt,bt("email")),Mt=e=>({verify:Dt((t=>at(e.post(pe,{token:t})))),signIn:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:$t(((t,r,o,i)=>at(e.post(it(fe,n),{loginId:t,URI:r,loginOptions:o},{token:i}))))})),{}),signUp:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:$t(((t,r,o)=>at(e.post(it(he,n),{loginId:t,URI:r,user:o}))))})),{}),signUpOrIn:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:$t(((t,r)=>at(e.post(it(ve,n),{loginId:t,URI:r}))))})),{}),update:{email:Kt(((t,n,r,o,i)=>at(e.post(ge.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o})))),phone:Object.keys(kt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Jt(((t,r,o,i,a)=>at(e.post(it(ge.phone,n),Object.assign({loginId:t,phone:r,URI:o},a),{token:i}))))})),{})}});var Nt;!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"}(Nt||(Nt={}));const Lt=vt(yt("code")),Ft=e=>({start:Object.keys(Nt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,r,o)=>at(e.post(Oe,r||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:o}))})),{}),exchange:Lt((t=>at(e.post(je,{code:t}))))}),Ht=yt("loginId"),Bt=vt(Ht,yt("code")),zt=vt(Ht),Vt=vt(Ht,wt("phone")),Gt=vt(Ht,bt("email")),Zt=e=>({verify:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Bt(((t,r)=>at(e.post(it(se,n),{code:r,loginId:t}))))})),{}),signIn:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:zt(((t,r,o)=>at(e.post(it(ce,n),{loginId:t,loginOptions:r},{token:o}))))})),{}),signUp:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:zt(((t,r)=>at(e.post(it(ue,n),{loginId:t,user:r}))))})),{}),signUpOrIn:Object.keys(jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:zt((t=>at(e.post(it(de,n),{loginId:t}))))})),{}),update:{email:Gt(((t,n,r,o)=>at(e.post(le.email,Object.assign({loginId:t,email:n},o),{token:r})))),phone:Object.keys(kt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Vt(((t,r,o,i)=>at(e.post(it(le.phone,n),Object.assign({loginId:t,phone:r},i),{token:o}))))})),{})}}),Qt=vt(yt("tenant")),Wt=vt(yt("code")),Xt=e=>({start:Qt(((t,n,r,o)=>at(e.post(_e,r||{},{queryParams:{tenant:t,redirectURL:n},token:o})))),exchange:Wt((t=>at(e.post(Se,{code:t}))))}),Yt=yt("loginId"),en=vt(Yt,yt("code")),tn=vt(Yt),nn=vt(Yt),rn=e=>({signUp:tn(((t,n)=>at(e.post(Pe,{loginId:t,user:n})))),verify:en(((t,n,r,o)=>at(e.post(Ue,{loginId:t,code:n,loginOptions:r},{token:o})))),update:nn(((t,n)=>at(e.post(Re,{loginId:t},{token:n}))))}),on=yt("loginId"),an=yt("newPassword"),sn=vt(on,yt("password")),cn=vt(on),un=vt(on,an),ln=vt(on,yt("oldPassword"),an),dn=e=>({signUp:sn(((t,n,r)=>at(e.post(Te,{loginId:t,password:n,user:r})))),signIn:sn(((t,n)=>at(e.post(qe,{loginId:t,password:n})))),sendReset:cn(((t,n)=>at(e.post(De,{loginId:t,redirectUrl:n})))),update:un(((t,n,r)=>at(e.post($e,{loginId:t,newPassword:n},{token:r})))),replace:ln(((t,n,r)=>at(e.post(Je,{loginId:t,oldPassword:n,newPassword:r})))),policy:()=>at(e.get(Ke))}),pn=[gt('"loginId" must be a string')],fn=yt("loginId"),hn=yt("origin"),gn=vt(fn,hn,yt("name")),vn=vt(fn,hn),yn=vt(pn,hn),bn=vt(fn,hn,yt("token")),wn=vt(yt("transactionId"),yt("response")),mn=e=>({signUp:{start:gn(((t,n,r)=>at(e.post(xe.start,{user:{loginId:t,name:r},origin:n})))),finish:wn(((t,n)=>at(e.post(xe.finish,{transactionId:t,response:n}))))},signIn:{start:yn(((t,n,r,o)=>at(e.post(Ae.start,{loginId:t,origin:n,loginOptions:r},{token:o})))),finish:wn(((t,n)=>at(e.post(Ae.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:vn(((t,n)=>at(e.post(Ee.start,{loginId:t,origin:n}))))},update:{start:bn(((t,n,r)=>at(e.post(Ce.start,{loginId:t,origin:n},{token:r})))),finish:wn(((t,n)=>at(e.post(Ce.finish,{transactionId:t,response:n}))))}}),In=vt(yt("token"));var kn,On=vt([("projectId",kn=yt("projectId"),st(((e,t)=>n=>ct(...t).validate(ie(n,e)))("projectId",kn))())])((e=>{var t,n;const r=[].concat((null===(t=e.hooks)||void 0===t?void 0:t.beforeRequest)||[]),o=[].concat((null===(n=e.hooks)||void 0===n?void 0:n.afterRequest)||[]);return(({projectId:e,logger:t,baseUrl:n,hooks:r,cookiePolicy:o,baseHeaders:i={},fetch:a})=>{return s=Xe({baseUrl:n||"https://api.descope.com",projectId:e,logger:t,hooks:r,cookiePolicy:o,baseConfig:{baseHeaders:i},fetch:a}),{accessKey:It(s),otp:Zt(s),magicLink:Mt(s),enchantedLink:At(s),oauth:Ft(s),saml:Xt(s),totp:rn(s),webauthn:mn(s),password:dn(s),flow:Tt(s),refresh:e=>at(s.post(Me,{},{token:e})),logout:e=>at(s.post(Ne,{},{token:e})),logoutAll:e=>at(s.post(Le,{},{token:e})),me:e=>at(s.get(Fe,{token:e})),isJwtExpired:In(nt),getJwtPermissions:In(rt),getJwtRoles:In(ot),httpClient:s};var s})(Object.assign(Object.assign({},e),{hooks:{beforeRequest:e=>null==r?void 0:r.reduce(((e,t)=>t(e)),e),afterRequest:async(t,n)=>{(await Promise.allSettled(null==o?void 0:o.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))}))}}}))}));const jn=(e,t,n)=>(t.forEach((t=>{const r=t.split(".");let o=r.shift(),i=e;for(;r.length>0;){if(i=i[o],!o||!i)throw Error(`Invalid path "${t}", "${o}" is missing or has no value`);o=r.shift()}if("function"!=typeof i[o])throw Error(`"${t}" is not a function`);const a=i[o];i[o]=n(a)})),e);var _n=Object.assign(On,{DeliveryMethods:jt});const Sn=(...e)=>{console.debug(...e)},Un="undefined"!=typeof window,Pn=Un&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com";var Rn="Blocked by CSP",xn="9319";function An(e,t){var n=[];return function(e,t){var n,r,o=(r=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}([],e,!0),{current:function(){return r[0]},postpone:function(){var e=r.shift();void 0!==e&&r.push(e)},exclude:function(){r.shift()}}),i=(100,3e3,n=0,function(){return Math.random()*Math.min(3e3,100*Math.pow(2,n++))}),a=o.current();if(void 0===a)return Promise.reject(new TypeError("The list of script URL patterns is empty"));var s=function(e,n){return t(e).catch((function(e){if(n+1>=5)throw e;!function(e){if(!(e instanceof Error))return!1;var t=e.message;return t===Rn||t===xn}(e)?o.postpone():o.exclude();var t,r=o.current();if(void 0===r)throw e;return(t=i(),new Promise((function(e){return setTimeout(e,t)}))).then((function(){return s(r,n+1)}))}))};return s(a,0)}(e,(function(e){var r=new Date,o=function(){return n.push({url:e,startedAt:r,finishedAt:new Date})},i=t(e);return i.then(o,o),i})).then((function(e){return[e,{attempts:n}]}))}var En="Failed to load the JS script of the agent";function Cn(e){var t;e.scriptUrlPattern;var n=e.token,r=e.apiKey,o=void 0===r?n:r,i=c(e,["scriptUrlPattern","token","apiKey"]),a=null!==(t=function(e,t){return function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}(e,t)?e[t]:void 0}(e,"scriptUrlPattern"))&&void 0!==t?t:"https://fpnpmcdn.net/v<version>/<apiKey>/loader_v<loaderVersion>.js";return Promise.resolve().then((function(){if(!o||"string"!=typeof o)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.8.3"):e}))}(String(e),t)}))}(a,o);return An(e,Tn).catch(Dn)})).then((function(e){var t=e[0],n=e[1];return t.load(s(s({},i),{ldi:n}))}))}function Tn(e){return function(e,t,n,r){var o,i=document,a="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,c())};i.addEventListener(a,s);var c=function(){return i.removeEventListener(a,s)};return Promise.resolve().then(t).then((function(e){return c(),e}),(function(e){return new Promise((function(e){return setTimeout(e)})).then((function(){if(c(),o)return function(){throw new Error(Rn)}();throw e}))}))}(e,(function(){return function(e){return new Promise((function(t,n){var r=document.createElement("script"),o=function(){var e;return null===(e=r.parentNode)||void 0===e?void 0:e.removeChild(r)},i=document.head||document.getElementsByTagName("head")[0];r.onload=function(){o(),t()},r.onerror=function(){o(),n(new Error(En))},r.async=!0,r.src=e,i.appendChild(r)}))}(e)})).then(qn)}function qn(){var e=window,t="__fpjs_p_l_b",n=e[t];if(function(e,t){var n,r=null===(n=Object.getOwnPropertyDescriptor)||void 0===n?void 0:n.call(Object,e,t);(null==r?void 0:r.configurable)?delete e[t]:r&&!r.writable||(e[t]=void 0)}(e,t),"function"!=typeof(null==n?void 0:n.load))throw new Error(xn);return n}function Dn(e){throw e instanceof Error&&e.message===xn?new Error(En):e}const $n=(e="",t="")=>({vsid:e,vrid:t}),Jn=(e=!1)=>{const t=localStorage.getItem("fp");if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},Kn=async e=>{try{if(Jn())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),n=Cn({apiKey:e,endpoint:Pn}),r=await n,{requestId:o}=await r.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})($n(t,o))}catch(e){global.FB_DEBUG&&console.error(e)}},Mn=e=>(e.body&&(e.body.fpData=Jn(!0)||$n()),e),Nn="dls_last_user_login_id",Ln="dls_last_user_display_name",Fn=()=>i(Nn),Hn=()=>i(Ln),Bn=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,r={}]=t,o=Fn(),i=Hn();o&&(null!==(n=r.lastAuth)&&void 0!==n||(r.lastAuth={}),r.lastAuth.loginId=o,r.lastAuth.name=i);return await e(...t)},zn=e=>async(...t)=>{const n=await e(...t);return a(Nn),a(Ln),n};function Vn(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}} | ||
/*! js-cookie v3.0.5 | MIT */ | ||
function Gn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]=n[r]}return e}var Zn=function e(t,n){function r(e,r,o){if("undefined"!=typeof document){"number"==typeof(o=Gn({},n,o)).expires&&(o.expires=new Date(Date.now()+864e5*o.expires)),o.expires&&(o.expires=o.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var i="";for(var a in o)o[a]&&(i+="; "+a,!0!==o[a]&&(i+="="+o[a].split(";")[0]));return document.cookie=e+"="+t.write(r,e)+i}}return Object.create({set:r,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var n=document.cookie?document.cookie.split("; "):[],r={},o=0;o<n.length;o++){var i=n[o].split("="),a=i.slice(1).join("=");try{var s=decodeURIComponent(i[0]);if(r[s]=t.read(a,s),e===s)break}catch(e){}}return e?r[e]:r}},remove:function(e,t){r(e,"",Gn({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,Gn({},this.attributes,t))},withConverter:function(t){return e(Gn({},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 Qn="DS",Wn="DSR";const Xn=(e={},t)=>{var{refreshJwt:n,sessionJwt:r}=e,i=c(e,["refreshJwt","sessionJwt"]);void 0===t&&(t=!1),n&&o(Wn,n),r&&(t?function(e,t,{cookiePath:n,cookieDomain:r,cookieExpiration:o}){if(t){const i=new Date(1e3*o);Zn.set(e,t,{path:n,domain:r,expires:i,sameSite:"Strict",secure:!0})}}(Qn,r,i):o(Qn,r))};function Yn(){return i(Wn)||""}function er(){return Zn.get(Qn)||i(Qn)||""}function tr(){a(Wn),a(Qn),Zn.remove(Qn)}const nr=e=>Object.assign(e,{token:e.token||Yn()}),rr=e=>async(...t)=>{const n=await e(...t);return tr(),n};async function or(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=lr(n.publicKey.challenge),n.publicKey.user.id=lr(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=lr(e.id)})),n}(e),n=await navigator.credentials.create(t);return r=n,JSON.stringify({id:r.id,rawId:dr(r.rawId),type:r.type,response:{attestationObject:dr(r.response.attestationObject),clientDataJSON:dr(r.response.clientDataJSON)}});var r}async function ir(e){const t=cr(e);return ur(await navigator.credentials.get(t))}async function ar(e,t){const n=cr(e);n.signal=t.signal,n.mediation="conditional";return ur(await navigator.credentials.get(n))}async function sr(e=!1){if(!Un)return Promise.resolve(!1);const t=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function cr(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=lr(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=lr(e.id)})),n}function ur(e){return JSON.stringify({id:e.id,rawId:dr(e.rawId),type:e.type,response:{authenticatorData:dr(e.response.authenticatorData),clientDataJSON:dr(e.response.clientDataJSON),signature:dr(e.response.signature),userHandle:e.response.userHandle?dr(e.response.userHandle):void 0}})}function lr(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function dr(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var pr,fr=(pr=e=>({async signUp(t,n){const r=await e.webauthn.signUp.start(t,window.location.origin,n);if(!r.ok)return r;const o=await or(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,o)},async signIn(t){const n=await e.webauthn.signIn.start(t,window.location.origin);if(!n.ok)return n;const r=await ir(n.data.options);return await e.webauthn.signIn.finish(n.data.transactionId,r)},async signUpOrIn(t){var n;const r=await e.webauthn.signUpOrIn.start(t,window.location.origin);if(!r.ok)return r;if(null===(n=r.data)||void 0===n?void 0:n.create){const t=await or(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,t)}{const t=await ir(r.data.options);return await e.webauthn.signIn.finish(r.data.transactionId,t)}},async update(t,n){const r=await e.webauthn.update.start(t,window.location.origin,n);if(!r.ok)return r;const o=await or(r.data.options);return await e.webauthn.update.finish(r.data.transactionId,o)},helpers:{create:or,get:ir,isSupported:sr,conditional:ar}}),(...e)=>{const t=pr(...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}),hr=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await sr(),r=Object.assign(Object.assign({redirectUrl:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=r,e.flow.start(...t)}});const gr=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>n=>{var{fpKey:r,fpLoad:o}=n,i=c(n,["fpKey","fpLoad"]);return r?(Un?o&&Kn(r).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(e(i,{beforeRequest:Mn}))):t(Object.assign({},i))}),(n=>r=>{var{autoRefresh:o}=r,i=c(r,["autoRefresh"]);if(!o)return n(i);const{clearAllTimers:a,setTimer:s}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})(),u=n(e(i,{afterRequest:async(e,n)=>{const{refreshJwt:r,sessionJwt:o}=await t(n);if(401===(null==n?void 0:n.status))Sn("Received 401, canceling all timers"),a();else if(o){const e=((i=(e=>{const t=e.split(".");try{if(3===t.length){const e=JSON.parse(window.atob(t[1]));if(e.exp)return new Date(1e3*e.exp)}}catch(e){}return null})(o))?i.getTime()-(new Date).getTime():0)-2e4;a(),Sn(`Setting refresh timer for ${e}ms`),s((()=>{Sn("Refreshing session"),u.refresh(r)}),e)}var i}}));return jn(u,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return Sn("Clearing all timers"),a(),n}))}),(e=>t=>e(Object.assign(Object.assign({},t),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.2.9"},t.baseHeaders)}))),(r=>o=>{const i=Vn(),a=Vn(),s=r(e(o,{afterRequest:async(e,r)=>{if(401===(null==r?void 0:r.status))i.pub(null),a.pub(null);else{const e=await n(r);e&&a.pub(e);const{sessionJwt:o}=await t(r);o&&i.pub(o)}}})),c=jn(s,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return i.pub(null),a.pub(null),n}));return Object.assign(c,{onSessionTokenChange:i.sub,onUserChange:a.sub})}),(t=>r=>{const i=t(e(r,{afterRequest:async(e,t)=>{var r;const i=await n(t),a=null===(r=null==i?void 0:i.loginIds)||void 0===r?void 0:r[0],s=null==i?void 0:i.name;a&&((e=>{o(Nn,e)})(a),(e=>{o(Ln,e)})(s))}}));let a=jn(i,["flow.start"],Bn);return a=jn(a,["logout","logoutAll"],zn),Object.assign(a,{getLastUserLoginId:Fn,getLastUserDisplayName:Hn})}),(n=>r=>{var{persistTokens:o,sessionTokenViaCookie:i}=r,a=c(r,["persistTokens","sessionTokenViaCookie"]);if(!o||!Un)return o&&console.warn("Storing auth tokens in local storage and cookies are a client side only capabilities and will not be done when running in the server"),n(a);const s=n(e(a,{beforeRequest:nr,afterRequest:async(e,n)=>{401===(null==n?void 0:n.status)?tr():Xn(await t(n),i)}})),u=jn(s,["logout","logoutAll"],rr);return Object.assign(u,{getRefreshToken:Yn,getSessionToken:er})}))(((...e)=>{const t=_n(...e);return Object.assign(Object.assign({},t),{flow:hr(t),webauthn:fr(t)})}));return gr})); | ||
function Gn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]=n[r]}return e}var Zn=function e(t,n){function r(e,r,o){if("undefined"!=typeof document){"number"==typeof(o=Gn({},n,o)).expires&&(o.expires=new Date(Date.now()+864e5*o.expires)),o.expires&&(o.expires=o.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var i="";for(var a in o)o[a]&&(i+="; "+a,!0!==o[a]&&(i+="="+o[a].split(";")[0]));return document.cookie=e+"="+t.write(r,e)+i}}return Object.create({set:r,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var n=document.cookie?document.cookie.split("; "):[],r={},o=0;o<n.length;o++){var i=n[o].split("="),a=i.slice(1).join("=");try{var s=decodeURIComponent(i[0]);if(r[s]=t.read(a,s),e===s)break}catch(e){}}return e?r[e]:r}},remove:function(e,t){r(e,"",Gn({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,Gn({},this.attributes,t))},withConverter:function(t){return e(Gn({},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 Qn="DS",Wn="DSR";const Xn=(e={},t)=>{var{refreshJwt:n,sessionJwt:r}=e,i=c(e,["refreshJwt","sessionJwt"]);void 0===t&&(t=!1),n&&o(Wn,n),r&&(t?function(e,t,{cookiePath:n,cookieDomain:r,cookieExpiration:o}){if(t){const i=new Date(1e3*o);Zn.set(e,t,{path:n,domain:r,expires:i,sameSite:"Strict",secure:!0})}}(Qn,r,i):o(Qn,r))};function Yn(){return i(Wn)||""}function er(){return Zn.get(Qn)||i(Qn)||""}function tr(){a(Wn),a(Qn),Zn.remove(Qn)}const nr=e=>Object.assign(e,{token:e.token||Yn()}),rr=e=>async(...t)=>{const n=await e(...t);return tr(),n};async function or(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=lr(n.publicKey.challenge),n.publicKey.user.id=lr(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=lr(e.id)})),n}(e),n=await navigator.credentials.create(t);return r=n,JSON.stringify({id:r.id,rawId:dr(r.rawId),type:r.type,response:{attestationObject:dr(r.response.attestationObject),clientDataJSON:dr(r.response.clientDataJSON)}});var r}async function ir(e){const t=cr(e);return ur(await navigator.credentials.get(t))}async function ar(e,t){const n=cr(e);n.signal=t.signal,n.mediation="conditional";return ur(await navigator.credentials.get(n))}async function sr(e=!1){if(!Un)return Promise.resolve(!1);const t=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function cr(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=lr(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=lr(e.id)})),n}function ur(e){return JSON.stringify({id:e.id,rawId:dr(e.rawId),type:e.type,response:{authenticatorData:dr(e.response.authenticatorData),clientDataJSON:dr(e.response.clientDataJSON),signature:dr(e.response.signature),userHandle:e.response.userHandle?dr(e.response.userHandle):void 0}})}function lr(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function dr(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var pr,fr=(pr=e=>({async signUp(t,n){const r=await e.webauthn.signUp.start(t,window.location.origin,n);if(!r.ok)return r;const o=await or(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,o)},async signIn(t){const n=await e.webauthn.signIn.start(t,window.location.origin);if(!n.ok)return n;const r=await ir(n.data.options);return await e.webauthn.signIn.finish(n.data.transactionId,r)},async signUpOrIn(t){var n;const r=await e.webauthn.signUpOrIn.start(t,window.location.origin);if(!r.ok)return r;if(null===(n=r.data)||void 0===n?void 0:n.create){const t=await or(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,t)}{const t=await ir(r.data.options);return await e.webauthn.signIn.finish(r.data.transactionId,t)}},async update(t,n){const r=await e.webauthn.update.start(t,window.location.origin,n);if(!r.ok)return r;const o=await or(r.data.options);return await e.webauthn.update.finish(r.data.transactionId,o)},helpers:{create:or,get:ir,isSupported:sr,conditional:ar}}),(...e)=>{const t=pr(...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}),hr=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await sr(),r=Object.assign(Object.assign({redirectUrl:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=r,e.flow.start(...t)}});const gr=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>n=>{var{fpKey:r,fpLoad:o}=n,i=c(n,["fpKey","fpLoad"]);return r?(Un?o&&Kn(r).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(e(i,{beforeRequest:Mn}))):t(Object.assign({},i))}),(n=>r=>{var{autoRefresh:o}=r,i=c(r,["autoRefresh"]);if(!o)return n(i);const{clearAllTimers:a,setTimer:s}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})(),u=n(e(i,{afterRequest:async(e,n)=>{const{refreshJwt:r,sessionJwt:o}=await t(n);if(401===(null==n?void 0:n.status))Sn("Received 401, canceling all timers"),a();else if(o){const e=((i=(e=>{const t=e.split(".");try{if(3===t.length){const e=JSON.parse(window.atob(t[1]));if(e.exp)return new Date(1e3*e.exp)}}catch(e){}return null})(o))?i.getTime()-(new Date).getTime():0)-2e4;a(),Sn(`Setting refresh timer for ${e}ms`),s((()=>{Sn("Refreshing session"),u.refresh(r)}),e)}var i}}));return jn(u,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return Sn("Clearing all timers"),a(),n}))}),(e=>t=>e(Object.assign(Object.assign({},t),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.2.10"},t.baseHeaders)}))),(r=>o=>{const i=Vn(),a=Vn(),s=r(e(o,{afterRequest:async(e,r)=>{if(401===(null==r?void 0:r.status))i.pub(null),a.pub(null);else{const e=await n(r);e&&a.pub(e);const{sessionJwt:o}=await t(r);o&&i.pub(o)}}})),c=jn(s,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return i.pub(null),a.pub(null),n}));return Object.assign(c,{onSessionTokenChange:i.sub,onUserChange:a.sub})}),(t=>r=>{const i=t(e(r,{afterRequest:async(e,t)=>{var r;const i=await n(t),a=null===(r=null==i?void 0:i.loginIds)||void 0===r?void 0:r[0],s=null==i?void 0:i.name;a&&((e=>{o(Nn,e)})(a),(e=>{o(Ln,e)})(s))}}));let a=jn(i,["flow.start"],Bn);return a=jn(a,["logout","logoutAll"],zn),Object.assign(a,{getLastUserLoginId:Fn,getLastUserDisplayName:Hn})}),(n=>r=>{var{persistTokens:o,sessionTokenViaCookie:i}=r,a=c(r,["persistTokens","sessionTokenViaCookie"]);if(!o||!Un)return o&&console.warn("Storing auth tokens in local storage and cookies are a client side only capabilities and will not be done when running in the server"),n(a);const s=n(e(a,{beforeRequest:nr,afterRequest:async(e,n)=>{401===(null==n?void 0:n.status)?tr():Xn(await t(n),i)}})),u=jn(s,["logout","logoutAll"],rr);return Object.assign(u,{getRefreshToken:Yn,getSessionToken:er})}))(((...e)=>{const t=_n(...e);return Object.assign(Object.assign({},t),{flow:hr(t),webauthn:fr(t)})}));return gr})); | ||
//# sourceMappingURL=index.umd.js.map |
{ | ||
"name": "@descope/web-js-sdk", | ||
"version": "1.2.9", | ||
"version": "1.2.10", | ||
"author": "Descope Team <info@descope.com>", | ||
@@ -52,3 +52,3 @@ "homepage": "https://github.com/descope/web-js-sdk", | ||
"eslint-config-prettier": "8.8.0", | ||
"eslint-config-standard": "17.0.0", | ||
"eslint-config-standard": "17.1.0", | ||
"eslint-import-resolver-typescript": "3.5.5", | ||
@@ -86,3 +86,3 @@ "eslint-plugin-import": "2.27.5", | ||
"js-cookie": "3.0.5", | ||
"@descope/core-js-sdk": "1.3.8" | ||
"@descope/core-js-sdk": "1.3.9" | ||
}, | ||
@@ -89,0 +89,0 @@ "overrides": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
374679
+ Added@descope/core-js-sdk@1.3.9(transitive)
- Removed@descope/core-js-sdk@1.3.8(transitive)
Updated@descope/core-js-sdk@1.3.9