@descope/web-js-sdk 1.7.0 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "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=Math.pow(2,31)-1,h=w&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",v="fp",y=(e=!1)=>{const t=localStorage.getItem(v);if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},m=async e=>{try{if(y())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:h}),i=await a,{requestId:r}=await i.get({linkedId:t}),o=((e,t)=>({vsid:e,vrid:t}))(t,r);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem(v,JSON.stringify(t))})(o)}catch(e){global.FB_DEBUG&&console.error(e)}},S=e=>{const t=y(!0);return t&&e.body&&(e.body.fpData=t),e},O="dls_last_user_login_id",I="dls_last_user_display_name",k=()=>g(O),j=()=>g(I),_=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,a={}]=t,i=k(),r=j();i&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=i,a.lastAuth.name=r);return await e(...t)},D=e=>async(...t)=>{const n=await e(...t);return p(O),p(I),n};function T(){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",x="DSR";const A=(t={},n,a)=>{var{refreshJwt:i,sessionJwt:r}=t,s=e.__rest(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),void 0===a&&(a=""),i&&d(`${a}${x}`,i),r&&(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})}}(U,r,s):d(`${a}${U}`,r))};function J(e=""){return g(`${e}${x}`)||""}function K(e=""){p(`${e}${x}`),p(`${e}${U}`),o.default.remove(U)}const R=e=>t=>async(...n)=>{const a=await t(...n);return K(e),a};async function $(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=L(n.publicKey.challenge),n.publicKey.user.id=L(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=L(e.id)})),n}(e),n=await navigator.credentials.create(t);return a=n,JSON.stringify({id:a.id,rawId:H(a.rawId),type:a.type,response:{attestationObject:H(a.response.attestationObject),clientDataJSON:H(a.response.clientDataJSON)}});var a}async function N(e){const t=C(e);return P(await navigator.credentials.get(t))}async function E(e,t){const n=C(e);n.signal=t.signal,n.mediation="conditional";return P(await navigator.credentials.get(n))}async function q(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 C(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=L(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=L(e.id)})),n}function P(e){return JSON.stringify({id:e.id,rawId:H(e.rawId),type:e.type,response:{authenticatorData:H(e.response.authenticatorData),clientDataJSON:H(e.response.clientDataJSON),signature:H(e.response.signature),userHandle:e.response.userHandle?H(e.response.userHandle):void 0}})}function L(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function H(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var F,W=(F=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 $(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(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 $(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,t)}{const t=await N(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 $(a.data.options);return await e.webauthn.update.finish(a.data.transactionId,i)},helpers:{create:$,get:N,isSupported:q,conditional:E}}),(...e)=>{const t=F(...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}),M=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await q(),a=Object.assign(Object.assign({redirectUrl:window.location.href,location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=a,e.flow.start(...t)}});const V=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 w?(a&&i&&m(a).catch((()=>null)),t(s(r,{beforeRequest:S}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(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))}}})();let u,d;document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&new Date>u&&(f("Expiration time passed, refreshing session"),g.refresh(d))}));const g=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){u=(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),d=n;let e=((i=u)?i.getTime()-(new Date).getTime():0)-2e4;e>b&&(f(`Timeout is too large (${e}ms), setting it to ${b}ms`),e=b),o();const t=new Date(Date.now()+e).toLocaleTimeString("en-US",{hour12:!1});f(`Setting refresh timer for ${t}. (${e}ms)`),c((()=>{f("Refreshing session due to timer"),g.refresh(n)}),e)}var i}}));return t.wrapWith(g,["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.7.0"},t.baseHeaders)}))),(e=>n=>{const a=T(),i=T(),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(O,e)})(i),(e=>{d(I,e)})(r))}}));let i=t.wrapWith(a,["flow.start"],_);return i=t.wrapWith(i,["logout","logoutAll"],D),Object.assign(i,{getLastUserLoginId:k,getLastUserDisplayName:j})}),(n=>a=>{var{persistTokens:i,sessionTokenViaCookie:r,storagePrefix:c}=a,u=e.__rest(a,["persistTokens","sessionTokenViaCookie","storagePrefix"]);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(u);const d=n(s(u,{beforeRequest:(p=c,e=>Object.assign(e,{token:e.token||J(p)})),afterRequest:async(e,t)=>{401===(null==t?void 0:t.status)?K(c):A(await l(t),r,c)}}));var p;const f=t.wrapWith(d,["logout","logoutAll"],R(c));return Object.assign(f,{getRefreshToken:()=>J(c),getSessionToken:()=>function(e=""){return o.default.get(U)||g(`${e}${U}`)||""}(c)})}))(((...e)=>{const t=r.default(...e);return Object.assign(Object.assign({},t),{flow:M(t),webauthn:W(t)})}));exports.REFRESH_TOKEN_KEY=x,exports.SESSION_TOKEN_KEY=U,exports.clearFingerprintData=()=>{localStorage.removeItem(v)},exports.default=V,exports.ensureFingerprintIds=m;
1
+ "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=Math.pow(2,31)-1,h=w&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",v="fp",y=(e=!1)=>{const t=localStorage.getItem(v);if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},m=async e=>{try{if(y())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:h}),i=await a,{requestId:r}=await i.get({linkedId:t}),o=((e,t)=>({vsid:e,vrid:t}))(t,r);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem(v,JSON.stringify(t))})(o)}catch(e){global.FB_DEBUG&&console.error(e)}},S=e=>{const t=y(!0);return t&&e.body&&(e.body.fpData=t),e},O="dls_last_user_login_id",I="dls_last_user_display_name",k=()=>g(O),j=()=>g(I),_=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,a={}]=t,i=k(),r=j();i&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=i,a.lastAuth.name=r);return await e(...t)},D=e=>async(...t)=>{const n=await e(...t);return p(O),p(I),n};function T(){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",x="DSR";const A=(t={},n,a)=>{var{refreshJwt:i,sessionJwt:r}=t,s=e.__rest(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),void 0===a&&(a=""),i&&d(`${a}${x}`,i),r&&(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})}}(U,r,s):d(`${a}${U}`,r))};function J(e=""){return g(`${e}${x}`)||""}function K(e=""){p(`${e}${x}`),p(`${e}${U}`),o.default.remove(U)}const R=e=>t=>async(...n)=>{const a=await t(...n);return K(e),a};async function $(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=L(n.publicKey.challenge),n.publicKey.user.id=L(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=L(e.id)})),n}(e),n=await navigator.credentials.create(t);return a=n,JSON.stringify({id:a.id,rawId:H(a.rawId),type:a.type,response:{attestationObject:H(a.response.attestationObject),clientDataJSON:H(a.response.clientDataJSON)}});var a}async function N(e){const t=C(e);return P(await navigator.credentials.get(t))}async function E(e,t){const n=C(e);n.signal=t.signal,n.mediation="conditional";return P(await navigator.credentials.get(n))}async function q(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 C(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=L(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=L(e.id)})),n}function P(e){return JSON.stringify({id:e.id,rawId:H(e.rawId),type:e.type,response:{authenticatorData:H(e.response.authenticatorData),clientDataJSON:H(e.response.clientDataJSON),signature:H(e.response.signature),userHandle:e.response.userHandle?H(e.response.userHandle):void 0}})}function L(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function H(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var F,W=(F=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 $(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(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 $(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,t)}{const t=await N(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 $(a.data.options);return await e.webauthn.update.finish(a.data.transactionId,i)},helpers:{create:$,get:N,isSupported:q,conditional:E}}),(...e)=>{const t=F(...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}),M=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await q(),a=Object.assign(Object.assign({redirectUrl:window.location.href,location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=a,e.flow.start(...t)}});const V=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 w?(a&&i&&m(a).catch((()=>null)),t(s(r,{beforeRequest:S}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(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))}}})();let u,d;document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&new Date>u&&(f("Expiration time passed, refreshing session"),g.refresh(d))}));const g=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){u=(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),d=n;let e=((i=u)?i.getTime()-(new Date).getTime():0)-2e4;e>b&&(f(`Timeout is too large (${e}ms), setting it to ${b}ms`),e=b),o();const t=new Date(Date.now()+e).toLocaleTimeString("en-US",{hour12:!1});f(`Setting refresh timer for ${t}. (${e}ms)`),c((()=>{f("Refreshing session due to timer"),g.refresh(n)}),e)}var i}}));return t.wrapWith(g,["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.7.2"},t.baseHeaders)}))),(e=>n=>{const a=T(),i=T(),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(O,e)})(i),(e=>{d(I,e)})(r))}}));let i=t.wrapWith(a,["flow.start"],_);return i=t.wrapWith(i,["logout","logoutAll"],D),Object.assign(i,{getLastUserLoginId:k,getLastUserDisplayName:j})}),(n=>a=>{var{persistTokens:i,sessionTokenViaCookie:r,storagePrefix:c}=a,u=e.__rest(a,["persistTokens","sessionTokenViaCookie","storagePrefix"]);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(u);const d=n(s(u,{beforeRequest:(p=c,e=>Object.assign(e,{token:e.token||J(p)})),afterRequest:async(e,t)=>{401===(null==t?void 0:t.status)?K(c):A(await l(t),r,c)}}));var p;const f=t.wrapWith(d,["logout","logoutAll"],R(c));return Object.assign(f,{getRefreshToken:()=>J(c),getSessionToken:()=>function(e=""){return o.default.get(U)||g(`${e}${U}`)||""}(c)})}))(((...e)=>{const t=r.default(...e);return Object.assign(Object.assign({},t),{flow:M(t),webauthn:W(t)})}));exports.REFRESH_TOKEN_KEY=x,exports.SESSION_TOKEN_KEY=U,exports.clearFingerprintData=()=>{localStorage.removeItem(v)},exports.default=V,exports.ensureFingerprintIds=m;
2
2
  //# sourceMappingURL=index.cjs.js.map
package/dist/index.d.ts CHANGED
@@ -174,6 +174,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
174
174
  sms: (loginId: string, user?: {
175
175
  email?: string;
176
176
  name?: string;
177
+ givenName?: string;
178
+ middleName?: string;
179
+ familyName?: string;
177
180
  phone?: string;
178
181
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
179
182
  maskedPhone: string;
@@ -181,6 +184,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
181
184
  whatsapp: (loginId: string, user?: {
182
185
  email?: string;
183
186
  name?: string;
187
+ givenName?: string;
188
+ middleName?: string;
189
+ familyName?: string;
184
190
  phone?: string;
185
191
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
186
192
  maskedPhone: string;
@@ -188,6 +194,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
188
194
  email: (loginId: string, user?: {
189
195
  email?: string;
190
196
  name?: string;
197
+ givenName?: string;
198
+ middleName?: string;
199
+ familyName?: string;
191
200
  phone?: string;
192
201
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
193
202
  maskedEmail: string;
@@ -244,6 +253,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
244
253
  sms: (loginId: string, uri: string, user?: {
245
254
  email?: string;
246
255
  name?: string;
256
+ givenName?: string;
257
+ middleName?: string;
258
+ familyName?: string;
247
259
  phone?: string;
248
260
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
249
261
  maskedPhone: string;
@@ -251,6 +263,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
251
263
  whatsapp: (loginId: string, uri: string, user?: {
252
264
  email?: string;
253
265
  name?: string;
266
+ givenName?: string;
267
+ middleName?: string;
268
+ familyName?: string;
254
269
  phone?: string;
255
270
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
256
271
  maskedPhone: string;
@@ -258,6 +273,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
258
273
  email: (loginId: string, uri: string, user?: {
259
274
  email?: string;
260
275
  name?: string;
276
+ givenName?: string;
277
+ middleName?: string;
278
+ familyName?: string;
261
279
  phone?: string;
262
280
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
263
281
  maskedEmail: string;
@@ -304,6 +322,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
304
322
  signUp: (loginId: string, uri: string, user?: {
305
323
  email?: string;
306
324
  name?: string;
325
+ givenName?: string;
326
+ middleName?: string;
327
+ familyName?: string;
307
328
  phone?: string;
308
329
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
309
330
  waitForSession: (pendingRef: string, config?: {
@@ -383,6 +404,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
383
404
  signUp: (loginId: string, user?: {
384
405
  email?: string;
385
406
  name?: string;
407
+ givenName?: string;
408
+ middleName?: string;
409
+ familyName?: string;
386
410
  phone?: string;
387
411
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>;
388
412
  verify: (loginId: string, code: string, loginOptions?: {
@@ -396,6 +420,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
396
420
  signUp: (loginId: string, password: string, user?: {
397
421
  email?: string;
398
422
  name?: string;
423
+ givenName?: string;
424
+ middleName?: string;
425
+ familyName?: string;
399
426
  phone?: string;
400
427
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
401
428
  signIn: (loginId: string, password: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
@@ -564,6 +591,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
564
591
  sms: (loginId: string, user?: {
565
592
  email?: string;
566
593
  name?: string;
594
+ givenName?: string;
595
+ middleName?: string;
596
+ familyName?: string;
567
597
  phone?: string;
568
598
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
569
599
  maskedPhone: string;
@@ -571,6 +601,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
571
601
  whatsapp: (loginId: string, user?: {
572
602
  email?: string;
573
603
  name?: string;
604
+ givenName?: string;
605
+ middleName?: string;
606
+ familyName?: string;
574
607
  phone?: string;
575
608
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
576
609
  maskedPhone: string;
@@ -578,6 +611,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
578
611
  email: (loginId: string, user?: {
579
612
  email?: string;
580
613
  name?: string;
614
+ givenName?: string;
615
+ middleName?: string;
616
+ familyName?: string;
581
617
  phone?: string;
582
618
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
583
619
  maskedEmail: string;
@@ -634,6 +670,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
634
670
  sms: (loginId: string, uri: string, user?: {
635
671
  email?: string;
636
672
  name?: string;
673
+ givenName?: string;
674
+ middleName?: string;
675
+ familyName?: string;
637
676
  phone?: string;
638
677
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
639
678
  maskedPhone: string;
@@ -641,6 +680,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
641
680
  whatsapp: (loginId: string, uri: string, user?: {
642
681
  email?: string;
643
682
  name?: string;
683
+ givenName?: string;
684
+ middleName?: string;
685
+ familyName?: string;
644
686
  phone?: string;
645
687
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
646
688
  maskedPhone: string;
@@ -648,6 +690,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
648
690
  email: (loginId: string, uri: string, user?: {
649
691
  email?: string;
650
692
  name?: string;
693
+ givenName?: string;
694
+ middleName?: string;
695
+ familyName?: string;
651
696
  phone?: string;
652
697
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
653
698
  maskedEmail: string;
@@ -694,6 +739,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
694
739
  signUp: (loginId: string, uri: string, user?: {
695
740
  email?: string;
696
741
  name?: string;
742
+ givenName?: string;
743
+ middleName?: string;
744
+ familyName?: string;
697
745
  phone?: string;
698
746
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
699
747
  waitForSession: (pendingRef: string, config?: {
@@ -773,6 +821,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
773
821
  signUp: (loginId: string, user?: {
774
822
  email?: string;
775
823
  name?: string;
824
+ givenName?: string;
825
+ middleName?: string;
826
+ familyName?: string;
776
827
  phone?: string;
777
828
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>;
778
829
  verify: (loginId: string, code: string, loginOptions?: {
@@ -786,6 +837,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
786
837
  signUp: (loginId: string, password: string, user?: {
787
838
  email?: string;
788
839
  name?: string;
840
+ givenName?: string;
841
+ middleName?: string;
842
+ familyName?: string;
789
843
  phone?: string;
790
844
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
791
845
  signIn: (loginId: string, password: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
@@ -963,6 +1017,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
963
1017
  sms: (loginId: string, user?: {
964
1018
  email?: string;
965
1019
  name?: string;
1020
+ givenName?: string;
1021
+ middleName?: string;
1022
+ familyName?: string;
966
1023
  phone?: string;
967
1024
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
968
1025
  maskedPhone: string;
@@ -970,6 +1027,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
970
1027
  whatsapp: (loginId: string, user?: {
971
1028
  email?: string;
972
1029
  name?: string;
1030
+ givenName?: string;
1031
+ middleName?: string;
1032
+ familyName?: string;
973
1033
  phone?: string;
974
1034
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
975
1035
  maskedPhone: string;
@@ -977,6 +1037,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
977
1037
  email: (loginId: string, user?: {
978
1038
  email?: string;
979
1039
  name?: string;
1040
+ givenName?: string;
1041
+ middleName?: string;
1042
+ familyName?: string;
980
1043
  phone?: string;
981
1044
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
982
1045
  maskedEmail: string;
@@ -1033,6 +1096,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1033
1096
  sms: (loginId: string, uri: string, user?: {
1034
1097
  email?: string;
1035
1098
  name?: string;
1099
+ givenName?: string;
1100
+ middleName?: string;
1101
+ familyName?: string;
1036
1102
  phone?: string;
1037
1103
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
1038
1104
  maskedPhone: string;
@@ -1040,6 +1106,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1040
1106
  whatsapp: (loginId: string, uri: string, user?: {
1041
1107
  email?: string;
1042
1108
  name?: string;
1109
+ givenName?: string;
1110
+ middleName?: string;
1111
+ familyName?: string;
1043
1112
  phone?: string;
1044
1113
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
1045
1114
  maskedPhone: string;
@@ -1047,6 +1116,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1047
1116
  email: (loginId: string, uri: string, user?: {
1048
1117
  email?: string;
1049
1118
  name?: string;
1119
+ givenName?: string;
1120
+ middleName?: string;
1121
+ familyName?: string;
1050
1122
  phone?: string;
1051
1123
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
1052
1124
  maskedEmail: string;
@@ -1093,6 +1165,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1093
1165
  signUp: (loginId: string, uri: string, user?: {
1094
1166
  email?: string;
1095
1167
  name?: string;
1168
+ givenName?: string;
1169
+ middleName?: string;
1170
+ familyName?: string;
1096
1171
  phone?: string;
1097
1172
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
1098
1173
  waitForSession: (pendingRef: string, config?: {
@@ -1172,6 +1247,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1172
1247
  signUp: (loginId: string, user?: {
1173
1248
  email?: string;
1174
1249
  name?: string;
1250
+ givenName?: string;
1251
+ middleName?: string;
1252
+ familyName?: string;
1175
1253
  phone?: string;
1176
1254
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>;
1177
1255
  verify: (loginId: string, code: string, loginOptions?: {
@@ -1185,6 +1263,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1185
1263
  signUp: (loginId: string, password: string, user?: {
1186
1264
  email?: string;
1187
1265
  name?: string;
1266
+ givenName?: string;
1267
+ middleName?: string;
1268
+ familyName?: string;
1188
1269
  phone?: string;
1189
1270
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
1190
1271
  signIn: (loginId: string, password: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
@@ -1353,6 +1434,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1353
1434
  sms: (loginId: string, user?: {
1354
1435
  email?: string;
1355
1436
  name?: string;
1437
+ givenName?: string;
1438
+ middleName?: string;
1439
+ familyName?: string;
1356
1440
  phone?: string;
1357
1441
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
1358
1442
  maskedPhone: string;
@@ -1360,6 +1444,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1360
1444
  whatsapp: (loginId: string, user?: {
1361
1445
  email?: string;
1362
1446
  name?: string;
1447
+ givenName?: string;
1448
+ middleName?: string;
1449
+ familyName?: string;
1363
1450
  phone?: string;
1364
1451
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
1365
1452
  maskedPhone: string;
@@ -1367,6 +1454,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1367
1454
  email: (loginId: string, user?: {
1368
1455
  email?: string;
1369
1456
  name?: string;
1457
+ givenName?: string;
1458
+ middleName?: string;
1459
+ familyName?: string;
1370
1460
  phone?: string;
1371
1461
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
1372
1462
  maskedEmail: string;
@@ -1423,6 +1513,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1423
1513
  sms: (loginId: string, uri: string, user?: {
1424
1514
  email?: string;
1425
1515
  name?: string;
1516
+ givenName?: string;
1517
+ middleName?: string;
1518
+ familyName?: string;
1426
1519
  phone?: string;
1427
1520
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
1428
1521
  maskedPhone: string;
@@ -1430,6 +1523,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1430
1523
  whatsapp: (loginId: string, uri: string, user?: {
1431
1524
  email?: string;
1432
1525
  name?: string;
1526
+ givenName?: string;
1527
+ middleName?: string;
1528
+ familyName?: string;
1433
1529
  phone?: string;
1434
1530
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
1435
1531
  maskedPhone: string;
@@ -1437,6 +1533,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1437
1533
  email: (loginId: string, uri: string, user?: {
1438
1534
  email?: string;
1439
1535
  name?: string;
1536
+ givenName?: string;
1537
+ middleName?: string;
1538
+ familyName?: string;
1440
1539
  phone?: string;
1441
1540
  }) => Promise<_descope_core_js_sdk.SdkResponse<{
1442
1541
  maskedEmail: string;
@@ -1483,6 +1582,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1483
1582
  signUp: (loginId: string, uri: string, user?: {
1484
1583
  email?: string;
1485
1584
  name?: string;
1585
+ givenName?: string;
1586
+ middleName?: string;
1587
+ familyName?: string;
1486
1588
  phone?: string;
1487
1589
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
1488
1590
  waitForSession: (pendingRef: string, config?: {
@@ -1562,6 +1664,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1562
1664
  signUp: (loginId: string, user?: {
1563
1665
  email?: string;
1564
1666
  name?: string;
1667
+ givenName?: string;
1668
+ middleName?: string;
1669
+ familyName?: string;
1565
1670
  phone?: string;
1566
1671
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>;
1567
1672
  verify: (loginId: string, code: string, loginOptions?: {
@@ -1575,6 +1680,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
1575
1680
  signUp: (loginId: string, password: string, user?: {
1576
1681
  email?: string;
1577
1682
  name?: string;
1683
+ givenName?: string;
1684
+ middleName?: string;
1685
+ familyName?: string;
1578
1686
  phone?: string;
1579
1687
  }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
1580
1688
  signIn: (loginId: string, password: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- 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=Math.pow(2,31)-1,w=p&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",b="fp",h=(e=!1)=>{const t=localStorage.getItem(b);if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},v=async e=>{try{if(h())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:w}),i=await n,{requestId:o}=await i.get({linkedId:t}),r=((e,t)=>({vsid:e,vrid:t}))(t,o);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem(b,JSON.stringify(t))})(r)}catch(e){global.FB_DEBUG&&console.error(e)}},y=()=>{localStorage.removeItem(b)},m=e=>{const t=h(!0);return t&&e.body&&(e.body.fpData=t),e},S="dls_last_user_login_id",O="dls_last_user_display_name",I=()=>u(S),k=()=>u(O),j=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,a={}]=t,i=I(),o=k();i&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=i,a.lastAuth.name=o);return await e(...t)},D=e=>async(...t)=>{const n=await e(...t);return d(S),d(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 T="DS",A="DSR";const J=(t={},n,a)=>{var{refreshJwt:o,sessionJwt:r}=t,s=e(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),void 0===a&&(a=""),o&&c(`${a}${A}`,o),r&&(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})}}(T,r,s):c(`${a}${T}`,r))};function $(e=""){return u(`${e}${A}`)||""}function K(e=""){d(`${e}${A}`),d(`${e}${T}`),i.remove(T)}const R=e=>t=>async(...n)=>{const a=await t(...n);return K(e),a};async function x(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=E(n.publicKey.challenge),n.publicKey.user.id=E(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=E(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 C(e){const t=P(e);return q(await navigator.credentials.get(t))}async function N(e,t){const n=P(e);n.signal=t.signal,n.mediation="conditional";return q(await navigator.credentials.get(n))}async function _(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=E(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=E(e.id)})),n}function q(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 E(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 H,V=(H=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 x(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 C(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 x(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,t)}{const t=await C(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 x(a.data.options);return await e.webauthn.update.finish(a.data.transactionId,i)},helpers:{create:x,get:C,isSupported:_,conditional:N}}),(...e)=>{const t=H(...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}),M=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await _(),a=Object.assign(Object.assign({redirectUrl:window.location.href,location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=a,e.flow.start(...t)}});const B=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 p?(a&&i&&v(a).catch((()=>null)),t(o(r,{beforeRequest:m}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(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))}}})();let u,d;document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&new Date>u&&(g("Expiration time passed, refreshing session"),p.refresh(d))}));const p=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){u=(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),d=n;let e=((i=u)?i.getTime()-(new Date).getTime():0)-2e4;e>f&&(g(`Timeout is too large (${e}ms), setting it to ${f}ms`),e=f),l();const t=new Date(Date.now()+e).toLocaleTimeString("en-US",{hour12:!1});g(`Setting refresh timer for ${t}. (${e}ms)`),c((()=>{g("Refreshing session due to timer"),p.refresh(n)}),e)}var i}}));return n(p,["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.7.0"},t.baseHeaders)}))),(e=>t=>{const a=U(),i=U(),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(S,e)})(i),(e=>{c(O,e)})(o))}}));let i=n(a,["flow.start"],j);return i=n(i,["logout","logoutAll"],D),Object.assign(i,{getLastUserLoginId:I,getLastUserDisplayName:k})}),(t=>a=>{var{persistTokens:s,sessionTokenViaCookie:l,storagePrefix:c}=a,d=e(a,["persistTokens","sessionTokenViaCookie","storagePrefix"]);if(!s||!p)return s&&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(d);const g=t(o(d,{beforeRequest:(f=c,e=>Object.assign(e,{token:e.token||$(f)})),afterRequest:async(e,t)=>{401===(null==t?void 0:t.status)?K(c):J(await r(t),l,c)}}));var f;const w=n(g,["logout","logoutAll"],R(c));return Object.assign(w,{getRefreshToken:()=>$(c),getSessionToken:()=>function(e=""){return i.get(T)||u(`${e}${T}`)||""}(c)})}))(((...e)=>{const n=t(...e);return Object.assign(Object.assign({},n),{flow:M(n),webauthn:V(n)})}));export{A as REFRESH_TOKEN_KEY,T as SESSION_TOKEN_KEY,y as clearFingerprintData,B as default,v as ensureFingerprintIds};
1
+ 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=Math.pow(2,31)-1,w=p&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",b="fp",h=(e=!1)=>{const t=localStorage.getItem(b);if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},v=async e=>{try{if(h())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:w}),i=await n,{requestId:o}=await i.get({linkedId:t}),r=((e,t)=>({vsid:e,vrid:t}))(t,o);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem(b,JSON.stringify(t))})(r)}catch(e){global.FB_DEBUG&&console.error(e)}},y=()=>{localStorage.removeItem(b)},m=e=>{const t=h(!0);return t&&e.body&&(e.body.fpData=t),e},S="dls_last_user_login_id",O="dls_last_user_display_name",I=()=>u(S),k=()=>u(O),j=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,a={}]=t,i=I(),o=k();i&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=i,a.lastAuth.name=o);return await e(...t)},D=e=>async(...t)=>{const n=await e(...t);return d(S),d(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 T="DS",A="DSR";const J=(t={},n,a)=>{var{refreshJwt:o,sessionJwt:r}=t,s=e(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),void 0===a&&(a=""),o&&c(`${a}${A}`,o),r&&(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})}}(T,r,s):c(`${a}${T}`,r))};function $(e=""){return u(`${e}${A}`)||""}function K(e=""){d(`${e}${A}`),d(`${e}${T}`),i.remove(T)}const R=e=>t=>async(...n)=>{const a=await t(...n);return K(e),a};async function x(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=E(n.publicKey.challenge),n.publicKey.user.id=E(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=E(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 C(e){const t=P(e);return q(await navigator.credentials.get(t))}async function N(e,t){const n=P(e);n.signal=t.signal,n.mediation="conditional";return q(await navigator.credentials.get(n))}async function _(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=E(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=E(e.id)})),n}function q(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 E(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 H,V=(H=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 x(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 C(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 x(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,t)}{const t=await C(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 x(a.data.options);return await e.webauthn.update.finish(a.data.transactionId,i)},helpers:{create:x,get:C,isSupported:_,conditional:N}}),(...e)=>{const t=H(...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}),M=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await _(),a=Object.assign(Object.assign({redirectUrl:window.location.href,location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=a,e.flow.start(...t)}});const B=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 p?(a&&i&&v(a).catch((()=>null)),t(o(r,{beforeRequest:m}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(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))}}})();let u,d;document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&new Date>u&&(g("Expiration time passed, refreshing session"),p.refresh(d))}));const p=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){u=(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),d=n;let e=((i=u)?i.getTime()-(new Date).getTime():0)-2e4;e>f&&(g(`Timeout is too large (${e}ms), setting it to ${f}ms`),e=f),l();const t=new Date(Date.now()+e).toLocaleTimeString("en-US",{hour12:!1});g(`Setting refresh timer for ${t}. (${e}ms)`),c((()=>{g("Refreshing session due to timer"),p.refresh(n)}),e)}var i}}));return n(p,["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.7.2"},t.baseHeaders)}))),(e=>t=>{const a=U(),i=U(),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(S,e)})(i),(e=>{c(O,e)})(o))}}));let i=n(a,["flow.start"],j);return i=n(i,["logout","logoutAll"],D),Object.assign(i,{getLastUserLoginId:I,getLastUserDisplayName:k})}),(t=>a=>{var{persistTokens:s,sessionTokenViaCookie:l,storagePrefix:c}=a,d=e(a,["persistTokens","sessionTokenViaCookie","storagePrefix"]);if(!s||!p)return s&&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(d);const g=t(o(d,{beforeRequest:(f=c,e=>Object.assign(e,{token:e.token||$(f)})),afterRequest:async(e,t)=>{401===(null==t?void 0:t.status)?K(c):J(await r(t),l,c)}}));var f;const w=n(g,["logout","logoutAll"],R(c));return Object.assign(w,{getRefreshToken:()=>$(c),getSessionToken:()=>function(e=""){return i.get(T)||u(`${e}${T}`)||""}(c)})}))(((...e)=>{const n=t(...e);return Object.assign(Object.assign({},n),{flow:M(n),webauthn:V(n)})}));export{A as REFRESH_TOKEN_KEY,T as SESSION_TOKEN_KEY,y as clearFingerprintData,B as default,v as ensureFingerprintIds};
2
2
  //# sourceMappingURL=index.esm.js.map
package/dist/index.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Descope=t()}(this,(function(){"use strict";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}"function"==typeof SuppressedError&&SuppressedError,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 g(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var h="__lodash_hash_undefined__",v=1/0,y="[object Function]",b="[object GeneratorFunction]",w="[object Symbol]",m=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,k=/^\w*$/,I=/^\./,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,E=Array.prototype,x=Function.prototype,T=Object.prototype,A=P["__core-js_shared__"],C=(R=/[^.]+$/.exec(A&&A.keys&&A.keys.IE_PROTO||""))?"Symbol(src)_1."+R:"",$=x.toString,q=T.hasOwnProperty,D=T.toString,J=RegExp("^"+$.call(q).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),K=P.Symbol,N=E.splice,M=W(P,"Map"),L=W(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 k.test(e)||!m.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:ne(n=t)?n:X(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 Y(e){if(!re(e)||(t=e,C&&C in t))return!1;var t,n=function(e){var t=re(e)?D.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 $.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function Q(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 W(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Y(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===h?void 0:n}return q.call(t,e)?t[e]:void 0},B.prototype.has=function(e){var t=this.__data__;return L?void 0!==t[e]:q.call(t,e)},B.prototype.set=function(e,t){return this.__data__[e]=L&&void 0===t?h: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():N.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(M||z),string:new B}},V.prototype.delete=function(e){return Q(this,e).delete(e)},V.prototype.get=function(e){return Q(this,e).get(e)},V.prototype.has=function(e){return Q(this,e).has(e)},V.prototype.set=function(e,t){return Q(this,e).set(e,t),this};var X=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 I.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)&&D.call(e)==w}var ie=g((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",ge="/v1/auth/magiclink/signup",he={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",ke={email:"/v1/auth/enchantedlink/update/email"},Ie="/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",Ee={start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},xe={start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},Te={start:"/v1/auth/webauthn/signup-in/start"},Ae={start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"},Ce="/v1/auth/password/signup",$e="/v1/auth/password/signin",qe="/v1/auth/password/reset",De="/v1/auth/password/update",Je="/v1/auth/password/replace",Ke="/v1/auth/password/policy",Ne="/v1/auth/refresh",Me="/v1/auth/tenant/select",Le="/v1/auth/logout",Fe="/v1/auth/logoutall",He="/v1/auth/me",Be="/v1/flow/start",ze="/v1/flow/next";const Ve=6e5,Ge=()=>{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 Ze;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(Ze||(Ze={}));const Ye=(...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=>Ge().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 Ge().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,g=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:Ye(We(t,f),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"2.1.0"},(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==g?void 0:g.clone()),g};return{get:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Ze.get,token:r}),post:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Ze.post,token:o}),put:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Ze.put,token:o}),delete:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Ze.delete,token:r}),hooks:o}};var et=429;function tt(e,t,n){var r;let o=nt(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 nt(e){if("string"!=typeof e||!e)throw new Error("Invalid token provided");return p(e)}function rt(e){const{exp:t}=nt(e);return(new Date).getTime()/1e3>t}function ot(e){let t=nt(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function it(e,t){return tt(e,t,"permissions")}function at(e,t){return tt(e,t,"roles")}const st=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function ct(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===et&&Object.assign(o.error,{retryAfter:Number.parseInt(null===(n=r.headers)||void 0===n?void 0:n.get("retry-after"))||0})),o}const ut=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),lt=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),dt=e=>t=>e.test(t),pt=dt(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),ft=dt(/^\+[1-9]{1}[0-9]{3,14}$/),gt=ut(pt,'"{val}" is not a valid email'),ht=ut(ft,'"{val}" is not a valid phone number'),vt=ut((1,e=>e.length>=1),"Minimum length is 1");const yt=ut((e=>"string"==typeof e),"Input is not a string"),bt=ut((e=>void 0===e),"Input is defined"),wt=(mt=[yt(),bt()],"Input is not a string or undefined",(e="Input is not a string or undefined")=>t=>{const n=mt.filter((e=>e(t)));return!(n.length<mt.length)&&(e?e.replace("{val}",t):n.join(" OR "))});var mt;const kt=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>lt(...e).validate(n[t]))),t(...n)),It=e=>[yt(`"${e}" must be a string`),vt(`"${e}" must not be empty`)],Ot=e=>[yt(`"${e}" must be a string`),gt()],jt=e=>[yt(`"${e}" must be a string`),ht()],_t=kt(It("accessKey")),St=e=>({exchange:_t((t=>ct(e.post(ae,{},{token:t}))))});var Ut,Pt;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(Ut||(Ut={})),function(e){e.email="email"}(Pt||(Pt={}));const Rt=Object.assign(Object.assign({},Ut),Pt);var Et;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(Et||(Et={}));const xt=It("loginId"),Tt=kt(It("token")),At=kt(xt),Ct=kt(It("pendingRef")),$t=kt(xt,Ot("email")),qt=e=>({verify:Tt((t=>ct(e.post(ye,{token:t})))),signIn:At(((t,n,r,o)=>ct(e.post(st(be,Rt.email),{loginId:t,URI:n,loginOptions:r},{token:o})))),signUpOrIn:At(((t,n)=>ct(e.post(st(Ie,Rt.email),{loginId:t,URI:n})))),signUp:At(((t,n,r)=>ct(e.post(st(we,Rt.email),{loginId:t,URI:n,user:r})))),waitForSession:Ct(((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||Ve,Ve)}))(n);let a;const s=setInterval((async()=>{const n=await e.post(me,{pendingRef:t});n.ok&&(clearInterval(s),a&&clearTimeout(a),r(ct(Promise.resolve(n))))}),o);a=setTimeout((()=>{r({error:{errorDescription:`Session polling timeout exceeded: ${i}ms`,errorCode:"0"},ok:!1}),clearInterval(s)}),i)})))),update:{email:$t(((t,n,r,o,i)=>ct(e.post(ke.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o}))))}}),Dt=kt(It("flowId")),Jt=kt(It("executionId"),It("stepId"),It("interactionId")),Kt=e=>({start:Dt(((t,n,r,o,i,a,s)=>ct(e.post(Be,{flowId:t,options:n,conditionInteractionId:r,interactionId:o,version:i,componentsVersion:a,input:s})))),next:Jt(((t,n,r,o,i,a)=>ct(e.post(ze,{executionId:t,stepId:n,interactionId:r,version:o,componentsVersion:i,input:a}))))}),Nt=It("loginId"),Mt=kt(It("token")),Lt=kt(Nt),Ft=kt(Nt,jt("phone")),Ht=kt(Nt,Ot("email")),Bt=e=>({verify:Mt((t=>ct(e.post(pe,{token:t})))),signIn:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Lt(((t,r,o,i)=>ct(e.post(st(fe,n),{loginId:t,URI:r,loginOptions:o},{token:i}))))})),{}),signUp:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Lt(((t,r,o)=>ct(e.post(st(ge,n),{loginId:t,URI:r,user:o}))))})),{}),signUpOrIn:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Lt(((t,r)=>ct(e.post(st(ve,n),{loginId:t,URI:r}))))})),{}),update:{email:Ht(((t,n,r,o,i)=>ct(e.post(he.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o})))),phone:Object.keys(Ut).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ft(((t,r,o,i,a)=>ct(e.post(st(he.phone,n),Object.assign({loginId:t,phone:r,URI:o},a),{token:i}))))})),{})}});var zt;!function(e){e.facebook="facebook",e.github="github",e.google="google",e.microsoft="microsoft",e.gitlab="gitlab",e.apple="apple",e.discord="discord",e.linkedin="linkedin",e.slack="slack"}(zt||(zt={}));const Vt=kt(It("code")),Gt=e=>({start:Object.assign(((t,n,r,o)=>ct(e.post(Oe,r||{},{queryParams:Object.assign({provider:t},n&&{redirectURL:n}),token:o}))),Object.keys(zt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,r,o)=>ct(e.post(Oe,r||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:o}))})),{})),exchange:Vt((t=>ct(e.post(je,{code:t}))))}),Zt=It("loginId"),Yt=kt(Zt,It("code")),Qt=kt(Zt),Wt=kt(Zt,jt("phone")),Xt=kt(Zt,Ot("email")),en=e=>({verify:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Yt(((t,r)=>ct(e.post(st(se,n),{code:r,loginId:t}))))})),{}),signIn:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Qt(((t,r,o)=>ct(e.post(st(ce,n),{loginId:t,loginOptions:r},{token:o}))))})),{}),signUp:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Qt(((t,r)=>ct(e.post(st(ue,n),{loginId:t,user:r}))))})),{}),signUpOrIn:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Qt((t=>ct(e.post(st(de,n),{loginId:t}))))})),{}),update:{email:Xt(((t,n,r,o)=>ct(e.post(le.email,Object.assign({loginId:t,email:n},o),{token:r})))),phone:Object.keys(Ut).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Wt(((t,r,o,i)=>ct(e.post(st(le.phone,n),Object.assign({loginId:t,phone:r},i),{token:o}))))})),{})}}),tn=kt(It("tenant")),nn=kt(It("code")),rn=e=>({start:tn(((t,n,r,o)=>ct(e.post(_e,r||{},{queryParams:{tenant:t,redirectURL:n},token:o})))),exchange:nn((t=>ct(e.post(Se,{code:t}))))}),on=It("loginId"),an=kt(on,It("code")),sn=kt(on),cn=kt(on),un=e=>({signUp:sn(((t,n)=>ct(e.post(Pe,{loginId:t,user:n})))),verify:an(((t,n,r,o)=>ct(e.post(Ue,{loginId:t,code:n,loginOptions:r},{token:o})))),update:cn(((t,n)=>ct(e.post(Re,{loginId:t},{token:n}))))}),ln=It("loginId"),dn=It("newPassword"),pn=kt(ln,It("password")),fn=kt(ln),gn=kt(ln,dn),hn=kt(ln,It("oldPassword"),dn),vn=e=>({signUp:pn(((t,n,r)=>ct(e.post(Ce,{loginId:t,password:n,user:r})))),signIn:pn(((t,n)=>ct(e.post($e,{loginId:t,password:n})))),sendReset:fn(((t,n)=>ct(e.post(qe,{loginId:t,redirectUrl:n})))),update:gn(((t,n,r)=>ct(e.post(De,{loginId:t,newPassword:n},{token:r})))),replace:hn(((t,n,r)=>ct(e.post(Je,{loginId:t,oldPassword:n,newPassword:r})))),policy:()=>ct(e.get(Ke))}),yn=[yt('"loginId" must be a string')],bn=It("loginId"),wn=It("origin"),mn=kt(bn,wn,It("name")),kn=kt(bn,wn),In=kt(yn,wn),On=kt(bn,wn,It("token")),jn=kt(It("transactionId"),It("response")),_n=e=>({signUp:{start:mn(((t,n,r)=>ct(e.post(Ee.start,{user:{loginId:t,name:r},origin:n})))),finish:jn(((t,n)=>ct(e.post(Ee.finish,{transactionId:t,response:n}))))},signIn:{start:In(((t,n,r,o)=>ct(e.post(xe.start,{loginId:t,origin:n,loginOptions:r},{token:o})))),finish:jn(((t,n)=>ct(e.post(xe.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:kn(((t,n)=>ct(e.post(Te.start,{loginId:t,origin:n}))))},update:{start:On(((t,n,r)=>ct(e.post(Ae.start,{loginId:t,origin:n},{token:r})))),finish:jn(((t,n)=>ct(e.post(Ae.finish,{transactionId:t,response:n}))))}}),Sn=kt(It("token")),Un=kt([wt('"token" must be string or undefined')]);var Pn,Rn=kt([("projectId",Pn=It("projectId"),ut(((e,t)=>n=>lt(...t).validate(ie(n,e)))("projectId",Pn))())])((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:St(s),otp:en(s),magicLink:Bt(s),enchantedLink:qt(s),oauth:Gt(s),saml:rn(s),totp:un(s),webauthn:_n(s),password:vn(s),flow:Kt(s),refresh:Un((e=>ct(s.post(Ne,{},{token:e})))),selectTenant:kt([yt("tenantId")],[wt('"token" must be string or undefined')])(((e,t)=>ct(s.post(Me,{tenant:e},{token:t})))),logout:Un((e=>ct(s.post(Le,{},{token:e})))),logoutAll:Un((e=>ct(s.post(Fe,{},{token:e})))),me:Un((e=>ct(s.get(He,{token:e})))),isJwtExpired:Sn(rt),getTenants:Sn(ot),getJwtPermissions:Sn(it),getJwtRoles:Sn(at),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 En=(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 xn=Object.assign(Rn,{DeliveryMethods:Rt});const Tn=(...e)=>{console.debug(...e)},An="undefined"!=typeof window,Cn=Math.pow(2,31)-1,$n=An&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com";var qn="Blocked by CSP",Dn="9319";function Jn(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===qn||t===Dn}(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(t){return n.push({url:e,startedAt:r,finishedAt:new Date,error:t})},i=t(e);return i.then((function(){return o()}),o),i})).then((function(e){return[e,{attempts:n}]}))}var Kn="Failed to load the JS script of the agent";function Nn(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.5"):e}))}(String(e),t)}))}(a,o);return Jn(e,Mn).catch(Fn)})).then((function(e){var t=e[0],n=e[1];return t.load(s(s({},i),{ldi:n}))}))}function Mn(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(qn)}();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(Kn))},r.async=!0,r.src=e,i.appendChild(r)}))}(e)})).then(Ln)}function Ln(){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(Dn);return n}function Fn(e){throw e instanceof Error&&e.message===Dn?new Error(Kn):e}const Hn=(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},Bn=async e=>{try{if(Hn())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),n=Nn({apiKey:e,endpoint:$n}),r=await n,{requestId:o}=await r.get({linkedId:t}),i=((e,t)=>({vsid:e,vrid:t}))(t,o);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(i)}catch(e){global.FB_DEBUG&&console.error(e)}},zn=e=>{const t=Hn(!0);return t&&e.body&&(e.body.fpData=t),e},Vn="dls_last_user_login_id",Gn="dls_last_user_display_name",Zn=()=>i(Vn),Yn=()=>i(Gn),Qn=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,r={}]=t,o=Zn(),i=Yn();o&&(null!==(n=r.lastAuth)&&void 0!==n||(r.lastAuth={}),r.lastAuth.loginId=o,r.lastAuth.name=i);return await e(...t)},Wn=e=>async(...t)=>{const n=await e(...t);return a(Vn),a(Gn),n};function Xn(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}
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}"function"==typeof SuppressedError&&SuppressedError,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 g(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var h="__lodash_hash_undefined__",v=1/0,y="[object Function]",b="[object GeneratorFunction]",w="[object Symbol]",m=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,k=/^\w*$/,I=/^\./,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,E=Array.prototype,x=Function.prototype,T=Object.prototype,A=P["__core-js_shared__"],C=(R=/[^.]+$/.exec(A&&A.keys&&A.keys.IE_PROTO||""))?"Symbol(src)_1."+R:"",$=x.toString,q=T.hasOwnProperty,D=T.toString,J=RegExp("^"+$.call(q).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),K=P.Symbol,N=E.splice,M=W(P,"Map"),L=W(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 k.test(e)||!m.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:ne(n=t)?n:X(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 Y(e){if(!re(e)||(t=e,C&&C in t))return!1;var t,n=function(e){var t=re(e)?D.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 $.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function Q(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 W(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Y(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===h?void 0:n}return q.call(t,e)?t[e]:void 0},B.prototype.has=function(e){var t=this.__data__;return L?void 0!==t[e]:q.call(t,e)},B.prototype.set=function(e,t){return this.__data__[e]=L&&void 0===t?h: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():N.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(M||z),string:new B}},V.prototype.delete=function(e){return Q(this,e).delete(e)},V.prototype.get=function(e){return Q(this,e).get(e)},V.prototype.has=function(e){return Q(this,e).has(e)},V.prototype.set=function(e,t){return Q(this,e).set(e,t),this};var X=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 I.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)&&D.call(e)==w}var ie=g((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",ge="/v1/auth/magiclink/signup",he={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",ke={email:"/v1/auth/enchantedlink/update/email"},Ie="/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",Ee={start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},xe={start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},Te={start:"/v1/auth/webauthn/signup-in/start"},Ae={start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"},Ce="/v1/auth/password/signup",$e="/v1/auth/password/signin",qe="/v1/auth/password/reset",De="/v1/auth/password/update",Je="/v1/auth/password/replace",Ke="/v1/auth/password/policy",Ne="/v1/auth/refresh",Me="/v1/auth/tenant/select",Le="/v1/auth/logout",Fe="/v1/auth/logoutall",He="/v1/auth/me",Be="/v1/flow/start",ze="/v1/flow/next";const Ve=6e5,Ge=()=>{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 Ze;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(Ze||(Ze={}));const Ye=(...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=>Ge().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 Ge().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,g=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:Ye(We(t,f),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"2.2.0"},(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==g?void 0:g.clone()),g};return{get:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Ze.get,token:r}),post:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Ze.post,token:o}),put:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Ze.put,token:o}),delete:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Ze.delete,token:r}),hooks:o}};var et=429;function tt(e,t,n){var r;let o=nt(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 nt(e){if("string"!=typeof e||!e)throw new Error("Invalid token provided");return p(e)}function rt(e){const{exp:t}=nt(e);return(new Date).getTime()/1e3>t}function ot(e){let t=nt(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function it(e,t){return tt(e,t,"permissions")}function at(e,t){return tt(e,t,"roles")}const st=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function ct(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===et&&Object.assign(o.error,{retryAfter:Number.parseInt(null===(n=r.headers)||void 0===n?void 0:n.get("retry-after"))||0})),o}const ut=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),lt=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),dt=e=>t=>e.test(t),pt=dt(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),ft=dt(/^\+[1-9]{1}[0-9]{3,14}$/),gt=ut(pt,'"{val}" is not a valid email'),ht=ut(ft,'"{val}" is not a valid phone number'),vt=ut((1,e=>e.length>=1),"Minimum length is 1");const yt=ut((e=>"string"==typeof e),"Input is not a string"),bt=ut((e=>void 0===e),"Input is defined"),wt=(mt=[yt(),bt()],"Input is not a string or undefined",(e="Input is not a string or undefined")=>t=>{const n=mt.filter((e=>e(t)));return!(n.length<mt.length)&&(e?e.replace("{val}",t):n.join(" OR "))});var mt;const kt=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>lt(...e).validate(n[t]))),t(...n)),It=e=>[yt(`"${e}" must be a string`),vt(`"${e}" must not be empty`)],Ot=e=>[yt(`"${e}" must be a string`),gt()],jt=e=>[yt(`"${e}" must be a string`),ht()],_t=kt(It("accessKey")),St=e=>({exchange:_t((t=>ct(e.post(ae,{},{token:t}))))});var Ut,Pt;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(Ut||(Ut={})),function(e){e.email="email"}(Pt||(Pt={}));const Rt=Object.assign(Object.assign({},Ut),Pt);var Et;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(Et||(Et={}));const xt=It("loginId"),Tt=kt(It("token")),At=kt(xt),Ct=kt(It("pendingRef")),$t=kt(xt,Ot("email")),qt=e=>({verify:Tt((t=>ct(e.post(ye,{token:t})))),signIn:At(((t,n,r,o)=>ct(e.post(st(be,Rt.email),{loginId:t,URI:n,loginOptions:r},{token:o})))),signUpOrIn:At(((t,n)=>ct(e.post(st(Ie,Rt.email),{loginId:t,URI:n})))),signUp:At(((t,n,r)=>ct(e.post(st(we,Rt.email),{loginId:t,URI:n,user:r})))),waitForSession:Ct(((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||Ve,Ve)}))(n);let a;const s=setInterval((async()=>{const n=await e.post(me,{pendingRef:t});n.ok&&(clearInterval(s),a&&clearTimeout(a),r(ct(Promise.resolve(n))))}),o);a=setTimeout((()=>{r({error:{errorDescription:`Session polling timeout exceeded: ${i}ms`,errorCode:"0"},ok:!1}),clearInterval(s)}),i)})))),update:{email:$t(((t,n,r,o,i)=>ct(e.post(ke.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o}))))}}),Dt=kt(It("flowId")),Jt=kt(It("executionId"),It("stepId"),It("interactionId")),Kt=e=>({start:Dt(((t,n,r,o,i,a,s)=>ct(e.post(Be,{flowId:t,options:n,conditionInteractionId:r,interactionId:o,version:i,componentsVersion:a,input:s})))),next:Jt(((t,n,r,o,i,a)=>ct(e.post(ze,{executionId:t,stepId:n,interactionId:r,version:o,componentsVersion:i,input:a}))))}),Nt=It("loginId"),Mt=kt(It("token")),Lt=kt(Nt),Ft=kt(Nt,jt("phone")),Ht=kt(Nt,Ot("email")),Bt=e=>({verify:Mt((t=>ct(e.post(pe,{token:t})))),signIn:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Lt(((t,r,o,i)=>ct(e.post(st(fe,n),{loginId:t,URI:r,loginOptions:o},{token:i}))))})),{}),signUp:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Lt(((t,r,o)=>ct(e.post(st(ge,n),{loginId:t,URI:r,user:o}))))})),{}),signUpOrIn:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Lt(((t,r)=>ct(e.post(st(ve,n),{loginId:t,URI:r}))))})),{}),update:{email:Ht(((t,n,r,o,i)=>ct(e.post(he.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o})))),phone:Object.keys(Ut).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ft(((t,r,o,i,a)=>ct(e.post(st(he.phone,n),Object.assign({loginId:t,phone:r,URI:o},a),{token:i}))))})),{})}});var zt;!function(e){e.facebook="facebook",e.github="github",e.google="google",e.microsoft="microsoft",e.gitlab="gitlab",e.apple="apple",e.discord="discord",e.linkedin="linkedin",e.slack="slack"}(zt||(zt={}));const Vt=kt(It("code")),Gt=e=>({start:Object.assign(((t,n,r,o)=>ct(e.post(Oe,r||{},{queryParams:Object.assign({provider:t},n&&{redirectURL:n}),token:o}))),Object.keys(zt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,r,o)=>ct(e.post(Oe,r||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:o}))})),{})),exchange:Vt((t=>ct(e.post(je,{code:t}))))}),Zt=It("loginId"),Yt=kt(Zt,It("code")),Qt=kt(Zt),Wt=kt(Zt,jt("phone")),Xt=kt(Zt,Ot("email")),en=e=>({verify:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Yt(((t,r)=>ct(e.post(st(se,n),{code:r,loginId:t}))))})),{}),signIn:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Qt(((t,r,o)=>ct(e.post(st(ce,n),{loginId:t,loginOptions:r},{token:o}))))})),{}),signUp:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Qt(((t,r)=>ct(e.post(st(ue,n),{loginId:t,user:r}))))})),{}),signUpOrIn:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Qt((t=>ct(e.post(st(de,n),{loginId:t}))))})),{}),update:{email:Xt(((t,n,r,o)=>ct(e.post(le.email,Object.assign({loginId:t,email:n},o),{token:r})))),phone:Object.keys(Ut).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Wt(((t,r,o,i)=>ct(e.post(st(le.phone,n),Object.assign({loginId:t,phone:r},i),{token:o}))))})),{})}}),tn=kt(It("tenant")),nn=kt(It("code")),rn=e=>({start:tn(((t,n,r,o)=>ct(e.post(_e,r||{},{queryParams:{tenant:t,redirectURL:n},token:o})))),exchange:nn((t=>ct(e.post(Se,{code:t}))))}),on=It("loginId"),an=kt(on,It("code")),sn=kt(on),cn=kt(on),un=e=>({signUp:sn(((t,n)=>ct(e.post(Pe,{loginId:t,user:n})))),verify:an(((t,n,r,o)=>ct(e.post(Ue,{loginId:t,code:n,loginOptions:r},{token:o})))),update:cn(((t,n)=>ct(e.post(Re,{loginId:t},{token:n}))))}),ln=It("loginId"),dn=It("newPassword"),pn=kt(ln,It("password")),fn=kt(ln),gn=kt(ln,dn),hn=kt(ln,It("oldPassword"),dn),vn=e=>({signUp:pn(((t,n,r)=>ct(e.post(Ce,{loginId:t,password:n,user:r})))),signIn:pn(((t,n)=>ct(e.post($e,{loginId:t,password:n})))),sendReset:fn(((t,n)=>ct(e.post(qe,{loginId:t,redirectUrl:n})))),update:gn(((t,n,r)=>ct(e.post(De,{loginId:t,newPassword:n},{token:r})))),replace:hn(((t,n,r)=>ct(e.post(Je,{loginId:t,oldPassword:n,newPassword:r})))),policy:()=>ct(e.get(Ke))}),yn=[yt('"loginId" must be a string')],bn=It("loginId"),wn=It("origin"),mn=kt(bn,wn,It("name")),kn=kt(bn,wn),In=kt(yn,wn),On=kt(bn,wn,It("token")),jn=kt(It("transactionId"),It("response")),_n=e=>({signUp:{start:mn(((t,n,r)=>ct(e.post(Ee.start,{user:{loginId:t,name:r},origin:n})))),finish:jn(((t,n)=>ct(e.post(Ee.finish,{transactionId:t,response:n}))))},signIn:{start:In(((t,n,r,o)=>ct(e.post(xe.start,{loginId:t,origin:n,loginOptions:r},{token:o})))),finish:jn(((t,n)=>ct(e.post(xe.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:kn(((t,n)=>ct(e.post(Te.start,{loginId:t,origin:n}))))},update:{start:On(((t,n,r)=>ct(e.post(Ae.start,{loginId:t,origin:n},{token:r})))),finish:jn(((t,n)=>ct(e.post(Ae.finish,{transactionId:t,response:n}))))}}),Sn=kt(It("token")),Un=kt([wt('"token" must be string or undefined')]);var Pn,Rn=kt([("projectId",Pn=It("projectId"),ut(((e,t)=>n=>lt(...t).validate(ie(n,e)))("projectId",Pn))())])((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:St(s),otp:en(s),magicLink:Bt(s),enchantedLink:qt(s),oauth:Gt(s),saml:rn(s),totp:un(s),webauthn:_n(s),password:vn(s),flow:Kt(s),refresh:Un((e=>ct(s.post(Ne,{},{token:e})))),selectTenant:kt([yt("tenantId")],[wt('"token" must be string or undefined')])(((e,t)=>ct(s.post(Me,{tenant:e},{token:t})))),logout:Un((e=>ct(s.post(Le,{},{token:e})))),logoutAll:Un((e=>ct(s.post(Fe,{},{token:e})))),me:Un((e=>ct(s.get(He,{token:e})))),isJwtExpired:Sn(rt),getTenants:Sn(ot),getJwtPermissions:Sn(it),getJwtRoles:Sn(at),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 En=(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 xn=Object.assign(Rn,{DeliveryMethods:Rt});const Tn=(...e)=>{console.debug(...e)},An="undefined"!=typeof window,Cn=Math.pow(2,31)-1,$n=An&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com";var qn="Blocked by CSP",Dn="9319";function Jn(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===qn||t===Dn}(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(t){return n.push({url:e,startedAt:r,finishedAt:new Date,error:t})},i=t(e);return i.then((function(){return o()}),o),i})).then((function(e){return[e,{attempts:n}]}))}var Kn="Failed to load the JS script of the agent";function Nn(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.5"):e}))}(String(e),t)}))}(a,o);return Jn(e,Mn).catch(Fn)})).then((function(e){var t=e[0],n=e[1];return t.load(s(s({},i),{ldi:n}))}))}function Mn(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(qn)}();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(Kn))},r.async=!0,r.src=e,i.appendChild(r)}))}(e)})).then(Ln)}function Ln(){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(Dn);return n}function Fn(e){throw e instanceof Error&&e.message===Dn?new Error(Kn):e}const Hn=(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},Bn=async e=>{try{if(Hn())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),n=Nn({apiKey:e,endpoint:$n}),r=await n,{requestId:o}=await r.get({linkedId:t}),i=((e,t)=>({vsid:e,vrid:t}))(t,o);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(i)}catch(e){global.FB_DEBUG&&console.error(e)}},zn=e=>{const t=Hn(!0);return t&&e.body&&(e.body.fpData=t),e},Vn="dls_last_user_login_id",Gn="dls_last_user_display_name",Zn=()=>i(Vn),Yn=()=>i(Gn),Qn=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,r={}]=t,o=Zn(),i=Yn();o&&(null!==(n=r.lastAuth)&&void 0!==n||(r.lastAuth={}),r.lastAuth.loginId=o,r.lastAuth.name=i);return await e(...t)},Wn=e=>async(...t)=>{const n=await e(...t);return a(Vn),a(Gn),n};function Xn(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}
2
2
  /*! js-cookie v3.0.5 | MIT */
3
- function er(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 tr=function e(t,n){function r(e,r,o){if("undefined"!=typeof document){"number"==typeof(o=er({},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,"",er({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,er({},this.attributes,t))},withConverter:function(t){return e(er({},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 nr="DS",rr="DSR";const or=(e={},t,n)=>{var{refreshJwt:r,sessionJwt:i}=e,a=c(e,["refreshJwt","sessionJwt"]);void 0===t&&(t=!1),void 0===n&&(n=""),r&&o(`${n}${rr}`,r),i&&(t?function(e,t,{cookiePath:n,cookieDomain:r,cookieExpiration:o}){if(t){const i=new Date(1e3*o);tr.set(e,t,{path:n,domain:r,expires:i,sameSite:"Strict",secure:!0})}}(nr,i,a):o(`${n}${nr}`,i))};function ir(e=""){return i(`${e}${rr}`)||""}function ar(e=""){a(`${e}${rr}`),a(`${e}${nr}`),tr.remove(nr)}const sr=e=>t=>async(...n)=>{const r=await t(...n);return ar(e),r};async function cr(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=gr(n.publicKey.challenge),n.publicKey.user.id=gr(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=gr(e.id)})),n}(e),n=await navigator.credentials.create(t);return r=n,JSON.stringify({id:r.id,rawId:hr(r.rawId),type:r.type,response:{attestationObject:hr(r.response.attestationObject),clientDataJSON:hr(r.response.clientDataJSON)}});var r}async function ur(e){const t=pr(e);return fr(await navigator.credentials.get(t))}async function lr(e,t){const n=pr(e);n.signal=t.signal,n.mediation="conditional";return fr(await navigator.credentials.get(n))}async function dr(e=!1){if(!An)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 pr(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=gr(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=gr(e.id)})),n}function fr(e){return JSON.stringify({id:e.id,rawId:hr(e.rawId),type:e.type,response:{authenticatorData:hr(e.response.authenticatorData),clientDataJSON:hr(e.response.clientDataJSON),signature:hr(e.response.signature),userHandle:e.response.userHandle?hr(e.response.userHandle):void 0}})}function gr(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function hr(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var vr,yr=(vr=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 cr(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 ur(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 cr(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,t)}{const t=await ur(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 cr(r.data.options);return await e.webauthn.update.finish(r.data.transactionId,o)},helpers:{create:cr,get:ur,isSupported:dr,conditional:lr}}),(...e)=>{const t=vr(...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}),br=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await dr(),r=Object.assign(Object.assign({redirectUrl:window.location.href,location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=r,e.flow.start(...t)}});const wr=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 An?(r&&o&&Bn(r).catch((()=>null)),t(e(i,{beforeRequest:zn}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(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))}}})();let u,l;document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&new Date>u&&(Tn("Expiration time passed, refreshing session"),d.refresh(l))}));const d=n(e(i,{afterRequest:async(e,n)=>{const{refreshJwt:r,sessionJwt:o}=await t(n);if(401===(null==n?void 0:n.status))Tn("Received 401, canceling all timers"),a();else if(o){u=(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),l=r;let e=((i=u)?i.getTime()-(new Date).getTime():0)-2e4;e>Cn&&(Tn(`Timeout is too large (${e}ms), setting it to ${Cn}ms`),e=Cn),a();const t=new Date(Date.now()+e).toLocaleTimeString("en-US",{hour12:!1});Tn(`Setting refresh timer for ${t}. (${e}ms)`),s((()=>{Tn("Refreshing session due to timer"),d.refresh(r)}),e)}var i}}));return En(d,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return Tn("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.7.0"},t.baseHeaders)}))),(r=>o=>{const i=Xn(),a=Xn(),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=En(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(Vn,e)})(a),(e=>{o(Gn,e)})(s))}}));let a=En(i,["flow.start"],Qn);return a=En(a,["logout","logoutAll"],Wn),Object.assign(a,{getLastUserLoginId:Zn,getLastUserDisplayName:Yn})}),(n=>r=>{var{persistTokens:o,sessionTokenViaCookie:a,storagePrefix:s}=r,u=c(r,["persistTokens","sessionTokenViaCookie","storagePrefix"]);if(!o||!An)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(u);const l=n(e(u,{beforeRequest:(d=s,e=>Object.assign(e,{token:e.token||ir(d)})),afterRequest:async(e,n)=>{401===(null==n?void 0:n.status)?ar(s):or(await t(n),a,s)}}));var d;const p=En(l,["logout","logoutAll"],sr(s));return Object.assign(p,{getRefreshToken:()=>ir(s),getSessionToken:()=>function(e=""){return tr.get(nr)||i(`${e}${nr}`)||""}(s)})}))(((...e)=>{const t=xn(...e);return Object.assign(Object.assign({},t),{flow:br(t),webauthn:yr(t)})}));return wr.REFRESH_TOKEN_KEY=rr,wr.SESSION_TOKEN_KEY=nr,wr}));
3
+ function er(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 tr=function e(t,n){function r(e,r,o){if("undefined"!=typeof document){"number"==typeof(o=er({},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,"",er({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,er({},this.attributes,t))},withConverter:function(t){return e(er({},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 nr="DS",rr="DSR";const or=(e={},t,n)=>{var{refreshJwt:r,sessionJwt:i}=e,a=c(e,["refreshJwt","sessionJwt"]);void 0===t&&(t=!1),void 0===n&&(n=""),r&&o(`${n}${rr}`,r),i&&(t?function(e,t,{cookiePath:n,cookieDomain:r,cookieExpiration:o}){if(t){const i=new Date(1e3*o);tr.set(e,t,{path:n,domain:r,expires:i,sameSite:"Strict",secure:!0})}}(nr,i,a):o(`${n}${nr}`,i))};function ir(e=""){return i(`${e}${rr}`)||""}function ar(e=""){a(`${e}${rr}`),a(`${e}${nr}`),tr.remove(nr)}const sr=e=>t=>async(...n)=>{const r=await t(...n);return ar(e),r};async function cr(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=gr(n.publicKey.challenge),n.publicKey.user.id=gr(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=gr(e.id)})),n}(e),n=await navigator.credentials.create(t);return r=n,JSON.stringify({id:r.id,rawId:hr(r.rawId),type:r.type,response:{attestationObject:hr(r.response.attestationObject),clientDataJSON:hr(r.response.clientDataJSON)}});var r}async function ur(e){const t=pr(e);return fr(await navigator.credentials.get(t))}async function lr(e,t){const n=pr(e);n.signal=t.signal,n.mediation="conditional";return fr(await navigator.credentials.get(n))}async function dr(e=!1){if(!An)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 pr(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=gr(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=gr(e.id)})),n}function fr(e){return JSON.stringify({id:e.id,rawId:hr(e.rawId),type:e.type,response:{authenticatorData:hr(e.response.authenticatorData),clientDataJSON:hr(e.response.clientDataJSON),signature:hr(e.response.signature),userHandle:e.response.userHandle?hr(e.response.userHandle):void 0}})}function gr(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function hr(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var vr,yr=(vr=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 cr(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 ur(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 cr(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,t)}{const t=await ur(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 cr(r.data.options);return await e.webauthn.update.finish(r.data.transactionId,o)},helpers:{create:cr,get:ur,isSupported:dr,conditional:lr}}),(...e)=>{const t=vr(...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}),br=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await dr(),r=Object.assign(Object.assign({redirectUrl:window.location.href,location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n}});return t[1]=r,e.flow.start(...t)}});const wr=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 An?(r&&o&&Bn(r).catch((()=>null)),t(e(i,{beforeRequest:zn}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(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))}}})();let u,l;document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&new Date>u&&(Tn("Expiration time passed, refreshing session"),d.refresh(l))}));const d=n(e(i,{afterRequest:async(e,n)=>{const{refreshJwt:r,sessionJwt:o}=await t(n);if(401===(null==n?void 0:n.status))Tn("Received 401, canceling all timers"),a();else if(o){u=(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),l=r;let e=((i=u)?i.getTime()-(new Date).getTime():0)-2e4;e>Cn&&(Tn(`Timeout is too large (${e}ms), setting it to ${Cn}ms`),e=Cn),a();const t=new Date(Date.now()+e).toLocaleTimeString("en-US",{hour12:!1});Tn(`Setting refresh timer for ${t}. (${e}ms)`),s((()=>{Tn("Refreshing session due to timer"),d.refresh(r)}),e)}var i}}));return En(d,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return Tn("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.7.2"},t.baseHeaders)}))),(r=>o=>{const i=Xn(),a=Xn(),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=En(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(Vn,e)})(a),(e=>{o(Gn,e)})(s))}}));let a=En(i,["flow.start"],Qn);return a=En(a,["logout","logoutAll"],Wn),Object.assign(a,{getLastUserLoginId:Zn,getLastUserDisplayName:Yn})}),(n=>r=>{var{persistTokens:o,sessionTokenViaCookie:a,storagePrefix:s}=r,u=c(r,["persistTokens","sessionTokenViaCookie","storagePrefix"]);if(!o||!An)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(u);const l=n(e(u,{beforeRequest:(d=s,e=>Object.assign(e,{token:e.token||ir(d)})),afterRequest:async(e,n)=>{401===(null==n?void 0:n.status)?ar(s):or(await t(n),a,s)}}));var d;const p=En(l,["logout","logoutAll"],sr(s));return Object.assign(p,{getRefreshToken:()=>ir(s),getSessionToken:()=>function(e=""){return tr.get(nr)||i(`${e}${nr}`)||""}(s)})}))(((...e)=>{const t=xn(...e);return Object.assign(Object.assign({},t),{flow:br(t),webauthn:yr(t)})}));return wr.REFRESH_TOKEN_KEY=rr,wr.SESSION_TOKEN_KEY=nr,wr}));
4
4
  //# sourceMappingURL=index.umd.js.map