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