@descope/web-js-sdk 1.9.0 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/index.d.ts +96 -4
- 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,V=(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});var W=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await q(),a=Object.assign(Object.assign({location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});return t[1]=a,e.flow.start(...t)}});const M=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>n=>{var{fpKey:a,fpLoad:i}=n,r=e.__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.9.
|
|
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,V=(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});var W=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await q(),a=Object.assign(Object.assign({location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});return t[1]=a,e.flow.start(...t)}});const M=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>n=>{var{fpKey:a,fpLoad:i}=n,r=e.__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.9.1"},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:W(t),webauthn:V(t)})}));exports.REFRESH_TOKEN_KEY=x,exports.SESSION_TOKEN_KEY=U,exports.clearFingerprintData=()=>{localStorage.removeItem(v)},exports.default=M,exports.ensureFingerprintIds=m;
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -216,6 +216,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
216
216
|
email: <T extends boolean>(loginId: string, email: string, token?: string, updateOptions?: {
|
|
217
217
|
addToLoginIDs?: T;
|
|
218
218
|
onMergeUseExisting?: T extends true ? boolean : never;
|
|
219
|
+
templateOptions?: {
|
|
220
|
+
[x: string]: string;
|
|
221
|
+
};
|
|
219
222
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
220
223
|
maskedEmail: string;
|
|
221
224
|
}>>;
|
|
@@ -223,12 +226,18 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
223
226
|
sms: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
224
227
|
addToLoginIDs?: T_1;
|
|
225
228
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
229
|
+
templateOptions?: {
|
|
230
|
+
[x: string]: string;
|
|
231
|
+
};
|
|
226
232
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
227
233
|
maskedPhone: string;
|
|
228
234
|
}>>;
|
|
229
235
|
whatsapp: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
230
236
|
addToLoginIDs?: T_1;
|
|
231
237
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
238
|
+
templateOptions?: {
|
|
239
|
+
[x: string]: string;
|
|
240
|
+
};
|
|
232
241
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
233
242
|
maskedPhone: string;
|
|
234
243
|
}>>;
|
|
@@ -295,6 +304,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
295
304
|
email: <T_2 extends boolean>(loginId: string, email: string, URI?: string, token?: string, updateOptions?: {
|
|
296
305
|
addToLoginIDs?: T_2;
|
|
297
306
|
onMergeUseExisting?: T_2 extends true ? boolean : never;
|
|
307
|
+
templateOptions?: {
|
|
308
|
+
[x: string]: string;
|
|
309
|
+
};
|
|
298
310
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
299
311
|
maskedEmail: string;
|
|
300
312
|
}>>;
|
|
@@ -302,12 +314,18 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
302
314
|
sms: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
303
315
|
addToLoginIDs?: T_3;
|
|
304
316
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
317
|
+
templateOptions?: {
|
|
318
|
+
[x: string]: string;
|
|
319
|
+
};
|
|
305
320
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
306
321
|
maskedPhone: string;
|
|
307
322
|
}>>;
|
|
308
323
|
whatsapp: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
309
324
|
addToLoginIDs?: T_3;
|
|
310
325
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
326
|
+
templateOptions?: {
|
|
327
|
+
[x: string]: string;
|
|
328
|
+
};
|
|
311
329
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
312
330
|
maskedPhone: string;
|
|
313
331
|
}>>;
|
|
@@ -334,6 +352,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
334
352
|
email: <T_4 extends boolean>(loginId: string, email: string, URI?: string, token?: string, updateOptions?: {
|
|
335
353
|
addToLoginIDs?: T_4;
|
|
336
354
|
onMergeUseExisting?: T_4 extends true ? boolean : never;
|
|
355
|
+
templateOptions?: {
|
|
356
|
+
[x: string]: string;
|
|
357
|
+
};
|
|
337
358
|
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
|
|
338
359
|
};
|
|
339
360
|
};
|
|
@@ -377,7 +398,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
377
398
|
phone?: string;
|
|
378
399
|
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
379
400
|
signIn: (loginId: string, password: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
380
|
-
sendReset: (loginId: string, redirectUrl?: string
|
|
401
|
+
sendReset: (loginId: string, redirectUrl?: string, templateOptions?: {
|
|
402
|
+
[x: string]: string;
|
|
403
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
381
404
|
resetMethod: string;
|
|
382
405
|
pendingRef?: string;
|
|
383
406
|
linkId?: string;
|
|
@@ -584,6 +607,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
584
607
|
email: <T extends boolean>(loginId: string, email: string, token?: string, updateOptions?: {
|
|
585
608
|
addToLoginIDs?: T;
|
|
586
609
|
onMergeUseExisting?: T extends true ? boolean : never;
|
|
610
|
+
templateOptions?: {
|
|
611
|
+
[x: string]: string;
|
|
612
|
+
};
|
|
587
613
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
588
614
|
maskedEmail: string;
|
|
589
615
|
}>>;
|
|
@@ -591,12 +617,18 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
591
617
|
sms: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
592
618
|
addToLoginIDs?: T_1;
|
|
593
619
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
620
|
+
templateOptions?: {
|
|
621
|
+
[x: string]: string;
|
|
622
|
+
};
|
|
594
623
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
595
624
|
maskedPhone: string;
|
|
596
625
|
}>>;
|
|
597
626
|
whatsapp: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
598
627
|
addToLoginIDs?: T_1;
|
|
599
628
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
629
|
+
templateOptions?: {
|
|
630
|
+
[x: string]: string;
|
|
631
|
+
};
|
|
600
632
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
601
633
|
maskedPhone: string;
|
|
602
634
|
}>>;
|
|
@@ -663,6 +695,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
663
695
|
email: <T_2 extends boolean>(loginId: string, email: string, URI?: string, token?: string, updateOptions?: {
|
|
664
696
|
addToLoginIDs?: T_2;
|
|
665
697
|
onMergeUseExisting?: T_2 extends true ? boolean : never;
|
|
698
|
+
templateOptions?: {
|
|
699
|
+
[x: string]: string;
|
|
700
|
+
};
|
|
666
701
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
667
702
|
maskedEmail: string;
|
|
668
703
|
}>>;
|
|
@@ -670,12 +705,18 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
670
705
|
sms: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
671
706
|
addToLoginIDs?: T_3;
|
|
672
707
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
708
|
+
templateOptions?: {
|
|
709
|
+
[x: string]: string;
|
|
710
|
+
};
|
|
673
711
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
674
712
|
maskedPhone: string;
|
|
675
713
|
}>>;
|
|
676
714
|
whatsapp: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
677
715
|
addToLoginIDs?: T_3;
|
|
678
716
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
717
|
+
templateOptions?: {
|
|
718
|
+
[x: string]: string;
|
|
719
|
+
};
|
|
679
720
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
680
721
|
maskedPhone: string;
|
|
681
722
|
}>>;
|
|
@@ -702,6 +743,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
702
743
|
email: <T_4 extends boolean>(loginId: string, email: string, URI?: string, token?: string, updateOptions?: {
|
|
703
744
|
addToLoginIDs?: T_4;
|
|
704
745
|
onMergeUseExisting?: T_4 extends true ? boolean : never;
|
|
746
|
+
templateOptions?: {
|
|
747
|
+
[x: string]: string;
|
|
748
|
+
};
|
|
705
749
|
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
|
|
706
750
|
};
|
|
707
751
|
};
|
|
@@ -745,7 +789,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
745
789
|
phone?: string;
|
|
746
790
|
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
747
791
|
signIn: (loginId: string, password: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
748
|
-
sendReset: (loginId: string, redirectUrl?: string
|
|
792
|
+
sendReset: (loginId: string, redirectUrl?: string, templateOptions?: {
|
|
793
|
+
[x: string]: string;
|
|
794
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
749
795
|
resetMethod: string;
|
|
750
796
|
pendingRef?: string;
|
|
751
797
|
linkId?: string;
|
|
@@ -961,6 +1007,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
961
1007
|
email: <T extends boolean>(loginId: string, email: string, token?: string, updateOptions?: {
|
|
962
1008
|
addToLoginIDs?: T;
|
|
963
1009
|
onMergeUseExisting?: T extends true ? boolean : never;
|
|
1010
|
+
templateOptions?: {
|
|
1011
|
+
[x: string]: string;
|
|
1012
|
+
};
|
|
964
1013
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
965
1014
|
maskedEmail: string;
|
|
966
1015
|
}>>;
|
|
@@ -968,12 +1017,18 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
968
1017
|
sms: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
969
1018
|
addToLoginIDs?: T_1;
|
|
970
1019
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
1020
|
+
templateOptions?: {
|
|
1021
|
+
[x: string]: string;
|
|
1022
|
+
};
|
|
971
1023
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
972
1024
|
maskedPhone: string;
|
|
973
1025
|
}>>;
|
|
974
1026
|
whatsapp: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
975
1027
|
addToLoginIDs?: T_1;
|
|
976
1028
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
1029
|
+
templateOptions?: {
|
|
1030
|
+
[x: string]: string;
|
|
1031
|
+
};
|
|
977
1032
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
978
1033
|
maskedPhone: string;
|
|
979
1034
|
}>>;
|
|
@@ -1040,6 +1095,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1040
1095
|
email: <T_2 extends boolean>(loginId: string, email: string, URI?: string, token?: string, updateOptions?: {
|
|
1041
1096
|
addToLoginIDs?: T_2;
|
|
1042
1097
|
onMergeUseExisting?: T_2 extends true ? boolean : never;
|
|
1098
|
+
templateOptions?: {
|
|
1099
|
+
[x: string]: string;
|
|
1100
|
+
};
|
|
1043
1101
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1044
1102
|
maskedEmail: string;
|
|
1045
1103
|
}>>;
|
|
@@ -1047,12 +1105,18 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1047
1105
|
sms: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
1048
1106
|
addToLoginIDs?: T_3;
|
|
1049
1107
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
1108
|
+
templateOptions?: {
|
|
1109
|
+
[x: string]: string;
|
|
1110
|
+
};
|
|
1050
1111
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1051
1112
|
maskedPhone: string;
|
|
1052
1113
|
}>>;
|
|
1053
1114
|
whatsapp: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
1054
1115
|
addToLoginIDs?: T_3;
|
|
1055
1116
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
1117
|
+
templateOptions?: {
|
|
1118
|
+
[x: string]: string;
|
|
1119
|
+
};
|
|
1056
1120
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1057
1121
|
maskedPhone: string;
|
|
1058
1122
|
}>>;
|
|
@@ -1079,6 +1143,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1079
1143
|
email: <T_4 extends boolean>(loginId: string, email: string, URI?: string, token?: string, updateOptions?: {
|
|
1080
1144
|
addToLoginIDs?: T_4;
|
|
1081
1145
|
onMergeUseExisting?: T_4 extends true ? boolean : never;
|
|
1146
|
+
templateOptions?: {
|
|
1147
|
+
[x: string]: string;
|
|
1148
|
+
};
|
|
1082
1149
|
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
|
|
1083
1150
|
};
|
|
1084
1151
|
};
|
|
@@ -1122,7 +1189,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1122
1189
|
phone?: string;
|
|
1123
1190
|
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1124
1191
|
signIn: (loginId: string, password: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1125
|
-
sendReset: (loginId: string, redirectUrl?: string
|
|
1192
|
+
sendReset: (loginId: string, redirectUrl?: string, templateOptions?: {
|
|
1193
|
+
[x: string]: string;
|
|
1194
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1126
1195
|
resetMethod: string;
|
|
1127
1196
|
pendingRef?: string;
|
|
1128
1197
|
linkId?: string;
|
|
@@ -1329,6 +1398,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1329
1398
|
email: <T extends boolean>(loginId: string, email: string, token?: string, updateOptions?: {
|
|
1330
1399
|
addToLoginIDs?: T;
|
|
1331
1400
|
onMergeUseExisting?: T extends true ? boolean : never;
|
|
1401
|
+
templateOptions?: {
|
|
1402
|
+
[x: string]: string;
|
|
1403
|
+
};
|
|
1332
1404
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1333
1405
|
maskedEmail: string;
|
|
1334
1406
|
}>>;
|
|
@@ -1336,12 +1408,18 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1336
1408
|
sms: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
1337
1409
|
addToLoginIDs?: T_1;
|
|
1338
1410
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
1411
|
+
templateOptions?: {
|
|
1412
|
+
[x: string]: string;
|
|
1413
|
+
};
|
|
1339
1414
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1340
1415
|
maskedPhone: string;
|
|
1341
1416
|
}>>;
|
|
1342
1417
|
whatsapp: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
1343
1418
|
addToLoginIDs?: T_1;
|
|
1344
1419
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
1420
|
+
templateOptions?: {
|
|
1421
|
+
[x: string]: string;
|
|
1422
|
+
};
|
|
1345
1423
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1346
1424
|
maskedPhone: string;
|
|
1347
1425
|
}>>;
|
|
@@ -1408,6 +1486,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1408
1486
|
email: <T_2 extends boolean>(loginId: string, email: string, URI?: string, token?: string, updateOptions?: {
|
|
1409
1487
|
addToLoginIDs?: T_2;
|
|
1410
1488
|
onMergeUseExisting?: T_2 extends true ? boolean : never;
|
|
1489
|
+
templateOptions?: {
|
|
1490
|
+
[x: string]: string;
|
|
1491
|
+
};
|
|
1411
1492
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1412
1493
|
maskedEmail: string;
|
|
1413
1494
|
}>>;
|
|
@@ -1415,12 +1496,18 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1415
1496
|
sms: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
1416
1497
|
addToLoginIDs?: T_3;
|
|
1417
1498
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
1499
|
+
templateOptions?: {
|
|
1500
|
+
[x: string]: string;
|
|
1501
|
+
};
|
|
1418
1502
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1419
1503
|
maskedPhone: string;
|
|
1420
1504
|
}>>;
|
|
1421
1505
|
whatsapp: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
1422
1506
|
addToLoginIDs?: T_3;
|
|
1423
1507
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
1508
|
+
templateOptions?: {
|
|
1509
|
+
[x: string]: string;
|
|
1510
|
+
};
|
|
1424
1511
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1425
1512
|
maskedPhone: string;
|
|
1426
1513
|
}>>;
|
|
@@ -1447,6 +1534,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1447
1534
|
email: <T_4 extends boolean>(loginId: string, email: string, URI?: string, token?: string, updateOptions?: {
|
|
1448
1535
|
addToLoginIDs?: T_4;
|
|
1449
1536
|
onMergeUseExisting?: T_4 extends true ? boolean : never;
|
|
1537
|
+
templateOptions?: {
|
|
1538
|
+
[x: string]: string;
|
|
1539
|
+
};
|
|
1450
1540
|
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>;
|
|
1451
1541
|
};
|
|
1452
1542
|
};
|
|
@@ -1490,7 +1580,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1490
1580
|
phone?: string;
|
|
1491
1581
|
}) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1492
1582
|
signIn: (loginId: string, password: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1493
|
-
sendReset: (loginId: string, redirectUrl?: string
|
|
1583
|
+
sendReset: (loginId: string, redirectUrl?: string, templateOptions?: {
|
|
1584
|
+
[x: string]: string;
|
|
1585
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1494
1586
|
resetMethod: string;
|
|
1495
1587
|
pendingRef?: string;
|
|
1496
1588
|
linkId?: string;
|
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},s=async e=>{if(!(null==e?void 0:e.ok))return{};const t=await(null==e?void 0:e.clone().json());return(null==t?void 0:t.authInfo)||t||{}},r=async e=>{const t=await s(e);return(null==t?void 0:t.user)||((null==t?void 0:t.hasOwnProperty("userId"))?t:void 0)},l="undefined"!=typeof localStorage,c=(e,t)=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(e,t)),u=e=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(e)),d=e=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(e)),g=(...e)=>{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}),s=((e,t)=>({vsid:e,vrid:t}))(t,o);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem(b,JSON.stringify(t))})(s)}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 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",A="DSR";const J=(t={},n,a)=>{var{refreshJwt:o,sessionJwt:s}=t,r=e(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),void 0===a&&(a=""),o&&c(`${a}${A}`,o),s&&(n?function(e,t,{cookiePath:n,cookieDomain:a,cookieExpiration:o}){if(t){const s=new Date(1e3*o);i.set(e,t,{path:n,domain:a,expires:s,sameSite:"Strict",secure:!0})}}(U,s,r):c(`${a}${U}`,s))};function $(e=""){return u(`${e}${A}`)||""}function K(e=""){d(`${e}${A}`),d(`${e}${U}`),i.remove(U)}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});var M=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await _(),a=Object.assign(Object.assign({location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});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,s=e(n,["fpKey","fpLoad"]);return p?(a&&i&&v(a).catch((()=>null)),t(o(s,{beforeRequest:m}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(s))}),(t=>a=>{var{autoRefresh:i}=a,r=e(a,["autoRefresh"]);if(!i)return t(r);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(r,{afterRequest:async(e,t)=>{const{refreshJwt:n,sessionJwt:a}=await s(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.9.
|
|
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},s=async e=>{if(!(null==e?void 0:e.ok))return{};const t=await(null==e?void 0:e.clone().json());return(null==t?void 0:t.authInfo)||t||{}},r=async e=>{const t=await s(e);return(null==t?void 0:t.user)||((null==t?void 0:t.hasOwnProperty("userId"))?t:void 0)},l="undefined"!=typeof localStorage,c=(e,t)=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(e,t)),u=e=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(e)),d=e=>l&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(e)),g=(...e)=>{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}),s=((e,t)=>({vsid:e,vrid:t}))(t,o);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem(b,JSON.stringify(t))})(s)}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 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",A="DSR";const J=(t={},n,a)=>{var{refreshJwt:o,sessionJwt:s}=t,r=e(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),void 0===a&&(a=""),o&&c(`${a}${A}`,o),s&&(n?function(e,t,{cookiePath:n,cookieDomain:a,cookieExpiration:o}){if(t){const s=new Date(1e3*o);i.set(e,t,{path:n,domain:a,expires:s,sameSite:"Strict",secure:!0})}}(U,s,r):c(`${a}${U}`,s))};function $(e=""){return u(`${e}${A}`)||""}function K(e=""){d(`${e}${A}`),d(`${e}${U}`),i.remove(U)}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});var M=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await _(),a=Object.assign(Object.assign({location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});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,s=e(n,["fpKey","fpLoad"]);return p?(a&&i&&v(a).catch((()=>null)),t(o(s,{beforeRequest:m}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(s))}),(t=>a=>{var{autoRefresh:i}=a,r=e(a,["autoRefresh"]);if(!i)return t(r);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(r,{afterRequest:async(e,t)=>{const{refreshJwt:n,sessionJwt:a}=await s(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.9.1"},t.baseHeaders)}))),(e=>t=>{const a=T(),i=T(),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 r(t);e&&i.pub(e);const{sessionJwt:n}=await s(t);n&&a.pub(n)}}})),c=n(l,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return a.pub(null),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 r(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:r,sessionTokenViaCookie:l,storagePrefix:c}=a,d=e(a,["persistTokens","sessionTokenViaCookie","storagePrefix"]);if(!r||!p)return r&&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 s(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(U)||u(`${e}${U}`)||""}(c)})}))(((...e)=>{const n=t(...e);return Object.assign(Object.assign({},n),{flow:M(n),webauthn:V(n)})}));export{A as REFRESH_TOKEN_KEY,U 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)\]/,I=/^\w*$/,k=/^\./,O=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,j=/\\(\\)?/g,_=/^\[object .+?Constructor\]$/,S="object"==typeof f&&f&&f.Object===Object&&f,U="object"==typeof self&&self&&self.Object===Object&&self,P=S||U||Function("return this")();var R,E=Array.prototype,x=Function.prototype,T=Object.prototype,A=P["__core-js_shared__"],$=(R=/[^.]+$/.exec(A&&A.keys&&A.keys.IE_PROTO||""))?"Symbol(src)_1."+R:"",C=x.toString,q=T.hasOwnProperty,D=T.toString,J=RegExp("^"+C.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 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 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 G(e,t){for(var n,r,o=e.length;o--;)if((n=e[o][0])===(r=t)||n!=n&&r!=r)return o;return-1}function Z(e,t){var n;t=function(e,t){if(ne(e))return!1;var n=typeof e;if("number"==n||"symbol"==n||"boolean"==n||null==e||oe(e))return!0;return I.test(e)||!m.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:ne(n=t)?n: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,$&&$ 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 C.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},V.prototype.clear=function(){this.__data__=[]},V.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)},V.prototype.get=function(e){var t=this.__data__,n=G(t,e);return n<0?void 0:t[n][1]},V.prototype.has=function(e){return G(this.__data__,e)>-1},V.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},z.prototype.clear=function(){this.__data__={hash:new B,map:new(M||V),string:new B}},z.prototype.delete=function(e){return Q(this,e).delete(e)},z.prototype.get=function(e){return Q(this,e).get(e)},z.prototype.has=function(e){return Q(this,e).has(e)},z.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 k.test(e)&&n.push(""),e.replace(O,(function(e,t,r,o){n.push(r?o.replace(j,"$1"):t||e)})),n}));function ee(e){if("string"==typeof e||oe(e))return e;var t=e+"";return"0"==t&&1/e==-v?"-0":t}function te(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a),a};return n.cache=new(te.Cache||z),n}te.Cache=z;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",Ie={email:"/v1/auth/enchantedlink/update/email"},ke="/v1/auth/enchantedlink/signup-in",Oe="/v1/auth/oauth/authorize",je="/v1/auth/oauth/exchange",_e="/v1/auth/saml/authorize",Se="/v1/auth/saml/exchange",Ue="/v1/auth/totp/verify",Pe="/v1/auth/totp/signup",Re="/v1/auth/totp/update",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"},$e="/v1/auth/password/signup",Ce="/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",Ve="/v1/flow/next";const ze="<region>",Ge=`https://api.${ze}descope.com`,Ze=6e5,Ye=()=>{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 Qe;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(Qe||(Qe={}));const We=(...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}),{})),Xe=e=>void 0===e?void 0:JSON.stringify(e),et=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},tt=({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=>Ye().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 Ye().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={headers:We(et(t,f),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"2.8.0"},(null==n?void 0:n.baseHeaders)||{},l),method:p,body:Xe(u)};null!==i&&(g.credentials=i||"include");const h=await s((({path:e,baseUrl:t,queryParams:n,projectId:r})=>{const o=r.slice(1,-27);t=t.replace(ze,o?o+".":"");const i=new URL(e,t);return n&&(i.search=new URLSearchParams(n).toString()),i})({path:c,baseUrl:e,queryParams:d,projectId:t}),g);return(null==o?void 0:o.afterRequest)&&await o.afterRequest(r,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Qe.get,token:r}),post:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Qe.post,token:o}),put:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Qe.put,token:o}),delete:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Qe.delete,token:r}),hooks:o}};var nt=429;function rt(e,t,n){var r;let o=ot(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 ot(e){if("string"!=typeof e||!e)throw new Error("Invalid token provided");return p(e)}function it(e){const{exp:t}=ot(e);return(new Date).getTime()/1e3>t}function at(e){let t=ot(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function st(e,t){return rt(e,t,"permissions")}function ct(e,t){return rt(e,t,"roles")}const ut=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function lt(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===nt&&Object.assign(o.error,{retryAfter:Number.parseInt(null===(n=r.headers)||void 0===n?void 0:n.get("retry-after"))||0})),o}const dt=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),pt=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),ft=e=>t=>e.test(t),gt=ft(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),ht=ft(/^\+[1-9]{1}[0-9]{3,14}$/),vt=dt(gt,'"{val}" is not a valid email'),yt=dt(ht,'"{val}" is not a valid phone number'),bt=dt((1,e=>e.length>=1),"Minimum length is 1");const wt=dt((e=>"string"==typeof e),"Input is not a string"),mt=dt((e=>void 0===e),"Input is defined"),It=(kt=[wt(),mt()],"Input is not a string or undefined",(e="Input is not a string or undefined")=>t=>{const n=kt.filter((e=>e(t)));return!(n.length<kt.length)&&(e?e.replace("{val}",t):n.join(" OR "))});var kt;const Ot=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>pt(...e).validate(n[t]))),t(...n)),jt=e=>[wt(`"${e}" must be a string`),bt(`"${e}" must not be empty`)],_t=e=>[wt(`"${e}" must be a string`),vt()],St=e=>[wt(`"${e}" must be a string`),yt()],Ut=Ot(jt("accessKey")),Pt=e=>({exchange:Ut((t=>lt(e.post(ae,{},{token:t}))))});var Rt,Et;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(Rt||(Rt={})),function(e){e.email="email"}(Et||(Et={}));const xt=Object.assign(Object.assign({},Rt),Et);var Tt;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(Tt||(Tt={}));const At=jt("loginId"),$t=Ot(jt("token")),Ct=Ot(At),qt=Ot(jt("pendingRef")),Dt=Ot(At,_t("email")),Jt=e=>({verify:$t((t=>lt(e.post(ye,{token:t})))),signIn:Ct(((t,n,r,o)=>lt(e.post(ut(be,xt.email),{loginId:t,URI:n,loginOptions:r},{token:o})))),signUpOrIn:Ct(((t,n)=>lt(e.post(ut(ke,xt.email),{loginId:t,URI:n})))),signUp:Ct(((t,n,r)=>lt(e.post(ut(we,xt.email),{loginId:t,URI:n,user:r})))),waitForSession:qt(((t,n)=>new Promise((r=>{const{pollingIntervalMs:o,timeoutMs:i}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||1e3,1e3),timeoutMs:Math.min(t||Ze,Ze)}))(n);let a;const s=setInterval((async()=>{const n=await e.post(me,{pendingRef:t});n.ok&&(clearInterval(s),a&&clearTimeout(a),r(lt(Promise.resolve(n))))}),o);a=setTimeout((()=>{r({error:{errorDescription:`Session polling timeout exceeded: ${i}ms`,errorCode:"0"},ok:!1}),clearInterval(s)}),i)})))),update:{email:Dt(((t,n,r,o,i)=>lt(e.post(Ie.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o}))))}}),Kt=Ot(jt("flowId")),Nt=Ot(jt("executionId"),jt("stepId"),jt("interactionId")),Mt=e=>({start:Kt(((t,n,r,o,i,a,s)=>lt(e.post(Be,{flowId:t,options:n,conditionInteractionId:r,interactionId:o,version:i,componentsVersion:a,input:s})))),next:Nt(((t,n,r,o,i,a)=>lt(e.post(Ve,{executionId:t,stepId:n,interactionId:r,version:o,componentsVersion:i,input:a}))))}),Lt=jt("loginId"),Ft=Ot(jt("token")),Ht=Ot(Lt),Bt=Ot(Lt,St("phone")),Vt=Ot(Lt,_t("email")),zt=e=>({verify:Ft((t=>lt(e.post(pe,{token:t})))),signIn:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ht(((t,r,o,i)=>lt(e.post(ut(fe,n),{loginId:t,URI:r,loginOptions:o},{token:i}))))})),{}),signUp:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ht(((t,r,o)=>lt(e.post(ut(ge,n),{loginId:t,URI:r,user:o}))))})),{}),signUpOrIn:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ht(((t,r)=>lt(e.post(ut(ve,n),{loginId:t,URI:r}))))})),{}),update:{email:Vt(((t,n,r,o,i)=>lt(e.post(he.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o})))),phone:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Bt(((t,r,o,i,a)=>lt(e.post(ut(he.phone,n),Object.assign({loginId:t,phone:r,URI:o},a),{token:i}))))})),{})}});var Gt;!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"}(Gt||(Gt={}));const Zt=Ot(jt("code")),Yt=e=>({start:Object.assign(((t,n,r,o)=>lt(e.post(Oe,r||{},{queryParams:Object.assign({provider:t},n&&{redirectURL:n}),token:o}))),Object.keys(Gt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,r,o)=>lt(e.post(Oe,r||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:o}))})),{})),exchange:Zt((t=>lt(e.post(je,{code:t}))))}),Qt=jt("loginId"),Wt=Ot(Qt,jt("code")),Xt=Ot(Qt),en=Ot(Qt,St("phone")),tn=Ot(Qt,_t("email")),nn=e=>({verify:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Wt(((t,r)=>lt(e.post(ut(se,n),{code:r,loginId:t}))))})),{}),signIn:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Xt(((t,r,o)=>lt(e.post(ut(ce,n),{loginId:t,loginOptions:r},{token:o}))))})),{}),signUp:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Xt(((t,r)=>lt(e.post(ut(ue,n),{loginId:t,user:r}))))})),{}),signUpOrIn:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Xt((t=>lt(e.post(ut(de,n),{loginId:t}))))})),{}),update:{email:tn(((t,n,r,o)=>lt(e.post(le.email,Object.assign({loginId:t,email:n},o),{token:r})))),phone:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:en(((t,r,o,i)=>lt(e.post(ut(le.phone,n),Object.assign({loginId:t,phone:r},i),{token:o}))))})),{})}}),rn=Ot(jt("tenant")),on=Ot(jt("code")),an=e=>({start:rn(((t,n,r,o)=>lt(e.post(_e,r||{},{queryParams:{tenant:t,redirectURL:n},token:o})))),exchange:on((t=>lt(e.post(Se,{code:t}))))}),sn=jt("loginId"),cn=Ot(sn,jt("code")),un=Ot(sn),ln=Ot(sn),dn=e=>({signUp:un(((t,n)=>lt(e.post(Pe,{loginId:t,user:n})))),verify:cn(((t,n,r,o)=>lt(e.post(Ue,{loginId:t,code:n,loginOptions:r},{token:o})))),update:ln(((t,n)=>lt(e.post(Re,{loginId:t},{token:n}))))}),pn=jt("loginId"),fn=jt("newPassword"),gn=Ot(pn,jt("password")),hn=Ot(pn),vn=Ot(pn,fn),yn=Ot(pn,jt("oldPassword"),fn),bn=e=>({signUp:gn(((t,n,r)=>lt(e.post($e,{loginId:t,password:n,user:r})))),signIn:gn(((t,n)=>lt(e.post(Ce,{loginId:t,password:n})))),sendReset:hn(((t,n)=>lt(e.post(qe,{loginId:t,redirectUrl:n})))),update:vn(((t,n,r)=>lt(e.post(De,{loginId:t,newPassword:n},{token:r})))),replace:yn(((t,n,r)=>lt(e.post(Je,{loginId:t,oldPassword:n,newPassword:r})))),policy:()=>lt(e.get(Ke))}),wn=[wt('"loginId" must be a string')],mn=jt("loginId"),In=jt("origin"),kn=Ot(mn,In,jt("name")),On=Ot(mn,In),jn=Ot(wn,In),_n=Ot(mn,In,jt("token")),Sn=Ot(jt("transactionId"),jt("response")),Un=e=>({signUp:{start:kn(((t,n,r)=>lt(e.post(Ee.start,{user:{loginId:t,name:r},origin:n})))),finish:Sn(((t,n)=>lt(e.post(Ee.finish,{transactionId:t,response:n}))))},signIn:{start:jn(((t,n,r,o)=>lt(e.post(xe.start,{loginId:t,origin:n,loginOptions:r},{token:o})))),finish:Sn(((t,n)=>lt(e.post(xe.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:On(((t,n)=>lt(e.post(Te.start,{loginId:t,origin:n}))))},update:{start:_n(((t,n,r)=>lt(e.post(Ae.start,{loginId:t,origin:n},{token:r})))),finish:Sn(((t,n)=>lt(e.post(Ae.finish,{transactionId:t,response:n}))))}}),Pn=Ot(jt("token")),Rn=Ot([It('"token" must be string or undefined')]);var En,xn=Ot([("projectId",En=jt("projectId"),dt(((e,t)=>n=>pt(...t).validate(ie(n,e)))("projectId",En))())])((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=tt({baseUrl:n||Ge,projectId:e,logger:t,hooks:r,cookiePolicy:o,baseConfig:{baseHeaders:i},fetch:a}),{accessKey:Pt(s),otp:nn(s),magicLink:zt(s),enchantedLink:Jt(s),oauth:Yt(s),saml:an(s),totp:dn(s),webauthn:Un(s),password:bn(s),flow:Mt(s),refresh:Rn((e=>lt(s.post(Ne,{},{token:e})))),selectTenant:Ot([wt("tenantId")],[It('"token" must be string or undefined')])(((e,t)=>lt(s.post(Me,{tenant:e},{token:t})))),logout:Rn((e=>lt(s.post(Le,{},{token:e})))),logoutAll:Rn((e=>lt(s.post(Fe,{},{token:e})))),me:Rn((e=>lt(s.get(He,{token:e})))),isJwtExpired:Pn(it),getTenants:Pn(at),getJwtPermissions:Pn(st),getJwtRoles:Pn(ct),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 Tn=(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 An=Object.assign(xn,{DeliveryMethods:xt});const $n=(...e)=>{console.debug(...e)},Cn="undefined"!=typeof window,qn=Math.pow(2,31)-1,Dn=Cn&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com";var Jn="Blocked by CSP",Kn="9319";function Nn(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===Jn||t===Kn}(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 Mn="Failed to load the JS script of the agent";function Ln(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 Nn(e,Fn).catch(Bn)})).then((function(e){var t=e[0],n=e[1];return t.load(s(s({},i),{ldi:n}))}))}function Fn(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(Jn)}();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(Mn))},r.async=!0,r.src=e,i.appendChild(r)}))}(e)})).then(Hn)}function Hn(){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(Kn);return n}function Bn(e){throw e instanceof Error&&e.message===Kn?new Error(Mn):e}const Vn=(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},zn=async e=>{try{if(Vn())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),n=Ln({apiKey:e,endpoint:Dn}),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)}},Gn=e=>{const t=Vn(!0);return t&&e.body&&(e.body.fpData=t),e},Zn="dls_last_user_login_id",Yn="dls_last_user_display_name",Qn=()=>i(Zn),Wn=()=>i(Yn),Xn=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,r={}]=t,o=Qn(),i=Wn();o&&(null!==(n=r.lastAuth)&&void 0!==n||(r.lastAuth={}),r.lastAuth.loginId=o,r.lastAuth.name=i);return await e(...t)},er=e=>async(...t)=>{const n=await e(...t);return a(Zn),a(Yn),n};function tr(){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)\]/,O=/^\w*$/,I=/^\./,k=/[^.[\]]+|\[(?:(-?\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__"],$=(R=/[^.]+$/.exec(A&&A.keys&&A.keys.IE_PROTO||""))?"Symbol(src)_1."+R:"",C=x.toString,q=T.hasOwnProperty,D=T.toString,J=RegExp("^"+C.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 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 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 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 O.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,$&&$ 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 C.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},V.prototype.clear=function(){this.__data__=[]},V.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)},V.prototype.get=function(e){var t=this.__data__,n=G(t,e);return n<0?void 0:t[n][1]},V.prototype.has=function(e){return G(this.__data__,e)>-1},V.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},z.prototype.clear=function(){this.__data__={hash:new B,map:new(M||V),string:new B}},z.prototype.delete=function(e){return Q(this,e).delete(e)},z.prototype.get=function(e){return Q(this,e).get(e)},z.prototype.has=function(e){return Q(this,e).has(e)},z.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(k,(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||z),n}te.Cache=z;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",Oe={email:"/v1/auth/enchantedlink/update/email"},Ie="/v1/auth/enchantedlink/signup-in",ke="/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"},$e="/v1/auth/password/signup",Ce="/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",Ve="/v1/flow/next";const ze="<region>",Ge=`https://api.${ze}descope.com`,Ze=6e5,Ye=()=>{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 Qe;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(Qe||(Qe={}));const We=(...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}),{})),Xe=e=>void 0===e?void 0:JSON.stringify(e),et=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},tt=({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=>Ye().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 Ye().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={headers:We(et(t,f),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"2.8.1"},(null==n?void 0:n.baseHeaders)||{},l),method:p,body:Xe(u)};null!==i&&(g.credentials=i||"include");const h=await s((({path:e,baseUrl:t,queryParams:n,projectId:r})=>{const o=r.slice(1,-27);t=t.replace(ze,o?o+".":"");const i=new URL(e,t);return n&&(i.search=new URLSearchParams(n).toString()),i})({path:c,baseUrl:e,queryParams:d,projectId:t}),g);return(null==o?void 0:o.afterRequest)&&await o.afterRequest(r,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Qe.get,token:r}),post:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Qe.post,token:o}),put:(e,t,{headers:n,queryParams:r,token:o}={})=>c({path:e,headers:n,queryParams:r,body:t,method:Qe.put,token:o}),delete:(e,{headers:t,queryParams:n,token:r}={})=>c({path:e,headers:t,queryParams:n,body:void 0,method:Qe.delete,token:r}),hooks:o}};var nt=429;function rt(e,t,n){var r;let o=ot(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 ot(e){if("string"!=typeof e||!e)throw new Error("Invalid token provided");return p(e)}function it(e){const{exp:t}=ot(e);return(new Date).getTime()/1e3>t}function at(e){let t=ot(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function st(e,t){return rt(e,t,"permissions")}function ct(e,t){return rt(e,t,"roles")}const ut=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function lt(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===nt&&Object.assign(o.error,{retryAfter:Number.parseInt(null===(n=r.headers)||void 0===n?void 0:n.get("retry-after"))||0})),o}const dt=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),pt=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),ft=e=>t=>e.test(t),gt=ft(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),ht=ft(/^\+[1-9]{1}[0-9]{3,14}$/),vt=dt(gt,'"{val}" is not a valid email'),yt=dt(ht,'"{val}" is not a valid phone number'),bt=dt((1,e=>e.length>=1),"Minimum length is 1");const wt=dt((e=>"string"==typeof e),"Input is not a string"),mt=dt((e=>void 0===e),"Input is defined"),Ot=(It=[wt(),mt()],"Input is not a string or undefined",(e="Input is not a string or undefined")=>t=>{const n=It.filter((e=>e(t)));return!(n.length<It.length)&&(e?e.replace("{val}",t):n.join(" OR "))});var It;const kt=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>pt(...e).validate(n[t]))),t(...n)),jt=e=>[wt(`"${e}" must be a string`),bt(`"${e}" must not be empty`)],_t=e=>[wt(`"${e}" must be a string`),vt()],St=e=>[wt(`"${e}" must be a string`),yt()],Ut=kt(jt("accessKey")),Pt=e=>({exchange:Ut((t=>lt(e.post(ae,{},{token:t}))))});var Rt,Et;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(Rt||(Rt={})),function(e){e.email="email"}(Et||(Et={}));const xt=Object.assign(Object.assign({},Rt),Et);var Tt;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(Tt||(Tt={}));const At=jt("loginId"),$t=kt(jt("token")),Ct=kt(At),qt=kt(jt("pendingRef")),Dt=kt(At,_t("email")),Jt=e=>({verify:$t((t=>lt(e.post(ye,{token:t})))),signIn:Ct(((t,n,r,o)=>lt(e.post(ut(be,xt.email),{loginId:t,URI:n,loginOptions:r},{token:o})))),signUpOrIn:Ct(((t,n,r)=>lt(e.post(ut(Ie,xt.email),{loginId:t,URI:n,loginOptions:r})))),signUp:Ct(((t,n,r,o)=>lt(e.post(ut(we,xt.email),{loginId:t,URI:n,user:r,loginOptions:o})))),waitForSession:qt(((t,n)=>new Promise((r=>{const{pollingIntervalMs:o,timeoutMs:i}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||1e3,1e3),timeoutMs:Math.min(t||Ze,Ze)}))(n);let a;const s=setInterval((async()=>{const n=await e.post(me,{pendingRef:t});n.ok&&(clearInterval(s),a&&clearTimeout(a),r(lt(Promise.resolve(n))))}),o);a=setTimeout((()=>{r({error:{errorDescription:`Session polling timeout exceeded: ${i}ms`,errorCode:"0"},ok:!1}),clearInterval(s)}),i)})))),update:{email:Dt(((t,n,r,o,i)=>lt(e.post(Oe.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o}))))}}),Kt=kt(jt("flowId")),Nt=kt(jt("executionId"),jt("stepId"),jt("interactionId")),Mt=e=>({start:Kt(((t,n,r,o,i,a,s)=>lt(e.post(Be,{flowId:t,options:n,conditionInteractionId:r,interactionId:o,version:i,componentsVersion:a,input:s})))),next:Nt(((t,n,r,o,i,a)=>lt(e.post(Ve,{executionId:t,stepId:n,interactionId:r,version:o,componentsVersion:i,input:a}))))}),Lt=jt("loginId"),Ft=kt(jt("token")),Ht=kt(Lt),Bt=kt(Lt,St("phone")),Vt=kt(Lt,_t("email")),zt=e=>({verify:Ft((t=>lt(e.post(pe,{token:t})))),signIn:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ht(((t,r,o,i)=>lt(e.post(ut(fe,n),{loginId:t,URI:r,loginOptions:o},{token:i}))))})),{}),signUp:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ht(((t,r,o,i)=>lt(e.post(ut(ge,n),{loginId:t,URI:r,user:o,loginOptions:i}))))})),{}),signUpOrIn:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ht(((t,r,o)=>lt(e.post(ut(ve,n),{loginId:t,URI:r,loginOptions:o}))))})),{}),update:{email:Vt(((t,n,r,o,i)=>lt(e.post(he.email,Object.assign({loginId:t,email:n,URI:r},i),{token:o})))),phone:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Bt(((t,r,o,i,a)=>lt(e.post(ut(he.phone,n),Object.assign({loginId:t,phone:r,URI:o},a),{token:i}))))})),{})}});var Gt;!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"}(Gt||(Gt={}));const Zt=kt(jt("code")),Yt=e=>({start:Object.assign(((t,n,r,o)=>lt(e.post(ke,r||{},{queryParams:Object.assign({provider:t},n&&{redirectURL:n}),token:o}))),Object.keys(Gt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,r,o)=>lt(e.post(ke,r||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:o}))})),{})),exchange:Zt((t=>lt(e.post(je,{code:t}))))}),Qt=jt("loginId"),Wt=kt(Qt,jt("code")),Xt=kt(Qt),en=kt(Qt,St("phone")),tn=kt(Qt,_t("email")),nn=e=>({verify:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Wt(((t,r)=>lt(e.post(ut(se,n),{code:r,loginId:t}))))})),{}),signIn:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Xt(((t,r,o)=>lt(e.post(ut(ce,n),{loginId:t,loginOptions:r},{token:o}))))})),{}),signUp:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Xt(((t,r,o)=>lt(e.post(ut(ue,n),{loginId:t,user:r,loginOptions:o}))))})),{}),signUpOrIn:Object.keys(xt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Xt(((t,r)=>lt(e.post(ut(de,n),{loginId:t,loginOptions:r}))))})),{}),update:{email:tn(((t,n,r,o)=>lt(e.post(le.email,Object.assign({loginId:t,email:n},o),{token:r})))),phone:Object.keys(Rt).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:en(((t,r,o,i)=>lt(e.post(ut(le.phone,n),Object.assign({loginId:t,phone:r},i),{token:o}))))})),{})}}),rn=kt(jt("tenant")),on=kt(jt("code")),an=e=>({start:rn(((t,n,r,o)=>lt(e.post(_e,r||{},{queryParams:{tenant:t,redirectURL:n},token:o})))),exchange:on((t=>lt(e.post(Se,{code:t}))))}),sn=jt("loginId"),cn=kt(sn,jt("code")),un=kt(sn),ln=kt(sn),dn=e=>({signUp:un(((t,n)=>lt(e.post(Pe,{loginId:t,user:n})))),verify:cn(((t,n,r,o)=>lt(e.post(Ue,{loginId:t,code:n,loginOptions:r},{token:o})))),update:ln(((t,n)=>lt(e.post(Re,{loginId:t},{token:n}))))}),pn=jt("loginId"),fn=jt("newPassword"),gn=kt(pn,jt("password")),hn=kt(pn),vn=kt(pn,fn),yn=kt(pn,jt("oldPassword"),fn),bn=e=>({signUp:gn(((t,n,r)=>lt(e.post($e,{loginId:t,password:n,user:r})))),signIn:gn(((t,n)=>lt(e.post(Ce,{loginId:t,password:n})))),sendReset:hn(((t,n,r)=>lt(e.post(qe,{loginId:t,redirectUrl:n,templateOptions:r})))),update:vn(((t,n,r)=>lt(e.post(De,{loginId:t,newPassword:n},{token:r})))),replace:yn(((t,n,r)=>lt(e.post(Je,{loginId:t,oldPassword:n,newPassword:r})))),policy:()=>lt(e.get(Ke))}),wn=[wt('"loginId" must be a string')],mn=jt("loginId"),On=jt("origin"),In=kt(mn,On,jt("name")),kn=kt(mn,On),jn=kt(wn,On),_n=kt(mn,On,jt("token")),Sn=kt(jt("transactionId"),jt("response")),Un=e=>({signUp:{start:In(((t,n,r)=>lt(e.post(Ee.start,{user:{loginId:t,name:r},origin:n})))),finish:Sn(((t,n)=>lt(e.post(Ee.finish,{transactionId:t,response:n}))))},signIn:{start:jn(((t,n,r,o)=>lt(e.post(xe.start,{loginId:t,origin:n,loginOptions:r},{token:o})))),finish:Sn(((t,n)=>lt(e.post(xe.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:kn(((t,n)=>lt(e.post(Te.start,{loginId:t,origin:n}))))},update:{start:_n(((t,n,r)=>lt(e.post(Ae.start,{loginId:t,origin:n},{token:r})))),finish:Sn(((t,n)=>lt(e.post(Ae.finish,{transactionId:t,response:n}))))}}),Pn=kt(jt("token")),Rn=kt([Ot('"token" must be string or undefined')]);var En,xn=kt([("projectId",En=jt("projectId"),dt(((e,t)=>n=>pt(...t).validate(ie(n,e)))("projectId",En))())])((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=tt({baseUrl:n||Ge,projectId:e,logger:t,hooks:r,cookiePolicy:o,baseConfig:{baseHeaders:i},fetch:a}),{accessKey:Pt(s),otp:nn(s),magicLink:zt(s),enchantedLink:Jt(s),oauth:Yt(s),saml:an(s),totp:dn(s),webauthn:Un(s),password:bn(s),flow:Mt(s),refresh:Rn((e=>lt(s.post(Ne,{},{token:e})))),selectTenant:kt([wt("tenantId")],[Ot('"token" must be string or undefined')])(((e,t)=>lt(s.post(Me,{tenant:e},{token:t})))),logout:Rn((e=>lt(s.post(Le,{},{token:e})))),logoutAll:Rn((e=>lt(s.post(Fe,{},{token:e})))),me:Rn((e=>lt(s.get(He,{token:e})))),isJwtExpired:Pn(it),getTenants:Pn(at),getJwtPermissions:Pn(st),getJwtRoles:Pn(ct),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 Tn=(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 An=Object.assign(xn,{DeliveryMethods:xt});const $n=(...e)=>{console.debug(...e)},Cn="undefined"!=typeof window,qn=Math.pow(2,31)-1,Dn=Cn&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://fp.descope.com";var Jn="Blocked by CSP",Kn="9319";function Nn(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===Jn||t===Kn}(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 Mn="Failed to load the JS script of the agent";function Ln(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 Nn(e,Fn).catch(Bn)})).then((function(e){var t=e[0],n=e[1];return t.load(s(s({},i),{ldi:n}))}))}function Fn(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(Jn)}();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(Mn))},r.async=!0,r.src=e,i.appendChild(r)}))}(e)})).then(Hn)}function Hn(){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(Kn);return n}function Bn(e){throw e instanceof Error&&e.message===Kn?new Error(Mn):e}const Vn=(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},zn=async e=>{try{if(Vn())return;const t=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),n=Ln({apiKey:e,endpoint:Dn}),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)}},Gn=e=>{const t=Vn(!0);return t&&e.body&&(e.body.fpData=t),e},Zn="dls_last_user_login_id",Yn="dls_last_user_display_name",Qn=()=>i(Zn),Wn=()=>i(Yn),Xn=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,r={}]=t,o=Qn(),i=Wn();o&&(null!==(n=r.lastAuth)&&void 0!==n||(r.lastAuth={}),r.lastAuth.loginId=o,r.lastAuth.name=i);return await e(...t)},er=e=>async(...t)=>{const n=await e(...t);return a(Zn),a(Yn),n};function tr(){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 nr(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 rr=function e(t,n){function r(e,r,o){if("undefined"!=typeof document){"number"==typeof(o=nr({},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,"",nr({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,nr({},this.attributes,t))},withConverter:function(t){return e(nr({},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 or="DS",ir="DSR";const ar=(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}${ir}`,r),i&&(t?function(e,t,{cookiePath:n,cookieDomain:r,cookieExpiration:o}){if(t){const i=new Date(1e3*o);rr.set(e,t,{path:n,domain:r,expires:i,sameSite:"Strict",secure:!0})}}(or,i,a):o(`${n}${or}`,i))};function sr(e=""){return i(`${e}${ir}`)||""}function cr(e=""){a(`${e}${ir}`),a(`${e}${or}`),rr.remove(or)}const ur=e=>t=>async(...n)=>{const r=await t(...n);return cr(e),r};async function lr(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=vr(n.publicKey.challenge),n.publicKey.user.id=vr(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=vr(e.id)})),n}(e),n=await navigator.credentials.create(t);return r=n,JSON.stringify({id:r.id,rawId:yr(r.rawId),type:r.type,response:{attestationObject:yr(r.response.attestationObject),clientDataJSON:yr(r.response.clientDataJSON)}});var r}async function dr(e){const t=gr(e);return hr(await navigator.credentials.get(t))}async function pr(e,t){const n=gr(e);n.signal=t.signal,n.mediation="conditional";return hr(await navigator.credentials.get(n))}async function fr(e=!1){if(!Cn)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 gr(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=vr(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=vr(e.id)})),n}function hr(e){return JSON.stringify({id:e.id,rawId:yr(e.rawId),type:e.type,response:{authenticatorData:yr(e.response.authenticatorData),clientDataJSON:yr(e.response.clientDataJSON),signature:yr(e.response.signature),userHandle:e.response.userHandle?yr(e.response.userHandle):void 0}})}function vr(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function yr(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var br,wr=(br=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 lr(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 dr(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 lr(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,t)}{const t=await dr(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 lr(r.data.options);return await e.webauthn.update.finish(r.data.transactionId,o)},helpers:{create:lr,get:dr,isSupported:fr,conditional:pr}}),(...e)=>{const t=br(...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});var mr=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await fr(),r=Object.assign(Object.assign({location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});return t[1]=r,e.flow.start(...t)}});const
|
|
3
|
+
function nr(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 rr=function e(t,n){function r(e,r,o){if("undefined"!=typeof document){"number"==typeof(o=nr({},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,"",nr({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,nr({},this.attributes,t))},withConverter:function(t){return e(nr({},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 or="DS",ir="DSR";const ar=(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}${ir}`,r),i&&(t?function(e,t,{cookiePath:n,cookieDomain:r,cookieExpiration:o}){if(t){const i=new Date(1e3*o);rr.set(e,t,{path:n,domain:r,expires:i,sameSite:"Strict",secure:!0})}}(or,i,a):o(`${n}${or}`,i))};function sr(e=""){return i(`${e}${ir}`)||""}function cr(e=""){a(`${e}${ir}`),a(`${e}${or}`),rr.remove(or)}const ur=e=>t=>async(...n)=>{const r=await t(...n);return cr(e),r};async function lr(e){const t=function(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=vr(n.publicKey.challenge),n.publicKey.user.id=vr(n.publicKey.user.id),null===(t=n.publicKey.excludeCredentials)||void 0===t||t.forEach((e=>{e.id=vr(e.id)})),n}(e),n=await navigator.credentials.create(t);return r=n,JSON.stringify({id:r.id,rawId:yr(r.rawId),type:r.type,response:{attestationObject:yr(r.response.attestationObject),clientDataJSON:yr(r.response.clientDataJSON)}});var r}async function dr(e){const t=gr(e);return hr(await navigator.credentials.get(t))}async function pr(e,t){const n=gr(e);n.signal=t.signal,n.mediation="conditional";return hr(await navigator.credentials.get(n))}async function fr(e=!1){if(!Cn)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 gr(e){var t;const n=JSON.parse(e);return n.publicKey.challenge=vr(n.publicKey.challenge),null===(t=n.publicKey.allowCredentials)||void 0===t||t.forEach((e=>{e.id=vr(e.id)})),n}function hr(e){return JSON.stringify({id:e.id,rawId:yr(e.rawId),type:e.type,response:{authenticatorData:yr(e.response.authenticatorData),clientDataJSON:yr(e.response.clientDataJSON),signature:yr(e.response.signature),userHandle:e.response.userHandle?yr(e.response.userHandle):void 0}})}function vr(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function yr(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var br,wr=(br=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 lr(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 dr(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 lr(r.data.options);return await e.webauthn.signUp.finish(r.data.transactionId,t)}{const t=await dr(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 lr(r.data.options);return await e.webauthn.update.finish(r.data.transactionId,o)},helpers:{create:lr,get:dr,isSupported:fr,conditional:pr}}),(...e)=>{const t=br(...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});var mr=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await fr(),r=Object.assign(Object.assign({location:window.location.href},t[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});return t[1]=r,e.flow.start(...t)}});const Or=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 Cn?(r&&o&&zn(r).catch((()=>null)),t(e(i,{beforeRequest:Gn}))):(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&&($n("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))$n("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>qn&&($n(`Timeout is too large (${e}ms), setting it to ${qn}ms`),e=qn),a();const t=new Date(Date.now()+e).toLocaleTimeString("en-US",{hour12:!1});$n(`Setting refresh timer for ${t}. (${e}ms)`),s((()=>{$n("Refreshing session due to timer"),d.refresh(r)}),e)}var i}}));return Tn(d,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return $n("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.9.1"},t.baseHeaders)}))),(r=>o=>{const i=tr(),a=tr(),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=Tn(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(Zn,e)})(a),(e=>{o(Yn,e)})(s))}}));let a=Tn(i,["flow.start"],Xn);return a=Tn(a,["logout","logoutAll"],er),Object.assign(a,{getLastUserLoginId:Qn,getLastUserDisplayName:Wn})}),(n=>r=>{var{persistTokens:o,sessionTokenViaCookie:a,storagePrefix:s}=r,u=c(r,["persistTokens","sessionTokenViaCookie","storagePrefix"]);if(!o||!Cn)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||sr(d)})),afterRequest:async(e,n)=>{401===(null==n?void 0:n.status)?cr(s):ar(await t(n),a,s)}}));var d;const p=Tn(l,["logout","logoutAll"],ur(s));return Object.assign(p,{getRefreshToken:()=>sr(s),getSessionToken:()=>function(e=""){return rr.get(or)||i(`${e}${or}`)||""}(s)})}))(((...e)=>{const t=An(...e);return Object.assign(Object.assign({},t),{flow:mr(t),webauthn:wr(t)})}));return Or.REFRESH_TOKEN_KEY=ir,Or.SESSION_TOKEN_KEY=or,Or}));
|
|
4
4
|
//# sourceMappingURL=index.umd.js.map
|