@descope/web-js-sdk 1.10.25 → 1.10.27
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 +264 -0
- package/dist/index.esm.js +1 -1
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/package.json +4 -4
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 o=i(t),r=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,h=Math.pow(2,31)-1,v=w&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://api.descope.com",b="fp",y=(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},m=async(e,t=v)=>{try{if(y())return;const a=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),i=new URL(t);i.pathname="/fXj8gt3x8VulJBna/x96Emn69oZwcd7I6";const o=new URL(t);o.pathname="/fXj8gt3x8VulJBna/w78aRZnnDZ3Aqw0I";const r=o.toString()+"?apiKey=<apiKey>&version=<version>&loaderVersion=<loaderVersion>",s=n.load({apiKey:e,endpoint:[i.toString(),n.defaultEndpoint],scriptUrlPattern:[r,n.defaultScriptUrlPattern]}),l=await s,{requestId:c}=await l.get({linkedId:a}),u=((e,t)=>({vsid:e,vrid:t}))(a,c);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem(b,JSON.stringify(t))})(u)}catch(e){console.warn("Could not load fingerprint",e)}},S=e=>{const t=y(!0);return t&&e.body&&(e.body.fpData=t),e},I="dls_last_user_login_id",O="dls_last_user_display_name",_=()=>g(I),j=()=>g(O),k=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,a={}]=t,i=_(),o=j();i&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=i,a.lastAuth.name=o);return await e(...t)},U=e=>async(...t)=>{const n=await e(...t);return p(I),p(O),n};function D(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}const T="DS",x="DSR";function A(e,t,{cookiePath:n,cookieDomain:a,cookieExpiration:i}){if(t){const o=new Date(1e3*i),s=function(e){const t=window.location.hostname.split("."),n=e.split(".");return t.slice(-n.length).join(".")===e}(a);r.default.set(e,t,{path:n,domain:s?a:void 0,expires:o,sameSite:"Strict",secure:!0})}}function J(e=""){return g(`${e}${x}`)||""}function K(e=""){p(`${e}${x}`),p(`${e}${T}`),r.default.remove(T)}const R=e=>t=>async(...n)=>{const a=await t(...n);return K(e),a};async function N(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:V(a.rawId),type:a.type,response:{attestationObject:V(a.response.attestationObject),clientDataJSON:V(a.response.clientDataJSON)}});var a}async function E(e){const t=P(e);return q(await navigator.credentials.get(t))}async function $(e,t){const n=P(e);n.signal=t.signal,n.mediation="conditional";return q(await navigator.credentials.get(n))}async function C(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 P(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 q(e){return JSON.stringify({id:e.id,rawId:V(e.rawId),type:e.type,response:{authenticatorData:V(e.response.authenticatorData),clientDataJSON:V(e.response.clientDataJSON),signature:V(e.response.signature),userHandle:e.response.userHandle?V(e.response.userHandle):void 0}})}function L(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function V(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var F,H=(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 N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,i)},async signIn(t){const n=await e.webauthn.signIn.start(t,window.location.origin);if(!n.ok)return n;const a=await E(n.data.options);return await e.webauthn.signIn.finish(n.data.transactionId,a)},async signUpOrIn(t){var n;const a=await e.webauthn.signUpOrIn.start(t,window.location.origin);if(!a.ok)return a;if(null===(n=a.data)||void 0===n?void 0:n.create){const t=await N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,t)}{const t=await E(a.data.options);return await e.webauthn.signIn.finish(a.data.transactionId,t)}},async update(t,n){const a=await e.webauthn.update.start(t,window.location.origin,n);if(!a.ok)return a;const i=await N(a.data.options);return await e.webauthn.update.finish(a.data.transactionId,i)},helpers:{create:N,get:E,isSupported:C,conditional:$}}),(...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});const M=e=>({async oneTap(t,n,a,i){const o=null!=t?t:"google",r=await e.oauth.startNative(o,a);if(!r.ok)return r;const{clientId:s,stateId:l,nonce:c}=r.data,u=await async function(){return new Promise(((e,t)=>{if(window.google)return void e(window.google.accounts.id);let n=document.getElementById("google-gsi-client-script");n||(n=document.createElement("script"),document.head.appendChild(n),n.async=!0,n.defer=!0,n.id="google-gsi-client-script",n.src="https://accounts.google.com/gsi/client"),n.onload=function(){window.google?e(window.google.accounts.id):t("Failed to load Google GSI client script - not loaded properly")},n.onerror=function(){t("Failed to load Google GSI client script - failed to load")}}))}();return new Promise((t=>{var a,r;u.initialize(Object.assign(Object.assign({},n),{itp_support:null===(a=null==n?void 0:n.itp_support)||void 0===a||a,use_fedcm_for_prompt:null===(r=null==n?void 0:n.use_fedcm_for_prompt)||void 0===r||r,client_id:s,callback:n=>{t(e.oauth.finishNative(o,l,"","",n.credential))},nonce:c})),u.prompt((e=>{(null==e?void 0:e.isSkippedMoment())&&(null==i||i())}))}))}});var W=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await C(),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 G=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>n=>{var{fpKey:a,fpLoad:i}=n,o=e.__rest(n,["fpKey","fpLoad"]);return w?(a&&i&&m(a).catch((()=>null)),t(s(o,{beforeRequest:S}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(o))}),(n=>a=>{var{autoRefresh:i}=a,o=e.__rest(a,["autoRefresh"]);if(!i)return n(o);const{clearAllTimers:r,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(o,{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"),r();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>h&&(f(`Timeout is too large (${e}ms), setting it to ${h}ms`),e=h),r();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"),r(),n}))}),(e=>t=>e(Object.assign(Object.assign({},t),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.10.25"},t.baseHeaders)}))),(e=>n=>{const a=D(),i=D(),o=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)}}})),r=t.wrapWith(o,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return a.pub(null),i.pub(null),n}));return Object.assign(r,{onSessionTokenChange:a.sub,onUserChange:i.sub})}),(n=>a=>{var{storeLastAuthenticatedUser:i=!0}=a,o=e.__rest(a,["storeLastAuthenticatedUser"]);if(!i)return Object.assign(n(o),{getLastUserLoginId:_,getLastUserDisplayName:j});const r=n(s(o,{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],o=null==a?void 0:a.name;i&&((e=>{d(I,e)})(i),(e=>{d(O,e)})(o))}}));let l=t.wrapWith(r,["flow.start"],k);return l=t.wrapWith(l,["logout","logoutAll"],U),Object.assign(l,{getLastUserLoginId:_,getLastUserDisplayName:j})}),(n=>a=>{var{persistTokens:i,sessionTokenViaCookie:o,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 p=n(s(u,{beforeRequest:(f=c,e=>Object.assign(e,{token:e.token||J(f)})),afterRequest:async(t,n)=>{401===(null==n?void 0:n.status)?K(c):((t={},n,a)=>{var{refreshJwt:i,sessionJwt:o}=t,r=e.__rest(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),void 0===a&&(a=""),i&&d(`${a}${x}`,i),o&&(n?A(T,o,r):d(`${a}${T}`,o))})(await l(n),o,c)}}));var f;const h=t.wrapWith(p,["logout","logoutAll"],R(c));return Object.assign(h,{getRefreshToken:()=>J(c),getSessionToken:()=>function(e=""){return r.default.get(T)||g(`${e}${T}`)||""}(c)})}))(((...e)=>{const t=o.default(...e);return Object.assign(Object.assign({},t),{flow:W(t),webauthn:H(t),fedcm:M(t)})}));exports.REFRESH_TOKEN_KEY=x,exports.SESSION_TOKEN_KEY=T,exports.clearFingerprintData=()=>{localStorage.removeItem(b)},exports.default=G,exports.ensureFingerprintIds=m;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),t=require("@descope/core-js-sdk"),n=require("@fingerprintjs/fingerprintjs-pro"),a=require("js-cookie");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=i(t),r=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,h=Math.pow(2,31)-1,v=w&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://api.descope.com",b="fp",y=(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},m=async(e,t=v)=>{try{if(y())return;const a=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),i=new URL(t);i.pathname="/fXj8gt3x8VulJBna/x96Emn69oZwcd7I6";const o=new URL(t);o.pathname="/fXj8gt3x8VulJBna/w78aRZnnDZ3Aqw0I";const r=o.toString()+"?apiKey=<apiKey>&version=<version>&loaderVersion=<loaderVersion>",s=n.load({apiKey:e,endpoint:[i.toString(),n.defaultEndpoint],scriptUrlPattern:[r,n.defaultScriptUrlPattern]}),l=await s,{requestId:c}=await l.get({linkedId:a}),u=((e,t)=>({vsid:e,vrid:t}))(a,c);(e=>{const t={value:e,expiry:(new Date).getTime()+864e5};localStorage.setItem(b,JSON.stringify(t))})(u)}catch(e){console.warn("Could not load fingerprint",e)}},S=e=>{const t=y(!0);return t&&e.body&&(e.body.fpData=t),e},I="dls_last_user_login_id",O="dls_last_user_display_name",_=()=>g(I),j=()=>g(O),k=e=>async(...t)=>{var n;t[1]=t[1]||{};const[,a={}]=t,i=_(),o=j();i&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=i,a.lastAuth.name=o);return await e(...t)},U=e=>async(...t)=>{const n=await e(...t);return p(I),p(O),n};function D(){const e=[];return{pub:t=>{e.forEach((e=>e(t)))},sub:t=>{const n=e.push(t)-1;return()=>e.splice(n,1)}}}const T="DS",x="DSR";function A(e,t,{cookiePath:n,cookieDomain:a,cookieExpiration:i}){if(t){const o=new Date(1e3*i),s=function(e){const t=window.location.hostname.split("."),n=e.split(".");return t.slice(-n.length).join(".")===e}(a);r.default.set(e,t,{path:n,domain:s?a:void 0,expires:o,sameSite:"Strict",secure:!0})}}function J(e=""){return g(`${e}${x}`)||""}function K(e=""){p(`${e}${x}`),p(`${e}${T}`),r.default.remove(T)}const R=e=>t=>async(...n)=>{const a=await t(...n);return K(e),a};async function N(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:V(a.rawId),type:a.type,response:{attestationObject:V(a.response.attestationObject),clientDataJSON:V(a.response.clientDataJSON)}});var a}async function E(e){const t=P(e);return q(await navigator.credentials.get(t))}async function $(e,t){const n=P(e);n.signal=t.signal,n.mediation="conditional";return q(await navigator.credentials.get(n))}async function C(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 P(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 q(e){return JSON.stringify({id:e.id,rawId:V(e.rawId),type:e.type,response:{authenticatorData:V(e.response.authenticatorData),clientDataJSON:V(e.response.clientDataJSON),signature:V(e.response.signature),userHandle:e.response.userHandle?V(e.response.userHandle):void 0}})}function L(e){const t=e.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer}function V(e){return btoa(String.fromCharCode.apply(null,new Uint8Array(e))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var F,H=(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 N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,i)},async signIn(t){const n=await e.webauthn.signIn.start(t,window.location.origin);if(!n.ok)return n;const a=await E(n.data.options);return await e.webauthn.signIn.finish(n.data.transactionId,a)},async signUpOrIn(t){var n;const a=await e.webauthn.signUpOrIn.start(t,window.location.origin);if(!a.ok)return a;if(null===(n=a.data)||void 0===n?void 0:n.create){const t=await N(a.data.options);return await e.webauthn.signUp.finish(a.data.transactionId,t)}{const t=await E(a.data.options);return await e.webauthn.signIn.finish(a.data.transactionId,t)}},async update(t,n){const a=await e.webauthn.update.start(t,window.location.origin,n);if(!a.ok)return a;const i=await N(a.data.options);return await e.webauthn.update.finish(a.data.transactionId,i)},helpers:{create:N,get:E,isSupported:C,conditional:$}}),(...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});const M=e=>({async oneTap(t,n,a,i){const o=null!=t?t:"google",r=await e.oauth.startNative(o,a);if(!r.ok)return r;const{clientId:s,stateId:l,nonce:c}=r.data,u=await async function(){return new Promise(((e,t)=>{if(window.google)return void e(window.google.accounts.id);let n=document.getElementById("google-gsi-client-script");n||(n=document.createElement("script"),document.head.appendChild(n),n.async=!0,n.defer=!0,n.id="google-gsi-client-script",n.src="https://accounts.google.com/gsi/client"),n.onload=function(){window.google?e(window.google.accounts.id):t("Failed to load Google GSI client script - not loaded properly")},n.onerror=function(){t("Failed to load Google GSI client script - failed to load")}}))}();return new Promise((t=>{var a,r;u.initialize(Object.assign(Object.assign({},n),{itp_support:null===(a=null==n?void 0:n.itp_support)||void 0===a||a,use_fedcm_for_prompt:null===(r=null==n?void 0:n.use_fedcm_for_prompt)||void 0===r||r,client_id:s,callback:n=>{t(e.oauth.finishNative(o,l,"","",n.credential))},nonce:c})),u.prompt((e=>{(null==e?void 0:e.isSkippedMoment())&&(null==i||i())}))}))}});var W=e=>Object.assign(Object.assign({},e.flow),{start:async(...t)=>{const n=await C(),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 G=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)}((t=>n=>{var{fpKey:a,fpLoad:i}=n,o=e.__rest(n,["fpKey","fpLoad"]);return w?(a&&i&&m(a).catch((()=>null)),t(s(o,{beforeRequest:S}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),t(o))}),(n=>a=>{var{autoRefresh:i}=a,o=e.__rest(a,["autoRefresh"]);if(!i)return n(o);const{clearAllTimers:r,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(o,{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"),r();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>h&&(f(`Timeout is too large (${e}ms), setting it to ${h}ms`),e=h),r();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"),r(),n}))}),(e=>t=>e(Object.assign(Object.assign({},t),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.10.27"},t.baseHeaders)}))),(e=>n=>{const a=D(),i=D(),o=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)}}})),r=t.wrapWith(o,["logout","logoutAll"],(e=>async(...t)=>{const n=await e(...t);return a.pub(null),i.pub(null),n}));return Object.assign(r,{onSessionTokenChange:a.sub,onUserChange:i.sub})}),(n=>a=>{var{storeLastAuthenticatedUser:i=!0}=a,o=e.__rest(a,["storeLastAuthenticatedUser"]);if(!i)return Object.assign(n(o),{getLastUserLoginId:_,getLastUserDisplayName:j});const r=n(s(o,{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],o=null==a?void 0:a.name;i&&((e=>{d(I,e)})(i),(e=>{d(O,e)})(o))}}));let l=t.wrapWith(r,["flow.start"],k);return l=t.wrapWith(l,["logout","logoutAll"],U),Object.assign(l,{getLastUserLoginId:_,getLastUserDisplayName:j})}),(n=>a=>{var{persistTokens:i,sessionTokenViaCookie:o,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 p=n(s(u,{beforeRequest:(f=c,e=>Object.assign(e,{token:e.token||J(f)})),afterRequest:async(t,n)=>{401===(null==n?void 0:n.status)?K(c):((t={},n,a)=>{var{refreshJwt:i,sessionJwt:o}=t,r=e.__rest(t,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),void 0===a&&(a=""),i&&d(`${a}${x}`,i),o&&(n?A(T,o,r):d(`${a}${T}`,o))})(await l(n),o,c)}}));var f;const h=t.wrapWith(p,["logout","logoutAll"],R(c));return Object.assign(h,{getRefreshToken:()=>J(c),getSessionToken:()=>function(e=""){return r.default.get(T)||g(`${e}${T}`)||""}(c)})}))(((...e)=>{const t=o.default(...e);return Object.assign(Object.assign({},t),{flow:W(t),webauthn:H(t),fedcm:M(t)})}));exports.REFRESH_TOKEN_KEY=x,exports.SESSION_TOKEN_KEY=T,exports.clearFingerprintData=()=>{localStorage.removeItem(b)},exports.default=G,exports.ensureFingerprintIds=m;
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -184,6 +184,7 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
184
184
|
otp: {
|
|
185
185
|
verify: {
|
|
186
186
|
sms: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
187
|
+
voice: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
187
188
|
whatsapp: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
188
189
|
email: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
189
190
|
};
|
|
@@ -191,6 +192,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
191
192
|
sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
192
193
|
maskedPhone: string;
|
|
193
194
|
}>>;
|
|
195
|
+
voice: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
196
|
+
maskedPhone: string;
|
|
197
|
+
}>>;
|
|
194
198
|
whatsapp: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
195
199
|
maskedPhone: string;
|
|
196
200
|
}>>;
|
|
@@ -214,6 +218,21 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
214
218
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
215
219
|
maskedPhone: string;
|
|
216
220
|
}>>;
|
|
221
|
+
voice: (loginId: string, user?: {
|
|
222
|
+
email?: string;
|
|
223
|
+
name?: string;
|
|
224
|
+
givenName?: string;
|
|
225
|
+
middleName?: string;
|
|
226
|
+
familyName?: string;
|
|
227
|
+
phone?: string;
|
|
228
|
+
}, signUpOptions?: {
|
|
229
|
+
customClaims?: Record<string, any>;
|
|
230
|
+
templateOptions?: {
|
|
231
|
+
[x: string]: string;
|
|
232
|
+
};
|
|
233
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
234
|
+
maskedPhone: string;
|
|
235
|
+
}>>;
|
|
217
236
|
whatsapp: (loginId: string, user?: {
|
|
218
237
|
email?: string;
|
|
219
238
|
name?: string;
|
|
@@ -249,6 +268,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
249
268
|
sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
250
269
|
maskedPhone: string;
|
|
251
270
|
}>>;
|
|
271
|
+
voice: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
272
|
+
maskedPhone: string;
|
|
273
|
+
}>>;
|
|
252
274
|
whatsapp: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
253
275
|
maskedPhone: string;
|
|
254
276
|
}>>;
|
|
@@ -276,6 +298,15 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
276
298
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
277
299
|
maskedPhone: string;
|
|
278
300
|
}>>;
|
|
301
|
+
voice: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
302
|
+
addToLoginIDs?: T_1;
|
|
303
|
+
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
304
|
+
templateOptions?: {
|
|
305
|
+
[x: string]: string;
|
|
306
|
+
};
|
|
307
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
308
|
+
maskedPhone: string;
|
|
309
|
+
}>>;
|
|
279
310
|
whatsapp: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
280
311
|
addToLoginIDs?: T_1;
|
|
281
312
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
@@ -294,6 +325,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
294
325
|
sms: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
295
326
|
maskedPhone: string;
|
|
296
327
|
}>>;
|
|
328
|
+
voice: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
329
|
+
maskedPhone: string;
|
|
330
|
+
}>>;
|
|
297
331
|
whatsapp: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
298
332
|
maskedPhone: string;
|
|
299
333
|
}>>;
|
|
@@ -317,6 +351,21 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
317
351
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
318
352
|
maskedPhone: string;
|
|
319
353
|
}>>;
|
|
354
|
+
voice: (loginId: string, URI: string, user?: {
|
|
355
|
+
email?: string;
|
|
356
|
+
name?: string;
|
|
357
|
+
givenName?: string;
|
|
358
|
+
middleName?: string;
|
|
359
|
+
familyName?: string;
|
|
360
|
+
phone?: string;
|
|
361
|
+
}, signUpOptions?: {
|
|
362
|
+
customClaims?: Record<string, any>;
|
|
363
|
+
templateOptions?: {
|
|
364
|
+
[x: string]: string;
|
|
365
|
+
};
|
|
366
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
367
|
+
maskedPhone: string;
|
|
368
|
+
}>>;
|
|
320
369
|
whatsapp: (loginId: string, URI: string, user?: {
|
|
321
370
|
email?: string;
|
|
322
371
|
name?: string;
|
|
@@ -357,6 +406,14 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
357
406
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
358
407
|
maskedPhone: string;
|
|
359
408
|
}>>;
|
|
409
|
+
voice: (loginId: string, URI?: string, signUpOptions?: {
|
|
410
|
+
customClaims?: Record<string, any>;
|
|
411
|
+
templateOptions?: {
|
|
412
|
+
[x: string]: string;
|
|
413
|
+
};
|
|
414
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
415
|
+
maskedPhone: string;
|
|
416
|
+
}>>;
|
|
360
417
|
whatsapp: (loginId: string, URI?: string, signUpOptions?: {
|
|
361
418
|
customClaims?: Record<string, any>;
|
|
362
419
|
templateOptions?: {
|
|
@@ -394,6 +451,15 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
394
451
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
395
452
|
maskedPhone: string;
|
|
396
453
|
}>>;
|
|
454
|
+
voice: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
455
|
+
addToLoginIDs?: T_3;
|
|
456
|
+
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
457
|
+
templateOptions?: {
|
|
458
|
+
[x: string]: string;
|
|
459
|
+
};
|
|
460
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
461
|
+
maskedPhone: string;
|
|
462
|
+
}>>;
|
|
397
463
|
whatsapp: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
398
464
|
addToLoginIDs?: T_3;
|
|
399
465
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
@@ -636,6 +702,7 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
636
702
|
otp: {
|
|
637
703
|
verify: {
|
|
638
704
|
sms: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
705
|
+
voice: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
639
706
|
whatsapp: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
640
707
|
email: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
641
708
|
};
|
|
@@ -643,6 +710,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
643
710
|
sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
644
711
|
maskedPhone: string;
|
|
645
712
|
}>>;
|
|
713
|
+
voice: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
714
|
+
maskedPhone: string;
|
|
715
|
+
}>>;
|
|
646
716
|
whatsapp: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
647
717
|
maskedPhone: string;
|
|
648
718
|
}>>;
|
|
@@ -666,6 +736,21 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
666
736
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
667
737
|
maskedPhone: string;
|
|
668
738
|
}>>;
|
|
739
|
+
voice: (loginId: string, user?: {
|
|
740
|
+
email?: string;
|
|
741
|
+
name?: string;
|
|
742
|
+
givenName?: string;
|
|
743
|
+
middleName?: string;
|
|
744
|
+
familyName?: string;
|
|
745
|
+
phone?: string;
|
|
746
|
+
}, signUpOptions?: {
|
|
747
|
+
customClaims?: Record<string, any>;
|
|
748
|
+
templateOptions?: {
|
|
749
|
+
[x: string]: string;
|
|
750
|
+
};
|
|
751
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
752
|
+
maskedPhone: string;
|
|
753
|
+
}>>;
|
|
669
754
|
whatsapp: (loginId: string, user?: {
|
|
670
755
|
email?: string;
|
|
671
756
|
name?: string;
|
|
@@ -701,6 +786,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
701
786
|
sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
702
787
|
maskedPhone: string;
|
|
703
788
|
}>>;
|
|
789
|
+
voice: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
790
|
+
maskedPhone: string;
|
|
791
|
+
}>>;
|
|
704
792
|
whatsapp: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
705
793
|
maskedPhone: string;
|
|
706
794
|
}>>;
|
|
@@ -728,6 +816,15 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
728
816
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
729
817
|
maskedPhone: string;
|
|
730
818
|
}>>;
|
|
819
|
+
voice: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
820
|
+
addToLoginIDs?: T_1;
|
|
821
|
+
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
822
|
+
templateOptions?: {
|
|
823
|
+
[x: string]: string;
|
|
824
|
+
};
|
|
825
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
826
|
+
maskedPhone: string;
|
|
827
|
+
}>>;
|
|
731
828
|
whatsapp: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
732
829
|
addToLoginIDs?: T_1;
|
|
733
830
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
@@ -746,6 +843,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
746
843
|
sms: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
747
844
|
maskedPhone: string;
|
|
748
845
|
}>>;
|
|
846
|
+
voice: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
847
|
+
maskedPhone: string;
|
|
848
|
+
}>>;
|
|
749
849
|
whatsapp: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
750
850
|
maskedPhone: string;
|
|
751
851
|
}>>;
|
|
@@ -769,6 +869,21 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
769
869
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
770
870
|
maskedPhone: string;
|
|
771
871
|
}>>;
|
|
872
|
+
voice: (loginId: string, URI: string, user?: {
|
|
873
|
+
email?: string;
|
|
874
|
+
name?: string;
|
|
875
|
+
givenName?: string;
|
|
876
|
+
middleName?: string;
|
|
877
|
+
familyName?: string;
|
|
878
|
+
phone?: string;
|
|
879
|
+
}, signUpOptions?: {
|
|
880
|
+
customClaims?: Record<string, any>;
|
|
881
|
+
templateOptions?: {
|
|
882
|
+
[x: string]: string;
|
|
883
|
+
};
|
|
884
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
885
|
+
maskedPhone: string;
|
|
886
|
+
}>>;
|
|
772
887
|
whatsapp: (loginId: string, URI: string, user?: {
|
|
773
888
|
email?: string;
|
|
774
889
|
name?: string;
|
|
@@ -809,6 +924,14 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
809
924
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
810
925
|
maskedPhone: string;
|
|
811
926
|
}>>;
|
|
927
|
+
voice: (loginId: string, URI?: string, signUpOptions?: {
|
|
928
|
+
customClaims?: Record<string, any>;
|
|
929
|
+
templateOptions?: {
|
|
930
|
+
[x: string]: string;
|
|
931
|
+
};
|
|
932
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
933
|
+
maskedPhone: string;
|
|
934
|
+
}>>;
|
|
812
935
|
whatsapp: (loginId: string, URI?: string, signUpOptions?: {
|
|
813
936
|
customClaims?: Record<string, any>;
|
|
814
937
|
templateOptions?: {
|
|
@@ -846,6 +969,15 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
846
969
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
847
970
|
maskedPhone: string;
|
|
848
971
|
}>>;
|
|
972
|
+
voice: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
973
|
+
addToLoginIDs?: T_3;
|
|
974
|
+
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
975
|
+
templateOptions?: {
|
|
976
|
+
[x: string]: string;
|
|
977
|
+
};
|
|
978
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
979
|
+
maskedPhone: string;
|
|
980
|
+
}>>;
|
|
849
981
|
whatsapp: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
850
982
|
addToLoginIDs?: T_3;
|
|
851
983
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
@@ -1097,6 +1229,7 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1097
1229
|
otp: {
|
|
1098
1230
|
verify: {
|
|
1099
1231
|
sms: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1232
|
+
voice: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1100
1233
|
whatsapp: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1101
1234
|
email: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1102
1235
|
};
|
|
@@ -1104,6 +1237,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1104
1237
|
sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1105
1238
|
maskedPhone: string;
|
|
1106
1239
|
}>>;
|
|
1240
|
+
voice: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1241
|
+
maskedPhone: string;
|
|
1242
|
+
}>>;
|
|
1107
1243
|
whatsapp: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1108
1244
|
maskedPhone: string;
|
|
1109
1245
|
}>>;
|
|
@@ -1127,6 +1263,21 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1127
1263
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1128
1264
|
maskedPhone: string;
|
|
1129
1265
|
}>>;
|
|
1266
|
+
voice: (loginId: string, user?: {
|
|
1267
|
+
email?: string;
|
|
1268
|
+
name?: string;
|
|
1269
|
+
givenName?: string;
|
|
1270
|
+
middleName?: string;
|
|
1271
|
+
familyName?: string;
|
|
1272
|
+
phone?: string;
|
|
1273
|
+
}, signUpOptions?: {
|
|
1274
|
+
customClaims?: Record<string, any>;
|
|
1275
|
+
templateOptions?: {
|
|
1276
|
+
[x: string]: string;
|
|
1277
|
+
};
|
|
1278
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1279
|
+
maskedPhone: string;
|
|
1280
|
+
}>>;
|
|
1130
1281
|
whatsapp: (loginId: string, user?: {
|
|
1131
1282
|
email?: string;
|
|
1132
1283
|
name?: string;
|
|
@@ -1162,6 +1313,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1162
1313
|
sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1163
1314
|
maskedPhone: string;
|
|
1164
1315
|
}>>;
|
|
1316
|
+
voice: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1317
|
+
maskedPhone: string;
|
|
1318
|
+
}>>;
|
|
1165
1319
|
whatsapp: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1166
1320
|
maskedPhone: string;
|
|
1167
1321
|
}>>;
|
|
@@ -1189,6 +1343,15 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1189
1343
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1190
1344
|
maskedPhone: string;
|
|
1191
1345
|
}>>;
|
|
1346
|
+
voice: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
1347
|
+
addToLoginIDs?: T_1;
|
|
1348
|
+
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
1349
|
+
templateOptions?: {
|
|
1350
|
+
[x: string]: string;
|
|
1351
|
+
};
|
|
1352
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1353
|
+
maskedPhone: string;
|
|
1354
|
+
}>>;
|
|
1192
1355
|
whatsapp: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
1193
1356
|
addToLoginIDs?: T_1;
|
|
1194
1357
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
@@ -1207,6 +1370,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1207
1370
|
sms: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1208
1371
|
maskedPhone: string;
|
|
1209
1372
|
}>>;
|
|
1373
|
+
voice: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1374
|
+
maskedPhone: string;
|
|
1375
|
+
}>>;
|
|
1210
1376
|
whatsapp: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1211
1377
|
maskedPhone: string;
|
|
1212
1378
|
}>>;
|
|
@@ -1230,6 +1396,21 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1230
1396
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1231
1397
|
maskedPhone: string;
|
|
1232
1398
|
}>>;
|
|
1399
|
+
voice: (loginId: string, URI: string, user?: {
|
|
1400
|
+
email?: string;
|
|
1401
|
+
name?: string;
|
|
1402
|
+
givenName?: string;
|
|
1403
|
+
middleName?: string;
|
|
1404
|
+
familyName?: string;
|
|
1405
|
+
phone?: string;
|
|
1406
|
+
}, signUpOptions?: {
|
|
1407
|
+
customClaims?: Record<string, any>;
|
|
1408
|
+
templateOptions?: {
|
|
1409
|
+
[x: string]: string;
|
|
1410
|
+
};
|
|
1411
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1412
|
+
maskedPhone: string;
|
|
1413
|
+
}>>;
|
|
1233
1414
|
whatsapp: (loginId: string, URI: string, user?: {
|
|
1234
1415
|
email?: string;
|
|
1235
1416
|
name?: string;
|
|
@@ -1270,6 +1451,14 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1270
1451
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1271
1452
|
maskedPhone: string;
|
|
1272
1453
|
}>>;
|
|
1454
|
+
voice: (loginId: string, URI?: string, signUpOptions?: {
|
|
1455
|
+
customClaims?: Record<string, any>;
|
|
1456
|
+
templateOptions?: {
|
|
1457
|
+
[x: string]: string;
|
|
1458
|
+
};
|
|
1459
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1460
|
+
maskedPhone: string;
|
|
1461
|
+
}>>;
|
|
1273
1462
|
whatsapp: (loginId: string, URI?: string, signUpOptions?: {
|
|
1274
1463
|
customClaims?: Record<string, any>;
|
|
1275
1464
|
templateOptions?: {
|
|
@@ -1307,6 +1496,15 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1307
1496
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1308
1497
|
maskedPhone: string;
|
|
1309
1498
|
}>>;
|
|
1499
|
+
voice: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
1500
|
+
addToLoginIDs?: T_3;
|
|
1501
|
+
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
1502
|
+
templateOptions?: {
|
|
1503
|
+
[x: string]: string;
|
|
1504
|
+
};
|
|
1505
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1506
|
+
maskedPhone: string;
|
|
1507
|
+
}>>;
|
|
1310
1508
|
whatsapp: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
1311
1509
|
addToLoginIDs?: T_3;
|
|
1312
1510
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
@@ -1549,6 +1747,7 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1549
1747
|
otp: {
|
|
1550
1748
|
verify: {
|
|
1551
1749
|
sms: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1750
|
+
voice: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1552
1751
|
whatsapp: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1553
1752
|
email: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>;
|
|
1554
1753
|
};
|
|
@@ -1556,6 +1755,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1556
1755
|
sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1557
1756
|
maskedPhone: string;
|
|
1558
1757
|
}>>;
|
|
1758
|
+
voice: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1759
|
+
maskedPhone: string;
|
|
1760
|
+
}>>;
|
|
1559
1761
|
whatsapp: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1560
1762
|
maskedPhone: string;
|
|
1561
1763
|
}>>;
|
|
@@ -1579,6 +1781,21 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1579
1781
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1580
1782
|
maskedPhone: string;
|
|
1581
1783
|
}>>;
|
|
1784
|
+
voice: (loginId: string, user?: {
|
|
1785
|
+
email?: string;
|
|
1786
|
+
name?: string;
|
|
1787
|
+
givenName?: string;
|
|
1788
|
+
middleName?: string;
|
|
1789
|
+
familyName?: string;
|
|
1790
|
+
phone?: string;
|
|
1791
|
+
}, signUpOptions?: {
|
|
1792
|
+
customClaims?: Record<string, any>;
|
|
1793
|
+
templateOptions?: {
|
|
1794
|
+
[x: string]: string;
|
|
1795
|
+
};
|
|
1796
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1797
|
+
maskedPhone: string;
|
|
1798
|
+
}>>;
|
|
1582
1799
|
whatsapp: (loginId: string, user?: {
|
|
1583
1800
|
email?: string;
|
|
1584
1801
|
name?: string;
|
|
@@ -1614,6 +1831,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1614
1831
|
sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1615
1832
|
maskedPhone: string;
|
|
1616
1833
|
}>>;
|
|
1834
|
+
voice: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1835
|
+
maskedPhone: string;
|
|
1836
|
+
}>>;
|
|
1617
1837
|
whatsapp: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1618
1838
|
maskedPhone: string;
|
|
1619
1839
|
}>>;
|
|
@@ -1641,6 +1861,15 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1641
1861
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1642
1862
|
maskedPhone: string;
|
|
1643
1863
|
}>>;
|
|
1864
|
+
voice: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
1865
|
+
addToLoginIDs?: T_1;
|
|
1866
|
+
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
1867
|
+
templateOptions?: {
|
|
1868
|
+
[x: string]: string;
|
|
1869
|
+
};
|
|
1870
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1871
|
+
maskedPhone: string;
|
|
1872
|
+
}>>;
|
|
1644
1873
|
whatsapp: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: {
|
|
1645
1874
|
addToLoginIDs?: T_1;
|
|
1646
1875
|
onMergeUseExisting?: T_1 extends true ? boolean : never;
|
|
@@ -1659,6 +1888,9 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1659
1888
|
sms: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1660
1889
|
maskedPhone: string;
|
|
1661
1890
|
}>>;
|
|
1891
|
+
voice: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1892
|
+
maskedPhone: string;
|
|
1893
|
+
}>>;
|
|
1662
1894
|
whatsapp: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1663
1895
|
maskedPhone: string;
|
|
1664
1896
|
}>>;
|
|
@@ -1682,6 +1914,21 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1682
1914
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1683
1915
|
maskedPhone: string;
|
|
1684
1916
|
}>>;
|
|
1917
|
+
voice: (loginId: string, URI: string, user?: {
|
|
1918
|
+
email?: string;
|
|
1919
|
+
name?: string;
|
|
1920
|
+
givenName?: string;
|
|
1921
|
+
middleName?: string;
|
|
1922
|
+
familyName?: string;
|
|
1923
|
+
phone?: string;
|
|
1924
|
+
}, signUpOptions?: {
|
|
1925
|
+
customClaims?: Record<string, any>;
|
|
1926
|
+
templateOptions?: {
|
|
1927
|
+
[x: string]: string;
|
|
1928
|
+
};
|
|
1929
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1930
|
+
maskedPhone: string;
|
|
1931
|
+
}>>;
|
|
1685
1932
|
whatsapp: (loginId: string, URI: string, user?: {
|
|
1686
1933
|
email?: string;
|
|
1687
1934
|
name?: string;
|
|
@@ -1722,6 +1969,14 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1722
1969
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1723
1970
|
maskedPhone: string;
|
|
1724
1971
|
}>>;
|
|
1972
|
+
voice: (loginId: string, URI?: string, signUpOptions?: {
|
|
1973
|
+
customClaims?: Record<string, any>;
|
|
1974
|
+
templateOptions?: {
|
|
1975
|
+
[x: string]: string;
|
|
1976
|
+
};
|
|
1977
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1978
|
+
maskedPhone: string;
|
|
1979
|
+
}>>;
|
|
1725
1980
|
whatsapp: (loginId: string, URI?: string, signUpOptions?: {
|
|
1726
1981
|
customClaims?: Record<string, any>;
|
|
1727
1982
|
templateOptions?: {
|
|
@@ -1759,6 +2014,15 @@ declare const decoratedCreateSdk: <A extends boolean>({ persistTokens: isPersist
|
|
|
1759
2014
|
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
1760
2015
|
maskedPhone: string;
|
|
1761
2016
|
}>>;
|
|
2017
|
+
voice: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
2018
|
+
addToLoginIDs?: T_3;
|
|
2019
|
+
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
|
2020
|
+
templateOptions?: {
|
|
2021
|
+
[x: string]: string;
|
|
2022
|
+
};
|
|
2023
|
+
}) => Promise<_descope_core_js_sdk.SdkResponse<{
|
|
2024
|
+
maskedPhone: string;
|
|
2025
|
+
}>>;
|
|
1762
2026
|
whatsapp: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: {
|
|
1763
2027
|
addToLoginIDs?: T_3;
|
|
1764
2028
|
onMergeUseExisting?: T_3 extends true ? boolean : never;
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as t}from"tslib";import e,{wrapWith as n}from"@descope/core-js-sdk";import{load as a,defaultEndpoint as o,defaultScriptUrlPattern as i}from"@fingerprintjs/fingerprintjs-pro";import s from"js-cookie";const r=(t,e)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,a)=>{var o;return n[a]=[].concat((null===(o=t.hooks)||void 0===o?void 0:o[a])||[]).concat((null==e?void 0:e[a])||[]),n}),null!==(n=t.hooks)&&void 0!==n?n:t.hooks={}),t},l=async t=>{if(!(null==t?void 0:t.ok))return{};const e=await(null==t?void 0:t.clone().json());return(null==e?void 0:e.authInfo)||e||{}},c=async t=>{const e=await l(t);return(null==e?void 0:e.user)||((null==e?void 0:e.hasOwnProperty("userId"))?e:void 0)},u="undefined"!=typeof localStorage,d=(t,e)=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(t,e)),g=t=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(t)),p=t=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(t)),w=(...t)=>{console.debug(...t)},f="undefined"!=typeof window,h=Math.pow(2,31)-1,v=f&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://api.descope.com",b="fp",m=(t=!1)=>{const e=localStorage.getItem(b);if(!e)return null;const n=JSON.parse(e);return(new Date).getTime()>n.expiry&&!t?null:n.value},y=async(t,e=v)=>{try{if(m())return;const n=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),s=new URL(e);s.pathname="/fXj8gt3x8VulJBna/x96Emn69oZwcd7I6";const r=new URL(e);r.pathname="/fXj8gt3x8VulJBna/w78aRZnnDZ3Aqw0I";const l=r.toString()+"?apiKey=<apiKey>&version=<version>&loaderVersion=<loaderVersion>",c=a({apiKey:t,endpoint:[s.toString(),o],scriptUrlPattern:[l,i]}),u=await c,{requestId:d}=await u.get({linkedId:n}),g=((t,e)=>({vsid:t,vrid:e}))(n,d);(t=>{const e={value:t,expiry:(new Date).getTime()+864e5};localStorage.setItem(b,JSON.stringify(e))})(g)}catch(t){console.warn("Could not load fingerprint",t)}},S=()=>{localStorage.removeItem(b)},I=t=>{const e=m(!0);return e&&t.body&&(t.body.fpData=e),t},O="dls_last_user_login_id",k="dls_last_user_display_name",j=()=>g(O),U=()=>g(k),D=t=>async(...e)=>{var n;e[1]=e[1]||{};const[,a={}]=e,o=j(),i=U();o&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=o,a.lastAuth.name=i);return await t(...e)},A=t=>async(...e)=>{const n=await t(...e);return p(O),p(k),n};function J(){const t=[];return{pub:e=>{t.forEach((t=>t(e)))},sub:e=>{const n=t.push(e)-1;return()=>t.splice(n,1)}}}const T="DS",_="DSR";function R(t,e,{cookiePath:n,cookieDomain:a,cookieExpiration:o}){if(e){const i=new Date(1e3*o),r=function(t){const e=window.location.hostname.split("."),n=t.split(".");return e.slice(-n.length).join(".")===t}(a);s.set(t,e,{path:n,domain:r?a:void 0,expires:i,sameSite:"Strict",secure:!0})}}function x(t=""){return g(`${t}${_}`)||""}function K(t=""){p(`${t}${_}`),p(`${t}${T}`),s.remove(T)}const $=t=>e=>async(...n)=>{const a=await e(...n);return K(t),a};async function C(t){const e=function(t){var e;const n=JSON.parse(t);return n.publicKey.challenge=V(n.publicKey.challenge),n.publicKey.user.id=V(n.publicKey.user.id),null===(e=n.publicKey.excludeCredentials)||void 0===e||e.forEach((t=>{t.id=V(t.id)})),n}(t),n=await navigator.credentials.create(e);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(t){const e=q(t);return E(await navigator.credentials.get(e))}async function L(t,e){const n=q(t);n.signal=e.signal,n.mediation="conditional";return E(await navigator.credentials.get(n))}async function P(t=!1){if(!f)return Promise.resolve(!1);const e=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return e&&t&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():e}function q(t){var e;const n=JSON.parse(t);return n.publicKey.challenge=V(n.publicKey.challenge),null===(e=n.publicKey.allowCredentials)||void 0===e||e.forEach((t=>{t.id=V(t.id)})),n}function E(t){return JSON.stringify({id:t.id,rawId:H(t.rawId),type:t.type,response:{authenticatorData:H(t.response.authenticatorData),clientDataJSON:H(t.response.clientDataJSON),signature:H(t.response.signature),userHandle:t.response.userHandle?H(t.response.userHandle):void 0}})}function V(t){const e=t.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(e),(t=>t.charCodeAt(0))).buffer}function H(t){return btoa(String.fromCharCode.apply(null,new Uint8Array(t))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var G,M=(G=t=>({async signUp(e,n){const a=await t.webauthn.signUp.start(e,window.location.origin,n);if(!a.ok)return a;const o=await C(a.data.options);return await t.webauthn.signUp.finish(a.data.transactionId,o)},async signIn(e){const n=await t.webauthn.signIn.start(e,window.location.origin);if(!n.ok)return n;const a=await N(n.data.options);return await t.webauthn.signIn.finish(n.data.transactionId,a)},async signUpOrIn(e){var n;const a=await t.webauthn.signUpOrIn.start(e,window.location.origin);if(!a.ok)return a;if(null===(n=a.data)||void 0===n?void 0:n.create){const e=await C(a.data.options);return await t.webauthn.signUp.finish(a.data.transactionId,e)}{const e=await N(a.data.options);return await t.webauthn.signIn.finish(a.data.transactionId,e)}},async update(e,n){const a=await t.webauthn.update.start(e,window.location.origin,n);if(!a.ok)return a;const o=await C(a.data.options);return await t.webauthn.update.finish(a.data.transactionId,o)},helpers:{create:C,get:N,isSupported:P,conditional:L}}),(...t)=>{const e=G(...t);return Object.assign(e.signUp,t[0].webauthn.signUp),Object.assign(e.signIn,t[0].webauthn.signIn),Object.assign(e.signUpOrIn,t[0].webauthn.signUpOrIn),Object.assign(e.update,t[0].webauthn.update),e});const B=t=>({async oneTap(e,n,a,o){const i=null!=e?e:"google",s=await t.oauth.startNative(i,a);if(!s.ok)return s;const{clientId:r,stateId:l,nonce:c}=s.data,u=await async function(){return new Promise(((t,e)=>{if(window.google)return void t(window.google.accounts.id);let n=document.getElementById("google-gsi-client-script");n||(n=document.createElement("script"),document.head.appendChild(n),n.async=!0,n.defer=!0,n.id="google-gsi-client-script",n.src="https://accounts.google.com/gsi/client"),n.onload=function(){window.google?t(window.google.accounts.id):e("Failed to load Google GSI client script - not loaded properly")},n.onerror=function(){e("Failed to load Google GSI client script - failed to load")}}))}();return new Promise((e=>{var a,s;u.initialize(Object.assign(Object.assign({},n),{itp_support:null===(a=null==n?void 0:n.itp_support)||void 0===a||a,use_fedcm_for_prompt:null===(s=null==n?void 0:n.use_fedcm_for_prompt)||void 0===s||s,client_id:r,callback:n=>{e(t.oauth.finishNative(i,l,"","",n.credential))},nonce:c})),u.prompt((t=>{(null==t?void 0:t.isSkippedMoment())&&(null==o||o())}))}))}});var F=t=>Object.assign(Object.assign({},t.flow),{start:async(...e)=>{const n=await P(),a=Object.assign(Object.assign({location:window.location.href},e[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});return e[1]=a,t.flow.start(...e)}});const Z=function(...t){return e=>t.reduce(((t,e)=>e(t)),e)}((e=>n=>{var{fpKey:a,fpLoad:o}=n,i=t(n,["fpKey","fpLoad"]);return f?(a&&o&&y(a).catch((()=>null)),e(r(i,{beforeRequest:I}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),e(i))}),(e=>a=>{var{autoRefresh:o}=a,i=t(a,["autoRefresh"]);if(!o)return e(i);const{clearAllTimers:s,setTimer:c}=(()=>{const t=[];return{clearAllTimers:()=>{for(;t.length;)clearTimeout(t.pop())},setTimer:(e,n)=>{t.push(setTimeout(e,n))}}})();let u,d;document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&new Date>u&&(w("Expiration time passed, refreshing session"),g.refresh(d))}));const g=e(r(i,{afterRequest:async(t,e)=>{const{refreshJwt:n,sessionJwt:a}=await l(e);if(401===(null==e?void 0:e.status))w("Received 401, canceling all timers"),s();else if(a){u=(t=>{const e=t.split(".");try{if(3===e.length){const t=JSON.parse(window.atob(e[1]));if(t.exp)return new Date(1e3*t.exp)}}catch(t){}return null})(a),d=n;let t=((o=u)?o.getTime()-(new Date).getTime():0)-2e4;t>h&&(w(`Timeout is too large (${t}ms), setting it to ${h}ms`),t=h),s();const e=new Date(Date.now()+t).toLocaleTimeString("en-US",{hour12:!1});w(`Setting refresh timer for ${e}. (${t}ms)`),c((()=>{w("Refreshing session due to timer"),g.refresh(n)}),t)}var o}}));return n(g,["logout","logoutAll"],(t=>async(...e)=>{const n=await t(...e);return w("Clearing all timers"),s(),n}))}),(t=>e=>t(Object.assign(Object.assign({},e),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.10.25"},e.baseHeaders)}))),(t=>e=>{const a=J(),o=J(),i=t(r(e,{afterRequest:async(t,e)=>{if(401===(null==e?void 0:e.status))a.pub(null),o.pub(null);else{const t=await c(e);t&&o.pub(t);const{sessionJwt:n}=await l(e);n&&a.pub(n)}}})),s=n(i,["logout","logoutAll"],(t=>async(...e)=>{const n=await t(...e);return a.pub(null),o.pub(null),n}));return Object.assign(s,{onSessionTokenChange:a.sub,onUserChange:o.sub})}),(e=>a=>{var{storeLastAuthenticatedUser:o=!0}=a,i=t(a,["storeLastAuthenticatedUser"]);if(!o)return Object.assign(e(i),{getLastUserLoginId:j,getLastUserDisplayName:U});const s=e(r(i,{afterRequest:async(t,e)=>{var n;const a=await c(e),o=null===(n=null==a?void 0:a.loginIds)||void 0===n?void 0:n[0],i=null==a?void 0:a.name;o&&((t=>{d(O,t)})(o),(t=>{d(k,t)})(i))}}));let l=n(s,["flow.start"],D);return l=n(l,["logout","logoutAll"],A),Object.assign(l,{getLastUserLoginId:j,getLastUserDisplayName:U})}),(e=>a=>{var{persistTokens:o,sessionTokenViaCookie:i,storagePrefix:c}=a,u=t(a,["persistTokens","sessionTokenViaCookie","storagePrefix"]);if(!o||!f)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"),e(u);const p=e(r(u,{beforeRequest:(w=c,t=>Object.assign(t,{token:t.token||x(w)})),afterRequest:async(e,n)=>{401===(null==n?void 0:n.status)?K(c):((e={},n,a)=>{var{refreshJwt:o,sessionJwt:i}=e,s=t(e,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),void 0===a&&(a=""),o&&d(`${a}${_}`,o),i&&(n?R(T,i,s):d(`${a}${T}`,i))})(await l(n),i,c)}}));var w;const h=n(p,["logout","logoutAll"],$(c));return Object.assign(h,{getRefreshToken:()=>x(c),getSessionToken:()=>function(t=""){return s.get(T)||g(`${t}${T}`)||""}(c)})}))(((...t)=>{const n=e(...t);return Object.assign(Object.assign({},n),{flow:F(n),webauthn:M(n),fedcm:B(n)})}));export{_ as REFRESH_TOKEN_KEY,T as SESSION_TOKEN_KEY,S as clearFingerprintData,Z as default,y as ensureFingerprintIds};
|
|
1
|
+
import{__rest as t}from"tslib";import e,{wrapWith as n}from"@descope/core-js-sdk";import{load as a,defaultEndpoint as o,defaultScriptUrlPattern as i}from"@fingerprintjs/fingerprintjs-pro";import s from"js-cookie";const r=(t,e)=>{var n;return["beforeRequest","afterRequest"].reduce(((n,a)=>{var o;return n[a]=[].concat((null===(o=t.hooks)||void 0===o?void 0:o[a])||[]).concat((null==e?void 0:e[a])||[]),n}),null!==(n=t.hooks)&&void 0!==n?n:t.hooks={}),t},l=async t=>{if(!(null==t?void 0:t.ok))return{};const e=await(null==t?void 0:t.clone().json());return(null==e?void 0:e.authInfo)||e||{}},c=async t=>{const e=await l(t);return(null==e?void 0:e.user)||((null==e?void 0:e.hasOwnProperty("userId"))?e:void 0)},u="undefined"!=typeof localStorage,d=(t,e)=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.setItem(t,e)),g=t=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem(t)),p=t=>u&&(null===localStorage||void 0===localStorage?void 0:localStorage.removeItem(t)),w=(...t)=>{console.debug(...t)},f="undefined"!=typeof window,h=Math.pow(2,31)-1,v=f&&(null===localStorage||void 0===localStorage?void 0:localStorage.getItem("fingerprint.endpoint.url"))||"https://api.descope.com",b="fp",m=(t=!1)=>{const e=localStorage.getItem(b);if(!e)return null;const n=JSON.parse(e);return(new Date).getTime()>n.expiry&&!t?null:n.value},y=async(t,e=v)=>{try{if(m())return;const n=(Date.now().toString(36)+Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).substring(0,27),s=new URL(e);s.pathname="/fXj8gt3x8VulJBna/x96Emn69oZwcd7I6";const r=new URL(e);r.pathname="/fXj8gt3x8VulJBna/w78aRZnnDZ3Aqw0I";const l=r.toString()+"?apiKey=<apiKey>&version=<version>&loaderVersion=<loaderVersion>",c=a({apiKey:t,endpoint:[s.toString(),o],scriptUrlPattern:[l,i]}),u=await c,{requestId:d}=await u.get({linkedId:n}),g=((t,e)=>({vsid:t,vrid:e}))(n,d);(t=>{const e={value:t,expiry:(new Date).getTime()+864e5};localStorage.setItem(b,JSON.stringify(e))})(g)}catch(t){console.warn("Could not load fingerprint",t)}},S=()=>{localStorage.removeItem(b)},I=t=>{const e=m(!0);return e&&t.body&&(t.body.fpData=e),t},O="dls_last_user_login_id",k="dls_last_user_display_name",j=()=>g(O),U=()=>g(k),D=t=>async(...e)=>{var n;e[1]=e[1]||{};const[,a={}]=e,o=j(),i=U();o&&(null!==(n=a.lastAuth)&&void 0!==n||(a.lastAuth={}),a.lastAuth.loginId=o,a.lastAuth.name=i);return await t(...e)},A=t=>async(...e)=>{const n=await t(...e);return p(O),p(k),n};function J(){const t=[];return{pub:e=>{t.forEach((t=>t(e)))},sub:e=>{const n=t.push(e)-1;return()=>t.splice(n,1)}}}const T="DS",_="DSR";function R(t,e,{cookiePath:n,cookieDomain:a,cookieExpiration:o}){if(e){const i=new Date(1e3*o),r=function(t){const e=window.location.hostname.split("."),n=t.split(".");return e.slice(-n.length).join(".")===t}(a);s.set(t,e,{path:n,domain:r?a:void 0,expires:i,sameSite:"Strict",secure:!0})}}function x(t=""){return g(`${t}${_}`)||""}function K(t=""){p(`${t}${_}`),p(`${t}${T}`),s.remove(T)}const $=t=>e=>async(...n)=>{const a=await e(...n);return K(t),a};async function C(t){const e=function(t){var e;const n=JSON.parse(t);return n.publicKey.challenge=V(n.publicKey.challenge),n.publicKey.user.id=V(n.publicKey.user.id),null===(e=n.publicKey.excludeCredentials)||void 0===e||e.forEach((t=>{t.id=V(t.id)})),n}(t),n=await navigator.credentials.create(e);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(t){const e=q(t);return E(await navigator.credentials.get(e))}async function L(t,e){const n=q(t);n.signal=e.signal,n.mediation="conditional";return E(await navigator.credentials.get(n))}async function P(t=!1){if(!f)return Promise.resolve(!1);const e=!!(window.PublicKeyCredential&&navigator.credentials&&navigator.credentials.create&&navigator.credentials.get);return e&&t&&PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable?PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():e}function q(t){var e;const n=JSON.parse(t);return n.publicKey.challenge=V(n.publicKey.challenge),null===(e=n.publicKey.allowCredentials)||void 0===e||e.forEach((t=>{t.id=V(t.id)})),n}function E(t){return JSON.stringify({id:t.id,rawId:H(t.rawId),type:t.type,response:{authenticatorData:H(t.response.authenticatorData),clientDataJSON:H(t.response.clientDataJSON),signature:H(t.response.signature),userHandle:t.response.userHandle?H(t.response.userHandle):void 0}})}function V(t){const e=t.replace(/_/g,"/").replace(/-/g,"+");return Uint8Array.from(atob(e),(t=>t.charCodeAt(0))).buffer}function H(t){return btoa(String.fromCharCode.apply(null,new Uint8Array(t))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}var G,M=(G=t=>({async signUp(e,n){const a=await t.webauthn.signUp.start(e,window.location.origin,n);if(!a.ok)return a;const o=await C(a.data.options);return await t.webauthn.signUp.finish(a.data.transactionId,o)},async signIn(e){const n=await t.webauthn.signIn.start(e,window.location.origin);if(!n.ok)return n;const a=await N(n.data.options);return await t.webauthn.signIn.finish(n.data.transactionId,a)},async signUpOrIn(e){var n;const a=await t.webauthn.signUpOrIn.start(e,window.location.origin);if(!a.ok)return a;if(null===(n=a.data)||void 0===n?void 0:n.create){const e=await C(a.data.options);return await t.webauthn.signUp.finish(a.data.transactionId,e)}{const e=await N(a.data.options);return await t.webauthn.signIn.finish(a.data.transactionId,e)}},async update(e,n){const a=await t.webauthn.update.start(e,window.location.origin,n);if(!a.ok)return a;const o=await C(a.data.options);return await t.webauthn.update.finish(a.data.transactionId,o)},helpers:{create:C,get:N,isSupported:P,conditional:L}}),(...t)=>{const e=G(...t);return Object.assign(e.signUp,t[0].webauthn.signUp),Object.assign(e.signIn,t[0].webauthn.signIn),Object.assign(e.signUpOrIn,t[0].webauthn.signUpOrIn),Object.assign(e.update,t[0].webauthn.update),e});const B=t=>({async oneTap(e,n,a,o){const i=null!=e?e:"google",s=await t.oauth.startNative(i,a);if(!s.ok)return s;const{clientId:r,stateId:l,nonce:c}=s.data,u=await async function(){return new Promise(((t,e)=>{if(window.google)return void t(window.google.accounts.id);let n=document.getElementById("google-gsi-client-script");n||(n=document.createElement("script"),document.head.appendChild(n),n.async=!0,n.defer=!0,n.id="google-gsi-client-script",n.src="https://accounts.google.com/gsi/client"),n.onload=function(){window.google?t(window.google.accounts.id):e("Failed to load Google GSI client script - not loaded properly")},n.onerror=function(){e("Failed to load Google GSI client script - failed to load")}}))}();return new Promise((e=>{var a,s;u.initialize(Object.assign(Object.assign({},n),{itp_support:null===(a=null==n?void 0:n.itp_support)||void 0===a||a,use_fedcm_for_prompt:null===(s=null==n?void 0:n.use_fedcm_for_prompt)||void 0===s||s,client_id:r,callback:n=>{e(t.oauth.finishNative(i,l,"","",n.credential))},nonce:c})),u.prompt((t=>{(null==t?void 0:t.isSkippedMoment())&&(null==o||o())}))}))}});var F=t=>Object.assign(Object.assign({},t.flow),{start:async(...e)=>{const n=await P(),a=Object.assign(Object.assign({location:window.location.href},e[1]),{deviceInfo:{webAuthnSupport:n},startOptionsVersion:1});return e[1]=a,t.flow.start(...e)}});const Z=function(...t){return e=>t.reduce(((t,e)=>e(t)),e)}((e=>n=>{var{fpKey:a,fpLoad:o}=n,i=t(n,["fpKey","fpLoad"]);return f?(a&&o&&y(a).catch((()=>null)),e(r(i,{beforeRequest:I}))):(console.warn("Fingerprint is a client side only capability and will not work when running in the server"),e(i))}),(e=>a=>{var{autoRefresh:o}=a,i=t(a,["autoRefresh"]);if(!o)return e(i);const{clearAllTimers:s,setTimer:c}=(()=>{const t=[];return{clearAllTimers:()=>{for(;t.length;)clearTimeout(t.pop())},setTimer:(e,n)=>{t.push(setTimeout(e,n))}}})();let u,d;document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState&&new Date>u&&(w("Expiration time passed, refreshing session"),g.refresh(d))}));const g=e(r(i,{afterRequest:async(t,e)=>{const{refreshJwt:n,sessionJwt:a}=await l(e);if(401===(null==e?void 0:e.status))w("Received 401, canceling all timers"),s();else if(a){u=(t=>{const e=t.split(".");try{if(3===e.length){const t=JSON.parse(window.atob(e[1]));if(t.exp)return new Date(1e3*t.exp)}}catch(t){}return null})(a),d=n;let t=((o=u)?o.getTime()-(new Date).getTime():0)-2e4;t>h&&(w(`Timeout is too large (${t}ms), setting it to ${h}ms`),t=h),s();const e=new Date(Date.now()+t).toLocaleTimeString("en-US",{hour12:!1});w(`Setting refresh timer for ${e}. (${t}ms)`),c((()=>{w("Refreshing session due to timer"),g.refresh(n)}),t)}var o}}));return n(g,["logout","logoutAll"],(t=>async(...e)=>{const n=await t(...e);return w("Clearing all timers"),s(),n}))}),(t=>e=>t(Object.assign(Object.assign({},e),{baseHeaders:Object.assign({"x-descope-sdk-name":"web-js","x-descope-sdk-version":"1.10.27"},e.baseHeaders)}))),(t=>e=>{const a=J(),o=J(),i=t(r(e,{afterRequest:async(t,e)=>{if(401===(null==e?void 0:e.status))a.pub(null),o.pub(null);else{const t=await c(e);t&&o.pub(t);const{sessionJwt:n}=await l(e);n&&a.pub(n)}}})),s=n(i,["logout","logoutAll"],(t=>async(...e)=>{const n=await t(...e);return a.pub(null),o.pub(null),n}));return Object.assign(s,{onSessionTokenChange:a.sub,onUserChange:o.sub})}),(e=>a=>{var{storeLastAuthenticatedUser:o=!0}=a,i=t(a,["storeLastAuthenticatedUser"]);if(!o)return Object.assign(e(i),{getLastUserLoginId:j,getLastUserDisplayName:U});const s=e(r(i,{afterRequest:async(t,e)=>{var n;const a=await c(e),o=null===(n=null==a?void 0:a.loginIds)||void 0===n?void 0:n[0],i=null==a?void 0:a.name;o&&((t=>{d(O,t)})(o),(t=>{d(k,t)})(i))}}));let l=n(s,["flow.start"],D);return l=n(l,["logout","logoutAll"],A),Object.assign(l,{getLastUserLoginId:j,getLastUserDisplayName:U})}),(e=>a=>{var{persistTokens:o,sessionTokenViaCookie:i,storagePrefix:c}=a,u=t(a,["persistTokens","sessionTokenViaCookie","storagePrefix"]);if(!o||!f)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"),e(u);const p=e(r(u,{beforeRequest:(w=c,t=>Object.assign(t,{token:t.token||x(w)})),afterRequest:async(e,n)=>{401===(null==n?void 0:n.status)?K(c):((e={},n,a)=>{var{refreshJwt:o,sessionJwt:i}=e,s=t(e,["refreshJwt","sessionJwt"]);void 0===n&&(n=!1),void 0===a&&(a=""),o&&d(`${a}${_}`,o),i&&(n?R(T,i,s):d(`${a}${T}`,i))})(await l(n),i,c)}}));var w;const h=n(p,["logout","logoutAll"],$(c));return Object.assign(h,{getRefreshToken:()=>x(c),getSessionToken:()=>function(t=""){return s.get(T)||g(`${t}${T}`)||""}(c)})}))(((...t)=>{const n=e(...t);return Object.assign(Object.assign({},n),{flow:F(n),webauthn:M(n),fedcm:B(n)})}));export{_ as REFRESH_TOKEN_KEY,T as SESSION_TOKEN_KEY,S as clearFingerprintData,Z as default,y as ensureFingerprintIds};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|