@descope/core-js-sdk 2.71.0 → 2.72.0
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/cjs/index.cjs.js.map +1 -1
- package/dist/index.d.ts +21 -0
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
type JSONSerializable = string | number | boolean | null | Array<JSONSerializable>;
|
|
2
2
|
type FlowInput = Record<string, JSONSerializable>;
|
|
3
|
+
/** One client-side form validation failure, reported after the flow started. */
|
|
4
|
+
type FlowValidationEvent = {
|
|
5
|
+
id: string;
|
|
6
|
+
field: string;
|
|
7
|
+
rule: string;
|
|
8
|
+
message: string;
|
|
9
|
+
screenId: string;
|
|
10
|
+
screenName: string;
|
|
11
|
+
ts: number;
|
|
12
|
+
};
|
|
3
13
|
/** Options for a flow next call */
|
|
4
14
|
type NextOptions = {
|
|
5
15
|
sessionJwt?: string;
|
|
@@ -396,6 +406,14 @@ type HttpClientReqConfig = {
|
|
|
396
406
|
[key: string]: string;
|
|
397
407
|
};
|
|
398
408
|
token?: string;
|
|
409
|
+
/** Let the request outlive the page - for best-effort sends on unload. */
|
|
410
|
+
keepalive?: boolean;
|
|
411
|
+
/**
|
|
412
|
+
* Skip the shared transient-error retry in createFetchLogger. For callers
|
|
413
|
+
* that do their own bounded retry - stacking the two multiplies the number
|
|
414
|
+
* of requests a single failure produces.
|
|
415
|
+
*/
|
|
416
|
+
disableRetry?: boolean;
|
|
399
417
|
};
|
|
400
418
|
type ExtendedResponse = Response & {
|
|
401
419
|
cookies: Record<string, string>;
|
|
@@ -444,6 +462,8 @@ type RequestConfig = {
|
|
|
444
462
|
body?: any;
|
|
445
463
|
method: HTTPMethods;
|
|
446
464
|
token?: string;
|
|
465
|
+
keepalive?: boolean;
|
|
466
|
+
disableRetry?: boolean;
|
|
447
467
|
};
|
|
448
468
|
type BeforeRequest = (config: RequestConfig) => RequestConfig;
|
|
449
469
|
type AfterRequest = (req: RequestConfig, res: Response) => void | Promise<void>;
|
|
@@ -716,6 +736,7 @@ declare const _default: ((config: {
|
|
|
716
736
|
flow: {
|
|
717
737
|
start: (flowId: string, options?: Options, conditionInteractionId?: string, interactionId?: string, componentsVersion?: string, flowVersions?: Record<string, number>, input?: FlowInput, isCustomScreen?: any) => Promise<SdkResponse<FlowResponse>>;
|
|
718
738
|
next: (executionId: string, stepId: string, interactionId: string, version?: number, componentsVersion?: string, input?: FlowInput, isCustomScreen?: any, options?: NextOptions) => Promise<SdkResponse<FlowResponse>>;
|
|
739
|
+
event: (executionId: string, events: FlowValidationEvent[], keepalive?: boolean) => Promise<SdkResponse<never>>;
|
|
719
740
|
};
|
|
720
741
|
refresh: (token?: string, queryParams?: {
|
|
721
742
|
[key: string]: string;
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jwtDecode as e}from"jwt-decode";import{__rest as t}from"tslib";var n={accessKey:{exchange:"/v1/auth/accesskey/exchange"},otp:{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"},magicLink:{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"},enchantedLink:{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"},oauth:{start:"/v1/auth/oauth/authorize",exchange:"/v1/auth/oauth/exchange",startNative:"v1/auth/oauth/native/start",finishNative:"v1/auth/oauth/native/finish",oneTap:{getOneTapClientId:"/v1/auth/onetap/clientid/{provider}",exchangeOneTapIDToken:"/v1/auth/onetap/idtoken/exchange",verifyOneTapIDToken:"/v1/auth/onetap/idtoken/verify"}},outbound:{connect:"/v1/outbound/oauth/connect"},saml:{start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},sso:{start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},totp:{verify:"/v1/auth/totp/verify",signUp:"/v1/auth/totp/signup",update:"/v1/auth/totp/update"},notp:{signIn:"/v1/auth/notp/whatsapp/signin",signUp:"/v1/auth/notp/whatsapp/signup",signUpOrIn:"/v1/auth/notp/whatsapp/signup-in",session:"/v1/auth/notp/pending-session"},webauthn:{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"}},password:{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"},refresh:"/v1/auth/refresh",tryRefresh:"/v1/auth/try-refresh",selectTenant:"/v1/auth/tenant/select",logout:"/v1/auth/logout",logoutAll:"/v1/auth/logoutall",me:"/v1/auth/me",myTenants:"/v1/auth/me/tenants",history:"/v1/auth/me/history",flow:{start:"/v1/flow/start",next:"/v1/flow/next"}};const o="<region>",s=`https://api.${o}descope.com`,i=1e3,r=6e5,a=()=>{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},retries(t){return e.Retries=t,this},build:()=>Object.keys(e).flatMap((t=>e[t]?[`${"Title"!==t?`${t}: `:""}${e[t]}`]:[])).join("\n")}},d=[503,520,521,522,524,530],p=[100,5e3,5e3],u=e=>new Promise((t=>setTimeout(t,e))),l=e=>async function(...t){let n=await e(...t),o=0;for(;d.includes(n.status)&&o<p.length;)await u(p[o]),n=await e(...t),o++;o>0&&(n.retries=o);const s=await n.text();return n.text=()=>Promise.resolve(s),n.json=()=>Promise.resolve(JSON.parse(s)),n.clone=()=>n,n},c=(e,t)=>{const 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 function(...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=>a().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const o=await l(n)(...t);return e[o.ok?"log":"error"](await(async e=>{const t=await e.text();return a().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).retries(e.retries).build()})(o)),o}:l(n)};let g;const h=()=>{if(g)return g;const e=new Date,t=`${e.getUTCFullYear().toString()}-${(e.getUTCMonth()+1).toString().padStart(2,"0")}-${e.getUTCDate().toString().padStart(2,"0")}-${e.getUTCHours().toString().padStart(2,"0")}:${e.getUTCMinutes().toString().padStart(2,"0")}:${e.getUTCSeconds().toString().padStart(2,"0")}:${e.getUTCMilliseconds().toString()}`,n=Math.floor(1e3+9e3*Math.random());return g=`${t}-${n}`,g};var v;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT",e.patch="PATCH"}(v||(v={}));const f=({path:e,baseUrl:t,queryParams:n,projectId:s})=>{const i=s.slice(1,-27);t=t.replace(o,i?i+".":"");let r=e?`${t.replace(/\/$/,"")}/${null==e?void 0:e.replace(/^\//,"")}`:t;if(n){const e=Object.keys(n);e.forEach(((t,o)=>{r=`${r}${0===o?"?":""}${t}=${encodeURIComponent(n[t])}${o===e.length-1?"":"&"}`}))}return r},I=(...e)=>new Headers(e.reduce(((e,t)=>((e=>Array.isArray(e)?e:e instanceof Headers?Array.from(e.entries()):e?Object.entries(e):[])(t).forEach((([t,n])=>{e[t]="function"==typeof n?n():n})),e)),{})),m={"Content-Type":"application/json"},b=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},k=(e,t)=>{const n={"x-descope-sdk-session-id":h(),"x-descope-sdk-name":"core-js","x-descope-sdk-version":"2.71.0","x-descope-project-id":e};return t&&(n["x-descope-refresh-cookie-name"]=t),n},y=e=>{try{e=JSON.parse(e)}catch(e){return!1}return"object"==typeof e&&null!==e};var O=(e=>t=>{var n;return e(Object.assign(Object.assign({},t),{hooks:{beforeRequest:e=>{var n;const o=[].concat((null===(n=t.hooks)||void 0===n?void 0:n.beforeRequest)||[]);return null==o?void 0:o.reduce(((e,t)=>t(e)),e)},afterRequest:async(e,n)=>{var o;const s=[].concat((null===(o=t.hooks)||void 0===o?void 0:o.afterRequest)||[]);if(0==s.length)return;(await Promise.allSettled(null==s?void 0:s.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))}))},transformResponse:null===(n=t.hooks)||void 0===n?void 0:n.transformResponse}}))})((({baseUrl:e,projectId:t,baseConfig:n,refreshCookieName:o,logger:i,hooks:r,cookiePolicy:a,fetch:d})=>{const p=e||s,u=c(i,d),l=async e=>{var s;const i=(null==r?void 0:r.beforeRequest)?r.beforeRequest(e):e,{path:d,body:l,headers:c,queryParams:g,method:h,token:v}=i,O=(e=>void 0===e?void 0:JSON.stringify(e))(l),w={headers:I(b(t,v),k(t,o),(null==n?void 0:n.baseHeaders)||{},y(O)?m:{},c),method:h,body:O};null!==a&&(w.credentials=a||"include");const j=await u(f({path:d,baseUrl:p,queryParams:g,projectId:t}),w);if((null==r?void 0:r.afterRequest)&&await r.afterRequest(e,null==j?void 0:j.clone()),null==r?void 0:r.transformResponse){const e=await j.json(),t=(U=(null===(s=j.headers)||void 0===s?void 0:s.get("set-cookie"))||"",Object.fromEntries(function(e){if(!e)return[];const t=[];let n=0;function o(){for(;n<e.length&&/\s/.test(e.charAt(n));)n+=1;return n<e.length}function s(){const t=e.charAt(n);return"="!==t&&";"!==t&&","!==t}for(;n<e.length;){const i=n;let r,a,d=!1;for(;o();)if(","===e.charAt(n)){for(r=n,n+=1,o(),a=n;n<e.length&&s();)n+=1;if(n<e.length&&"="===e.charAt(n)){d=!0,n=a,t.push(e.substring(i,r));break}n=r+1}else n+=1;(!d||n>=e.length)&&t.push(e.substring(i,e.length))}return t}(U).map((e=>{const t=e.split(";")[0],n=t.indexOf("=");return n<1?null:[t.substring(0,n).trim(),t.substring(n+1).trim()]})).filter(Boolean))),n=Object.assign(Object.create(null),{json:()=>Promise.resolve(e),cookies:t}),o=new Proxy(j,{get:(e,t)=>{if(t in n)return n[t];const o=e[t];return"function"==typeof o?o.bind(e):o},set:(e,t,o)=>(n[t]=o,!0),has:(e,t)=>t in n||t in e});return n.clone=()=>o,r.transformResponse(o)}var U;return j};return{get:(e,{headers:t,queryParams:n,token:o}={})=>l({path:e,headers:t,queryParams:n,body:void 0,method:v.get,token:o}),post:(e,t,{headers:n,queryParams:o,token:s}={})=>l({path:e,headers:n,queryParams:o,body:t,method:v.post,token:s}),patch:(e,t,{headers:n,queryParams:o,token:s}={})=>l({path:e,headers:n,queryParams:o,body:t,method:v.patch,token:s}),put:(e,t,{headers:n,queryParams:o,token:s}={})=>l({path:e,headers:n,queryParams:o,body:t,method:v.put,token:s}),delete:(e,{headers:t,queryParams:n,token:o}={})=>l({path:e,headers:t,queryParams:n,body:void 0,method:v.delete,token:o}),hooks:r,buildUrl:(e,n)=>f({projectId:t,baseUrl:p,path:e,queryParams:n})}})),w={TOO_MANY_REQUESTS:429};function j(e,t,n){var o;let s=U(e);if(t){if(!(null==s?void 0:s.tenants)&&(null==s?void 0:s.dct)===t)return(null==s?void 0:s[n])||[];s=null===(o=null==s?void 0:s.tenants)||void 0===o?void 0:o[t]}const i=null==s?void 0:s[n];return Array.isArray(i)?i:[]}function U(t){if("string"!=typeof t||!t)throw new Error("Invalid token provided");return e(t)}function T(e){const{exp:t}=U(e);return(new Date).getTime()/1e3>t}function R(e){let t=U(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function x(e,t){return j(e,t,"permissions")}function P(e,t){return j(e,t,"roles")}const $=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function q(e,t){var n;const o=await e,s={code:o.status,ok:o.ok,response:o},i=await o.clone().json();return o.ok?s.data=t?t(i):i:(s.error=i,o.status===w.TOO_MANY_REQUESTS&&Object.assign(s.error,{retryAfter:Number.parseInt(null===(n=o.headers)||void 0===n?void 0:n.get("retry-after"))||0})),s}function S(e){var t;return(null===(t=U(e))||void 0===t?void 0:t.dct)||""}const A=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),C=(e,t)=>(n=t)=>t=>{const o=e.filter((e=>e(t)));return!(o.length<e.length)&&(n?n.replace("{val}",t):o.join(" OR "))},E=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),L=e=>t=>e.test(t),M=L(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),N=L(/^\+[1-9]{1}[0-9]{3,14}$/),D=(e,t)=>n=>E(...t).validate(((e,t,n)=>{const o=(Array.isArray(t)?t.join("."):String(t)).replace(/\[\\?("|')?(\w|d)+\\?("|')?\]/g,((e,t,n)=>"."+n)).split("."),s=o.length;let i=0,r=e===Object(e)?e:void 0;for(;null!=r&&i<s;)r=r[o[i++]];return i&&i===s&&void 0!==r?r:n})(n,e)),H=A(M,'"{val}" is not a valid email'),z=A(N,'"{val}" is not a valid phone number'),J=A((_=1,e=>e.length>=_),"Minimum length is 1");var _;const F=A((e=>"string"==typeof e),"Input is not a string"),K=A((e=>Array.isArray(e)),"Input is not an array"),B=A((e=>"boolean"==typeof e),"Input is not a boolean"),V=A((e=>void 0===e),"Input is defined"),Y=C([F(),V()],"Input is not a string or undefined"),Z=C([K(),B()],"Input is not an array or boolean"),Q=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>E(...e).validate(n[t]))),t(...n)),G=e=>[F(`"${e}" must be a string`)],W=e=>[Y(`"${e}" must be string or undefined`)],X=e=>[F(`"${e}" must be a string`),J(`"${e}" must not be empty`)],ee=e=>[F(`"${e}" must be a string`),H()],te=e=>[F(`"${e}" must be a string`),z()],ne=Q(X("accessKey")),oe=e=>({exchange:ne(((t,o)=>q(e.post(n.accessKey.exchange,{loginOptions:o},{token:t}))))}),se=(e,t,n)=>(t.forEach((t=>{const o=t.split(".");let s=o.shift(),i=e;for(;o.length>0;){if(i=i[s],!s||!i)throw Error(`Invalid path "${t}", "${s}" is missing or has no value`);s=o.shift()}if("function"!=typeof i[s])throw Error(`"${t}" is not a function`);const r=i[s];i[s]=n(r)})),e),ie=({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||i,i),timeoutMs:Math.min(t||r,r)});var re,ae;!function(e){e.sms="sms",e.voice="voice",e.whatsapp="whatsapp",e.im="im"}(re||(re={})),function(e){e.email="email"}(ae||(ae={}));const de=Object.assign(Object.assign({},re),ae);var pe;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(pe||(pe={}));const ue=X("loginId"),le=Q(X("token")),ce=Q(ue),ge=Q(X("pendingRef")),he=Q(ue,ee("email")),ve=e=>({verify:le((t=>q(e.post(n.enchantedLink.verify,{token:t})))),signIn:ce(((o,s,i={},r)=>{var{providerId:a}=i,d=t(i,["providerId"]);return q(e.post($(n.enchantedLink.signIn,de.email),{loginId:o,URI:s,loginOptions:d,providerId:a},{token:r}))})),signUpOrIn:ce(((o,s,i={})=>{var{providerId:r}=i,a=t(i,["providerId"]);return q(e.post($(n.enchantedLink.signUpOrIn,de.email),{loginId:o,URI:s,loginOptions:a,providerId:r}))})),signUp:ce(((o,s,i,r={})=>{var{providerId:a}=r,d=t(r,["providerId"]);return q(e.post($(n.enchantedLink.signUp,de.email),{loginId:o,URI:s,user:i,loginOptions:d,providerId:a}))})),waitForSession:ge(((t,o)=>new Promise((s=>{const{pollingIntervalMs:i,timeoutMs:r}=ie(o);let a;const d=setInterval((async()=>{const o=await e.post(n.enchantedLink.session,{pendingRef:t});o.ok&&(clearInterval(d),a&&clearTimeout(a),s(q(Promise.resolve(o))))}),i);a=setTimeout((()=>{s({error:{errorDescription:`Session polling timeout exceeded: ${r}ms`,errorCode:"0"},ok:!1}),clearInterval(d)}),r)})))),update:{email:he(((t,o,s,i,r)=>q(e.post(n.enchantedLink.update.email,Object.assign({loginId:t,email:o,URI:s},r),{token:i}))))}}),fe=Q(X("flowId")),Ie=Q(X("executionId"),X("stepId"),X("interactionId")),me=e=>({start:fe(((t,o,s,i,r,a,d,p=!1)=>q(e.post(n.flow.start,{flowId:t,options:o,conditionInteractionId:s,interactionId:i,componentsVersion:r,flowVersions:a,input:d,isCustomScreen:p})))),next:Ie(((t,o,s,i,r,a,d=!1,p)=>q(e.post(n.flow.next,{executionId:t,stepId:o,interactionId:s,version:i,componentsVersion:r,input:a,isCustomScreen:d,options:p}))))}),be=X("loginId"),ke=Q(X("token")),ye=Q(be),Oe=Q(be,te("phone")),we=Q(be,ee("email")),je=Object.keys(de).filter((e=>e!==re.voice&&e!==re.im)),Ue=e=>({verify:ke((t=>q(e.post(n.magicLink.verify,{token:t})))),signIn:je.reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:ye(((o,i,r={},a)=>{var{providerId:d}=r,p=t(r,["providerId"]);return q(e.post($(n.magicLink.signIn,s),{loginId:o,URI:i,loginOptions:p,providerId:d},{token:a}))}))})),{}),signUp:je.reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:ye(((o,i,r,a={})=>{var{providerId:d}=a,p=t(a,["providerId"]);return q(e.post($(n.magicLink.signUp,s),{loginId:o,URI:i,user:r,loginOptions:p,providerId:d}))}))})),{}),signUpOrIn:je.reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:ye(((o,i,r={})=>{var{providerId:a}=r,d=t(r,["providerId"]);return q(e.post($(n.magicLink.signUpOrIn,s),{loginId:o,URI:i,loginOptions:d,providerId:a}))}))})),{}),update:{email:we(((t,o,s,i,r)=>q(e.post(n.magicLink.update.email,Object.assign({loginId:t,email:o,URI:s},r),{token:i})))),phone:Object.keys(re).filter((e=>e!==re.voice)).reduce(((t,o)=>Object.assign(Object.assign({},t),{[o]:Oe(((t,s,i,r,a)=>q(e.post($(n.magicLink.update.phone,o),Object.assign({loginId:t,phone:s,URI:i},a),{token:r}))))})),{})}});var Te;!function(e){e.facebook="facebook",e.github="github",e.google="google",e.microsoft="microsoft",e.gitlab="gitlab",e.apple="apple",e.discord="discord",e.linkedin="linkedin",e.slack="slack"}(Te||(Te={}));const Re=Q(X("code")),xe=e=>({start:Object.assign(((t,o,s,i,r)=>q(e.post(n.oauth.start,s||{},{queryParams:Object.assign(Object.assign({provider:t},o&&{redirectURL:o}),r&&{loginHint:r}),token:i}))),Object.keys(Te).reduce(((t,o)=>Object.assign(Object.assign({},t),{[o]:(t,s,i,r)=>q(e.post(n.oauth.start,s||{},{queryParams:Object.assign(Object.assign({provider:o},t&&{redirectURL:t}),r&&{loginHint:r}),token:i}))})),{})),exchange:Re((t=>q(e.post(n.oauth.exchange,{code:t})))),startNative:(t,o,s)=>q(e.post(n.oauth.startNative,{provider:t,loginOptions:o,implicit:s})),finishNative:(t,o,s,i,r)=>q(e.post(n.oauth.finishNative,{provider:t,stateId:o,user:s,code:i,idToken:r})),getOneTapClientId:t=>q(e.get(n.oauth.oneTap.getOneTapClientId.replace("{provider}",t))),verifyOneTapIDToken:(t,o,s,i)=>q(e.post(n.oauth.oneTap.verifyOneTapIDToken,{provider:t,idToken:o,nonce:s,loginOptions:i})),exchangeOneTapIDToken:(t,o,s,i)=>q(e.post(n.oauth.oneTap.exchangeOneTapIDToken,{provider:t,idToken:o,nonce:s,loginOptions:i}))}),Pe=X("appId"),$e=Q(Pe),qe=e=>({connect:$e(((t,o,s)=>{const i=null==o?void 0:o.tenantId,r=null==o?void 0:o.tenantLevel;return null==o||delete o.tenantId,null==o||delete o.tenantLevel,q(e.post(n.outbound.connect,{appId:t,tenantId:i,tenantLevel:r,options:o},{token:s}))}))}),Se=X("loginId"),Ae=Q(Se,X("code")),Ce=Q(Se),Ee=Q(Se,te("phone")),Le=Q(Se,ee("email")),Me=e=>({verify:Object.keys(de).reduce(((t,o)=>Object.assign(Object.assign({},t),{[o]:Ae(((t,s)=>q(e.post($(n.otp.verify,o),{code:s,loginId:t}))))})),{}),signIn:Object.keys(de).reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:Ce(((o,i={},r)=>{var{providerId:a}=i,d=t(i,["providerId"]);return q(e.post($(n.otp.signIn,s),{loginId:o,loginOptions:d,providerId:a},{token:r}))}))})),{}),signUp:Object.keys(de).reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:Ce(((o,i,r={})=>{var{providerId:a}=r,d=t(r,["providerId"]);return q(e.post($(n.otp.signUp,s),{loginId:o,user:i,loginOptions:d,providerId:a}))}))})),{}),signUpOrIn:Object.keys(de).reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:Ce(((o,i={})=>{var{providerId:r}=i,a=t(i,["providerId"]);return q(e.post($(n.otp.signUpOrIn,s),{loginId:o,loginOptions:a,providerId:r}))}))})),{}),update:{email:Le(((t,o,s,i)=>q(e.post(n.otp.update.email,Object.assign({loginId:t,email:o},i),{token:s})))),phone:Object.keys(re).reduce(((t,o)=>Object.assign(Object.assign({},t),{[o]:Ee(((t,s,i,r)=>q(e.post($(n.otp.update.phone,o),Object.assign({loginId:t,phone:s},r),{token:i}))))})),{})}}),Ne=Q(X("tenant")),De=Q(X("code")),He=e=>({start:Ne(((t,o,s,i,r,a,d,p)=>q(e.post(n.sso.start,s||{},Object.assign({queryParams:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({tenant:t},o&&{redirectURL:o}),r&&{ssoId:r}),a&&{forceAuthn:"true"}),d&&{loginHint:d}),p&&{initiatedEmail:t})},i&&{token:i}))))),exchange:De((t=>q(e.post(n.sso.exchange,{code:t}))))}),ze=X("loginId"),Je=Q(ze,X("code")),_e=Q(ze),Fe=Q(ze),Ke=e=>({signUp:_e(((t,o)=>q(e.post(n.totp.signUp,{loginId:t,user:o})))),verify:Je(((t,o,s,i)=>q(e.post(n.totp.verify,{loginId:t,code:o,loginOptions:s},{token:i})))),update:Fe(((t,o)=>q(e.post(n.totp.update,{loginId:t},{token:o}))))}),Be=X("loginId"),Ve=X("newPassword"),Ye=Q(Be,X("password")),Ze=Q(Be),Qe=Q(Be,Ve),Ge=Q(Be,X("oldPassword"),Ve),We=e=>({signUp:Ye(((o,s,i,r={})=>{var{providerId:a}=r,d=t(r,["providerId"]);return q(e.post(n.password.signUp,{loginId:o,password:s,user:i,loginOptions:d,providerId:a}))})),signIn:Ye(((o,s,i={})=>{var{providerId:r}=i,a=t(i,["providerId"]);return q(e.post(n.password.signIn,{loginId:o,password:s,loginOptions:a,providerId:r}))})),sendReset:Ze(((t,o,s)=>q(e.post(n.password.sendReset,{loginId:t,redirectUrl:o,templateOptions:s})))),update:Qe(((t,o,s)=>q(e.post(n.password.update,{loginId:t,newPassword:o},{token:s})))),replace:Ge(((t,o,s)=>q(e.post(n.password.replace,{loginId:t,oldPassword:o,newPassword:s})))),policy:()=>q(e.get(n.password.policy))}),Xe=G("loginId"),et=X("loginId"),tt=G("origin"),nt=Q(et,tt,X("name")),ot=Q(et,tt),st=Q(Xe,tt),it=Q(et,tt,W("token")),rt=Q(X("transactionId"),X("response")),at=e=>({signUp:{start:nt(((t,o,s,i,r)=>q(e.post(n.webauthn.signUp.start,{user:{loginId:t,name:s},origin:o,loginOptions:r,passkeyOptions:i})))),finish:rt(((t,o)=>q(e.post(n.webauthn.signUp.finish,{transactionId:t,response:o}))))},signIn:{start:st(((t,o,s,i,r)=>q(e.post(n.webauthn.signIn.start,{loginId:t,origin:o,loginOptions:s,passkeyOptions:r},{token:i})))),finish:rt(((t,o)=>q(e.post(n.webauthn.signIn.finish,{transactionId:t,response:o}))))},signUpOrIn:{start:ot(((t,o,s,i)=>q(e.post(n.webauthn.signUpOrIn.start,{loginId:t,origin:o,loginOptions:i,passkeyOptions:s}))))},update:{start:it(((t,o,s,i,r)=>q(e.post(n.webauthn.update.start,{loginId:t,origin:o,passkeyOptions:i,mfa:r},{token:s})))),finish:rt(((t,o)=>q(e.post(n.webauthn.update.finish,{transactionId:t,response:o}))))}}),dt=G("loginId"),pt=Q(dt),ut=Q(X("pendingRef")),lt=e=>({signUpOrIn:pt(((o,s={})=>{var{providerId:i}=s,r=t(s,["providerId"]);return q(e.post(n.notp.signUpOrIn,{loginId:o,loginOptions:r,providerId:i}))})),signUp:pt(((o,s,i={})=>{var{providerId:r}=i,a=t(i,["providerId"]);return q(e.post(n.notp.signUp,{loginId:o,user:s,providerId:r,loginOptions:a}))})),signIn:pt(((o,s={},i)=>{var{providerId:r}=s,a=t(s,["providerId"]);return q(e.post(n.notp.signIn,{loginId:o,loginOptions:a,providerId:r},{token:i}))})),waitForSession:ut(((t,o)=>new Promise((s=>{const{pollingIntervalMs:i,timeoutMs:r}=ie(o);let a;const d=setInterval((async()=>{const o=await e.post(n.notp.session,{pendingRef:t});o.ok&&(clearInterval(d),a&&clearTimeout(a),s(q(Promise.resolve(o))))}),i);a=setTimeout((()=>{s({error:{errorDescription:`Session polling timeout exceeded: ${r}ms`,errorCode:"0"},ok:!1}),clearInterval(d)}),r)}))))}),ct=Q(X("token")),gt=Q(W("token"));var ht,vt,ft=Q([(ht="projectId",vt=X("projectId"),A(D(ht,vt))())])((e=>{const{projectId:t,logger:o,baseUrl:s,cookiePolicy:i,baseHeaders:r={},refreshCookieName:a,fetch:d}=e;return p=O({baseUrl:s,projectId:t,logger:o,hooks:{get beforeRequest(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.beforeRequest},get afterRequest(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.afterRequest},get transformResponse(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.transformResponse}},cookiePolicy:i,baseConfig:{baseHeaders:r},refreshCookieName:a,fetch:d}),{accessKey:oe(p),otp:Me(p),magicLink:Ue(p),enchantedLink:ve(p),oauth:xe(p),outbound:qe(p),sso:He(p),saml:He(p),totp:Ke(p),notp:lt(p),webauthn:at(p),password:We(p),flow:me(p),refresh:gt(((e,t,o,s)=>{const i={};o&&(i.externalToken=o);const r=s?n.tryRefresh:n.refresh;return q(p.post(r,i,{token:e,queryParams:t}))})),selectTenant:Q([F("tenantId")],[Y('"token" must be string or undefined')])(((e,t)=>q(p.post(n.selectTenant,{tenant:e},{token:t})))),logout:gt((e=>q(p.post(n.logout,{},{token:e})))),logoutAll:gt((e=>q(p.post(n.logoutAll,{},{token:e})))),me:gt((e=>q(p.get(n.me,{token:e})))),myTenants:Q([Z('"tenants" must a string array or a boolean')],[Y('"token" must be string or undefined')])(((e,t)=>{const o={};return"boolean"==typeof e?o.dct=e:o.ids=e,q(p.post(n.myTenants,o,{token:t}))})),history:gt((e=>q(p.get(n.history,{token:e})))),isJwtExpired:ct(T),getTenants:ct(R),getJwtPermissions:ct(x),getJwtRoles:ct(P),getCurrentTenant:ct(S),httpClient:p};var p})),It=Object.assign(ft,{DeliveryMethods:de});export{w as HttpStatusCodes,O as createHttpClient,It as default,ie as normalizeWaitForSessionConfig,q as transformResponse,se as wrapWith};
|
|
1
|
+
import{jwtDecode as e}from"jwt-decode";import{__rest as t}from"tslib";var n={accessKey:{exchange:"/v1/auth/accesskey/exchange"},otp:{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"},magicLink:{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"},enchantedLink:{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"},oauth:{start:"/v1/auth/oauth/authorize",exchange:"/v1/auth/oauth/exchange",startNative:"v1/auth/oauth/native/start",finishNative:"v1/auth/oauth/native/finish",oneTap:{getOneTapClientId:"/v1/auth/onetap/clientid/{provider}",exchangeOneTapIDToken:"/v1/auth/onetap/idtoken/exchange",verifyOneTapIDToken:"/v1/auth/onetap/idtoken/verify"}},outbound:{connect:"/v1/outbound/oauth/connect"},saml:{start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},sso:{start:"/v1/auth/saml/authorize",exchange:"/v1/auth/saml/exchange"},totp:{verify:"/v1/auth/totp/verify",signUp:"/v1/auth/totp/signup",update:"/v1/auth/totp/update"},notp:{signIn:"/v1/auth/notp/whatsapp/signin",signUp:"/v1/auth/notp/whatsapp/signup",signUpOrIn:"/v1/auth/notp/whatsapp/signup-in",session:"/v1/auth/notp/pending-session"},webauthn:{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"}},password:{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"},refresh:"/v1/auth/refresh",tryRefresh:"/v1/auth/try-refresh",selectTenant:"/v1/auth/tenant/select",logout:"/v1/auth/logout",logoutAll:"/v1/auth/logoutall",me:"/v1/auth/me",myTenants:"/v1/auth/me/tenants",history:"/v1/auth/me/history",flow:{start:"/v1/flow/start",next:"/v1/flow/next",event:"/v1/flow/event"}};const o="<region>",s=`https://api.${o}descope.com`,i=1e3,r=6e5,a=()=>{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},retries(t){return e.Retries=t,this},build:()=>Object.keys(e).flatMap((t=>e[t]?[`${"Title"!==t?`${t}: `:""}${e[t]}`]:[])).join("\n")}},d=[503,520,521,522,524,530],p=[100,5e3,5e3],l=e=>new Promise((t=>setTimeout(t,e))),u=e=>async function(...t){let n=await e(...t);const o=!!(null==(s=t[1])?void 0:s.disableRetry);var s;let i=0;for(;!o&&d.includes(n.status)&&i<p.length;)await l(p[i]),n=await e(...t),i++;i>0&&(n.retries=i);const r=await n.text();return n.text=()=>Promise.resolve(r),n.json=()=>Promise.resolve(JSON.parse(r)),n.clone=()=>n,n},c=(e,t)=>{const 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 function(...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=>a().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const o=await u(n)(...t);return e[o.ok?"log":"error"](await(async e=>{const t=await e.text();return a().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).retries(e.retries).build()})(o)),o}:u(n)};let g;const h=()=>{if(g)return g;const e=new Date,t=`${e.getUTCFullYear().toString()}-${(e.getUTCMonth()+1).toString().padStart(2,"0")}-${e.getUTCDate().toString().padStart(2,"0")}-${e.getUTCHours().toString().padStart(2,"0")}:${e.getUTCMinutes().toString().padStart(2,"0")}:${e.getUTCSeconds().toString().padStart(2,"0")}:${e.getUTCMilliseconds().toString()}`,n=Math.floor(1e3+9e3*Math.random());return g=`${t}-${n}`,g};var v;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT",e.patch="PATCH"}(v||(v={}));const f=({path:e,baseUrl:t,queryParams:n,projectId:s})=>{const i=s.slice(1,-27);t=t.replace(o,i?i+".":"");let r=e?`${t.replace(/\/$/,"")}/${null==e?void 0:e.replace(/^\//,"")}`:t;if(n){const e=Object.keys(n);e.forEach(((t,o)=>{r=`${r}${0===o?"?":""}${t}=${encodeURIComponent(n[t])}${o===e.length-1?"":"&"}`}))}return r},I=(...e)=>new Headers(e.reduce(((e,t)=>((e=>Array.isArray(e)?e:e instanceof Headers?Array.from(e.entries()):e?Object.entries(e):[])(t).forEach((([t,n])=>{e[t]="function"==typeof n?n():n})),e)),{})),m={"Content-Type":"application/json"},b=(e,t="")=>{let n=e;return t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},k=(e,t)=>{const n={"x-descope-sdk-session-id":h(),"x-descope-sdk-name":"core-js","x-descope-sdk-version":"2.72.0","x-descope-project-id":e};return t&&(n["x-descope-refresh-cookie-name"]=t),n},y=e=>{try{e=JSON.parse(e)}catch(e){return!1}return"object"==typeof e&&null!==e};var O=(e=>t=>{var n;return e(Object.assign(Object.assign({},t),{hooks:{beforeRequest:e=>{var n;const o=[].concat((null===(n=t.hooks)||void 0===n?void 0:n.beforeRequest)||[]);return null==o?void 0:o.reduce(((e,t)=>t(e)),e)},afterRequest:async(e,n)=>{var o;const s=[].concat((null===(o=t.hooks)||void 0===o?void 0:o.afterRequest)||[]);if(0==s.length)return;(await Promise.allSettled(null==s?void 0:s.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))}))},transformResponse:null===(n=t.hooks)||void 0===n?void 0:n.transformResponse}}))})((({baseUrl:e,projectId:t,baseConfig:n,refreshCookieName:o,logger:i,hooks:r,cookiePolicy:a,fetch:d})=>{const p=e||s,l=c(i,d),u=async e=>{var s;const i=(null==r?void 0:r.beforeRequest)?r.beforeRequest(e):e,{path:d,body:u,headers:c,queryParams:g,method:h,token:v,keepalive:O,disableRetry:w}=i,j=(e=>void 0===e?void 0:JSON.stringify(e))(u),U=Object.assign(Object.assign({headers:I(b(t,v),k(t,o),(null==n?void 0:n.baseHeaders)||{},y(j)?m:{},c),method:h,body:j},O?{keepalive:!0}:{}),w?{disableRetry:!0}:{});null!==a&&(U.credentials=a||"include");const R=await l(f({path:d,baseUrl:p,queryParams:g,projectId:t}),U);if((null==r?void 0:r.afterRequest)&&await r.afterRequest(e,null==R?void 0:R.clone()),null==r?void 0:r.transformResponse){const e=await R.json(),t=(T=(null===(s=R.headers)||void 0===s?void 0:s.get("set-cookie"))||"",Object.fromEntries(function(e){if(!e)return[];const t=[];let n=0;function o(){for(;n<e.length&&/\s/.test(e.charAt(n));)n+=1;return n<e.length}function s(){const t=e.charAt(n);return"="!==t&&";"!==t&&","!==t}for(;n<e.length;){const i=n;let r,a,d=!1;for(;o();)if(","===e.charAt(n)){for(r=n,n+=1,o(),a=n;n<e.length&&s();)n+=1;if(n<e.length&&"="===e.charAt(n)){d=!0,n=a,t.push(e.substring(i,r));break}n=r+1}else n+=1;(!d||n>=e.length)&&t.push(e.substring(i,e.length))}return t}(T).map((e=>{const t=e.split(";")[0],n=t.indexOf("=");return n<1?null:[t.substring(0,n).trim(),t.substring(n+1).trim()]})).filter(Boolean))),n=Object.assign(Object.create(null),{json:()=>Promise.resolve(e),cookies:t}),o=new Proxy(R,{get:(e,t)=>{if(t in n)return n[t];const o=e[t];return"function"==typeof o?o.bind(e):o},set:(e,t,o)=>(n[t]=o,!0),has:(e,t)=>t in n||t in e});return n.clone=()=>o,r.transformResponse(o)}var T;return R};return{get:(e,{headers:t,queryParams:n,token:o,keepalive:s,disableRetry:i}={})=>u({path:e,headers:t,queryParams:n,body:void 0,method:v.get,token:o,keepalive:s,disableRetry:i}),post:(e,t,{headers:n,queryParams:o,token:s,keepalive:i,disableRetry:r}={})=>u({path:e,headers:n,queryParams:o,body:t,method:v.post,token:s,keepalive:i,disableRetry:r}),patch:(e,t,{headers:n,queryParams:o,token:s,keepalive:i,disableRetry:r}={})=>u({path:e,headers:n,queryParams:o,body:t,method:v.patch,token:s,keepalive:i,disableRetry:r}),put:(e,t,{headers:n,queryParams:o,token:s,keepalive:i,disableRetry:r}={})=>u({path:e,headers:n,queryParams:o,body:t,method:v.put,token:s,keepalive:i,disableRetry:r}),delete:(e,{headers:t,queryParams:n,token:o,keepalive:s,disableRetry:i}={})=>u({path:e,headers:t,queryParams:n,body:void 0,method:v.delete,token:o,keepalive:s,disableRetry:i}),hooks:r,buildUrl:(e,n)=>f({projectId:t,baseUrl:p,path:e,queryParams:n})}})),w={TOO_MANY_REQUESTS:429};function j(e,t,n){var o;let s=U(e);if(t){if(!(null==s?void 0:s.tenants)&&(null==s?void 0:s.dct)===t)return(null==s?void 0:s[n])||[];s=null===(o=null==s?void 0:s.tenants)||void 0===o?void 0:o[t]}const i=null==s?void 0:s[n];return Array.isArray(i)?i:[]}function U(t){if("string"!=typeof t||!t)throw new Error("Invalid token provided");return e(t)}function R(e){const{exp:t}=U(e);return(new Date).getTime()/1e3>t}function T(e){let t=U(e);const n=Object.keys(null==t?void 0:t.tenants);return Array.isArray(n)?n:[]}function x(e,t){return j(e,t,"permissions")}function P(e,t){return j(e,t,"roles")}const $=(...e)=>e.join("/").replace(/\/{2,}/g,"/");async function q(e,t){var n;const o=await e,s={code:o.status,ok:o.ok,response:o},i=await o.clone().json();return o.ok?s.data=t?t(i):i:(s.error=i,o.status===w.TOO_MANY_REQUESTS&&Object.assign(s.error,{retryAfter:Number.parseInt(null===(n=o.headers)||void 0===n?void 0:n.get("retry-after"))||0})),s}function S(e){var t;return(null===(t=U(e))||void 0===t?void 0:t.dct)||""}const A=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),C=(e,t)=>(n=t)=>t=>{const o=e.filter((e=>e(t)));return!(o.length<e.length)&&(n?n.replace("{val}",t):o.join(" OR "))},E=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),L=e=>t=>e.test(t),M=L(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),N=L(/^\+[1-9]{1}[0-9]{3,14}$/),D=(e,t)=>n=>E(...t).validate(((e,t,n)=>{const o=(Array.isArray(t)?t.join("."):String(t)).replace(/\[\\?("|')?(\w|d)+\\?("|')?\]/g,((e,t,n)=>"."+n)).split("."),s=o.length;let i=0,r=e===Object(e)?e:void 0;for(;null!=r&&i<s;)r=r[o[i++]];return i&&i===s&&void 0!==r?r:n})(n,e)),H=A(M,'"{val}" is not a valid email'),z=A(N,'"{val}" is not a valid phone number'),J=A((_=1,e=>e.length>=_),"Minimum length is 1");var _;const F=A((e=>"string"==typeof e),"Input is not a string"),K=A((e=>Array.isArray(e)),"Input is not an array"),B=A((e=>"boolean"==typeof e),"Input is not a boolean"),V=A((e=>void 0===e),"Input is defined"),Y=C([F(),V()],"Input is not a string or undefined"),Z=C([K(),B()],"Input is not an array or boolean"),Q=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>E(...e).validate(n[t]))),t(...n)),G=e=>[F(`"${e}" must be a string`)],W=e=>[Y(`"${e}" must be string or undefined`)],X=e=>[F(`"${e}" must be a string`),J(`"${e}" must not be empty`)],ee=e=>[F(`"${e}" must be a string`),H()],te=e=>[F(`"${e}" must be a string`),z()],ne=Q(X("accessKey")),oe=e=>({exchange:ne(((t,o)=>q(e.post(n.accessKey.exchange,{loginOptions:o},{token:t}))))}),se=(e,t,n)=>(t.forEach((t=>{const o=t.split(".");let s=o.shift(),i=e;for(;o.length>0;){if(i=i[s],!s||!i)throw Error(`Invalid path "${t}", "${s}" is missing or has no value`);s=o.shift()}if("function"!=typeof i[s])throw Error(`"${t}" is not a function`);const r=i[s];i[s]=n(r)})),e),ie=({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||i,i),timeoutMs:Math.min(t||r,r)});var re,ae;!function(e){e.sms="sms",e.voice="voice",e.whatsapp="whatsapp",e.im="im"}(re||(re={})),function(e){e.email="email"}(ae||(ae={}));const de=Object.assign(Object.assign({},re),ae);var pe;!function(e){e.waiting="waiting",e.running="running",e.completed="completed",e.failed="failed"}(pe||(pe={}));const le=X("loginId"),ue=Q(X("token")),ce=Q(le),ge=Q(X("pendingRef")),he=Q(le,ee("email")),ve=e=>({verify:ue((t=>q(e.post(n.enchantedLink.verify,{token:t})))),signIn:ce(((o,s,i={},r)=>{var{providerId:a}=i,d=t(i,["providerId"]);return q(e.post($(n.enchantedLink.signIn,de.email),{loginId:o,URI:s,loginOptions:d,providerId:a},{token:r}))})),signUpOrIn:ce(((o,s,i={})=>{var{providerId:r}=i,a=t(i,["providerId"]);return q(e.post($(n.enchantedLink.signUpOrIn,de.email),{loginId:o,URI:s,loginOptions:a,providerId:r}))})),signUp:ce(((o,s,i,r={})=>{var{providerId:a}=r,d=t(r,["providerId"]);return q(e.post($(n.enchantedLink.signUp,de.email),{loginId:o,URI:s,user:i,loginOptions:d,providerId:a}))})),waitForSession:ge(((t,o)=>new Promise((s=>{const{pollingIntervalMs:i,timeoutMs:r}=ie(o);let a;const d=setInterval((async()=>{const o=await e.post(n.enchantedLink.session,{pendingRef:t});o.ok&&(clearInterval(d),a&&clearTimeout(a),s(q(Promise.resolve(o))))}),i);a=setTimeout((()=>{s({error:{errorDescription:`Session polling timeout exceeded: ${r}ms`,errorCode:"0"},ok:!1}),clearInterval(d)}),r)})))),update:{email:he(((t,o,s,i,r)=>q(e.post(n.enchantedLink.update.email,Object.assign({loginId:t,email:o,URI:s},r),{token:i}))))}}),fe=Q(X("flowId")),Ie=Q(X("executionId"),X("stepId"),X("interactionId")),me=Q(X("executionId")),be=e=>({start:fe(((t,o,s,i,r,a,d,p=!1)=>q(e.post(n.flow.start,{flowId:t,options:o,conditionInteractionId:s,interactionId:i,componentsVersion:r,flowVersions:a,input:d,isCustomScreen:p})))),next:Ie(((t,o,s,i,r,a,d=!1,p)=>q(e.post(n.flow.next,{executionId:t,stepId:o,interactionId:s,version:i,componentsVersion:r,input:a,isCustomScreen:d,options:p})))),event:me(((t,o,s)=>q(e.post(n.flow.event,{executionId:t,events:o},{keepalive:s,disableRetry:!0}))))}),ke=X("loginId"),ye=Q(X("token")),Oe=Q(ke),we=Q(ke,te("phone")),je=Q(ke,ee("email")),Ue=Object.keys(de).filter((e=>e!==re.voice&&e!==re.im)),Re=e=>({verify:ye((t=>q(e.post(n.magicLink.verify,{token:t})))),signIn:Ue.reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:Oe(((o,i,r={},a)=>{var{providerId:d}=r,p=t(r,["providerId"]);return q(e.post($(n.magicLink.signIn,s),{loginId:o,URI:i,loginOptions:p,providerId:d},{token:a}))}))})),{}),signUp:Ue.reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:Oe(((o,i,r,a={})=>{var{providerId:d}=a,p=t(a,["providerId"]);return q(e.post($(n.magicLink.signUp,s),{loginId:o,URI:i,user:r,loginOptions:p,providerId:d}))}))})),{}),signUpOrIn:Ue.reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:Oe(((o,i,r={})=>{var{providerId:a}=r,d=t(r,["providerId"]);return q(e.post($(n.magicLink.signUpOrIn,s),{loginId:o,URI:i,loginOptions:d,providerId:a}))}))})),{}),update:{email:je(((t,o,s,i,r)=>q(e.post(n.magicLink.update.email,Object.assign({loginId:t,email:o,URI:s},r),{token:i})))),phone:Object.keys(re).filter((e=>e!==re.voice)).reduce(((t,o)=>Object.assign(Object.assign({},t),{[o]:we(((t,s,i,r,a)=>q(e.post($(n.magicLink.update.phone,o),Object.assign({loginId:t,phone:s,URI:i},a),{token:r}))))})),{})}});var Te;!function(e){e.facebook="facebook",e.github="github",e.google="google",e.microsoft="microsoft",e.gitlab="gitlab",e.apple="apple",e.discord="discord",e.linkedin="linkedin",e.slack="slack"}(Te||(Te={}));const xe=Q(X("code")),Pe=e=>({start:Object.assign(((t,o,s,i,r)=>q(e.post(n.oauth.start,s||{},{queryParams:Object.assign(Object.assign({provider:t},o&&{redirectURL:o}),r&&{loginHint:r}),token:i}))),Object.keys(Te).reduce(((t,o)=>Object.assign(Object.assign({},t),{[o]:(t,s,i,r)=>q(e.post(n.oauth.start,s||{},{queryParams:Object.assign(Object.assign({provider:o},t&&{redirectURL:t}),r&&{loginHint:r}),token:i}))})),{})),exchange:xe((t=>q(e.post(n.oauth.exchange,{code:t})))),startNative:(t,o,s)=>q(e.post(n.oauth.startNative,{provider:t,loginOptions:o,implicit:s})),finishNative:(t,o,s,i,r)=>q(e.post(n.oauth.finishNative,{provider:t,stateId:o,user:s,code:i,idToken:r})),getOneTapClientId:t=>q(e.get(n.oauth.oneTap.getOneTapClientId.replace("{provider}",t))),verifyOneTapIDToken:(t,o,s,i)=>q(e.post(n.oauth.oneTap.verifyOneTapIDToken,{provider:t,idToken:o,nonce:s,loginOptions:i})),exchangeOneTapIDToken:(t,o,s,i)=>q(e.post(n.oauth.oneTap.exchangeOneTapIDToken,{provider:t,idToken:o,nonce:s,loginOptions:i}))}),$e=X("appId"),qe=Q($e),Se=e=>({connect:qe(((t,o,s)=>{const i=null==o?void 0:o.tenantId,r=null==o?void 0:o.tenantLevel;return null==o||delete o.tenantId,null==o||delete o.tenantLevel,q(e.post(n.outbound.connect,{appId:t,tenantId:i,tenantLevel:r,options:o},{token:s}))}))}),Ae=X("loginId"),Ce=Q(Ae,X("code")),Ee=Q(Ae),Le=Q(Ae,te("phone")),Me=Q(Ae,ee("email")),Ne=e=>({verify:Object.keys(de).reduce(((t,o)=>Object.assign(Object.assign({},t),{[o]:Ce(((t,s)=>q(e.post($(n.otp.verify,o),{code:s,loginId:t}))))})),{}),signIn:Object.keys(de).reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:Ee(((o,i={},r)=>{var{providerId:a}=i,d=t(i,["providerId"]);return q(e.post($(n.otp.signIn,s),{loginId:o,loginOptions:d,providerId:a},{token:r}))}))})),{}),signUp:Object.keys(de).reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:Ee(((o,i,r={})=>{var{providerId:a}=r,d=t(r,["providerId"]);return q(e.post($(n.otp.signUp,s),{loginId:o,user:i,loginOptions:d,providerId:a}))}))})),{}),signUpOrIn:Object.keys(de).reduce(((o,s)=>Object.assign(Object.assign({},o),{[s]:Ee(((o,i={})=>{var{providerId:r}=i,a=t(i,["providerId"]);return q(e.post($(n.otp.signUpOrIn,s),{loginId:o,loginOptions:a,providerId:r}))}))})),{}),update:{email:Me(((t,o,s,i)=>q(e.post(n.otp.update.email,Object.assign({loginId:t,email:o},i),{token:s})))),phone:Object.keys(re).reduce(((t,o)=>Object.assign(Object.assign({},t),{[o]:Le(((t,s,i,r)=>q(e.post($(n.otp.update.phone,o),Object.assign({loginId:t,phone:s},r),{token:i}))))})),{})}}),De=Q(X("tenant")),He=Q(X("code")),ze=e=>({start:De(((t,o,s,i,r,a,d,p)=>q(e.post(n.sso.start,s||{},Object.assign({queryParams:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({tenant:t},o&&{redirectURL:o}),r&&{ssoId:r}),a&&{forceAuthn:"true"}),d&&{loginHint:d}),p&&{initiatedEmail:t})},i&&{token:i}))))),exchange:He((t=>q(e.post(n.sso.exchange,{code:t}))))}),Je=X("loginId"),_e=Q(Je,X("code")),Fe=Q(Je),Ke=Q(Je),Be=e=>({signUp:Fe(((t,o)=>q(e.post(n.totp.signUp,{loginId:t,user:o})))),verify:_e(((t,o,s,i)=>q(e.post(n.totp.verify,{loginId:t,code:o,loginOptions:s},{token:i})))),update:Ke(((t,o)=>q(e.post(n.totp.update,{loginId:t},{token:o}))))}),Ve=X("loginId"),Ye=X("newPassword"),Ze=Q(Ve,X("password")),Qe=Q(Ve),Ge=Q(Ve,Ye),We=Q(Ve,X("oldPassword"),Ye),Xe=e=>({signUp:Ze(((o,s,i,r={})=>{var{providerId:a}=r,d=t(r,["providerId"]);return q(e.post(n.password.signUp,{loginId:o,password:s,user:i,loginOptions:d,providerId:a}))})),signIn:Ze(((o,s,i={})=>{var{providerId:r}=i,a=t(i,["providerId"]);return q(e.post(n.password.signIn,{loginId:o,password:s,loginOptions:a,providerId:r}))})),sendReset:Qe(((t,o,s)=>q(e.post(n.password.sendReset,{loginId:t,redirectUrl:o,templateOptions:s})))),update:Ge(((t,o,s)=>q(e.post(n.password.update,{loginId:t,newPassword:o},{token:s})))),replace:We(((t,o,s)=>q(e.post(n.password.replace,{loginId:t,oldPassword:o,newPassword:s})))),policy:()=>q(e.get(n.password.policy))}),et=G("loginId"),tt=X("loginId"),nt=G("origin"),ot=Q(tt,nt,X("name")),st=Q(tt,nt),it=Q(et,nt),rt=Q(tt,nt,W("token")),at=Q(X("transactionId"),X("response")),dt=e=>({signUp:{start:ot(((t,o,s,i,r)=>q(e.post(n.webauthn.signUp.start,{user:{loginId:t,name:s},origin:o,loginOptions:r,passkeyOptions:i})))),finish:at(((t,o)=>q(e.post(n.webauthn.signUp.finish,{transactionId:t,response:o}))))},signIn:{start:it(((t,o,s,i,r)=>q(e.post(n.webauthn.signIn.start,{loginId:t,origin:o,loginOptions:s,passkeyOptions:r},{token:i})))),finish:at(((t,o)=>q(e.post(n.webauthn.signIn.finish,{transactionId:t,response:o}))))},signUpOrIn:{start:st(((t,o,s,i)=>q(e.post(n.webauthn.signUpOrIn.start,{loginId:t,origin:o,loginOptions:i,passkeyOptions:s}))))},update:{start:rt(((t,o,s,i,r)=>q(e.post(n.webauthn.update.start,{loginId:t,origin:o,passkeyOptions:i,mfa:r},{token:s})))),finish:at(((t,o)=>q(e.post(n.webauthn.update.finish,{transactionId:t,response:o}))))}}),pt=G("loginId"),lt=Q(pt),ut=Q(X("pendingRef")),ct=e=>({signUpOrIn:lt(((o,s={})=>{var{providerId:i}=s,r=t(s,["providerId"]);return q(e.post(n.notp.signUpOrIn,{loginId:o,loginOptions:r,providerId:i}))})),signUp:lt(((o,s,i={})=>{var{providerId:r}=i,a=t(i,["providerId"]);return q(e.post(n.notp.signUp,{loginId:o,user:s,providerId:r,loginOptions:a}))})),signIn:lt(((o,s={},i)=>{var{providerId:r}=s,a=t(s,["providerId"]);return q(e.post(n.notp.signIn,{loginId:o,loginOptions:a,providerId:r},{token:i}))})),waitForSession:ut(((t,o)=>new Promise((s=>{const{pollingIntervalMs:i,timeoutMs:r}=ie(o);let a;const d=setInterval((async()=>{const o=await e.post(n.notp.session,{pendingRef:t});o.ok&&(clearInterval(d),a&&clearTimeout(a),s(q(Promise.resolve(o))))}),i);a=setTimeout((()=>{s({error:{errorDescription:`Session polling timeout exceeded: ${r}ms`,errorCode:"0"},ok:!1}),clearInterval(d)}),r)}))))}),gt=Q(X("token")),ht=Q(W("token"));var vt,ft,It=Q([(vt="projectId",ft=X("projectId"),A(D(vt,ft))())])((e=>{const{projectId:t,logger:o,baseUrl:s,cookiePolicy:i,baseHeaders:r={},refreshCookieName:a,fetch:d}=e;return p=O({baseUrl:s,projectId:t,logger:o,hooks:{get beforeRequest(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.beforeRequest},get afterRequest(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.afterRequest},get transformResponse(){var t;return null===(t=e.hooks)||void 0===t?void 0:t.transformResponse}},cookiePolicy:i,baseConfig:{baseHeaders:r},refreshCookieName:a,fetch:d}),{accessKey:oe(p),otp:Ne(p),magicLink:Re(p),enchantedLink:ve(p),oauth:Pe(p),outbound:Se(p),sso:ze(p),saml:ze(p),totp:Be(p),notp:ct(p),webauthn:dt(p),password:Xe(p),flow:be(p),refresh:ht(((e,t,o,s)=>{const i={};o&&(i.externalToken=o);const r=s?n.tryRefresh:n.refresh;return q(p.post(r,i,{token:e,queryParams:t}))})),selectTenant:Q([F("tenantId")],[Y('"token" must be string or undefined')])(((e,t)=>q(p.post(n.selectTenant,{tenant:e},{token:t})))),logout:ht((e=>q(p.post(n.logout,{},{token:e})))),logoutAll:ht((e=>q(p.post(n.logoutAll,{},{token:e})))),me:ht((e=>q(p.get(n.me,{token:e})))),myTenants:Q([Z('"tenants" must a string array or a boolean')],[Y('"token" must be string or undefined')])(((e,t)=>{const o={};return"boolean"==typeof e?o.dct=e:o.ids=e,q(p.post(n.myTenants,o,{token:t}))})),history:ht((e=>q(p.get(n.history,{token:e})))),isJwtExpired:gt(R),getTenants:gt(T),getJwtPermissions:gt(x),getJwtRoles:gt(P),getCurrentTenant:gt(S),httpClient:p};var p})),mt=Object.assign(It,{DeliveryMethods:de});export{w as HttpStatusCodes,O as createHttpClient,mt as default,ie as normalizeWaitForSessionConfig,q as transformResponse,se as wrapWith};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|