New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@descope/web-js-sdk

Package Overview
Dependencies
Maintainers
4
Versions
252
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@descope/web-js-sdk - npm Package Compare versions

Comparing version 0.1.0-alpha.16 to 0.1.0-alpha.17

dist/cjs/test/autoRefresh.test.d.ts

2

dist/cjs/index.cjs.js

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),t=require("@descope/core-js-sdk"),n=require("@fingerprintjs/fingerprintjs-pro"),a=require("js-cookie");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=s(t),i=s(a);const r="undefined"!=typeof window,l=r&&localStorage.getItem("fingerprint.public.key")||"A9aCLRHzKCv3uL69oqDr",c=r&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",u=(e="",t="")=>({vsid:e,vrid:t}),d=(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},g=async e=>{try{if(d())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||l,endpoint:c}),s=await a,{requestId:o}=await s.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(u(t,o))}catch(e){global.FB_DEBUG&&console.error(e)}};var p,f,h,v,w;const b=e=>Object.assign({},e);class S{constructor(t){p.add(this),f.set(this,void 0),h.set(this,{}),v.set(this,0),e.__classPrivateFieldSet(this,f,t,"f")}get current(){return b(e.__classPrivateFieldGet(this,f,"f"))}update(t){const n=t;if(!((e,t)=>{const n=e&&Object.getOwnPropertyNames(e)||[],a=t&&Object.getOwnPropertyNames(t)||[];if(n.length!==a.length)return!1;for(let a=0;a<n.length;a+=1){const s=n[a];if(e[s]!==t[s])return!1}return!0})(e.__classPrivateFieldGet(this,f,"f"),n)){const t=e.__classPrivateFieldGet(this,f,"f");e.__classPrivateFieldSet(this,f,n,"f"),Object.freeze(e.__classPrivateFieldGet(this,f,"f")),setTimeout((()=>{Object.values(e.__classPrivateFieldGet(this,h,"f")).forEach((e=>e(b(n),t)))}),0)}}subscribe(t){e.__classPrivateFieldSet(this,v,e.__classPrivateFieldGet(this,v,"f")+1,"f"),e.__classPrivateFieldGet(this,h,"f")[e.__classPrivateFieldGet(this,v,"f")]=t;const n=e.__classPrivateFieldGet(this,v,"f");return()=>e.__classPrivateFieldGet(this,p,"m",w).call(this,n.toString())}unsubscribeAll(){e.__classPrivateFieldSet(this,h,{},"f")}}f=new WeakMap,h=new WeakMap,v=new WeakMap,p=new WeakSet,w=function(t){!!e.__classPrivateFieldGet(this,h,"f")[t]&&delete e.__classPrivateFieldGet(this,h,"f")[t]};let _=[];function y(e,t,n){const a=function(e){const t=e.split(".");try{if(3===t.length){const t=JSON.parse(window.atob(e.split(".")[1]));if(t.exp)return new Date(1e3*t.exp)}}catch(e){}return null}(t);if(a){let t;for(;t=_.pop();)clearTimeout(t);const s=a.getTime()-2e4-(new Date).getTime(),o=setTimeout((()=>{e(n)}),s);_.push(o)}}async function k(t,n,a,s){var o;try{if(401===n.status)return a.sessionToken.update({sessionToken:""}),void a.user.update({});const l=await(null==n?void 0:n.json());if(l){const n=function(e){return(null==e?void 0:e.authInfo)||e||{}}(l),{sessionJwt:c,refreshJwt:u,user:d}=n,g=e.__rest(n,["sessionJwt","refreshJwt","user"]);if(s.persistTokens&&(function(e,{cookiePath:t,cookieDomain:n,cookieExpiration:a},s){e&&(s?i.default.set("DS",e,{path:t,domain:n,expires:a,sameSite:"None",secure:!0}):localStorage&&localStorage.setItem("DS",e))}(c,g,s.sessionTokenViaCookie),function(e){localStorage&&e&&localStorage.setItem("DSR",e)}(u)),c&&a.sessionToken.update({sessionToken:c}),d){const e=null===(o=null==d?void 0:d.externalIds)||void 0===o?void 0:o[0];r&&e&&(null===localStorage||void 0===localStorage||localStorage.setItem("dls_last_user_external_id",e)),a.user.update(d)}c&&u&&s.autoRefresh&&y(t,c,u)}}catch(e){console.error("Could not set tokens from body",e)}}function m(){return localStorage?null===localStorage||void 0===localStorage?void 0:localStorage.getItem("DSR"):""}async function O(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=T(n.publicKey.challenge),n.publicKey.user.id=T(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=T(e.id)})),n}(e),n=await navigator.credentials.create(t);return a=n,JSON.stringify(Object.assign(Object.assign({},a),{rawId:P(a.rawId),response:Object.assign(Object.assign({},a.response),{attestationObject:P(a.response.attestationObject),clientDataJSON:P(a.response.clientDataJSON)})}));var a}async function I(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=T(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=T(e.id)})),n}(e),n=await navigator.credentials.get(t);return a=n,JSON.stringify(Object.assign(Object.assign({},a),{rawId:P(a.rawId),response:Object.assign(Object.assign({},a.response),{authenticatorData:P(a.response.authenticatorData),clientDataJSON:P(a.response.clientDataJSON),signature:P(a.response.signature),userHandle:a.response.userHandle?P(a.response.userHandle):void 0})}));var a}async function j(e=!1){if(!r)return Promise.resolve(!1);const t=!!(PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function T(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function P(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}exports.default=t=>{var{autoRefresh:n=!0,persistTokens:a=!0,sessionTokenViaCookie:s,fpKey:l,fpLoad:c}=t,p=e.__rest(t,["autoRefresh","persistTokens","sessionTokenViaCookie","fpKey","fpLoad"]);r?c&&g(l).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server");const f=p;let h,v;const w=new S({sessionToken:""}),b=new S({});f.hooks={beforeRequest:e=>null==h?void 0:h(e),afterRequest:(e,t)=>null==v?void 0:v(e,t)};const _=o.default(f),y=(T=_,{async signUp(e,t){const n=await T.webauthn.signUp.start(e,window.location.origin,t),a=await O(n.data.options);return await T.webauthn.signUp.finish(n.data.transactionId,a)},async signIn(e){const t=await T.webauthn.signIn.start(e,window.location.origin),n=await I(t.data.options);return await T.webauthn.signIn.finish(t.data.transactionId,n)},async signUpOrIn(e){var t;const n=await T.webauthn.signUpOrIn.start(e,window.location.origin);if(null===(t=n.data)||void 0===t?void 0:t.create){const e=await O(n.data.options);return await T.webauthn.signUp.finish(n.data.transactionId,e)}{const e=await I(n.data.options);return await T.webauthn.signIn.finish(n.data.transactionId,e)}},async update(e,t){const n=await T.webauthn.update.start(e,window.location.origin,t),a=await O(n.data.options);return await T.webauthn.update.finish(n.data.transactionId,a)},helpers:{create:O,get:I,isSupported:j}});var T;const P=Object.assign(Object.assign({},_),{flow:Object.assign(Object.assign({},_.flow),{start:async(e,t,n,a)=>{const s=await y.helpers.isSupported(),o=null===localStorage||void 0===localStorage?void 0:localStorage.getItem("dls_last_user_external_id"),i={tenant:null==t?void 0:t.tenant,redirectUrl:window.location.href,deviceInfo:{webAuthnSupport:s}};return o&&(i.lastUser={externalId:o}),_.flow.start(e,i,n,a)}}),webauthn:y,onSessionTokenChange:e=>{var t;const n=null===(t=w.current)||void 0===t?void 0:t.sessionToken;return n&&e(n),w.subscribe((({sessionToken:t})=>{e(t)}))},onUserChange:e=>{const t=b.current;return t&&Object.entries(t).length>0&&e(t),b.subscribe((t=>{e(t)}))},getRefreshToken:m});return r?(n&&["logout","logoutAll"].forEach((e=>{const t=_[e];P[e]=(...e)=>{const n=m(),a=[(null==e?void 0:e.shift())||n,...e],s=t(...a);return null===localStorage||void 0===localStorage||localStorage.removeItem("DSR"),null===localStorage||void 0===localStorage||localStorage.removeItem("DS"),i.default.remove("DS"),r&&(null===localStorage||void 0===localStorage||localStorage.removeItem("dls_last_user_external_id")),w.update({sessionToken:""}),s}})),h=e=>(e.body&&(e.body.fpData=d(!0)||u()),!e.token&&a&&(e.token=m()),e.headers=Object.assign(Object.assign({},e.headers),{"x-descope-sdk-name":"web-js","x-descope-sdk-version":"0.1.0-alpha.16"}),e),P.me=async(...e)=>{var t;const n=await _.me(...e);if(n.ok){const e=await(null===(t=n.response)||void 0===t?void 0:t.clone().json());b.update(e)}return n},(n||a)&&(v=(e,t)=>{k(P.refresh,t,{sessionToken:w,user:b},{autoRefresh:n,persistTokens:a,sessionTokenViaCookie:s})}),n&&m()&&P.refresh(),P):(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"),P)},exports.getSessionToken=function(){return i.default.get("DS")||(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("DS"))||""};
"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 r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=r(t),s=r(a);const i=(e,t)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,a)=>{var r;return n[a]=[].concat((null===(r=e.hooks)||void 0===r?void 0:r[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=>Object.assign(e,{headers:Object.assign(Object.assign({},e.headers),{"x-descope-sdk-name":"web-js","x-descope-sdk-version":"0.1.0-alpha.17"})}),w="undefined"!=typeof window,b=w&&localStorage.getItem("fingerprint.public.key")||"A9aCLRHzKCv3uL69oqDr",h=w&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",v=(e="",t="")=>({vsid:e,vrid:t}),y=(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},S=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||b,endpoint:h}),r=await a,{requestId:o}=await r.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(v(t,o))}catch(e){global.FB_DEBUG&&console.error(e)}},O=e=>(e.body&&(e.body.fpData=y(!0)||v()),e),m=e=>async(...t)=>{t[1]=t[1]||{};const[,n]=t,a=g("dls_last_user_external_id");a&&(n.lastUser={externalId:a});return await e(...t)},j=e=>async(...t)=>{const n=await e(...t);return p("dls_last_user_external_id"),n};function I(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}const k=(t={},n)=>{var{refreshJwt:a,sessionJwt:r}=t,o=e.__rest(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),a&&d("DSR",a),r&&(n?function(e,t,{cookiePath:n,cookieDomain:a,cookieExpiration:r}){if(t){const o=new Date(1e3*r);s.default.set(e,t,{path:n,domain:a,expires:o,sameSite:"None",secure:!0})}}("DS",r,o):d("DS",r))};function D(){return g("DSR")||""}function _(){return s.default.get("DS")||g("DS")||""}function J(){p("DSR"),p("DS"),s.default.remove("DS")}const T=e=>Object.assign(e,{token:e.token||D()}),x=e=>async(...t)=>{const n=await e(...t);return J(),n};async function q(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=R(n.publicKey.challenge),n.publicKey.user.id=R(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=R(e.id)})),n}(e),n=await navigator.credentials.create(t);return a=n,JSON.stringify(Object.assign(Object.assign({},a),{rawId:C(a.rawId),response:Object.assign(Object.assign({},a.response),{attestationObject:C(a.response.attestationObject),clientDataJSON:C(a.response.clientDataJSON)})}));var a}async function A(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=R(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=R(e.id)})),n}(e),n=await navigator.credentials.get(t);return a=n,JSON.stringify(Object.assign(Object.assign({},a),{rawId:C(a.rawId),response:Object.assign(Object.assign({},a.response),{authenticatorData:C(a.response.authenticatorData),clientDataJSON:C(a.response.clientDataJSON),signature:C(a.response.signature),userHandle:a.response.userHandle?C(a.response.userHandle):void 0})}));var a}async function K(e=!1){if(!w)return Promise.resolve(!1);const t=!!(PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function R(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function C(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var U=e=>Object.assign(Object.assign({},e.flow),{start:async(t,n,a,r)=>{const o=await K(),s=Object.assign(Object.assign({},n),{redirectUrl:window.location.href,deviceInfo:{webAuthnSupport:o}});return e.flow.start(t,s,a,r)}});const N=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((e=>n=>{const a=e(i(n,{afterRequest:async(e,t)=>{var n;const a=await c(t),r=null===(n=null==a?void 0:a.externalIds)||void 0===n?void 0:n[0];r&&(e=>{d("dls_last_user_external_id",e)})(r)}}));let r=t.wrapWith(a,["flow.start"],m);return r=t.wrapWith(r,["logout","logoutAll"],j),r}),(t=>n=>{var{fpKey:a,fpLoad:r}=n,o=e.__rest(n,["fpKey","fpLoad"]);return w?r&&S(a).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(i(o,{beforeRequest:O}))}),(n=>a=>{var r=e.__rest(a,["autoRefresh"]);const{clearAllTimers:o,setTimer:s}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})(),c=n(i(r,{afterRequest:async(e,t)=>{const{refreshJwt:n,sessionJwt:a}=await l(t);if(401===(null==t?void 0:t.status))o();else if(a){const e=((r=(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))?r.getTime()-(new Date).getTime():0)-2e4;o(),s((()=>c.refresh(n)),e)}var r}}));return t.wrapWith(c,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return o(),n}))}),(e=>t=>e(i(t,{beforeRequest:f}))),(e=>n=>{const a=I(),r=I(),o=e(i(n,{afterRequest:async(e,t)=>{if(401===(null==t?void 0:t.status))a.pub(null),r.pub(null);else{const e=await c(t);e&&r.pub(e);const{sessionJwt:n}=await l(t);n&&a.pub(n)}}})),s=t.wrapWith(o,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return a.pub(null),r.pub(null),n}));return Object.assign(s,{onSessionTokenChange:a.sub,onUserChange:r.sub})}),(n=>a=>{var{persistTokens:r,sessionTokenViaCookie:o}=a,s=e.__rest(a,["persistTokens","sessionTokenViaCookie"]);if(w||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"),!r||!w)return n(s);const c=n(i(s,{beforeRequest:T,afterRequest:async(e,t)=>{401===(null==t?void 0:t.status)?J():k(await l(t),o)}})),u=t.wrapWith(c,["logout","logoutAll"],x);return Object.assign(u,{getRefreshToken:D,getSessionToken:_})}))(((...e)=>{const t=o.default(...e);return Object.assign(Object.assign({},t),{flow:U(t),webauthn:(n=t,{async signUp(e,t){const a=await n.webauthn.signUp.start(e,window.location.origin,t),r=await q(a.data.options);return await n.webauthn.signUp.finish(a.data.transactionId,r)},async signIn(e){const t=await n.webauthn.signIn.start(e,window.location.origin),a=await A(t.data.options);return await n.webauthn.signIn.finish(t.data.transactionId,a)},async signUpOrIn(e){var t;const a=await n.webauthn.signUpOrIn.start(e,window.location.origin);if(null===(t=a.data)||void 0===t?void 0:t.create){const e=await q(a.data.options);return await n.webauthn.signUp.finish(a.data.transactionId,e)}{const e=await A(a.data.options);return await n.webauthn.signIn.finish(a.data.transactionId,e)}},async update(e,t){const a=await n.webauthn.update.start(e,window.location.origin,t),r=await q(a.data.options);return await n.webauthn.update.finish(a.data.transactionId,r)},helpers:{create:q,get:A,isSupported:K}})});var n}));exports.default=N;
//# sourceMappingURL=index.cjs.js.map
import * as _descope_core_js_sdk from '@descope/core-js-sdk';
import _descope_core_js_sdk__default, { UserResponse } from '@descope/core-js-sdk';
/** Tokens management options */
declare type TokensOptions = {
autoRefresh?: boolean;
persistTokens?: boolean;
sessionTokenViaCookie?: boolean;
};
/** Return the refresh token from the localStorage. Not for production usage because refresh token will not be saved in localStorage. */

@@ -19,6 +11,14 @@ declare function getRefreshToken(): string;

/** Configuration arguments which include the Descope core SDK args and fingerprint configuration.
* Also specifies token options - if we should persist tokens from responses automatically and auto-refresh.
*/
declare type WebJSSDKArgs = Parameters<typeof _descope_core_js_sdk__default>[0] & TokensOptions & {
declare function isSupported(requirePlatformAuthenticator?: boolean): Promise<boolean>;
type PersistTokensOptions<A extends boolean> = {
persistTokens?: A;
sessionTokenViaCookie?: A extends true ? boolean : never;
};
type AutoRefreshOptions = {
autoRefresh?: boolean;
};
type FingerprintOptions = {
fpKey?: string;

@@ -28,7 +28,30 @@ fpLoad?: boolean;

/**
* Wrapper around DescopeSDK to handle fingerprint.js and storage of JWT tokens in cookies and localStorage,
* It also sets a timer to refresh session JWT automatically.
*/
declare const _default: ({ autoRefresh, persistTokens, sessionTokenViaCookie, fpKey, fpLoad, ...args }: WebJSSDKArgs) => {
declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersistTokens, sessionTokenViaCookie, ...config }: Omit<{
projectId: string;
logger?: {
debug: {
(...data: any[]): void;
(message?: any, ...optionalParams: any[]): void;
};
log: {
(...data: any[]): void;
(message?: any, ...optionalParams: any[]): void;
};
error: {
(...data: any[]): void;
(message?: any, ...optionalParams: any[]): void;
};
};
baseUrl?: string;
hooks?: {
beforeRequest?: (config: _descope_core_js_sdk.RequestConfig) => _descope_core_js_sdk.RequestConfig;
afterRequest?: (req: _descope_core_js_sdk.RequestConfig, res: Response) => void;
};
cookiePolicy?: RequestCredentials;
}, "hooks"> & {
hooks?: {
beforeRequest?: ((config: _descope_core_js_sdk.RequestConfig) => _descope_core_js_sdk.RequestConfig) | ((config: _descope_core_js_sdk.RequestConfig) => _descope_core_js_sdk.RequestConfig)[];
afterRequest?: ((req: _descope_core_js_sdk.RequestConfig, res: Response) => void) | ((req: _descope_core_js_sdk.RequestConfig, res: Response) => void)[];
};
} & FingerprintOptions & AutoRefreshOptions & PersistTokensOptions<A>) => A extends true ? (({
flow: {

@@ -48,8 +71,441 @@ start: (flowId: string, options?: {

get: (options: string) => Promise<string>;
isSupported: (requirePlatformAuthenticator?: boolean) => Promise<boolean>;
isSupported: typeof isSupported;
};
};
onSessionTokenChange: (cb: (sessionToken: string) => void) => () => void;
onUserChange: (cb: (user: UserResponse) => void) => () => void;
accessKey: {
exchange: (accessKey: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ExchangeAccessKeyResponse>>;
};
otp: {
verify: {
email: (identifier: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
sms: (identifier: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
whatsapp: (identifier: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
};
signIn: {
email: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUp: {
email: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUpOrIn: {
email: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
update: {
email: (identifier: string, email: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
phone: {
email: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
};
};
magicLink: {
verify: (token: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
signIn: {
email: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUp: {
email: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUpOrIn: {
email: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
update: {
email: (identifier: string, email: string, uri: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
phone: {
email: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
};
};
enchantedLink: {
verify: (token: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
signIn: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
signUpOrIn: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
signUp: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
waitForSession: (pendingRef: string, config?: {
pollingIntervalMs: number;
timeoutMs: number;
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
update: {
email: (identifier: string, email: string, uri: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
};
};
oauth: {
start: {
facebook: <B extends {
redirect: boolean;
}>(redirectURL?: string, config?: B) => Promise<B extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
github: <B_1 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_1) => Promise<B_1 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
google: <B_2 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_2) => Promise<B_2 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
microsoft: <B_3 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_3) => Promise<B_3 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
gitlab: <B_4 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_4) => Promise<B_4 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
apple: <B_5 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_5) => Promise<B_5 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
};
exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
};
saml: {
start: <B_1 extends {
redirect: boolean;
}>(tenantNameOrEmail: string, config?: B_1) => Promise<B_1 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
};
totp: {
signUp: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>;
verify: (identifier: string, code: string, loginOptions?: {
stepup?: boolean;
mfa?: boolean;
customClaims?: Record<string, any>;
}, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
update: (identifier: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>;
};
refresh: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
logout: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
logoutAll: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
me: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.UserResponse>>;
isJwtExpired: (token: string) => boolean;
getJwtPermissions: (token: string, tenant?: string) => string[];
getJwtRoles: (token: string, tenant?: string) => string[];
httpClient: {
get: (path: string, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
post: (path: string, body?: any, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
put: (path: string, body?: any, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
delete: (path: string, body?: any, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
hooks?: {
beforeRequest?: (config: _descope_core_js_sdk.RequestConfig) => _descope_core_js_sdk.RequestConfig;
afterRequest?: (req: _descope_core_js_sdk.RequestConfig, res: Response) => void;
};
};
} | {
flow: {
start: (flowId: string, options?: {
tenant?: string;
}, interactionId?: string, input?: Record<string, FormDataEntryValue>) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.FlowResponse>>;
next: (executionId: string, stepId: string, interactionId: string, input?: Record<string, FormDataEntryValue>) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.FlowResponse>>;
};
webauthn: {
signUp(identifier: string, name: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
signIn(identifier: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
signUpOrIn(identifier: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
update(identifier: string, token: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>;
helpers: {
create: (options: string) => Promise<string>;
get: (options: string) => Promise<string>;
isSupported: typeof isSupported;
};
};
accessKey: {
exchange: (accessKey: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ExchangeAccessKeyResponse>>;
};
otp: {
verify: {
email: (identifier: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
sms: (identifier: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
whatsapp: (identifier: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
};
signIn: {
email: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUp: {
email: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUpOrIn: {
email: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
update: {
email: (identifier: string, email: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
phone: {
email: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
};
};
magicLink: {
verify: (token: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
signIn: {
email: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUp: {
email: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUpOrIn: {
email: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
update: {
email: (identifier: string, email: string, uri: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
phone: {
email: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
};
};
enchantedLink: {
verify: (token: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
signIn: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
signUpOrIn: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
signUp: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
waitForSession: (pendingRef: string, config?: {
pollingIntervalMs: number;
timeoutMs: number;
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
update: {
email: (identifier: string, email: string, uri: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
};
};
oauth: {
start: {
facebook: <B extends {
redirect: boolean;
}>(redirectURL?: string, config?: B) => Promise<B extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
github: <B_1 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_1) => Promise<B_1 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
google: <B_2 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_2) => Promise<B_2 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
microsoft: <B_3 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_3) => Promise<B_3 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
gitlab: <B_4 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_4) => Promise<B_4 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
apple: <B_5 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_5) => Promise<B_5 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
};
exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
};
saml: {
start: <B_1 extends {
redirect: boolean;
}>(tenantNameOrEmail: string, config?: B_1) => Promise<B_1 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
};
totp: {
signUp: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>;
verify: (identifier: string, code: string, loginOptions?: {
stepup?: boolean;
mfa?: boolean;
customClaims?: Record<string, any>;
}, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
update: (identifier: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>;
};
refresh: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
logout: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
logoutAll: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
me: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.UserResponse>>;
isJwtExpired: (token: string) => boolean;
getJwtPermissions: (token: string, tenant?: string) => string[];
getJwtRoles: (token: string, tenant?: string) => string[];
httpClient: {
get: (path: string, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
post: (path: string, body?: any, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
put: (path: string, body?: any, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
delete: (path: string, body?: any, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
hooks?: {
beforeRequest?: (config: _descope_core_js_sdk.RequestConfig) => _descope_core_js_sdk.RequestConfig;
afterRequest?: (req: _descope_core_js_sdk.RequestConfig, res: Response) => void;
};
};
}) & {
onSessionTokenChange: (cb: (data: string) => void) => () => any[];
onUserChange: (cb: (data: _descope_core_js_sdk.UserResponse) => void) => () => any[];
}) & {
getRefreshToken: typeof getRefreshToken;
getSessionToken: typeof getSessionToken;
} : ({
flow: {
start: (flowId: string, options?: {
tenant?: string;
}, interactionId?: string, input?: Record<string, FormDataEntryValue>) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.FlowResponse>>;
next: (executionId: string, stepId: string, interactionId: string, input?: Record<string, FormDataEntryValue>) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.FlowResponse>>;
};
webauthn: {
signUp(identifier: string, name: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
signIn(identifier: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
signUpOrIn(identifier: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
update(identifier: string, token: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>;
helpers: {
create: (options: string) => Promise<string>;
get: (options: string) => Promise<string>;
isSupported: typeof isSupported;
};
};
accessKey: {

@@ -214,3 +670,3 @@ exchange: (accessKey: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ExchangeAccessKeyResponse>>;

logoutAll: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
me: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<UserResponse>>;
me: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.UserResponse>>;
isJwtExpired: (token: string) => boolean;

@@ -248,5 +704,227 @@ getJwtPermissions: (token: string, tenant?: string) => string[];

}) => Promise<Response>;
hooks?: {
beforeRequest?: (config: _descope_core_js_sdk.RequestConfig) => _descope_core_js_sdk.RequestConfig;
afterRequest?: (req: _descope_core_js_sdk.RequestConfig, res: Response) => void;
};
};
} | {
flow: {
start: (flowId: string, options?: {
tenant?: string;
}, interactionId?: string, input?: Record<string, FormDataEntryValue>) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.FlowResponse>>;
next: (executionId: string, stepId: string, interactionId: string, input?: Record<string, FormDataEntryValue>) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.FlowResponse>>;
};
webauthn: {
signUp(identifier: string, name: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
signIn(identifier: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
signUpOrIn(identifier: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
update(identifier: string, token: string): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>;
helpers: {
create: (options: string) => Promise<string>;
get: (options: string) => Promise<string>;
isSupported: typeof isSupported;
};
};
accessKey: {
exchange: (accessKey: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ExchangeAccessKeyResponse>>;
};
otp: {
verify: {
email: (identifier: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
sms: (identifier: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
whatsapp: (identifier: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
};
signIn: {
email: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUp: {
email: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUpOrIn: {
email: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
update: {
email: (identifier: string, email: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
phone: {
email: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
};
};
magicLink: {
verify: (token: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
signIn: {
email: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUp: {
email: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
signUpOrIn: {
email: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
update: {
email: (identifier: string, email: string, uri: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
phone: {
email: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
sms: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
whatsapp: (identifier: string, phone: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
};
};
};
enchantedLink: {
verify: (token: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
signIn: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
signUpOrIn: (identifier: string, uri: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
signUp: (identifier: string, uri: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
waitForSession: (pendingRef: string, config?: {
pollingIntervalMs: number;
timeoutMs: number;
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
update: {
email: (identifier: string, email: string, uri: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
};
};
oauth: {
start: {
facebook: <B extends {
redirect: boolean;
}>(redirectURL?: string, config?: B) => Promise<B extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
github: <B_1 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_1) => Promise<B_1 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
google: <B_2 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_2) => Promise<B_2 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
microsoft: <B_3 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_3) => Promise<B_3 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
gitlab: <B_4 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_4) => Promise<B_4 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
apple: <B_5 extends {
redirect: boolean;
}>(redirectURL?: string, config?: B_5) => Promise<B_5 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
};
exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
};
saml: {
start: <B_1 extends {
redirect: boolean;
}>(tenantNameOrEmail: string, config?: B_1) => Promise<B_1 extends {
redirect: true;
} ? undefined : _descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>;
exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
};
totp: {
signUp: (identifier: string, user?: {
email?: string;
name?: string;
phone?: string;
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>;
verify: (identifier: string, code: string, loginOptions?: {
stepup?: boolean;
mfa?: boolean;
customClaims?: Record<string, any>;
}, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
update: (identifier: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>;
};
refresh: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
logout: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
logoutAll: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>;
me: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.UserResponse>>;
isJwtExpired: (token: string) => boolean;
getJwtPermissions: (token: string, tenant?: string) => string[];
getJwtRoles: (token: string, tenant?: string) => string[];
httpClient: {
get: (path: string, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
post: (path: string, body?: any, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
put: (path: string, body?: any, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
delete: (path: string, body?: any, config?: {
headers?: HeadersInit;
queryParams?: {
[key: string]: string;
};
token?: string;
}) => Promise<Response>;
hooks?: {
beforeRequest?: (config: _descope_core_js_sdk.RequestConfig) => _descope_core_js_sdk.RequestConfig;
afterRequest?: (req: _descope_core_js_sdk.RequestConfig, res: Response) => void;
};
};
}) & {
onSessionTokenChange: (cb: (data: string) => void) => () => any[];
onUserChange: (cb: (data: _descope_core_js_sdk.UserResponse) => void) => () => any[];
};
export { WebJSSDKArgs, _default as default, getSessionToken };
export { decoratedCreateSdk as default };

@@ -1,2 +0,2 @@

import{__classPrivateFieldSet as e,__classPrivateFieldGet as t,__rest as n}from"tslib";import a from"@descope/core-js-sdk";import{load as o}from"@fingerprintjs/fingerprintjs-pro";import s from"js-cookie";const i="undefined"!=typeof window,r=i&&localStorage.getItem("fingerprint.public.key")||"A9aCLRHzKCv3uL69oqDr",l=i&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",c=(e="",t="")=>({vsid:e,vrid:t}),u=(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},d=async e=>{try{if(u())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),n=o({apiKey:e||r,endpoint:l}),a=await n,{requestId:s}=await a.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(c(t,s))}catch(e){global.FB_DEBUG&&console.error(e)}};var g,p,f,h,w;const b=e=>Object.assign({},e);class v{constructor(t){g.add(this),p.set(this,void 0),f.set(this,{}),h.set(this,0),e(this,p,t,"f")}get current(){return b(t(this,p,"f"))}update(n){const a=n;if(!((e,t)=>{const n=e&&Object.getOwnPropertyNames(e)||[],a=t&&Object.getOwnPropertyNames(t)||[];if(n.length!==a.length)return!1;for(let a=0;a<n.length;a+=1){const o=n[a];if(e[o]!==t[o])return!1}return!0})(t(this,p,"f"),a)){const n=t(this,p,"f");e(this,p,a,"f"),Object.freeze(t(this,p,"f")),setTimeout((()=>{Object.values(t(this,f,"f")).forEach((e=>e(b(a),n)))}),0)}}subscribe(n){e(this,h,t(this,h,"f")+1,"f"),t(this,f,"f")[t(this,h,"f")]=n;const a=t(this,h,"f");return()=>t(this,g,"m",w).call(this,a.toString())}unsubscribeAll(){e(this,f,{},"f")}}p=new WeakMap,f=new WeakMap,h=new WeakMap,g=new WeakSet,w=function(e){!!t(this,f,"f")[e]&&delete t(this,f,"f")[e]};let S=[];function m(e,t,n){const a=function(e){const t=e.split(".");try{if(3===t.length){const t=JSON.parse(window.atob(e.split(".")[1]));if(t.exp)return new Date(1e3*t.exp)}}catch(e){}return null}(t);if(a){let t;for(;t=S.pop();)clearTimeout(t);const o=a.getTime()-2e4-(new Date).getTime(),s=setTimeout((()=>{e(n)}),o);S.push(s)}}async function y(e,t,a,o){var r;try{if(401===t.status)return a.sessionToken.update({sessionToken:""}),void a.user.update({});const l=await(null==t?void 0:t.json());if(l){const t=function(e){return(null==e?void 0:e.authInfo)||e||{}}(l),{sessionJwt:c,refreshJwt:u,user:d}=t,g=n(t,["sessionJwt","refreshJwt","user"]);if(o.persistTokens&&(function(e,{cookiePath:t,cookieDomain:n,cookieExpiration:a},o){e&&(o?s.set("DS",e,{path:t,domain:n,expires:a,sameSite:"None",secure:!0}):localStorage&&localStorage.setItem("DS",e))}(c,g,o.sessionTokenViaCookie),function(e){localStorage&&e&&localStorage.setItem("DSR",e)}(u)),c&&a.sessionToken.update({sessionToken:c}),d){const e=null===(r=null==d?void 0:d.externalIds)||void 0===r?void 0:r[0];i&&e&&(null===localStorage||void 0===localStorage||localStorage.setItem("dls_last_user_external_id",e)),a.user.update(d)}c&&u&&o.autoRefresh&&m(e,c,u)}}catch(e){console.error("Could not set tokens from body",e)}}function k(){return localStorage?null===localStorage||void 0===localStorage?void 0:localStorage.getItem("DSR"):""}function O(){return s.get("DS")||(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("DS"))||""}async function I(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=D(n.publicKey.challenge),n.publicKey.user.id=D(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=D(e.id)})),n}(e),n=await navigator.credentials.create(t);return a=n,JSON.stringify(Object.assign(Object.assign({},a),{rawId:C(a.rawId),response:Object.assign(Object.assign({},a.response),{attestationObject:C(a.response.attestationObject),clientDataJSON:C(a.response.clientDataJSON)})}));var a}async function j(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=D(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=D(e.id)})),n}(e),n=await navigator.credentials.get(t);return a=n,JSON.stringify(Object.assign(Object.assign({},a),{rawId:C(a.rawId),response:Object.assign(Object.assign({},a.response),{authenticatorData:C(a.response.authenticatorData),clientDataJSON:C(a.response.clientDataJSON),signature:C(a.response.signature),userHandle:a.response.userHandle?C(a.response.userHandle):void 0})}));var a}async function T(e=!1){if(!i)return Promise.resolve(!1);const t=!!(PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function D(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function C(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var x=e=>{var{autoRefresh:t=!0,persistTokens:o=!0,sessionTokenViaCookie:r,fpKey:l,fpLoad:g}=e,p=n(e,["autoRefresh","persistTokens","sessionTokenViaCookie","fpKey","fpLoad"]);i?g&&d(l).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server");const f=p;let h,w;const b=new v({sessionToken:""}),S=new v({});f.hooks={beforeRequest:e=>null==h?void 0:h(e),afterRequest:(e,t)=>null==w?void 0:w(e,t)};const m=a(f),O=(D=m,{async signUp(e,t){const n=await D.webauthn.signUp.start(e,window.location.origin,t),a=await I(n.data.options);return await D.webauthn.signUp.finish(n.data.transactionId,a)},async signIn(e){const t=await D.webauthn.signIn.start(e,window.location.origin),n=await j(t.data.options);return await D.webauthn.signIn.finish(t.data.transactionId,n)},async signUpOrIn(e){var t;const n=await D.webauthn.signUpOrIn.start(e,window.location.origin);if(null===(t=n.data)||void 0===t?void 0:t.create){const e=await I(n.data.options);return await D.webauthn.signUp.finish(n.data.transactionId,e)}{const e=await j(n.data.options);return await D.webauthn.signIn.finish(n.data.transactionId,e)}},async update(e,t){const n=await D.webauthn.update.start(e,window.location.origin,t),a=await I(n.data.options);return await D.webauthn.update.finish(n.data.transactionId,a)},helpers:{create:I,get:j,isSupported:T}});var D;const C=Object.assign(Object.assign({},m),{flow:Object.assign(Object.assign({},m.flow),{start:async(e,t,n,a)=>{const o=await O.helpers.isSupported(),s=null===localStorage||void 0===localStorage?void 0:localStorage.getItem("dls_last_user_external_id"),i={tenant:null==t?void 0:t.tenant,redirectUrl:window.location.href,deviceInfo:{webAuthnSupport:o}};return s&&(i.lastUser={externalId:s}),m.flow.start(e,i,n,a)}}),webauthn:O,onSessionTokenChange:e=>{var t;const n=null===(t=b.current)||void 0===t?void 0:t.sessionToken;return n&&e(n),b.subscribe((({sessionToken:t})=>{e(t)}))},onUserChange:e=>{const t=S.current;return t&&Object.entries(t).length>0&&e(t),S.subscribe((t=>{e(t)}))},getRefreshToken:k});return i?(t&&["logout","logoutAll"].forEach((e=>{const t=m[e];C[e]=(...e)=>{const n=k(),a=[(null==e?void 0:e.shift())||n,...e],o=t(...a);return null===localStorage||void 0===localStorage||localStorage.removeItem("DSR"),null===localStorage||void 0===localStorage||localStorage.removeItem("DS"),s.remove("DS"),i&&(null===localStorage||void 0===localStorage||localStorage.removeItem("dls_last_user_external_id")),b.update({sessionToken:""}),o}})),h=e=>(e.body&&(e.body.fpData=u(!0)||c()),!e.token&&o&&(e.token=k()),e.headers=Object.assign(Object.assign({},e.headers),{"x-descope-sdk-name":"web-js","x-descope-sdk-version":"0.1.0-alpha.16"}),e),C.me=async(...e)=>{var t;const n=await m.me(...e);if(n.ok){const e=await(null===(t=n.response)||void 0===t?void 0:t.clone().json());S.update(e)}return n},(t||o)&&(w=(e,n)=>{y(C.refresh,n,{sessionToken:b,user:S},{autoRefresh:t,persistTokens:o,sessionTokenViaCookie:r})}),t&&k()&&C.refresh(),C):(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"),C)};export{x as default,O as getSessionToken};
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 o from"js-cookie";const r=(e,t)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,a)=>{var o;return n[a]=[].concat((null===(o=e.hooks)||void 0===o?void 0:o[a])||[]).concat((null==t?void 0:t[a])||[]),n}),null!==(n=e.hooks)&&void 0!==n?n:e.hooks={}),e},s=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||{}},i=async e=>{const t=await s(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=>Object.assign(e,{headers:Object.assign(Object.assign({},e.headers),{"x-descope-sdk-name":"web-js","x-descope-sdk-version":"0.1.0-alpha.17"})}),p="undefined"!=typeof window,f=p&&localStorage.getItem("fingerprint.public.key")||"A9aCLRHzKCv3uL69oqDr",w=p&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",b=(e="",t="")=>({vsid:e,vrid:t}),h=(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},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||f,endpoint:w}),o=await n,{requestId:r}=await o.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(b(t,r))}catch(e){global.FB_DEBUG&&console.error(e)}},y=e=>(e.body&&(e.body.fpData=h(!0)||b()),e),S=e=>async(...t)=>{t[1]=t[1]||{};const[,n]=t,a=u("dls_last_user_external_id");a&&(n.lastUser={externalId:a});return await e(...t)},m=e=>async(...t)=>{const n=await e(...t);return d("dls_last_user_external_id"),n};function O(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}const I=(t={},n)=>{var{refreshJwt:a,sessionJwt:r}=t,s=e(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),a&&c("DSR",a),r&&(n?function(e,t,{cookiePath:n,cookieDomain:a,cookieExpiration:r}){if(t){const s=new Date(1e3*r);o.set(e,t,{path:n,domain:a,expires:s,sameSite:"None",secure:!0})}}("DS",r,s):c("DS",r))};function j(){return u("DSR")||""}function k(){return o.get("DS")||u("DS")||""}function D(){d("DSR"),d("DS"),o.remove("DS")}const J=e=>Object.assign(e,{token:e.token||j()}),T=e=>async(...t)=>{const n=await e(...t);return D(),n};async function x(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=R(n.publicKey.challenge),n.publicKey.user.id=R(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=R(e.id)})),n}(e),n=await navigator.credentials.create(t);return a=n,JSON.stringify(Object.assign(Object.assign({},a),{rawId:_(a.rawId),response:Object.assign(Object.assign({},a.response),{attestationObject:_(a.response.attestationObject),clientDataJSON:_(a.response.clientDataJSON)})}));var a}async function A(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=R(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=R(e.id)})),n}(e),n=await navigator.credentials.get(t);return a=n,JSON.stringify(Object.assign(Object.assign({},a),{rawId:_(a.rawId),response:Object.assign(Object.assign({},a.response),{authenticatorData:_(a.response.authenticatorData),clientDataJSON:_(a.response.clientDataJSON),signature:_(a.response.signature),userHandle:a.response.userHandle?_(a.response.userHandle):void 0})}));var a}async function K(e=!1){if(!p)return Promise.resolve(!1);const t=!!(PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function R(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function _(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var C=e=>Object.assign(Object.assign({},e.flow),{start:async(t,n,a,o)=>{const r=await K(),s=Object.assign(Object.assign({},n),{redirectUrl:window.location.href,deviceInfo:{webAuthnSupport:r}});return e.flow.start(t,s,a,o)}});const U=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((e=>t=>{const a=e(r(t,{afterRequest:async(e,t)=>{var n;const a=await i(t),o=null===(n=null==a?void 0:a.externalIds)||void 0===n?void 0:n[0];o&&(e=>{c("dls_last_user_external_id",e)})(o)}}));let o=n(a,["flow.start"],S);return o=n(o,["logout","logoutAll"],m),o}),(t=>n=>{var{fpKey:a,fpLoad:o}=n,s=e(n,["fpKey","fpLoad"]);return p?o&&v(a).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(r(s,{beforeRequest:y}))}),(t=>a=>{var o=e(a,["autoRefresh"]);const{clearAllTimers:i,setTimer:l}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})(),c=t(r(o,{afterRequest:async(e,t)=>{const{refreshJwt:n,sessionJwt:a}=await s(t);if(401===(null==t?void 0:t.status))i();else if(a){const e=((o=(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))?o.getTime()-(new Date).getTime():0)-2e4;i(),l((()=>c.refresh(n)),e)}var o}}));return n(c,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return i(),n}))}),(e=>t=>e(r(t,{beforeRequest:g}))),(e=>t=>{const a=O(),o=O(),l=e(r(t,{afterRequest:async(e,t)=>{if(401===(null==t?void 0:t.status))a.pub(null),o.pub(null);else{const e=await i(t);e&&o.pub(e);const{sessionJwt:n}=await s(t);n&&a.pub(n)}}})),c=n(l,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return a.pub(null),o.pub(null),n}));return Object.assign(c,{onSessionTokenChange:a.sub,onUserChange:o.sub})}),(t=>a=>{var{persistTokens:o,sessionTokenViaCookie:i}=a,l=e(a,["persistTokens","sessionTokenViaCookie"]);if(p||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"),!o||!p)return t(l);const c=t(r(l,{beforeRequest:J,afterRequest:async(e,t)=>{401===(null==t?void 0:t.status)?D():I(await s(t),i)}})),u=n(c,["logout","logoutAll"],T);return Object.assign(u,{getRefreshToken:j,getSessionToken:k})}))(((...e)=>{const n=t(...e);return Object.assign(Object.assign({},n),{flow:C(n),webauthn:(a=n,{async signUp(e,t){const n=await a.webauthn.signUp.start(e,window.location.origin,t),o=await x(n.data.options);return await a.webauthn.signUp.finish(n.data.transactionId,o)},async signIn(e){const t=await a.webauthn.signIn.start(e,window.location.origin),n=await A(t.data.options);return await a.webauthn.signIn.finish(t.data.transactionId,n)},async signUpOrIn(e){var t;const n=await a.webauthn.signUpOrIn.start(e,window.location.origin);if(null===(t=n.data)||void 0===t?void 0:t.create){const e=await x(n.data.options);return await a.webauthn.signUp.finish(n.data.transactionId,e)}{const e=await A(n.data.options);return await a.webauthn.signIn.finish(n.data.transactionId,e)}},async update(e,t){const n=await a.webauthn.update.start(e,window.location.origin,t),o=await x(n.data.options);return await a.webauthn.update.finish(n.data.transactionId,o)},helpers:{create:x,get:A,isSupported:K}})});var a}));export{U as default};
//# sourceMappingURL=index.esm.js.map

@@ -1,4 +0,4 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Descope={})}(this,(function(e){"use strict";var t=function(){return t=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},t.apply(this,arguments)};function n(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 r(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function o(e,t,n,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,n):o?o.value=n:t.set(e,n),n}function i(e){this.message=e}i.prototype=new Error,i.prototype.name="InvalidCharacterError";var a="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new i("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,o=0,a=0,s="";r=t.charAt(a++);~r&&(n=o%4?64*n+r:r,o++%4)?s+=String.fromCharCode(255&n>>(-2*o&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return s};function s(e){this.message=e}function c(e,t){if("string"!=typeof e)throw new s("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(a(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 a(t)}}(e.split(".")[n]))}catch(e){throw new s("Invalid token specified: "+e.message)}}s.prototype=new Error,s.prototype.name="InvalidTokenError";var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},l="__lodash_hash_undefined__",d="[object Function]",p="[object GeneratorFunction]",f=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,h=/^\w*$/,g=/^\./,v=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,y=/\\(\\)?/g,b=/^\[object .+?Constructor\]$/,w="object"==typeof u&&u&&u.Object===Object&&u,m="object"==typeof self&&self&&self.Object===Object&&self,k=w||m||Function("return this")();var I,O=Array.prototype,j=Function.prototype,S=Object.prototype,_=k["__core-js_shared__"],x=(I=/[^.]+$/.exec(_&&_.keys&&_.keys.IE_PROTO||""))?"Symbol(src)_1."+I:"",P=j.toString,U=S.hasOwnProperty,T=S.toString,C=RegExp("^"+P.call(U).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),E=k.Symbol,R=O.splice,A=z(k,"Map"),D=z(Object,"create"),q=E?E.prototype:void 0,J=q?q.toString:void 0;function $(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 M(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 K(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 N(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 L(e,t){var n;t=function(e,t){if(G(e))return!1;var n=typeof e;if("number"==n||"symbol"==n||"boolean"==n||null==e||Q(e))return!0;return h.test(e)||!f.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:G(n=t)?n:H(n);for(var r=0,o=t.length;null!=e&&r<o;)e=e[V(t[r++])];return r&&r==o?e:void 0}function B(e){if(!Z(e)||(t=e,x&&x in t))return!1;var t,n=function(e){var t=Z(e)?T.call(e):"";return t==d||t==p}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?C:b;return n.test(function(e){if(null!=e){try{return P.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function F(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 z(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return B(n)?n:void 0}$.prototype.clear=function(){this.__data__=D?D(null):{}},$.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},$.prototype.get=function(e){var t=this.__data__;if(D){var n=t[e];return n===l?void 0:n}return U.call(t,e)?t[e]:void 0},$.prototype.has=function(e){var t=this.__data__;return D?void 0!==t[e]:U.call(t,e)},$.prototype.set=function(e,t){return this.__data__[e]=D&&void 0===t?l:t,this},M.prototype.clear=function(){this.__data__=[]},M.prototype.delete=function(e){var t=this.__data__,n=N(t,e);return!(n<0)&&(n==t.length-1?t.pop():R.call(t,n,1),!0)},M.prototype.get=function(e){var t=this.__data__,n=N(t,e);return n<0?void 0:t[n][1]},M.prototype.has=function(e){return N(this.__data__,e)>-1},M.prototype.set=function(e,t){var n=this.__data__,r=N(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},K.prototype.clear=function(){this.__data__={hash:new $,map:new(A||M),string:new $}},K.prototype.delete=function(e){return F(this,e).delete(e)},K.prototype.get=function(e){return F(this,e).get(e)},K.prototype.has=function(e){return F(this,e).has(e)},K.prototype.set=function(e,t){return F(this,e).set(e,t),this};var H=W((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(Q(e))return J?J.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(t);var n=[];return g.test(e)&&n.push(""),e.replace(v,(function(e,t,r,o){n.push(r?o.replace(y,"$1"):t||e)})),n}));function V(e){if("string"==typeof e||Q(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function W(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(W.Cache||K),n}W.Cache=K;var G=Array.isArray;function Z(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Q(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==T.call(e)}var X=function(e,t,n){var r=null==e?void 0:L(e,t);return void 0===r?n:r},Y="/v1/auth/accesskey/exchange",ee="/v1/auth/otp/verify",te="/v1/auth/otp/signin",ne="/v1/auth/otp/signup",re={email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},oe="/v1/auth/otp/signup-in",ie="/v1/auth/magiclink/verify",ae="/v1/auth/magiclink/signin",se="/v1/auth/magiclink/signup",ce={email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/phone"},ue="/v1/auth/magiclink/signup-in",le="/v1/auth/enchantedlink/verify",de="/v1/auth/enchantedlink/signin",pe="/v1/auth/enchantedlink/signup",fe="/v1/auth/enchantedlink/pending-session",he={email:"/v1/auth/enchantedlink/update/email"},ge="/v1/auth/enchantedlink/signup-in",ve="/v1/auth/oauth/authorize",ye="/v1/auth/oauth/exchange",be="/v1/auth/saml/authorize",we="/v1/auth/saml/exchange",me="/v1/auth/totp/verify",ke="/v1/auth/totp/signup",Ie="/v1/user/totp/update",Oe={start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},je={start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},Se={start:"/v1/auth/webauthn/signup-in/start"},_e={start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"},xe="/v1/flow/start",Pe="/v1/flow/next";const Ue=()=>{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 Te;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(Te||(Te={}));const Ce=(...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}),{})),Ee=e=>void 0===e?void 0:JSON.stringify(e),Re=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},Ae=({baseUrl:e,projectId:t,baseConfig:n,logger:r,hooks:o,cookiePolicy:i})=>{const a=((e,t)=>{const n=t||fetch;if(!n)throw new Error("fetch is not defined");return e?async(...t)=>{e.log((e=>Ue().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.clone?e.clone().text():e.text());return e.text=()=>Promise.resolve(t),e.json=()=>Promise.resolve(JSON.parse(t)),Ue().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(r)),r}:n})(r),s=async r=>{const s=(null==o?void 0:o.beforeRequest)?o.beforeRequest(r):r,{path:c,body:u,headers:l,queryParams:d,method:p,token:f}=s,h=await a((({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:Ce(Re(t,f),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"0.0.41-alpha.35"},(null==n?void 0:n.baseHeaders)||{},l),method:p,body:Ee(u),credentials:i||"include"});return(null==o?void 0:o.afterRequest)&&o.afterRequest(r,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:r}={})=>s({path:e,headers:t,queryParams:n,body:void 0,method:Te.get,token:r}),post:(e,t,{headers:n,queryParams:r,token:o}={})=>s({path:e,headers:n,queryParams:r,body:t,method:Te.post,token:o}),put:(e,t,{headers:n,queryParams:r,token:o}={})=>s({path:e,headers:n,queryParams:r,body:t,method:Te.put,token:o}),delete:(e,t,{headers:n,queryParams:r,token:o}={})=>s({path:e,headers:n,queryParams:r,body:t,method:Te.delete,token:o})}};function De(e,t,n){var r;let o=qe(e);t&&(o=null===(r=o.tenants)||void 0===r?void 0:r[t]);const i=o[n];return Array.isArray(i)?i:[]}function qe(e){if("string"!=typeof e||!e)throw new Error("Invalid token provided");return c(e)}function Je(e){const{exp:t}=qe(e);return(new Date).getTime()/1e3>t}function $e(e,t){return De(e,t,"permissions")}function Me(e,t){return De(e,t,"roles")}const Ke=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function Ne(e,t){const n=await e,r={code:n.status,ok:n.ok,response:n},o=await n.clone().json();return n.ok?r.data=t?t(o):o:r.error=o,r}const Le=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),Be=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),Fe=e=>t=>e.test(t),ze=Fe(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),He=Fe(/^\+[1-9]{1}[0-9]{3,14}$/),Ve=Le(ze,'"{val}" is not a valid email'),We=Le(He,'"{val}" is not a valid phone number'),Ge=Le((1,e=>e.length>=1),"Minimum length is 1");const Ze=Le((e=>"string"==typeof e),"Input is not a string"),Qe=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>Be(...e).validate(n[t]))),t(...n)),Xe=e=>[Ze(`"${e}" must be a string`),Ge(`"${e}" must not be empty`)],Ye=e=>[Ze(`"${e}" must be a string`),Ve()],et=e=>[Ze(`"${e}" must be a string`),We()],tt=Qe(Xe("accessKey")),nt=e=>({exchange:tt((t=>Ne(e.post(Y,{},{token:t}))))});var rt,ot,it,at,st;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(rt||(rt={})),function(e){e.email="email",e.sms="sms",e.whatsapp="whatsapp"}(ot||(ot={})),function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(it||(it={})),function(e){e.signUp="signup",e.signIn="signin",e.verify="verify"}(at||(at={})),function(e){e.signUp="signup",e.signIn="signin",e.verify="verify",e.updatePhone="updatePhone"}(st||(st={}));const ct=Xe("identifier"),ut=Qe(ct,Xe("code")),lt=Qe(ct),dt=Qe(ct,et("phone")),pt=Qe(ct,Ye("email")),ft=e=>({verify:Object.keys(ot).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ut(((t,r)=>Ne(e.post(Ke(ee,n),{code:r,externalId:t}))))})),{}),signIn:Object.keys(ot).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:lt(((t,r,o)=>Ne(e.post(Ke(te,n),{externalId:t,loginOptions:r},{token:o}))))})),{}),signUp:Object.keys(ot).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:lt(((t,r)=>Ne(e.post(Ke(ne,n),{externalId:t,user:r}))))})),{}),signUpOrIn:Object.keys(ot).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:lt((t=>Ne(e.post(Ke(oe,n),{externalId:t}))))})),{}),update:{email:pt(((t,n,r)=>Ne(e.post(re.email,{externalId:t,email:n},{token:r})))),phone:Object.keys(rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:dt(((t,r,o)=>Ne(e.post(Ke(re.phone,n),{externalId:t,phone:r},{token:o}))))})),{})}}),ht=Xe("identifier"),gt=Xe("uri"),vt=Qe(Xe("token")),yt=Qe(ht,gt),bt=Qe(ht,et("phone"),gt),wt=Qe(ht,Ye("email"),gt),mt=e=>({verify:vt((t=>Ne(e.post(ie,{token:t})))),signIn:Object.keys(ot).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:yt(((t,r,o,i)=>Ne(e.post(Ke(ae,n),{externalId:t,URI:r,loginOptions:o},{token:i}))))})),{}),signUp:Object.keys(ot).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:yt(((t,r,o)=>Ne(e.post(Ke(se,n),{externalId:t,URI:r,user:o}))))})),{}),signUpOrIn:Object.keys(ot).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:yt(((t,r)=>Ne(e.post(Ke(ue,n),{externalId:t,URI:r}))))})),{}),update:{email:wt(((t,n,r,o)=>Ne(e.post(ce.email,{externalId:t,email:n,URI:r},{token:o})))),phone:Object.keys(rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:bt(((t,r,o,i)=>Ne(e.post(Ke(ce.phone,n),{externalId:t,phone:r,URI:o},{token:i}))))})),{})}}),kt=Xe("identifier"),It=Xe("uri"),Ot=Qe(Xe("token")),jt=Qe(kt,It),St=Qe(Xe("pendingRef")),_t=Qe(kt,Ye("email"),It),xt=e=>({verify:Ot((t=>Ne(e.post(le,{token:t})))),signIn:jt(((t,n,r,o)=>Ne(e.post(Ke(de,ot.email),{externalId:t,URI:n,loginOptions:r},{token:o})))),signUpOrIn:jt(((t,n)=>Ne(e.post(Ke(ge,ot.email),{externalId:t,URI:n})))),signUp:jt(((t,n,r)=>Ne(e.post(Ke(pe,ot.email),{externalId:t,URI:n,user:r})))),waitForSession:St(((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||6e5,6e5)}))(n);let a;const s=setInterval((async()=>{const n=await e.post(fe,{pendingRef:t});n.ok&&(clearInterval(s),a&&clearTimeout(a),r(Ne(Promise.resolve(n))))}),o);a=setTimeout((()=>{r({error:{message:`Session polling timeout exceeded: ${i}ms`,errorCode:"0"},ok:!1}),clearInterval(s)}),i)})))),update:{email:_t(((t,n,r,o)=>Ne(e.post(he.email,{externalId:t,email:n,URI:r},{token:o}))))}});var Pt;!function(e){e.facebook="facebook",e.github="github",e.google="google",e.microsoft="microsoft",e.gitlab="gitlab",e.apple="apple"}(Pt||(Pt={}));const Ut=Qe(Xe("code")),Tt=e=>({start:Object.keys(Pt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:async(t,{redirect:r=!1}={},o,i)=>{const a=await e.post(ve,o||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:i});if(!r||!a.ok)return Ne(Promise.resolve(a));const{url:s}=await a.json();window.location.href=s}})),{}),exchange:Ut((t=>Ne(e.post(ye,{code:t}))))}),Ct=Qe(Xe("flowId")),Et=Qe(Xe("executionId"),Xe("stepId"),Xe("interactionId")),Rt=e=>({start:Ct(((t,n,r,o)=>Ne(e.post(xe,{flowId:t,options:n,interactionId:r,input:o})))),next:Et(((t,n,r,o)=>Ne(e.post(Pe,{executionId:t,stepId:n,interactionId:r,input:o}))))}),At=Qe(Xe("tenant")),Dt=Qe(Xe("code")),qt=e=>({start:At((async(t,n,{redirect:r=!1}={},o,i)=>{const a=await e.post(be,o||{},{queryParams:{tenant:t,redirectURL:n},token:i});if(!r||!a.ok)return Ne(Promise.resolve(a));const{url:s}=await a.json();window.location.href=s})),exchange:Dt((t=>Ne(e.post(we,{code:t}))))}),Jt=Xe("identifier"),$t=Qe(Jt,Xe("code")),Mt=Qe(Jt),Kt=Qe(Jt),Nt=e=>({signUp:Mt(((t,n)=>Ne(e.post(ke,{externalId:t,user:n})))),verify:$t(((t,n,r,o)=>Ne(e.post(me,{externalId:t,code:n,loginOptions:r},{token:o})))),update:Kt(((t,n)=>Ne(e.post(Ie,{externalId:t},{token:n}))))}),Lt=Xe("identifier"),Bt=Xe("origin"),Ft=Qe(Lt,Bt,Xe("name")),zt=Qe(Lt,Bt),Ht=Qe(Lt,Bt,Xe("token")),Vt=Qe(Xe("transactionId"),Xe("response")),Wt=e=>({signUp:{start:Ft(((t,n,r)=>Ne(e.post(Oe.start,{user:{externalId:t,name:r},origin:n})))),finish:Vt(((t,n)=>Ne(e.post(Oe.finish,{transactionId:t,response:n}))))},signIn:{start:zt(((t,n,r,o)=>Ne(e.post(je.start,{externalId:t,origin:n,loginOptions:r},{token:o})))),finish:Vt(((t,n)=>Ne(e.post(je.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:zt(((t,n)=>Ne(e.post(Se.start,{externalId:t,origin:n}))))},update:{start:Ht(((t,n,r)=>Ne(e.post(_e.start,{externalId:t,origin:n},{token:r})))),finish:Vt(((t,n)=>Ne(e.post(_e.finish,{transactionId:t,response:n}))))}}),Gt=Qe(Xe("token"));var Zt;const Qt=Qe([("projectId",Zt=Xe("projectId"),Le(((e,t)=>e=>Be(...t).validate(X(e,"projectId")))(0,Zt))())])((({projectId:e,logger:t,baseUrl:n,hooks:r,cookiePolicy:o})=>{return i=Ae({baseUrl:n||"https://api.descope.com",projectId:e,logger:t,hooks:r,cookiePolicy:o}),{accessKey:nt(i),otp:ft(i),magicLink:mt(i),enchantedLink:xt(i),oauth:Tt(i),saml:qt(i),totp:Nt(i),webauthn:Wt(i),flow:Rt(i),refresh:e=>Ne(i.post("/v1/auth/refresh",{},{token:e})),logout:e=>Ne(i.post("/v1/auth/logout",{},{token:e})),logoutAll:e=>Ne(i.post("/v1/auth/logoutall",{},{token:e})),me:e=>Ne(i.get("/v1/auth/me",{token:e})),isJwtExpired:Gt(Je),getJwtPermissions:Gt($e),getJwtRoles:Gt(Me),httpClient:i};var i}));Qt.DeliveryMethods=ot;const Xt="undefined"!=typeof window,Yt=Xt&&localStorage.getItem("fingerprint.public.key")||"A9aCLRHzKCv3uL69oqDr",en=Xt&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com",tn="dls_last_user_external_id";function nn(e,t){var n=[];return function(e,t){var n,r,o=(r=function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var i=arguments[t],a=0,s=i.length;a<s;a++,o++)r[o]=i[a];return r}(e),{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"Blocked by CSP"===t||"9319"===t}(e)?o.postpone():o.exclude();var t,r=o.current();if(void 0===r)throw e;return(t=i(),new Promise((function(e){return setTimeout(e,t)}))).then((function(){return s(r,n+1)}))}))};return s(a,0)}(e,(function(e){var r=new Date,o=function(){return n.push({url:e,startedAt:r,finishedAt:new Date})},i=t(e);return i.then(o,o),i})).then((function(e){return[e,{attempts:n}]}))}var rn="Failed to load the JS script of the agent";function on(e){var r;e.scriptUrlPattern;var o=e.token,i=e.apiKey,a=void 0===i?o:i,s=n(e,["scriptUrlPattern","token","apiKey"]),c=null!==(r=function(e,t){return function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}(e,t)?e[t]:void 0}(e,"scriptUrlPattern"))&&void 0!==r?r:"https://fpnpmcdn.net/v<version>/<apiKey>/loader_v<loaderVersion>.js";return Promise.resolve().then((function(){if(!a||"string"!=typeof a)throw new Error("API key required");return nn(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.1"):e}))}(String(e),t)}))}(c,a),an).catch(cn)})).then((function(e){var n=e[0],r=e[1];return n.load(t(t({},s),{ldi:r}))}))}function an(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("Blocked by CSP")}();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(rn))},r.async=!0,r.src=e,i.appendChild(r)}))}(e)})).then(sn)}function sn(){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("9319");return n}function cn(e){throw e instanceof Error&&"9319"===e.message?new Error(rn):e}const un=(e="",t="")=>({vsid:e,vrid:t}),ln=(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},dn=async e=>{try{if(ln())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),n=on({apiKey:e||Yt,endpoint:en}),r=await n,{requestId:o}=await r.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(un(t,o))}catch(e){global.FB_DEBUG&&console.error(e)}};var pn,fn,hn,gn,vn;const yn=e=>Object.assign({},e);class bn{constructor(e){pn.add(this),fn.set(this,void 0),hn.set(this,{}),gn.set(this,0),o(this,fn,e,"f")}get current(){return yn(r(this,fn,"f"))}update(e){const t=e;if(!((e,t)=>{const n=e&&Object.getOwnPropertyNames(e)||[],r=t&&Object.getOwnPropertyNames(t)||[];if(n.length!==r.length)return!1;for(let r=0;r<n.length;r+=1){const o=n[r];if(e[o]!==t[o])return!1}return!0})(r(this,fn,"f"),t)){const e=r(this,fn,"f");o(this,fn,t,"f"),Object.freeze(r(this,fn,"f")),setTimeout((()=>{Object.values(r(this,hn,"f")).forEach((n=>n(yn(t),e)))}),0)}}subscribe(e){o(this,gn,r(this,gn,"f")+1,"f"),r(this,hn,"f")[r(this,gn,"f")]=e;const t=r(this,gn,"f");return()=>r(this,pn,"m",vn).call(this,t.toString())}unsubscribeAll(){o(this,hn,{},"f")}}
!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)),a=e=>r&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(e)),i=e=>r&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(e)),s=e=>Object.assign(e,{headers:Object.assign(Object.assign({},e.headers),{"x-descope-sdk-name":"web-js","x-descope-sdk-version":"0.1.0-alpha.17"})});var c=function(){return c=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},c.apply(this,arguments)};function u(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 l(e){this.message=e}l.prototype=new Error,l.prototype.name="InvalidCharacterError";var d="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new l("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,o=0,a=0,i="";r=t.charAt(a++);~r&&(n=o%4?64*n+r:r,o++%4)?i+=String.fromCharCode(255&n>>(-2*o&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return i};function p(e){this.message=e}function f(e,t){if("string"!=typeof e)throw new p("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(d(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 d(t)}}(e.split(".")[n]))}catch(e){throw new p("Invalid token specified: "+e.message)}}p.prototype=new Error,p.prototype.name="InvalidTokenError";var h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},g="__lodash_hash_undefined__",v="[object Function]",y="[object GeneratorFunction]",b=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,w=/^\w*$/,m=/^\./,k=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,O=/\\(\\)?/g,I=/^\[object .+?Constructor\]$/,j="object"==typeof h&&h&&h.Object===Object&&h,_="object"==typeof self&&self&&self.Object===Object&&self,x=j||_||Function("return this")();var S,U=Array.prototype,P=Function.prototype,R=Object.prototype,E=x["__core-js_shared__"],C=(S=/[^.]+$/.exec(E&&E.keys&&E.keys.IE_PROTO||""))?"Symbol(src)_1."+S:"",T=P.toString,A=R.hasOwnProperty,q=R.toString,D=RegExp("^"+T.call(A).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),J=x.Symbol,$=U.splice,K=Q(x,"Map"),M=Q(Object,"create"),N=J?J.prototype:void 0,L=N?N.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 F(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 H(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 V(e,t){var n;t=function(e,t){if(ee(e))return!1;var n=typeof e;if("number"==n||"symbol"==n||"boolean"==n||null==e||ne(e))return!0;return w.test(e)||!b.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:ee(n=t)?n:W(n);for(var r=0,o=t.length;null!=e&&r<o;)e=e[X(t[r++])];return r&&r==o?e:void 0}function G(e){if(!te(e)||(t=e,C&&C in t))return!1;var t,n=function(e){var t=te(e)?q.call(e):"";return t==v||t==y}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?D:I;return n.test(function(e){if(null!=e){try{return T.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function Z(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 Q(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return G(n)?n:void 0}B.prototype.clear=function(){this.__data__=M?M(null):{}},B.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},B.prototype.get=function(e){var t=this.__data__;if(M){var n=t[e];return n===g?void 0:n}return A.call(t,e)?t[e]:void 0},B.prototype.has=function(e){var t=this.__data__;return M?void 0!==t[e]:A.call(t,e)},B.prototype.set=function(e,t){return this.__data__[e]=M&&void 0===t?g:t,this},F.prototype.clear=function(){this.__data__=[]},F.prototype.delete=function(e){var t=this.__data__,n=H(t,e);return!(n<0)&&(n==t.length-1?t.pop():$.call(t,n,1),!0)},F.prototype.get=function(e){var t=this.__data__,n=H(t,e);return n<0?void 0:t[n][1]},F.prototype.has=function(e){return H(this.__data__,e)>-1},F.prototype.set=function(e,t){var n=this.__data__,r=H(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},z.prototype.clear=function(){this.__data__={hash:new B,map:new(K||F),string:new B}},z.prototype.delete=function(e){return Z(this,e).delete(e)},z.prototype.get=function(e){return Z(this,e).get(e)},z.prototype.has=function(e){return Z(this,e).has(e)},z.prototype.set=function(e,t){return Z(this,e).set(e,t),this};var W=Y((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(ne(e))return L?L.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(t);var n=[];return m.test(e)&&n.push(""),e.replace(k,(function(e,t,r,o){n.push(r?o.replace(O,"$1"):t||e)})),n}));function X(e){if("string"==typeof e||ne(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Y(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],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i),i};return n.cache=new(Y.Cache||z),n}Y.Cache=z;var ee=Array.isArray;function te(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function ne(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==q.call(e)}var re=function(e,t,n){var r=null==e?void 0:V(e,t);return void 0===r?n:r},oe="/v1/auth/accesskey/exchange",ae="/v1/auth/otp/verify",ie="/v1/auth/otp/signin",se="/v1/auth/otp/signup",ce={email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},ue="/v1/auth/otp/signup-in",le="/v1/auth/magiclink/verify",de="/v1/auth/magiclink/signin",pe="/v1/auth/magiclink/signup",fe={email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/phone"},he="/v1/auth/magiclink/signup-in",ge="/v1/auth/enchantedlink/verify",ve="/v1/auth/enchantedlink/signin",ye="/v1/auth/enchantedlink/signup",be="/v1/auth/enchantedlink/pending-session",we={email:"/v1/auth/enchantedlink/update/email"},me="/v1/auth/enchantedlink/signup-in",ke="/v1/auth/oauth/authorize",Oe="/v1/auth/oauth/exchange",Ie="/v1/auth/saml/authorize",je="/v1/auth/saml/exchange",_e="/v1/auth/totp/verify",xe="/v1/auth/totp/signup",Se="/v1/user/totp/update",Ue={start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},Pe={start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},Re={start:"/v1/auth/webauthn/signup-in/start"},Ee={start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"},Ce="/v1/auth/refresh",Te="/v1/auth/logout",Ae="/v1/auth/logoutall",qe="/v1/auth/me",De="/v1/flow/start",Je="/v1/flow/next";const $e=()=>{const e={};return{headers(t){const n="function"==typeof t.entries?Object.fromEntries(t.entries()):t;return e.Headers=JSON.stringify(n),this},body(t){return e.Body=t,this},url(t){return e.Url=t.toString(),this},method(t){return e.Method=t,this},title(t){return e.Title=t,this},status(t){return e.Status=t,this},build:()=>Object.keys(e).flatMap((t=>e[t]?[`${"Title"!==t?`${t}: `:""}${e[t]}`]:[])).join("\n")}};var Ke;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(Ke||(Ke={}));const Me=(...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}),{})),Ne=e=>void 0===e?void 0:JSON.stringify(e),Le=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},Be=({baseUrl:e,projectId:t,baseConfig:n,logger:r,hooks:o,cookiePolicy:a})=>{const i=((e,t)=>{const n=t||fetch;if(!n)throw new Error("fetch is not defined");return e?async(...t)=>{e.log((e=>$e().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.clone?e.clone().text():e.text());return e.text=()=>Promise.resolve(t),e.json=()=>Promise.resolve(JSON.parse(t)),$e().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(r)),r}:n})(r),s=async r=>{const s=(null==o?void 0:o.beforeRequest)?o.beforeRequest(r):r,{path:c,body:u,headers:l,queryParams:d,method:p,token:f}=s,h=await i((({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:Me(Le(t,f),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"0.0.41-alpha.36"},(null==n?void 0:n.baseHeaders)||{},l),method:p,body:Ne(u),credentials:a||"include"});return(null==o?void 0:o.afterRequest)&&o.afterRequest(r,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:r}={})=>s({path:e,headers:t,queryParams:n,body:void 0,method:Ke.get,token:r}),post:(e,t,{headers:n,queryParams:r,token:o}={})=>s({path:e,headers:n,queryParams:r,body:t,method:Ke.post,token:o}),put:(e,t,{headers:n,queryParams:r,token:o}={})=>s({path:e,headers:n,queryParams:r,body:t,method:Ke.put,token:o}),delete:(e,t,{headers:n,queryParams:r,token:o}={})=>s({path:e,headers:n,queryParams:r,body:t,method:Ke.delete,token:o}),hooks:o}};function Fe(e,t,n){var r;let o=ze(e);t&&(o=null===(r=o.tenants)||void 0===r?void 0:r[t]);const a=o[n];return Array.isArray(a)?a:[]}function ze(e){if("string"!=typeof e||!e)throw new Error("Invalid token provided");return f(e)}function He(e){const{exp:t}=ze(e);return(new Date).getTime()/1e3>t}function Ve(e,t){return Fe(e,t,"permissions")}function Ge(e,t){return Fe(e,t,"roles")}const Ze=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function Qe(e,t){const n=await e,r={code:n.status,ok:n.ok,response:n},o=await n.clone().json();return n.ok?r.data=t?t(o):o:r.error=o,r}const We=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),Xe=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),Ye=e=>t=>e.test(t),et=Ye(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),tt=Ye(/^\+[1-9]{1}[0-9]{3,14}$/),nt=We(et,'"{val}" is not a valid email'),rt=We(tt,'"{val}" is not a valid phone number'),ot=We((1,e=>e.length>=1),"Minimum length is 1");const at=We((e=>"string"==typeof e),"Input is not a string"),it=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>Xe(...e).validate(n[t]))),t(...n)),st=e=>[at(`"${e}" must be a string`),ot(`"${e}" must not be empty`)],ct=e=>[at(`"${e}" must be a string`),nt()],ut=e=>[at(`"${e}" must be a string`),rt()],lt=it(st("accessKey")),dt=e=>({exchange:lt((t=>Qe(e.post(oe,{},{token:t}))))});var pt,ft,ht,gt,vt;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(pt||(pt={})),function(e){e.email="email",e.sms="sms",e.whatsapp="whatsapp"}(ft||(ft={})),function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(ht||(ht={})),function(e){e.signUp="signup",e.signIn="signin",e.verify="verify"}(gt||(gt={})),function(e){e.signUp="signup",e.signIn="signin",e.verify="verify",e.updatePhone="updatePhone"}(vt||(vt={}));const yt=st("identifier"),bt=it(yt,st("code")),wt=it(yt),mt=it(yt,ut("phone")),kt=it(yt,ct("email")),Ot=e=>({verify:Object.keys(ft).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:bt(((t,r)=>Qe(e.post(Ze(ae,n),{code:r,externalId:t}))))})),{}),signIn:Object.keys(ft).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:wt(((t,r,o)=>Qe(e.post(Ze(ie,n),{externalId:t,loginOptions:r},{token:o}))))})),{}),signUp:Object.keys(ft).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:wt(((t,r)=>Qe(e.post(Ze(se,n),{externalId:t,user:r}))))})),{}),signUpOrIn:Object.keys(ft).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:wt((t=>Qe(e.post(Ze(ue,n),{externalId:t}))))})),{}),update:{email:kt(((t,n,r)=>Qe(e.post(ce.email,{externalId:t,email:n},{token:r})))),phone:Object.keys(pt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:mt(((t,r,o)=>Qe(e.post(Ze(ce.phone,n),{externalId:t,phone:r},{token:o}))))})),{})}}),It=st("identifier"),jt=st("uri"),_t=it(st("token")),xt=it(It,jt),St=it(It,ut("phone"),jt),Ut=it(It,ct("email"),jt),Pt=e=>({verify:_t((t=>Qe(e.post(le,{token:t})))),signIn:Object.keys(ft).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:xt(((t,r,o,a)=>Qe(e.post(Ze(de,n),{externalId:t,URI:r,loginOptions:o},{token:a}))))})),{}),signUp:Object.keys(ft).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:xt(((t,r,o)=>Qe(e.post(Ze(pe,n),{externalId:t,URI:r,user:o}))))})),{}),signUpOrIn:Object.keys(ft).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:xt(((t,r)=>Qe(e.post(Ze(he,n),{externalId:t,URI:r}))))})),{}),update:{email:Ut(((t,n,r,o)=>Qe(e.post(fe.email,{externalId:t,email:n,URI:r},{token:o})))),phone:Object.keys(pt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:St(((t,r,o,a)=>Qe(e.post(Ze(fe.phone,n),{externalId:t,phone:r,URI:o},{token:a}))))})),{})}}),Rt=st("identifier"),Et=st("uri"),Ct=it(st("token")),Tt=it(Rt,Et),At=it(st("pendingRef")),qt=it(Rt,ct("email"),Et),Dt=e=>({verify:Ct((t=>Qe(e.post(ge,{token:t})))),signIn:Tt(((t,n,r,o)=>Qe(e.post(Ze(ve,ft.email),{externalId:t,URI:n,loginOptions:r},{token:o})))),signUpOrIn:Tt(((t,n)=>Qe(e.post(Ze(me,ft.email),{externalId:t,URI:n})))),signUp:Tt(((t,n,r)=>Qe(e.post(Ze(ye,ft.email),{externalId:t,URI:n,user:r})))),waitForSession:At(((t,n)=>new Promise((r=>{const{pollingIntervalMs:o,timeoutMs:a}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||1e3,1e3),timeoutMs:Math.min(t||6e5,6e5)}))(n);let i;const s=setInterval((async()=>{const n=await e.post(be,{pendingRef:t});n.ok&&(clearInterval(s),i&&clearTimeout(i),r(Qe(Promise.resolve(n))))}),o);i=setTimeout((()=>{r({error:{message:`Session polling timeout exceeded: ${a}ms`,errorCode:"0"},ok:!1}),clearInterval(s)}),a)})))),update:{email:qt(((t,n,r,o)=>Qe(e.post(we.email,{externalId:t,email:n,URI:r},{token:o}))))}});var Jt;!function(e){e.facebook="facebook",e.github="github",e.google="google",e.microsoft="microsoft",e.gitlab="gitlab",e.apple="apple"}(Jt||(Jt={}));const $t=it(st("code")),Kt=e=>({start:Object.keys(Jt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:async(t,{redirect:r=!1}={},o,a)=>{const i=await e.post(ke,o||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:a});if(!r||!i.ok)return Qe(Promise.resolve(i));const{url:s}=await i.json();window.location.href=s}})),{}),exchange:$t((t=>Qe(e.post(Oe,{code:t}))))}),Mt=it(st("flowId")),Nt=it(st("executionId"),st("stepId"),st("interactionId")),Lt=e=>({start:Mt(((t,n,r,o)=>Qe(e.post(De,{flowId:t,options:n,interactionId:r,input:o})))),next:Nt(((t,n,r,o)=>Qe(e.post(Je,{executionId:t,stepId:n,interactionId:r,input:o}))))}),Bt=it(st("tenant")),Ft=it(st("code")),zt=e=>({start:Bt((async(t,n,{redirect:r=!1}={},o,a)=>{const i=await e.post(Ie,o||{},{queryParams:{tenant:t,redirectURL:n},token:a});if(!r||!i.ok)return Qe(Promise.resolve(i));const{url:s}=await i.json();window.location.href=s})),exchange:Ft((t=>Qe(e.post(je,{code:t}))))}),Ht=st("identifier"),Vt=it(Ht,st("code")),Gt=it(Ht),Zt=it(Ht),Qt=e=>({signUp:Gt(((t,n)=>Qe(e.post(xe,{externalId:t,user:n})))),verify:Vt(((t,n,r,o)=>Qe(e.post(_e,{externalId:t,code:n,loginOptions:r},{token:o})))),update:Zt(((t,n)=>Qe(e.post(Se,{externalId:t},{token:n}))))}),Wt=st("identifier"),Xt=st("origin"),Yt=it(Wt,Xt,st("name")),en=it(Wt,Xt),tn=it(Wt,Xt,st("token")),nn=it(st("transactionId"),st("response")),rn=e=>({signUp:{start:Yt(((t,n,r)=>Qe(e.post(Ue.start,{user:{externalId:t,name:r},origin:n})))),finish:nn(((t,n)=>Qe(e.post(Ue.finish,{transactionId:t,response:n}))))},signIn:{start:en(((t,n,r,o)=>Qe(e.post(Pe.start,{externalId:t,origin:n,loginOptions:r},{token:o})))),finish:nn(((t,n)=>Qe(e.post(Pe.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:en(((t,n)=>Qe(e.post(Re.start,{externalId:t,origin:n}))))},update:{start:tn(((t,n,r)=>Qe(e.post(Ee.start,{externalId:t,origin:n},{token:r})))),finish:nn(((t,n)=>Qe(e.post(Ee.finish,{transactionId:t,response:n}))))}}),on=it(st("token")),an=(e,t,n)=>(t.forEach((t=>{const r=t.split(".");let o=r.shift(),a=e;for(;r.length>0;){if(a=a[o],!o||!a)throw Error(`Invalid path "${t}", "${o}" is missing or has no value`);o=r.shift()}if("function"!=typeof a[o])throw Error(`"${t}" is not a function`);const i=a[o];a[o]=n(i)})),e);var sn;let cn=it([("projectId",sn=st("projectId"),We(((e,t)=>e=>Xe(...t).validate(re(e,"projectId")))(0,sn))())])((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})=>{return a=Be({baseUrl:n||"https://api.descope.com",projectId:e,logger:t,hooks:r,cookiePolicy:o}),{accessKey:dt(a),otp:Ot(a),magicLink:Pt(a),enchantedLink:Dt(a),oauth:Kt(a),saml:zt(a),totp:Qt(a),webauthn:rn(a),flow:Lt(a),refresh:e=>Qe(a.post(Ce,{},{token:e})),logout:e=>Qe(a.post(Te,{},{token:e})),logoutAll:e=>Qe(a.post(Ae,{},{token:e})),me:e=>Qe(a.get(qe,{token:e})),isJwtExpired:on(He),getJwtPermissions:on(Ve),getJwtRoles:on(Ge),httpClient:a};var a})(Object.assign(Object.assign({},e),{hooks:{beforeRequest:e=>null==r?void 0:r.reduce(((e,t)=>t(e)),e),afterRequest:(e,t)=>{null==o||o.forEach((n=>n(e,null==t?void 0:t.clone())))}}}))}));var un=Object.assign(cn,{DeliveryMethods:ft});const ln="undefined"!=typeof window,dn=ln&&localStorage.getItem("fingerprint.public.key")||"A9aCLRHzKCv3uL69oqDr",pn=ln&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com";function fn(e,t){var n=[];return function(e,t){var n,r,o=(r=function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var a=arguments[t],i=0,s=a.length;i<s;i++,o++)r[o]=a[i];return r}(e),{current:function(){return r[0]},postpone:function(){var e=r.shift();void 0!==e&&r.push(e)},exclude:function(){r.shift()}}),a=(100,3e3,n=0,function(){return Math.random()*Math.min(3e3,100*Math.pow(2,n++))}),i=o.current();if(void 0===i)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"Blocked by CSP"===t||"9319"===t}(e)?o.postpone():o.exclude();var t,r=o.current();if(void 0===r)throw e;return(t=a(),new Promise((function(e){return setTimeout(e,t)}))).then((function(){return s(r,n+1)}))}))};return s(i,0)}(e,(function(e){var r=new Date,o=function(){return n.push({url:e,startedAt:r,finishedAt:new Date})},a=t(e);return a.then(o,o),a})).then((function(e){return[e,{attempts:n}]}))}var hn="Failed to load the JS script of the agent";function gn(e){var t;e.scriptUrlPattern;var n=e.token,r=e.apiKey,o=void 0===r?n:r,a=u(e,["scriptUrlPattern","token","apiKey"]),i=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");return fn(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.1"):e}))}(String(e),t)}))}(i,o),vn).catch(bn)})).then((function(e){var t=e[0],n=e[1];return t.load(c(c({},a),{ldi:n}))}))}function vn(e){return function(e,t,n,r){var o,a=document,i="securitypolicyviolation",s=function(t){var n=new URL(e,location.href),r=t.blockedURI;r!==n.href&&r!==n.protocol.slice(0,-1)&&r!==n.origin||(o=t,c())};a.addEventListener(i,s);var c=function(){return a.removeEventListener(i,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("Blocked by CSP")}();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)},a=document.head||document.getElementsByTagName("head")[0];r.onload=function(){o(),t()},r.onerror=function(){o(),n(new Error(hn))},r.async=!0,r.src=e,a.appendChild(r)}))}(e)})).then(yn)}function yn(){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("9319");return n}function bn(e){throw e instanceof Error&&"9319"===e.message?new Error(hn):e}const wn=(e="",t="")=>({vsid:e,vrid:t}),mn=(e=!1)=>{const t=localStorage.getItem("fp");if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>n.expiry&&!e?null:n.value},kn=async e=>{try{if(mn())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),n=gn({apiKey:e||dn,endpoint:pn}),r=await n,{requestId:o}=await r.get({linkedId:t});(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem("fp",JSON.stringify(t))})(wn(t,o))}catch(e){global.FB_DEBUG&&console.error(e)}},On=e=>(e.body&&(e.body.fpData=mn(!0)||wn()),e),In="dls_last_user_external_id",jn=e=>async(...t)=>{t[1]=t[1]||{};const[,n]=t,r=a(In);r&&(n.lastUser={externalId:r});return await e(...t)},_n=e=>async(...t)=>{const n=await e(...t);return i(In),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)}}}
/*! js-cookie v3.0.1 | MIT */
function wn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]=n[r]}return e}fn=new WeakMap,hn=new WeakMap,gn=new WeakMap,pn=new WeakSet,vn=function(e){!!r(this,hn,"f")[e]&&delete r(this,hn,"f")[e]};var mn=function e(t,n){function r(e,r,o){if("undefined"!=typeof document){"number"==typeof(o=wn({},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,"",wn({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,wn({},this.attributes,t))},withConverter:function(t){return e(wn({},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 kn="DS",In="DSR";let On=[];function jn(e,t,n){const r=function(e){const t=e.split(".");try{if(3===t.length){const t=JSON.parse(window.atob(e.split(".")[1]));if(t.exp)return new Date(1e3*t.exp)}}catch(e){}return null}(t);if(r){let t;for(;t=On.pop();)clearTimeout(t);const o=r.getTime()-2e4-(new Date).getTime(),i=setTimeout((()=>{e(n)}),o);On.push(i)}}async function Sn(e,t,r,o){var i;try{if(401===t.status)return r.sessionToken.update({sessionToken:""}),void r.user.update({});const a=await(null==t?void 0:t.json());if(a){const t=function(e){return(null==e?void 0:e.authInfo)||e||{}}(a),{sessionJwt:s,refreshJwt:c,user:u}=t,l=n(t,["sessionJwt","refreshJwt","user"]);if(o.persistTokens&&(function(e,{cookiePath:t,cookieDomain:n,cookieExpiration:r},o){e&&(o?mn.set(kn,e,{path:t,domain:n,expires:r,sameSite:"None",secure:!0}):localStorage&&localStorage.setItem(kn,e))}(s,l,o.sessionTokenViaCookie),function(e){localStorage&&e&&localStorage.setItem(In,e)}(c)),s&&r.sessionToken.update({sessionToken:s}),u){const e=null===(i=null==u?void 0:u.externalIds)||void 0===i?void 0:i[0];Xt&&e&&(null===localStorage||void 0===localStorage||localStorage.setItem(tn,e)),r.user.update(u)}s&&c&&o.autoRefresh&&jn(e,s,c)}}catch(e){console.error("Could not set tokens from body",e)}}function _n(){return localStorage?null===localStorage||void 0===localStorage?void 0:localStorage.getItem(In):""}async function xn(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=Tn(n.publicKey.challenge),n.publicKey.user.id=Tn(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=Tn(e.id)})),n}(e),n=await navigator.credentials.create(t);return r=n,JSON.stringify(Object.assign(Object.assign({},r),{rawId:Cn(r.rawId),response:Object.assign(Object.assign({},r.response),{attestationObject:Cn(r.response.attestationObject),clientDataJSON:Cn(r.response.clientDataJSON)})}));var r}async function Pn(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=Tn(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=Tn(e.id)})),n}(e),n=await navigator.credentials.get(t);return r=n,JSON.stringify(Object.assign(Object.assign({},r),{rawId:Cn(r.rawId),response:Object.assign(Object.assign({},r.response),{authenticatorData:Cn(r.response.authenticatorData),clientDataJSON:Cn(r.response.clientDataJSON),signature:Cn(r.response.signature),userHandle:r.response.userHandle?Cn(r.response.userHandle):void 0})}));var r}async function Un(e=!1){if(!Xt)return Promise.resolve(!1);const t=!!(PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function Tn(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function Cn(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}e.createSdk=e=>{var{autoRefresh:t=!0,persistTokens:r=!0,sessionTokenViaCookie:o,fpKey:i,fpLoad:a}=e,s=n(e,["autoRefresh","persistTokens","sessionTokenViaCookie","fpKey","fpLoad"]);Xt?a&&dn(i).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server");const c=s;let u,l;const d=new bn({sessionToken:""}),p=new bn({});c.hooks={beforeRequest:e=>null==u?void 0:u(e),afterRequest:(e,t)=>null==l?void 0:l(e,t)};const f=Qt(c),h=(g=f,{async signUp(e,t){const n=await g.webauthn.signUp.start(e,window.location.origin,t),r=await xn(n.data.options);return await g.webauthn.signUp.finish(n.data.transactionId,r)},async signIn(e){const t=await g.webauthn.signIn.start(e,window.location.origin),n=await Pn(t.data.options);return await g.webauthn.signIn.finish(t.data.transactionId,n)},async signUpOrIn(e){var t;const n=await g.webauthn.signUpOrIn.start(e,window.location.origin);if(null===(t=n.data)||void 0===t?void 0:t.create){const e=await xn(n.data.options);return await g.webauthn.signUp.finish(n.data.transactionId,e)}{const e=await Pn(n.data.options);return await g.webauthn.signIn.finish(n.data.transactionId,e)}},async update(e,t){const n=await g.webauthn.update.start(e,window.location.origin,t),r=await xn(n.data.options);return await g.webauthn.update.finish(n.data.transactionId,r)},helpers:{create:xn,get:Pn,isSupported:Un}});var g;const v=Object.assign(Object.assign({},f),{flow:Object.assign(Object.assign({},f.flow),{start:async(e,t,n,r)=>{const o=await h.helpers.isSupported(),i=null===localStorage||void 0===localStorage?void 0:localStorage.getItem(tn),a={tenant:null==t?void 0:t.tenant,redirectUrl:window.location.href,deviceInfo:{webAuthnSupport:o}};return i&&(a.lastUser={externalId:i}),f.flow.start(e,a,n,r)}}),webauthn:h,onSessionTokenChange:e=>{var t;const n=null===(t=d.current)||void 0===t?void 0:t.sessionToken;return n&&e(n),d.subscribe((({sessionToken:t})=>{e(t)}))},onUserChange:e=>{const t=p.current;return t&&Object.entries(t).length>0&&e(t),p.subscribe((t=>{e(t)}))},getRefreshToken:_n});return Xt?(t&&["logout","logoutAll"].forEach((e=>{const t=f[e];v[e]=(...e)=>{const n=_n(),r=[(null==e?void 0:e.shift())||n,...e],o=t(...r);return null===localStorage||void 0===localStorage||localStorage.removeItem(In),null===localStorage||void 0===localStorage||localStorage.removeItem(kn),mn.remove(kn),Xt&&(null===localStorage||void 0===localStorage||localStorage.removeItem(tn)),d.update({sessionToken:""}),o}})),u=e=>(e.body&&(e.body.fpData=ln(!0)||un()),!e.token&&r&&(e.token=_n()),e.headers=Object.assign(Object.assign({},e.headers),{"x-descope-sdk-name":"web-js","x-descope-sdk-version":"0.1.0-alpha.16"}),e),v.me=async(...e)=>{var t;const n=await f.me(...e);if(n.ok){const e=await(null===(t=n.response)||void 0===t?void 0:t.clone().json());p.update(e)}return n},(t||r)&&(l=(e,n)=>{Sn(v.refresh,n,{sessionToken:d,user:p},{autoRefresh:t,persistTokens:r,sessionTokenViaCookie:o})}),t&&_n()&&v.refresh(),v):(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"),v)},e.getSessionToken=function(){return mn.get(kn)||(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(kn))||""},Object.defineProperty(e,"__esModule",{value:!0})}));
function Sn(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 Un=function e(t,n){function r(e,r,o){if("undefined"!=typeof document){"number"==typeof(o=Sn({},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 a="";for(var i in o)o[i]&&(a+="; "+i,!0!==o[i]&&(a+="="+o[i].split(";")[0]));return document.cookie=e+"="+t.write(r,e)+a}}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 a=n[o].split("="),i=a.slice(1).join("=");try{var s=decodeURIComponent(a[0]);if(r[s]=t.read(i,s),e===s)break}catch(e){}}return e?r[e]:r}},remove:function(e,t){r(e,"",Sn({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,Sn({},this.attributes,t))},withConverter:function(t){return e(Sn({},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 Pn="DS",Rn="DSR";const En=(e={},t)=>{var{refreshJwt:n,sessionJwt:r}=e,a=u(e,["refreshJwt","sessionJwt"]);void 0===t&&(t=!1),n&&o(Rn,n),r&&(t?function(e,t,{cookiePath:n,cookieDomain:r,cookieExpiration:o}){if(t){const a=new Date(1e3*o);Un.set(e,t,{path:n,domain:r,expires:a,sameSite:"None",secure:!0})}}(Pn,r,a):o(Pn,r))};function Cn(){return a(Rn)||""}function Tn(){return Un.get(Pn)||a(Pn)||""}function An(){i(Rn),i(Pn),Un.remove(Pn)}const qn=e=>Object.assign(e,{token:e.token||Cn()}),Dn=e=>async(...t)=>{const n=await e(...t);return An(),n};async function Jn(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=Mn(n.publicKey.challenge),n.publicKey.user.id=Mn(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=Mn(e.id)})),n}(e),n=await navigator.credentials.create(t);return r=n,JSON.stringify(Object.assign(Object.assign({},r),{rawId:Nn(r.rawId),response:Object.assign(Object.assign({},r.response),{attestationObject:Nn(r.response.attestationObject),clientDataJSON:Nn(r.response.clientDataJSON)})}));var r}async function $n(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=Mn(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=Mn(e.id)})),n}(e),n=await navigator.credentials.get(t);return r=n,JSON.stringify(Object.assign(Object.assign({},r),{rawId:Nn(r.rawId),response:Object.assign(Object.assign({},r.response),{authenticatorData:Nn(r.response.authenticatorData),clientDataJSON:Nn(r.response.clientDataJSON),signature:Nn(r.response.signature),userHandle:r.response.userHandle?Nn(r.response.userHandle):void 0})}));var r}async function Kn(e=!1){if(!ln)return Promise.resolve(!1);const t=!!(PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return t&&e&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():t}function Mn(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function Nn(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var Ln=e=>Object.assign(Object.assign({},e.flow),{start:async(t,n,r,o)=>{const a=await Kn(),i=Object.assign(Object.assign({},n),{redirectUrl:window.location.href,deviceInfo:{webAuthnSupport:a}});return e.flow.start(t,i,r,o)}});const Bn=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>r=>{const a=t(e(r,{afterRequest:async(e,t)=>{var r;const a=await n(t),i=null===(r=null==a?void 0:a.externalIds)||void 0===r?void 0:r[0];i&&(e=>{o(In,e)})(i)}}));let i=an(a,["flow.start"],jn);return i=an(i,["logout","logoutAll"],_n),i}),(t=>n=>{var{fpKey:r,fpLoad:o}=n,a=u(n,["fpKey","fpLoad"]);return ln?o&&kn(r).catch((()=>null)):console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(e(a,{beforeRequest:On}))}),(n=>r=>{var o=u(r,["autoRefresh"]);const{clearAllTimers:a,setTimer:i}=(()=>{const e=[];return{clearAllTimers:()=>{for(;e.length;)clearTimeout(e.pop())},setTimer:(t,n)=>{e.push(setTimeout(t,n))}}})(),s=n(e(o,{afterRequest:async(e,n)=>{const{refreshJwt:r,sessionJwt:o}=await t(n);if(401===(null==n?void 0:n.status))a();else if(o){const e=((c=(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))?c.getTime()-(new Date).getTime():0)-2e4;a(),i((()=>s.refresh(r)),e)}var c}}));return an(s,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return a(),n}))}),(t=>n=>t(e(n,{beforeRequest:s}))),(r=>o=>{const a=xn(),i=xn(),s=r(e(o,{afterRequest:async(e,r)=>{if(401===(null==r?void 0:r.status))a.pub(null),i.pub(null);else{const e=await n(r);e&&i.pub(e);const{sessionJwt:o}=await t(r);o&&a.pub(o)}}})),c=an(s,["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})}),(n=>r=>{var{persistTokens:o,sessionTokenViaCookie:a}=r,i=u(r,["persistTokens","sessionTokenViaCookie"]);if(ln||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"),!o||!ln)return n(i);const s=n(e(i,{beforeRequest:qn,afterRequest:async(e,n)=>{401===(null==n?void 0:n.status)?An():En(await t(n),a)}})),c=an(s,["logout","logoutAll"],Dn);return Object.assign(c,{getRefreshToken:Cn,getSessionToken:Tn})}))(((...e)=>{const t=un(...e);return Object.assign(Object.assign({},t),{flow:Ln(t),webauthn:(n=t,{async signUp(e,t){const r=await n.webauthn.signUp.start(e,window.location.origin,t),o=await Jn(r.data.options);return await n.webauthn.signUp.finish(r.data.transactionId,o)},async signIn(e){const t=await n.webauthn.signIn.start(e,window.location.origin),r=await $n(t.data.options);return await n.webauthn.signIn.finish(t.data.transactionId,r)},async signUpOrIn(e){var t;const r=await n.webauthn.signUpOrIn.start(e,window.location.origin);if(null===(t=r.data)||void 0===t?void 0:t.create){const e=await Jn(r.data.options);return await n.webauthn.signUp.finish(r.data.transactionId,e)}{const e=await $n(r.data.options);return await n.webauthn.signIn.finish(r.data.transactionId,e)}},async update(e,t){const r=await n.webauthn.update.start(e,window.location.origin,t),o=await Jn(r.data.options);return await n.webauthn.update.finish(r.data.transactionId,o)},helpers:{create:Jn,get:$n,isSupported:Kn}})});var n}));return Bn}));
//# sourceMappingURL=index.umd.js.map
{
"name": "@descope/web-js-sdk",
"version": "0.1.0-alpha.16",
"version": "0.1.0-alpha.17",
"main": "dist/cjs/index.cjs.js",

@@ -52,3 +52,3 @@ "module": "dist/index.esm.js",

"@typescript-eslint/parser": "^5.33.1",
"eslint": "8.29.0",
"eslint": "8.30.0",
"eslint-config-airbnb-typescript": "17.0.0",

@@ -62,3 +62,3 @@ "eslint-config-prettier": "8.5.0",

"eslint-plugin-jest-formatting": "3.1.0",
"eslint-plugin-n": "15.5.1",
"eslint-plugin-n": "15.6.0",
"eslint-plugin-no-only-tests": "3.1.0",

@@ -90,3 +90,3 @@ "eslint-plugin-prefer-arrow": "1.2.3",

"dependencies": {
"@descope/core-js-sdk": "0.0.41-alpha.35",
"@descope/core-js-sdk": "0.0.41-alpha.36",
"@fingerprintjs/fingerprintjs-pro": "3.8.1",

@@ -93,0 +93,0 @@ "js-cookie": "3.0.1"

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc