@descope/core-js-sdk 1.9.1 → 1.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("jwt-decode"),t=require("lodash.get"),n={exchange:"/v1/auth/accesskey/exchange"},s={verify:"/v1/auth/otp/verify",signIn:"/v1/auth/otp/signin",signUp:"/v1/auth/otp/signup",update:{email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},signUpOrIn:"/v1/auth/otp/signup-in"},o={verify:"/v1/auth/magiclink/verify",signIn:"/v1/auth/magiclink/signin",signUp:"/v1/auth/magiclink/signup",update:{email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/phone"},signUpOrIn:"/v1/auth/magiclink/signup-in"},i={verify:"/v1/auth/enchantedlink/verify",signIn:"/v1/auth/enchantedlink/signin",signUp:"/v1/auth/enchantedlink/signup",session:"/v1/auth/enchantedlink/pending-session",update:{email:"/v1/auth/enchantedlink/update/email"},signUpOrIn:"/v1/auth/enchantedlink/signup-in"},a={start:"/v1/auth/oauth/authorize",exchange:"/v1/auth/oauth/exchange"},r={start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},d={verify:"/v1/auth/totp/verify",signUp:"/v1/auth/totp/signup",update:"/v1/auth/totp/update"},u={signUp:{start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},signIn:{start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},signUpOrIn:{start:"/v1/auth/webauthn/signup-in/start"},update:{start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"}},l={signUp:"/v1/auth/password/signup",signIn:"/v1/auth/password/signin",sendReset:"/v1/auth/password/reset",update:"/v1/auth/password/update",replace:"/v1/auth/password/replace",policy:"/v1/auth/password/policy"},p="/v1/auth/refresh",c="/v1/auth/logout",g="/v1/auth/logoutall",h="/v1/auth/me",v={start:"/v1/flow/start",next:"/v1/flow/next"};const f=1e3,m=6e5,I=()=>{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")}},b=(e,t)=>{const n=(e=>async(...t)=>{const n=await e(...t),s=await n.text();return n.text=()=>Promise.resolve(s),n.json=()=>Promise.resolve(JSON.parse(s)),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=>I().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const s=await n(...t);return e[s.ok?"log":"error"](await(async e=>{const t=await e.text();return I().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(s)),s}:n};var y;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(y||(y={}));const k=(...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,s])=>(e[n]=s,e)),e),e}),{})),O=e=>void 0===e?void 0:JSON.stringify(e),w=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},j=({baseUrl:e,projectId:t,baseConfig:n,logger:s,hooks:o,cookiePolicy:i,fetch:a})=>{const r=b(s,a),d=async s=>{const a=(null==o?void 0:o.beforeRequest)?o.beforeRequest(s):s,{path:d,body:u,headers:l,queryParams:p,method:c,token:g}=a,h=await r((({path:e,baseUrl:t,queryParams:n})=>{const s=new URL(e,t);return n&&(s.search=new URLSearchParams(n).toString()),s})({path:d,baseUrl:e,queryParams:p}),{headers:k(w(t,g),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"1.9.1"},(null==n?void 0:n.baseHeaders)||{},l),method:c,body:O(u),credentials:i||"include"});return(null==o?void 0:o.afterRequest)&&await o.afterRequest(s,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:s}={})=>d({path:e,headers:t,queryParams:n,body:void 0,method:y.get,token:s}),post:(e,t,{headers:n,queryParams:s,token:o}={})=>d({path:e,headers:n,queryParams:s,body:t,method:y.post,token:o}),put:(e,t,{headers:n,queryParams:s,token:o}={})=>d({path:e,headers:n,queryParams:s,body:t,method:y.put,token:o}),delete:(e,{headers:t,queryParams:n,token:s}={})=>d({path:e,headers:t,queryParams:n,body:void 0,method:y.delete,token:s}),hooks:o}};var U={TOO_MANY_REQUESTS:429};function x(e,t,n){var s;let o=R(e);t&&(o=null===(s=null==o?void 0:o.tenants)||void 0===s?void 0:s[t]);const i=null==o?void 0:o[n];return Array.isArray(i)?i:[]}function R(t){if("string"!=typeof t||!t)throw new Error("Invalid token provided");return e(t)}function P(e){const{exp:t}=R(e);return(new Date).getTime()/1e3>t}function q(e){let t=R(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function E(e,t){return x(e,t,"permissions")}function $(e,t){return x(e,t,"roles")}const S=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function A(e,t){var n;const s=await e,o={code:s.status,ok:s.ok,response:s},i=await s.clone().json();return s.ok?o.data=t?t(i):i:(o.error=i,s.status===U.TOO_MANY_REQUESTS&&Object.assign(o.error,{retryAfter:Number.parseInt(null===(n=s.headers)||void 0===n?void 0:n.get("retry-after"))||0})),o}const M=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),T=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),H=e=>t=>e.test(t),L=H(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),_=H(/^\+[1-9]{1}[0-9]{3,14}$/),z=M(L,'"{val}" is not a valid email'),C=M(_,'"{val}" is not a valid phone number'),J=M((N=1,e=>e.length>=N),"Minimum length is 1");var N;const D=M((e=>"string"==typeof e),"Input is not a string"),Z=M((e=>void 0===e),"Input is defined"),B=(F=[D(),Z()],K="Input is not a string or undefined",(e=K)=>t=>{const n=F.filter((e=>e(t)));return!(n.length<F.length)&&(e?e.replace("{val}",t):n.join(" OR "))});var F,K;const Q=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>T(...e).validate(n[t]))),t(...n)),Y=e=>[D(`"${e}" must be a string`),J(`"${e}" must not be empty`)],G=e=>[D(`"${e}" must be a string`),z()],W=e=>[D(`"${e}" must be a string`),C()],V=Q(Y("accessKey")),X=e=>({exchange:V((t=>A(e.post(n.exchange,{},{token:t}))))});var ee,te;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(ee||(ee={})),function(e){e.email="email"}(te||(te={}));const ne=Object.assign(Object.assign({},ee),te);var se;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(se||(se={}));const oe=Y("loginId"),ie=Q(Y("token")),ae=Q(oe),re=Q(Y("pendingRef")),de=Q(oe,G("email")),ue=e=>({verify:ie((t=>A(e.post(i.verify,{token:t})))),signIn:ae(((t,n,s,o)=>A(e.post(S(i.signIn,ne.email),{loginId:t,URI:n,loginOptions:s},{token:o})))),signUpOrIn:ae(((t,n)=>A(e.post(S(i.signUpOrIn,ne.email),{loginId:t,URI:n})))),signUp:ae(((t,n,s)=>A(e.post(S(i.signUp,ne.email),{loginId:t,URI:n,user:s})))),waitForSession:re(((t,n)=>new Promise((s=>{const{pollingIntervalMs:o,timeoutMs:a}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||f,f),timeoutMs:Math.min(t||m,m)}))(n);let r;const d=setInterval((async()=>{const n=await e.post(i.session,{pendingRef:t});n.ok&&(clearInterval(d),r&&clearTimeout(r),s(A(Promise.resolve(n))))}),o);r=setTimeout((()=>{s({error:{errorDescription:`Session polling timeout exceeded: ${a}ms`,errorCode:"0"},ok:!1}),clearInterval(d)}),a)})))),update:{email:de(((t,n,s,o,a)=>A(e.post(i.update.email,Object.assign({loginId:t,email:n,URI:s},a),{token:o}))))}}),le=Q(Y("flowId")),pe=Q(Y("executionId"),Y("stepId"),Y("interactionId")),ce=e=>({start:le(((t,n,s,o,i,a)=>A(e.post(v.start,{flowId:t,options:n,conditionInteractionId:s,interactionId:o,input:i,version:a})))),next:pe(((t,n,s,o,i)=>A(e.post(v.next,{executionId:t,stepId:n,interactionId:s,input:o,version:i}))))}),ge=Y("loginId"),he=Q(Y("token")),ve=Q(ge),fe=Q(ge,W("phone")),me=Q(ge,G("email")),Ie=e=>({verify:he((t=>A(e.post(o.verify,{token:t})))),signIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s,i,a)=>A(e.post(S(o.signIn,n),{loginId:t,URI:s,loginOptions:i},{token:a}))))})),{}),signUp:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s,i)=>A(e.post(S(o.signUp,n),{loginId:t,URI:s,user:i}))))})),{}),signUpOrIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s)=>A(e.post(S(o.signUpOrIn,n),{loginId:t,URI:s}))))})),{}),update:{email:me(((t,n,s,i,a)=>A(e.post(o.update.email,Object.assign({loginId:t,email:n,URI:s},a),{token:i})))),phone:Object.keys(ee).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:fe(((t,s,i,a,r)=>A(e.post(S(o.update.phone,n),Object.assign({loginId:t,phone:s,URI:i},r),{token:a}))))})),{})}});var be;!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"}(be||(be={}));const ye=Q(Y("code")),ke=e=>({start:Object.keys(be).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,s,o)=>A(e.post(a.start,s||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:o}))})),{}),exchange:ye((t=>A(e.post(a.exchange,{code:t}))))}),Oe=Y("loginId"),we=Q(Oe,Y("code")),je=Q(Oe),Ue=Q(Oe,W("phone")),xe=Q(Oe,G("email")),Re=e=>({verify:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:we(((t,o)=>A(e.post(S(s.verify,n),{code:o,loginId:t}))))})),{}),signIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je(((t,o,i)=>A(e.post(S(s.signIn,n),{loginId:t,loginOptions:o},{token:i}))))})),{}),signUp:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je(((t,o)=>A(e.post(S(s.signUp,n),{loginId:t,user:o}))))})),{}),signUpOrIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je((t=>A(e.post(S(s.signUpOrIn,n),{loginId:t}))))})),{}),update:{email:xe(((t,n,o,i)=>A(e.post(s.update.email,Object.assign({loginId:t,email:n},i),{token:o})))),phone:Object.keys(ee).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ue(((t,o,i,a)=>A(e.post(S(s.update.phone,n),Object.assign({loginId:t,phone:o},a),{token:i}))))})),{})}}),Pe=Q(Y("tenant")),qe=Q(Y("code")),Ee=e=>({start:Pe(((t,n,s,o)=>A(e.post(r.start,s||{},{queryParams:{tenant:t,redirectURL:n},token:o})))),exchange:qe((t=>A(e.post(r.exchange,{code:t}))))}),$e=Y("loginId"),Se=Q($e,Y("code")),Ae=Q($e),Me=Q($e),Te=e=>({signUp:Ae(((t,n)=>A(e.post(d.signUp,{loginId:t,user:n})))),verify:Se(((t,n,s,o)=>A(e.post(d.verify,{loginId:t,code:n,loginOptions:s},{token:o})))),update:Me(((t,n)=>A(e.post(d.update,{loginId:t},{token:n}))))}),He=Y("loginId"),Le=Y("newPassword"),_e=Q(He,Y("password")),ze=Q(He),Ce=Q(He,Le),Je=Q(He,Y("oldPassword"),Le),Ne=e=>({signUp:_e(((t,n,s)=>A(e.post(l.signUp,{loginId:t,password:n,user:s})))),signIn:_e(((t,n)=>A(e.post(l.signIn,{loginId:t,password:n})))),sendReset:ze(((t,n)=>A(e.post(l.sendReset,{loginId:t,redirectUrl:n})))),update:Ce(((t,n,s)=>A(e.post(l.update,{loginId:t,newPassword:n},{token:s})))),replace:Je(((t,n,s)=>A(e.post(l.replace,{loginId:t,oldPassword:n,newPassword:s})))),policy:()=>A(e.get(l.policy))}),De=[D(`"${"loginId"}" must be a string`)];const Ze=Y("loginId"),Be=Y("origin"),Fe=Q(Ze,Be,Y("name")),Ke=Q(Ze,Be),Qe=Q(De,Be),Ye=Q(Ze,Be,Y("token")),Ge=Q(Y("transactionId"),Y("response")),We=e=>({signUp:{start:Fe(((t,n,s)=>A(e.post(u.signUp.start,{user:{loginId:t,name:s},origin:n})))),finish:Ge(((t,n)=>A(e.post(u.signUp.finish,{transactionId:t,response:n}))))},signIn:{start:Qe(((t,n,s,o)=>A(e.post(u.signIn.start,{loginId:t,origin:n,loginOptions:s},{token:o})))),finish:Ge(((t,n)=>A(e.post(u.signIn.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:Ke(((t,n)=>A(e.post(u.signUpOrIn.start,{loginId:t,origin:n}))))},update:{start:Ye(((t,n,s)=>A(e.post(u.update.start,{loginId:t,origin:n},{token:s})))),finish:Ge(((t,n)=>A(e.post(u.update.finish,{transactionId:t,response:n}))))}}),Ve=Q(Y("token")),Xe=Q((e=>[B(`"${e}" must be string or undefined`)])("token"));var et,tt;var nt=Q([(et="projectId",tt=Y("projectId"),M(((e,n)=>s=>T(...n).validate(t(s,e)))(et,tt))())])((e=>t=>{var n,s;const o=[].concat((null===(n=t.hooks)||void 0===n?void 0:n.beforeRequest)||[]),i=[].concat((null===(s=t.hooks)||void 0===s?void 0:s.afterRequest)||[]);return e(Object.assign(Object.assign({},t),{hooks:{beforeRequest:e=>null==o?void 0:o.reduce(((e,t)=>t(e)),e),afterRequest:async(e,n)=>{(await Promise.allSettled(null==i?void 0:i.map((t=>t(e,null==n?void 0:n.clone()))))).forEach((e=>{var n;return"rejected"===e.status&&(null===(n=t.logger)||void 0===n?void 0:n.error(e.reason))}))}}}))})((({projectId:e,logger:t,baseUrl:n,hooks:s,cookiePolicy:o,baseHeaders:i={},fetch:a})=>{return r=j({baseUrl:n||"https://api.descope.com",projectId:e,logger:t,hooks:s,cookiePolicy:o,baseConfig:{baseHeaders:i},fetch:a}),{accessKey:X(r),otp:Re(r),magicLink:Ie(r),enchantedLink:ue(r),oauth:ke(r),saml:Ee(r),totp:Te(r),webauthn:We(r),password:Ne(r),flow:ce(r),refresh:Xe((e=>A(r.post(p,{},{token:e})))),logout:Xe((e=>A(r.post(c,{},{token:e})))),logoutAll:Xe((e=>A(r.post(g,{},{token:e})))),me:Xe((e=>A(r.get(h,{token:e})))),isJwtExpired:Ve(P),getTenants:Ve(q),getJwtPermissions:Ve(E),getJwtRoles:Ve($),httpClient:r};var r})));var st=Object.assign(nt,{DeliveryMethods:ne});exports.HttpStatusCodes=U,exports.default=st,exports.transformResponse=A,exports.wrapWith=(e,t,n)=>(t.forEach((t=>{const s=t.split(".");let o=s.shift(),i=e;for(;s.length>0;){if(i=i[o],!o||!i)throw Error(`Invalid path "${t}", "${o}" is missing or has no value`);o=s.shift()}if("function"!=typeof i[o])throw Error(`"${t}" is not a function`);const a=i[o];i[o]=n(a)})),e);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("jwt-decode"),t=require("lodash.get"),n={exchange:"/v1/auth/accesskey/exchange"},s={verify:"/v1/auth/otp/verify",signIn:"/v1/auth/otp/signin",signUp:"/v1/auth/otp/signup",update:{email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},signUpOrIn:"/v1/auth/otp/signup-in"},o={verify:"/v1/auth/magiclink/verify",signIn:"/v1/auth/magiclink/signin",signUp:"/v1/auth/magiclink/signup",update:{email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/phone"},signUpOrIn:"/v1/auth/magiclink/signup-in"},i={verify:"/v1/auth/enchantedlink/verify",signIn:"/v1/auth/enchantedlink/signin",signUp:"/v1/auth/enchantedlink/signup",session:"/v1/auth/enchantedlink/pending-session",update:{email:"/v1/auth/enchantedlink/update/email"},signUpOrIn:"/v1/auth/enchantedlink/signup-in"},a={start:"/v1/auth/oauth/authorize",exchange:"/v1/auth/oauth/exchange"},r={start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},d={verify:"/v1/auth/totp/verify",signUp:"/v1/auth/totp/signup",update:"/v1/auth/totp/update"},u={signUp:{start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},signIn:{start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},signUpOrIn:{start:"/v1/auth/webauthn/signup-in/start"},update:{start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"}},l={signUp:"/v1/auth/password/signup",signIn:"/v1/auth/password/signin",sendReset:"/v1/auth/password/reset",update:"/v1/auth/password/update",replace:"/v1/auth/password/replace",policy:"/v1/auth/password/policy"},p="/v1/auth/refresh",c="/v1/auth/logout",g="/v1/auth/logoutall",h="/v1/auth/me",v={start:"/v1/flow/start",next:"/v1/flow/next"};const f=1e3,m=6e5,I=()=>{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")}},b=(e,t)=>{const n=(e=>async(...t)=>{const n=await e(...t),s=await n.text();return n.text=()=>Promise.resolve(s),n.json=()=>Promise.resolve(JSON.parse(s)),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=>I().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const s=await n(...t);return e[s.ok?"log":"error"](await(async e=>{const t=await e.text();return I().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(s)),s}:n};var y;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(y||(y={}));const k=(...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,s])=>(e[n]=s,e)),e),e}),{})),O=e=>void 0===e?void 0:JSON.stringify(e),w=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},j=({baseUrl:e,projectId:t,baseConfig:n,logger:s,hooks:o,cookiePolicy:i,fetch:a})=>{const r=b(s,a),d=async s=>{const a=(null==o?void 0:o.beforeRequest)?o.beforeRequest(s):s,{path:d,body:u,headers:l,queryParams:p,method:c,token:g}=a,h=await r((({path:e,baseUrl:t,queryParams:n})=>{const s=new URL(e,t);return n&&(s.search=new URLSearchParams(n).toString()),s})({path:d,baseUrl:e,queryParams:p}),{headers:k(w(t,g),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"1.9.2"},(null==n?void 0:n.baseHeaders)||{},l),method:c,body:O(u),credentials:i||"include"});return(null==o?void 0:o.afterRequest)&&await o.afterRequest(s,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:s}={})=>d({path:e,headers:t,queryParams:n,body:void 0,method:y.get,token:s}),post:(e,t,{headers:n,queryParams:s,token:o}={})=>d({path:e,headers:n,queryParams:s,body:t,method:y.post,token:o}),put:(e,t,{headers:n,queryParams:s,token:o}={})=>d({path:e,headers:n,queryParams:s,body:t,method:y.put,token:o}),delete:(e,{headers:t,queryParams:n,token:s}={})=>d({path:e,headers:t,queryParams:n,body:void 0,method:y.delete,token:s}),hooks:o}};var U={TOO_MANY_REQUESTS:429};function x(e,t,n){var s;let o=R(e);t&&(o=null===(s=null==o?void 0:o.tenants)||void 0===s?void 0:s[t]);const i=null==o?void 0:o[n];return Array.isArray(i)?i:[]}function R(t){if("string"!=typeof t||!t)throw new Error("Invalid token provided");return e(t)}function P(e){const{exp:t}=R(e);return(new Date).getTime()/1e3>t}function q(e){let t=R(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function E(e,t){return x(e,t,"permissions")}function $(e,t){return x(e,t,"roles")}const S=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function A(e,t){var n;const s=await e,o={code:s.status,ok:s.ok,response:s},i=await s.clone().json();return s.ok?o.data=t?t(i):i:(o.error=i,s.status===U.TOO_MANY_REQUESTS&&Object.assign(o.error,{retryAfter:Number.parseInt(null===(n=s.headers)||void 0===n?void 0:n.get("retry-after"))||0})),o}const M=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),T=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),H=e=>t=>e.test(t),L=H(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),_=H(/^\+[1-9]{1}[0-9]{3,14}$/),z=M(L,'"{val}" is not a valid email'),C=M(_,'"{val}" is not a valid phone number'),J=M((N=1,e=>e.length>=N),"Minimum length is 1");var N;const D=M((e=>"string"==typeof e),"Input is not a string"),Z=M((e=>void 0===e),"Input is defined"),B=(F=[D(),Z()],K="Input is not a string or undefined",(e=K)=>t=>{const n=F.filter((e=>e(t)));return!(n.length<F.length)&&(e?e.replace("{val}",t):n.join(" OR "))});var F,K;const Q=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>T(...e).validate(n[t]))),t(...n)),Y=e=>[D(`"${e}" must be a string`),J(`"${e}" must not be empty`)],G=e=>[D(`"${e}" must be a string`),z()],W=e=>[D(`"${e}" must be a string`),C()],V=Q(Y("accessKey")),X=e=>({exchange:V((t=>A(e.post(n.exchange,{},{token:t}))))});var ee,te;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(ee||(ee={})),function(e){e.email="email"}(te||(te={}));const ne=Object.assign(Object.assign({},ee),te);var se;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(se||(se={}));const oe=Y("loginId"),ie=Q(Y("token")),ae=Q(oe),re=Q(Y("pendingRef")),de=Q(oe,G("email")),ue=e=>({verify:ie((t=>A(e.post(i.verify,{token:t})))),signIn:ae(((t,n,s,o)=>A(e.post(S(i.signIn,ne.email),{loginId:t,URI:n,loginOptions:s},{token:o})))),signUpOrIn:ae(((t,n)=>A(e.post(S(i.signUpOrIn,ne.email),{loginId:t,URI:n})))),signUp:ae(((t,n,s)=>A(e.post(S(i.signUp,ne.email),{loginId:t,URI:n,user:s})))),waitForSession:re(((t,n)=>new Promise((s=>{const{pollingIntervalMs:o,timeoutMs:a}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||f,f),timeoutMs:Math.min(t||m,m)}))(n);let r;const d=setInterval((async()=>{const n=await e.post(i.session,{pendingRef:t});n.ok&&(clearInterval(d),r&&clearTimeout(r),s(A(Promise.resolve(n))))}),o);r=setTimeout((()=>{s({error:{errorDescription:`Session polling timeout exceeded: ${a}ms`,errorCode:"0"},ok:!1}),clearInterval(d)}),a)})))),update:{email:de(((t,n,s,o,a)=>A(e.post(i.update.email,Object.assign({loginId:t,email:n,URI:s},a),{token:o}))))}}),le=Q(Y("flowId")),pe=Q(Y("executionId"),Y("stepId"),Y("interactionId")),ce=e=>({start:le(((t,n,s,o,i,a)=>A(e.post(v.start,{flowId:t,options:n,conditionInteractionId:s,interactionId:o,input:i,version:a})))),next:pe(((t,n,s,o,i)=>A(e.post(v.next,{executionId:t,stepId:n,interactionId:s,input:o,version:i}))))}),ge=Y("loginId"),he=Q(Y("token")),ve=Q(ge),fe=Q(ge,W("phone")),me=Q(ge,G("email")),Ie=e=>({verify:he((t=>A(e.post(o.verify,{token:t})))),signIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s,i,a)=>A(e.post(S(o.signIn,n),{loginId:t,URI:s,loginOptions:i},{token:a}))))})),{}),signUp:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s,i)=>A(e.post(S(o.signUp,n),{loginId:t,URI:s,user:i}))))})),{}),signUpOrIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s)=>A(e.post(S(o.signUpOrIn,n),{loginId:t,URI:s}))))})),{}),update:{email:me(((t,n,s,i,a)=>A(e.post(o.update.email,Object.assign({loginId:t,email:n,URI:s},a),{token:i})))),phone:Object.keys(ee).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:fe(((t,s,i,a,r)=>A(e.post(S(o.update.phone,n),Object.assign({loginId:t,phone:s,URI:i},r),{token:a}))))})),{})}});var be;!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"}(be||(be={}));const ye=Q(Y("code")),ke=e=>({start:Object.keys(be).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,s,o)=>A(e.post(a.start,s||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:o}))})),{}),exchange:ye((t=>A(e.post(a.exchange,{code:t}))))}),Oe=Y("loginId"),we=Q(Oe,Y("code")),je=Q(Oe),Ue=Q(Oe,W("phone")),xe=Q(Oe,G("email")),Re=e=>({verify:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:we(((t,o)=>A(e.post(S(s.verify,n),{code:o,loginId:t}))))})),{}),signIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je(((t,o,i)=>A(e.post(S(s.signIn,n),{loginId:t,loginOptions:o},{token:i}))))})),{}),signUp:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je(((t,o)=>A(e.post(S(s.signUp,n),{loginId:t,user:o}))))})),{}),signUpOrIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je((t=>A(e.post(S(s.signUpOrIn,n),{loginId:t}))))})),{}),update:{email:xe(((t,n,o,i)=>A(e.post(s.update.email,Object.assign({loginId:t,email:n},i),{token:o})))),phone:Object.keys(ee).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ue(((t,o,i,a)=>A(e.post(S(s.update.phone,n),Object.assign({loginId:t,phone:o},a),{token:i}))))})),{})}}),Pe=Q(Y("tenant")),qe=Q(Y("code")),Ee=e=>({start:Pe(((t,n,s,o)=>A(e.post(r.start,s||{},{queryParams:{tenant:t,redirectURL:n},token:o})))),exchange:qe((t=>A(e.post(r.exchange,{code:t}))))}),$e=Y("loginId"),Se=Q($e,Y("code")),Ae=Q($e),Me=Q($e),Te=e=>({signUp:Ae(((t,n)=>A(e.post(d.signUp,{loginId:t,user:n})))),verify:Se(((t,n,s,o)=>A(e.post(d.verify,{loginId:t,code:n,loginOptions:s},{token:o})))),update:Me(((t,n)=>A(e.post(d.update,{loginId:t},{token:n}))))}),He=Y("loginId"),Le=Y("newPassword"),_e=Q(He,Y("password")),ze=Q(He),Ce=Q(He,Le),Je=Q(He,Y("oldPassword"),Le),Ne=e=>({signUp:_e(((t,n,s)=>A(e.post(l.signUp,{loginId:t,password:n,user:s})))),signIn:_e(((t,n)=>A(e.post(l.signIn,{loginId:t,password:n})))),sendReset:ze(((t,n)=>A(e.post(l.sendReset,{loginId:t,redirectUrl:n})))),update:Ce(((t,n,s)=>A(e.post(l.update,{loginId:t,newPassword:n},{token:s})))),replace:Je(((t,n,s)=>A(e.post(l.replace,{loginId:t,oldPassword:n,newPassword:s})))),policy:()=>A(e.get(l.policy))}),De=[D(`"${"loginId"}" must be a string`)];const Ze=Y("loginId"),Be=Y("origin"),Fe=Q(Ze,Be,Y("name")),Ke=Q(Ze,Be),Qe=Q(De,Be),Ye=Q(Ze,Be,Y("token")),Ge=Q(Y("transactionId"),Y("response")),We=e=>({signUp:{start:Fe(((t,n,s)=>A(e.post(u.signUp.start,{user:{loginId:t,name:s},origin:n})))),finish:Ge(((t,n)=>A(e.post(u.signUp.finish,{transactionId:t,response:n}))))},signIn:{start:Qe(((t,n,s,o)=>A(e.post(u.signIn.start,{loginId:t,origin:n,loginOptions:s},{token:o})))),finish:Ge(((t,n)=>A(e.post(u.signIn.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:Ke(((t,n)=>A(e.post(u.signUpOrIn.start,{loginId:t,origin:n}))))},update:{start:Ye(((t,n,s)=>A(e.post(u.update.start,{loginId:t,origin:n},{token:s})))),finish:Ge(((t,n)=>A(e.post(u.update.finish,{transactionId:t,response:n}))))}}),Ve=Q(Y("token")),Xe=Q((e=>[B(`"${e}" must be string or undefined`)])("token"));var et,tt;var nt=Q([(et="projectId",tt=Y("projectId"),M(((e,n)=>s=>T(...n).validate(t(s,e)))(et,tt))())])((e=>t=>{var n,s;const o=[].concat((null===(n=t.hooks)||void 0===n?void 0:n.beforeRequest)||[]),i=[].concat((null===(s=t.hooks)||void 0===s?void 0:s.afterRequest)||[]);return e(Object.assign(Object.assign({},t),{hooks:{beforeRequest:e=>null==o?void 0:o.reduce(((e,t)=>t(e)),e),afterRequest:async(e,n)=>{(await Promise.allSettled(null==i?void 0:i.map((t=>t(e,null==n?void 0:n.clone()))))).forEach((e=>{var n;return"rejected"===e.status&&(null===(n=t.logger)||void 0===n?void 0:n.error(e.reason))}))}}}))})((({projectId:e,logger:t,baseUrl:n,hooks:s,cookiePolicy:o,baseHeaders:i={},fetch:a})=>{return r=j({baseUrl:n||"https://api.descope.com",projectId:e,logger:t,hooks:s,cookiePolicy:o,baseConfig:{baseHeaders:i},fetch:a}),{accessKey:X(r),otp:Re(r),magicLink:Ie(r),enchantedLink:ue(r),oauth:ke(r),saml:Ee(r),totp:Te(r),webauthn:We(r),password:Ne(r),flow:ce(r),refresh:Xe((e=>A(r.post(p,{},{token:e})))),logout:Xe((e=>A(r.post(c,{},{token:e})))),logoutAll:Xe((e=>A(r.post(g,{},{token:e})))),me:Xe((e=>A(r.get(h,{token:e})))),isJwtExpired:Ve(P),getTenants:Ve(q),getJwtPermissions:Ve(E),getJwtRoles:Ve($),httpClient:r};var r})));var st=Object.assign(nt,{DeliveryMethods:ne});exports.HttpStatusCodes=U,exports.default=st,exports.transformResponse=A,exports.wrapWith=(e,t,n)=>(t.forEach((t=>{const s=t.split(".");let o=s.shift(),i=e;for(;s.length>0;){if(i=i[o],!o||!i)throw Error(`Invalid path "${t}", "${o}" is missing or has no value`);o=s.shift()}if("function"!=typeof i[o])throw Error(`"${t}" is not a function`);const a=i[o];i[o]=n(a)})),e);
2
2
  //# sourceMappingURL=index.cjs.js.map
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import e from"jwt-decode";import t from"lodash.get";var n={exchange:"/v1/auth/accesskey/exchange"},s={verify:"/v1/auth/otp/verify",signIn:"/v1/auth/otp/signin",signUp:"/v1/auth/otp/signup",update:{email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},signUpOrIn:"/v1/auth/otp/signup-in"},o={verify:"/v1/auth/magiclink/verify",signIn:"/v1/auth/magiclink/signin",signUp:"/v1/auth/magiclink/signup",update:{email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/phone"},signUpOrIn:"/v1/auth/magiclink/signup-in"},i={verify:"/v1/auth/enchantedlink/verify",signIn:"/v1/auth/enchantedlink/signin",signUp:"/v1/auth/enchantedlink/signup",session:"/v1/auth/enchantedlink/pending-session",update:{email:"/v1/auth/enchantedlink/update/email"},signUpOrIn:"/v1/auth/enchantedlink/signup-in"},a={start:"/v1/auth/oauth/authorize",exchange:"/v1/auth/oauth/exchange"},r={start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},d={verify:"/v1/auth/totp/verify",signUp:"/v1/auth/totp/signup",update:"/v1/auth/totp/update"},u={signUp:{start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},signIn:{start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},signUpOrIn:{start:"/v1/auth/webauthn/signup-in/start"},update:{start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"}},l={signUp:"/v1/auth/password/signup",signIn:"/v1/auth/password/signin",sendReset:"/v1/auth/password/reset",update:"/v1/auth/password/update",replace:"/v1/auth/password/replace",policy:"/v1/auth/password/policy"},p="/v1/auth/refresh",c="/v1/auth/logout",g="/v1/auth/logoutall",h="/v1/auth/me",v={start:"/v1/flow/start",next:"/v1/flow/next"};const f=1e3,m=6e5,I=()=>{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")}},b=(e,t)=>{const n=(e=>async(...t)=>{const n=await e(...t),s=await n.text();return n.text=()=>Promise.resolve(s),n.json=()=>Promise.resolve(JSON.parse(s)),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=>I().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const s=await n(...t);return e[s.ok?"log":"error"](await(async e=>{const t=await e.text();return I().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(s)),s}:n};var y;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(y||(y={}));const k=(...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,s])=>(e[n]=s,e)),e),e}),{})),O=e=>void 0===e?void 0:JSON.stringify(e),w=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},j=({baseUrl:e,projectId:t,baseConfig:n,logger:s,hooks:o,cookiePolicy:i,fetch:a})=>{const r=b(s,a),d=async s=>{const a=(null==o?void 0:o.beforeRequest)?o.beforeRequest(s):s,{path:d,body:u,headers:l,queryParams:p,method:c,token:g}=a,h=await r((({path:e,baseUrl:t,queryParams:n})=>{const s=new URL(e,t);return n&&(s.search=new URLSearchParams(n).toString()),s})({path:d,baseUrl:e,queryParams:p}),{headers:k(w(t,g),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"1.9.1"},(null==n?void 0:n.baseHeaders)||{},l),method:c,body:O(u),credentials:i||"include"});return(null==o?void 0:o.afterRequest)&&await o.afterRequest(s,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:s}={})=>d({path:e,headers:t,queryParams:n,body:void 0,method:y.get,token:s}),post:(e,t,{headers:n,queryParams:s,token:o}={})=>d({path:e,headers:n,queryParams:s,body:t,method:y.post,token:o}),put:(e,t,{headers:n,queryParams:s,token:o}={})=>d({path:e,headers:n,queryParams:s,body:t,method:y.put,token:o}),delete:(e,{headers:t,queryParams:n,token:s}={})=>d({path:e,headers:t,queryParams:n,body:void 0,method:y.delete,token:s}),hooks:o}};var U={TOO_MANY_REQUESTS:429};function R(e,t,n){var s;let o=P(e);t&&(o=null===(s=null==o?void 0:o.tenants)||void 0===s?void 0:s[t]);const i=null==o?void 0:o[n];return Array.isArray(i)?i:[]}function P(t){if("string"!=typeof t||!t)throw new Error("Invalid token provided");return e(t)}function x(e){const{exp:t}=P(e);return(new Date).getTime()/1e3>t}function q(e){let t=P(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function E(e,t){return R(e,t,"permissions")}function $(e,t){return R(e,t,"roles")}const S=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function A(e,t){var n;const s=await e,o={code:s.status,ok:s.ok,response:s},i=await s.clone().json();return s.ok?o.data=t?t(i):i:(o.error=i,s.status===U.TOO_MANY_REQUESTS&&Object.assign(o.error,{retryAfter:Number.parseInt(null===(n=s.headers)||void 0===n?void 0:n.get("retry-after"))||0})),o}const T=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),M=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),L=e=>t=>e.test(t),z=L(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),H=L(/^\+[1-9]{1}[0-9]{3,14}$/),J=T(z,'"{val}" is not a valid email'),N=T(H,'"{val}" is not a valid phone number'),C=T((_=1,e=>e.length>=_),"Minimum length is 1");var _;const D=T((e=>"string"==typeof e),"Input is not a string"),Z=T((e=>void 0===e),"Input is defined"),B=(F=[D(),Z()],K="Input is not a string or undefined",(e=K)=>t=>{const n=F.filter((e=>e(t)));return!(n.length<F.length)&&(e?e.replace("{val}",t):n.join(" OR "))});var F,K;const Q=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>M(...e).validate(n[t]))),t(...n)),Y=e=>[D(`"${e}" must be a string`),C(`"${e}" must not be empty`)],G=e=>[D(`"${e}" must be a string`),J()],V=e=>[D(`"${e}" must be a string`),N()],W=Q(Y("accessKey")),X=e=>({exchange:W((t=>A(e.post(n.exchange,{},{token:t}))))});var ee,te;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(ee||(ee={})),function(e){e.email="email"}(te||(te={}));const ne=Object.assign(Object.assign({},ee),te);var se;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(se||(se={}));const oe=Y("loginId"),ie=Q(Y("token")),ae=Q(oe),re=Q(Y("pendingRef")),de=Q(oe,G("email")),ue=e=>({verify:ie((t=>A(e.post(i.verify,{token:t})))),signIn:ae(((t,n,s,o)=>A(e.post(S(i.signIn,ne.email),{loginId:t,URI:n,loginOptions:s},{token:o})))),signUpOrIn:ae(((t,n)=>A(e.post(S(i.signUpOrIn,ne.email),{loginId:t,URI:n})))),signUp:ae(((t,n,s)=>A(e.post(S(i.signUp,ne.email),{loginId:t,URI:n,user:s})))),waitForSession:re(((t,n)=>new Promise((s=>{const{pollingIntervalMs:o,timeoutMs:a}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||f,f),timeoutMs:Math.min(t||m,m)}))(n);let r;const d=setInterval((async()=>{const n=await e.post(i.session,{pendingRef:t});n.ok&&(clearInterval(d),r&&clearTimeout(r),s(A(Promise.resolve(n))))}),o);r=setTimeout((()=>{s({error:{errorDescription:`Session polling timeout exceeded: ${a}ms`,errorCode:"0"},ok:!1}),clearInterval(d)}),a)})))),update:{email:de(((t,n,s,o,a)=>A(e.post(i.update.email,Object.assign({loginId:t,email:n,URI:s},a),{token:o}))))}}),le=Q(Y("flowId")),pe=Q(Y("executionId"),Y("stepId"),Y("interactionId")),ce=e=>({start:le(((t,n,s,o,i,a)=>A(e.post(v.start,{flowId:t,options:n,conditionInteractionId:s,interactionId:o,input:i,version:a})))),next:pe(((t,n,s,o,i)=>A(e.post(v.next,{executionId:t,stepId:n,interactionId:s,input:o,version:i}))))}),ge=Y("loginId"),he=Q(Y("token")),ve=Q(ge),fe=Q(ge,V("phone")),me=Q(ge,G("email")),Ie=e=>({verify:he((t=>A(e.post(o.verify,{token:t})))),signIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s,i,a)=>A(e.post(S(o.signIn,n),{loginId:t,URI:s,loginOptions:i},{token:a}))))})),{}),signUp:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s,i)=>A(e.post(S(o.signUp,n),{loginId:t,URI:s,user:i}))))})),{}),signUpOrIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s)=>A(e.post(S(o.signUpOrIn,n),{loginId:t,URI:s}))))})),{}),update:{email:me(((t,n,s,i,a)=>A(e.post(o.update.email,Object.assign({loginId:t,email:n,URI:s},a),{token:i})))),phone:Object.keys(ee).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:fe(((t,s,i,a,r)=>A(e.post(S(o.update.phone,n),Object.assign({loginId:t,phone:s,URI:i},r),{token:a}))))})),{})}});var be;!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"}(be||(be={}));const ye=Q(Y("code")),ke=e=>({start:Object.keys(be).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,s,o)=>A(e.post(a.start,s||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:o}))})),{}),exchange:ye((t=>A(e.post(a.exchange,{code:t}))))}),Oe=Y("loginId"),we=Q(Oe,Y("code")),je=Q(Oe),Ue=Q(Oe,V("phone")),Re=Q(Oe,G("email")),Pe=e=>({verify:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:we(((t,o)=>A(e.post(S(s.verify,n),{code:o,loginId:t}))))})),{}),signIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je(((t,o,i)=>A(e.post(S(s.signIn,n),{loginId:t,loginOptions:o},{token:i}))))})),{}),signUp:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je(((t,o)=>A(e.post(S(s.signUp,n),{loginId:t,user:o}))))})),{}),signUpOrIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je((t=>A(e.post(S(s.signUpOrIn,n),{loginId:t}))))})),{}),update:{email:Re(((t,n,o,i)=>A(e.post(s.update.email,Object.assign({loginId:t,email:n},i),{token:o})))),phone:Object.keys(ee).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ue(((t,o,i,a)=>A(e.post(S(s.update.phone,n),Object.assign({loginId:t,phone:o},a),{token:i}))))})),{})}}),xe=Q(Y("tenant")),qe=Q(Y("code")),Ee=e=>({start:xe(((t,n,s,o)=>A(e.post(r.start,s||{},{queryParams:{tenant:t,redirectURL:n},token:o})))),exchange:qe((t=>A(e.post(r.exchange,{code:t}))))}),$e=Y("loginId"),Se=Q($e,Y("code")),Ae=Q($e),Te=Q($e),Me=e=>({signUp:Ae(((t,n)=>A(e.post(d.signUp,{loginId:t,user:n})))),verify:Se(((t,n,s,o)=>A(e.post(d.verify,{loginId:t,code:n,loginOptions:s},{token:o})))),update:Te(((t,n)=>A(e.post(d.update,{loginId:t},{token:n}))))}),Le=Y("loginId"),ze=Y("newPassword"),He=Q(Le,Y("password")),Je=Q(Le),Ne=Q(Le,ze),Ce=Q(Le,Y("oldPassword"),ze),_e=e=>({signUp:He(((t,n,s)=>A(e.post(l.signUp,{loginId:t,password:n,user:s})))),signIn:He(((t,n)=>A(e.post(l.signIn,{loginId:t,password:n})))),sendReset:Je(((t,n)=>A(e.post(l.sendReset,{loginId:t,redirectUrl:n})))),update:Ne(((t,n,s)=>A(e.post(l.update,{loginId:t,newPassword:n},{token:s})))),replace:Ce(((t,n,s)=>A(e.post(l.replace,{loginId:t,oldPassword:n,newPassword:s})))),policy:()=>A(e.get(l.policy))}),De=[D(`"${"loginId"}" must be a string`)];const Ze=Y("loginId"),Be=Y("origin"),Fe=Q(Ze,Be,Y("name")),Ke=Q(Ze,Be),Qe=Q(De,Be),Ye=Q(Ze,Be,Y("token")),Ge=Q(Y("transactionId"),Y("response")),Ve=e=>({signUp:{start:Fe(((t,n,s)=>A(e.post(u.signUp.start,{user:{loginId:t,name:s},origin:n})))),finish:Ge(((t,n)=>A(e.post(u.signUp.finish,{transactionId:t,response:n}))))},signIn:{start:Qe(((t,n,s,o)=>A(e.post(u.signIn.start,{loginId:t,origin:n,loginOptions:s},{token:o})))),finish:Ge(((t,n)=>A(e.post(u.signIn.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:Ke(((t,n)=>A(e.post(u.signUpOrIn.start,{loginId:t,origin:n}))))},update:{start:Ye(((t,n,s)=>A(e.post(u.update.start,{loginId:t,origin:n},{token:s})))),finish:Ge(((t,n)=>A(e.post(u.update.finish,{transactionId:t,response:n}))))}}),We=Q(Y("token")),Xe=Q((e=>[B(`"${e}" must be string or undefined`)])("token"));var et,tt;var nt=Q([(et="projectId",tt=Y("projectId"),T(((e,n)=>s=>M(...n).validate(t(s,e)))(et,tt))())])((e=>t=>{var n,s;const o=[].concat((null===(n=t.hooks)||void 0===n?void 0:n.beforeRequest)||[]),i=[].concat((null===(s=t.hooks)||void 0===s?void 0:s.afterRequest)||[]);return e(Object.assign(Object.assign({},t),{hooks:{beforeRequest:e=>null==o?void 0:o.reduce(((e,t)=>t(e)),e),afterRequest:async(e,n)=>{(await Promise.allSettled(null==i?void 0:i.map((t=>t(e,null==n?void 0:n.clone()))))).forEach((e=>{var n;return"rejected"===e.status&&(null===(n=t.logger)||void 0===n?void 0:n.error(e.reason))}))}}}))})((({projectId:e,logger:t,baseUrl:n,hooks:s,cookiePolicy:o,baseHeaders:i={},fetch:a})=>{return r=j({baseUrl:n||"https://api.descope.com",projectId:e,logger:t,hooks:s,cookiePolicy:o,baseConfig:{baseHeaders:i},fetch:a}),{accessKey:X(r),otp:Pe(r),magicLink:Ie(r),enchantedLink:ue(r),oauth:ke(r),saml:Ee(r),totp:Me(r),webauthn:Ve(r),password:_e(r),flow:ce(r),refresh:Xe((e=>A(r.post(p,{},{token:e})))),logout:Xe((e=>A(r.post(c,{},{token:e})))),logoutAll:Xe((e=>A(r.post(g,{},{token:e})))),me:Xe((e=>A(r.get(h,{token:e})))),isJwtExpired:We(x),getTenants:We(q),getJwtPermissions:We(E),getJwtRoles:We($),httpClient:r};var r})));const st=(e,t,n)=>(t.forEach((t=>{const s=t.split(".");let o=s.shift(),i=e;for(;s.length>0;){if(i=i[o],!o||!i)throw Error(`Invalid path "${t}", "${o}" is missing or has no value`);o=s.shift()}if("function"!=typeof i[o])throw Error(`"${t}" is not a function`);const a=i[o];i[o]=n(a)})),e);var ot=Object.assign(nt,{DeliveryMethods:ne});export{U as HttpStatusCodes,ot as default,A as transformResponse,st as wrapWith};
1
+ import e from"jwt-decode";import t from"lodash.get";var n={exchange:"/v1/auth/accesskey/exchange"},s={verify:"/v1/auth/otp/verify",signIn:"/v1/auth/otp/signin",signUp:"/v1/auth/otp/signup",update:{email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},signUpOrIn:"/v1/auth/otp/signup-in"},o={verify:"/v1/auth/magiclink/verify",signIn:"/v1/auth/magiclink/signin",signUp:"/v1/auth/magiclink/signup",update:{email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/phone"},signUpOrIn:"/v1/auth/magiclink/signup-in"},i={verify:"/v1/auth/enchantedlink/verify",signIn:"/v1/auth/enchantedlink/signin",signUp:"/v1/auth/enchantedlink/signup",session:"/v1/auth/enchantedlink/pending-session",update:{email:"/v1/auth/enchantedlink/update/email"},signUpOrIn:"/v1/auth/enchantedlink/signup-in"},a={start:"/v1/auth/oauth/authorize",exchange:"/v1/auth/oauth/exchange"},r={start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},d={verify:"/v1/auth/totp/verify",signUp:"/v1/auth/totp/signup",update:"/v1/auth/totp/update"},u={signUp:{start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},signIn:{start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},signUpOrIn:{start:"/v1/auth/webauthn/signup-in/start"},update:{start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"}},l={signUp:"/v1/auth/password/signup",signIn:"/v1/auth/password/signin",sendReset:"/v1/auth/password/reset",update:"/v1/auth/password/update",replace:"/v1/auth/password/replace",policy:"/v1/auth/password/policy"},p="/v1/auth/refresh",c="/v1/auth/logout",g="/v1/auth/logoutall",h="/v1/auth/me",v={start:"/v1/flow/start",next:"/v1/flow/next"};const f=1e3,m=6e5,I=()=>{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")}},b=(e,t)=>{const n=(e=>async(...t)=>{const n=await e(...t),s=await n.text();return n.text=()=>Promise.resolve(s),n.json=()=>Promise.resolve(JSON.parse(s)),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=>I().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const s=await n(...t);return e[s.ok?"log":"error"](await(async e=>{const t=await e.text();return I().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(s)),s}:n};var y;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(y||(y={}));const k=(...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,s])=>(e[n]=s,e)),e),e}),{})),O=e=>void 0===e?void 0:JSON.stringify(e),w=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},j=({baseUrl:e,projectId:t,baseConfig:n,logger:s,hooks:o,cookiePolicy:i,fetch:a})=>{const r=b(s,a),d=async s=>{const a=(null==o?void 0:o.beforeRequest)?o.beforeRequest(s):s,{path:d,body:u,headers:l,queryParams:p,method:c,token:g}=a,h=await r((({path:e,baseUrl:t,queryParams:n})=>{const s=new URL(e,t);return n&&(s.search=new URLSearchParams(n).toString()),s})({path:d,baseUrl:e,queryParams:p}),{headers:k(w(t,g),{"x-descope-sdk-name":"core-js","x-descope-sdk-version":"1.9.2"},(null==n?void 0:n.baseHeaders)||{},l),method:c,body:O(u),credentials:i||"include"});return(null==o?void 0:o.afterRequest)&&await o.afterRequest(s,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:s}={})=>d({path:e,headers:t,queryParams:n,body:void 0,method:y.get,token:s}),post:(e,t,{headers:n,queryParams:s,token:o}={})=>d({path:e,headers:n,queryParams:s,body:t,method:y.post,token:o}),put:(e,t,{headers:n,queryParams:s,token:o}={})=>d({path:e,headers:n,queryParams:s,body:t,method:y.put,token:o}),delete:(e,{headers:t,queryParams:n,token:s}={})=>d({path:e,headers:t,queryParams:n,body:void 0,method:y.delete,token:s}),hooks:o}};var U={TOO_MANY_REQUESTS:429};function R(e,t,n){var s;let o=P(e);t&&(o=null===(s=null==o?void 0:o.tenants)||void 0===s?void 0:s[t]);const i=null==o?void 0:o[n];return Array.isArray(i)?i:[]}function P(t){if("string"!=typeof t||!t)throw new Error("Invalid token provided");return e(t)}function x(e){const{exp:t}=P(e);return(new Date).getTime()/1e3>t}function q(e){let t=P(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function E(e,t){return R(e,t,"permissions")}function $(e,t){return R(e,t,"roles")}const S=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function A(e,t){var n;const s=await e,o={code:s.status,ok:s.ok,response:s},i=await s.clone().json();return s.ok?o.data=t?t(i):i:(o.error=i,s.status===U.TOO_MANY_REQUESTS&&Object.assign(o.error,{retryAfter:Number.parseInt(null===(n=s.headers)||void 0===n?void 0:n.get("retry-after"))||0})),o}const T=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),M=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),L=e=>t=>e.test(t),z=L(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),H=L(/^\+[1-9]{1}[0-9]{3,14}$/),J=T(z,'"{val}" is not a valid email'),N=T(H,'"{val}" is not a valid phone number'),C=T((_=1,e=>e.length>=_),"Minimum length is 1");var _;const D=T((e=>"string"==typeof e),"Input is not a string"),Z=T((e=>void 0===e),"Input is defined"),B=(F=[D(),Z()],K="Input is not a string or undefined",(e=K)=>t=>{const n=F.filter((e=>e(t)));return!(n.length<F.length)&&(e?e.replace("{val}",t):n.join(" OR "))});var F,K;const Q=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>M(...e).validate(n[t]))),t(...n)),Y=e=>[D(`"${e}" must be a string`),C(`"${e}" must not be empty`)],G=e=>[D(`"${e}" must be a string`),J()],V=e=>[D(`"${e}" must be a string`),N()],W=Q(Y("accessKey")),X=e=>({exchange:W((t=>A(e.post(n.exchange,{},{token:t}))))});var ee,te;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(ee||(ee={})),function(e){e.email="email"}(te||(te={}));const ne=Object.assign(Object.assign({},ee),te);var se;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(se||(se={}));const oe=Y("loginId"),ie=Q(Y("token")),ae=Q(oe),re=Q(Y("pendingRef")),de=Q(oe,G("email")),ue=e=>({verify:ie((t=>A(e.post(i.verify,{token:t})))),signIn:ae(((t,n,s,o)=>A(e.post(S(i.signIn,ne.email),{loginId:t,URI:n,loginOptions:s},{token:o})))),signUpOrIn:ae(((t,n)=>A(e.post(S(i.signUpOrIn,ne.email),{loginId:t,URI:n})))),signUp:ae(((t,n,s)=>A(e.post(S(i.signUp,ne.email),{loginId:t,URI:n,user:s})))),waitForSession:re(((t,n)=>new Promise((s=>{const{pollingIntervalMs:o,timeoutMs:a}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||f,f),timeoutMs:Math.min(t||m,m)}))(n);let r;const d=setInterval((async()=>{const n=await e.post(i.session,{pendingRef:t});n.ok&&(clearInterval(d),r&&clearTimeout(r),s(A(Promise.resolve(n))))}),o);r=setTimeout((()=>{s({error:{errorDescription:`Session polling timeout exceeded: ${a}ms`,errorCode:"0"},ok:!1}),clearInterval(d)}),a)})))),update:{email:de(((t,n,s,o,a)=>A(e.post(i.update.email,Object.assign({loginId:t,email:n,URI:s},a),{token:o}))))}}),le=Q(Y("flowId")),pe=Q(Y("executionId"),Y("stepId"),Y("interactionId")),ce=e=>({start:le(((t,n,s,o,i,a)=>A(e.post(v.start,{flowId:t,options:n,conditionInteractionId:s,interactionId:o,input:i,version:a})))),next:pe(((t,n,s,o,i)=>A(e.post(v.next,{executionId:t,stepId:n,interactionId:s,input:o,version:i}))))}),ge=Y("loginId"),he=Q(Y("token")),ve=Q(ge),fe=Q(ge,V("phone")),me=Q(ge,G("email")),Ie=e=>({verify:he((t=>A(e.post(o.verify,{token:t})))),signIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s,i,a)=>A(e.post(S(o.signIn,n),{loginId:t,URI:s,loginOptions:i},{token:a}))))})),{}),signUp:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s,i)=>A(e.post(S(o.signUp,n),{loginId:t,URI:s,user:i}))))})),{}),signUpOrIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ve(((t,s)=>A(e.post(S(o.signUpOrIn,n),{loginId:t,URI:s}))))})),{}),update:{email:me(((t,n,s,i,a)=>A(e.post(o.update.email,Object.assign({loginId:t,email:n,URI:s},a),{token:i})))),phone:Object.keys(ee).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:fe(((t,s,i,a,r)=>A(e.post(S(o.update.phone,n),Object.assign({loginId:t,phone:s,URI:i},r),{token:a}))))})),{})}});var be;!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"}(be||(be={}));const ye=Q(Y("code")),ke=e=>({start:Object.keys(be).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:(t,s,o)=>A(e.post(a.start,s||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:o}))})),{}),exchange:ye((t=>A(e.post(a.exchange,{code:t}))))}),Oe=Y("loginId"),we=Q(Oe,Y("code")),je=Q(Oe),Ue=Q(Oe,V("phone")),Re=Q(Oe,G("email")),Pe=e=>({verify:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:we(((t,o)=>A(e.post(S(s.verify,n),{code:o,loginId:t}))))})),{}),signIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je(((t,o,i)=>A(e.post(S(s.signIn,n),{loginId:t,loginOptions:o},{token:i}))))})),{}),signUp:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je(((t,o)=>A(e.post(S(s.signUp,n),{loginId:t,user:o}))))})),{}),signUpOrIn:Object.keys(ne).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:je((t=>A(e.post(S(s.signUpOrIn,n),{loginId:t}))))})),{}),update:{email:Re(((t,n,o,i)=>A(e.post(s.update.email,Object.assign({loginId:t,email:n},i),{token:o})))),phone:Object.keys(ee).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:Ue(((t,o,i,a)=>A(e.post(S(s.update.phone,n),Object.assign({loginId:t,phone:o},a),{token:i}))))})),{})}}),xe=Q(Y("tenant")),qe=Q(Y("code")),Ee=e=>({start:xe(((t,n,s,o)=>A(e.post(r.start,s||{},{queryParams:{tenant:t,redirectURL:n},token:o})))),exchange:qe((t=>A(e.post(r.exchange,{code:t}))))}),$e=Y("loginId"),Se=Q($e,Y("code")),Ae=Q($e),Te=Q($e),Me=e=>({signUp:Ae(((t,n)=>A(e.post(d.signUp,{loginId:t,user:n})))),verify:Se(((t,n,s,o)=>A(e.post(d.verify,{loginId:t,code:n,loginOptions:s},{token:o})))),update:Te(((t,n)=>A(e.post(d.update,{loginId:t},{token:n}))))}),Le=Y("loginId"),ze=Y("newPassword"),He=Q(Le,Y("password")),Je=Q(Le),Ne=Q(Le,ze),Ce=Q(Le,Y("oldPassword"),ze),_e=e=>({signUp:He(((t,n,s)=>A(e.post(l.signUp,{loginId:t,password:n,user:s})))),signIn:He(((t,n)=>A(e.post(l.signIn,{loginId:t,password:n})))),sendReset:Je(((t,n)=>A(e.post(l.sendReset,{loginId:t,redirectUrl:n})))),update:Ne(((t,n,s)=>A(e.post(l.update,{loginId:t,newPassword:n},{token:s})))),replace:Ce(((t,n,s)=>A(e.post(l.replace,{loginId:t,oldPassword:n,newPassword:s})))),policy:()=>A(e.get(l.policy))}),De=[D(`"${"loginId"}" must be a string`)];const Ze=Y("loginId"),Be=Y("origin"),Fe=Q(Ze,Be,Y("name")),Ke=Q(Ze,Be),Qe=Q(De,Be),Ye=Q(Ze,Be,Y("token")),Ge=Q(Y("transactionId"),Y("response")),Ve=e=>({signUp:{start:Fe(((t,n,s)=>A(e.post(u.signUp.start,{user:{loginId:t,name:s},origin:n})))),finish:Ge(((t,n)=>A(e.post(u.signUp.finish,{transactionId:t,response:n}))))},signIn:{start:Qe(((t,n,s,o)=>A(e.post(u.signIn.start,{loginId:t,origin:n,loginOptions:s},{token:o})))),finish:Ge(((t,n)=>A(e.post(u.signIn.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:Ke(((t,n)=>A(e.post(u.signUpOrIn.start,{loginId:t,origin:n}))))},update:{start:Ye(((t,n,s)=>A(e.post(u.update.start,{loginId:t,origin:n},{token:s})))),finish:Ge(((t,n)=>A(e.post(u.update.finish,{transactionId:t,response:n}))))}}),We=Q(Y("token")),Xe=Q((e=>[B(`"${e}" must be string or undefined`)])("token"));var et,tt;var nt=Q([(et="projectId",tt=Y("projectId"),T(((e,n)=>s=>M(...n).validate(t(s,e)))(et,tt))())])((e=>t=>{var n,s;const o=[].concat((null===(n=t.hooks)||void 0===n?void 0:n.beforeRequest)||[]),i=[].concat((null===(s=t.hooks)||void 0===s?void 0:s.afterRequest)||[]);return e(Object.assign(Object.assign({},t),{hooks:{beforeRequest:e=>null==o?void 0:o.reduce(((e,t)=>t(e)),e),afterRequest:async(e,n)=>{(await Promise.allSettled(null==i?void 0:i.map((t=>t(e,null==n?void 0:n.clone()))))).forEach((e=>{var n;return"rejected"===e.status&&(null===(n=t.logger)||void 0===n?void 0:n.error(e.reason))}))}}}))})((({projectId:e,logger:t,baseUrl:n,hooks:s,cookiePolicy:o,baseHeaders:i={},fetch:a})=>{return r=j({baseUrl:n||"https://api.descope.com",projectId:e,logger:t,hooks:s,cookiePolicy:o,baseConfig:{baseHeaders:i},fetch:a}),{accessKey:X(r),otp:Pe(r),magicLink:Ie(r),enchantedLink:ue(r),oauth:ke(r),saml:Ee(r),totp:Me(r),webauthn:Ve(r),password:_e(r),flow:ce(r),refresh:Xe((e=>A(r.post(p,{},{token:e})))),logout:Xe((e=>A(r.post(c,{},{token:e})))),logoutAll:Xe((e=>A(r.post(g,{},{token:e})))),me:Xe((e=>A(r.get(h,{token:e})))),isJwtExpired:We(x),getTenants:We(q),getJwtPermissions:We(E),getJwtRoles:We($),httpClient:r};var r})));const st=(e,t,n)=>(t.forEach((t=>{const s=t.split(".");let o=s.shift(),i=e;for(;s.length>0;){if(i=i[o],!o||!i)throw Error(`Invalid path "${t}", "${o}" is missing or has no value`);o=s.shift()}if("function"!=typeof i[o])throw Error(`"${t}" is not a function`);const a=i[o];i[o]=n(a)})),e);var ot=Object.assign(nt,{DeliveryMethods:ne});export{U as HttpStatusCodes,ot as default,A as transformResponse,st as wrapWith};
2
2
  //# sourceMappingURL=index.esm.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descope/core-js-sdk",
3
- "version": "1.9.1",
3
+ "version": "1.9.2",
4
4
  "author": "Descope Team <info@descope.com>",
5
5
  "homepage": "https://github.com/descope/core-js-sdk",
6
6
  "bugs": {
@@ -50,7 +50,7 @@
50
50
  "eslint-config-prettier": "8.10.0",
51
51
  "eslint-config-standard": "17.1.0",
52
52
  "eslint-import-resolver-typescript": "3.6.0",
53
- "eslint-plugin-import": "2.28.0",
53
+ "eslint-plugin-import": "2.28.1",
54
54
  "eslint-plugin-jest": "27.2.3",
55
55
  "eslint-plugin-jest-dom": "4.0.3",
56
56
  "eslint-plugin-jest-formatting": "3.1.0",