@descope/react-sdk 2.2.0 → 2.3.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/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import e,{useMemo as t,useState as r,useEffect as s,useRef as n,useCallback as o,lazy as a,useImperativeHandle as i,Suspense as l,useContext as d}from"react";import c from"@descope/web-js-sdk";const u=e.createContext(void 0),g=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},f=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},b={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.2.0"},p="undefined"!=typeof window;let m;const h=e=>{const t=c(Object.assign({persistTokens:p,autoRefresh:p},e));return m=t,t},U=()=>h({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});m=U();const w=()=>p?null==m?void 0:m.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),I=()=>p?null==m?void 0:m.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),y=(e=w())=>null==m?void 0:m.isJwtExpired(e),k=(e=I())=>null==m?void 0:m.isJwtExpired(e),E=f(((e=w(),t)=>null==m?void 0:m.getJwtPermissions(e,t))),L=f(((e=w(),t)=>null==m?void 0:m.getJwtRoles(e,t))),j=(e=I())=>null==m?void 0:m.refresh(e);const v=({projectId:a,baseUrl:i="",baseStaticUrl:l="",sessionTokenViaCookie:d=!1,persistTokens:c=!0,storeLastAuthenticatedUser:f=!0,keepLastAuthenticatedUserAfterLogout:p=!1,children:m})=>{const[U,w]=r(),[I,y]=r(),[k,E]=r(!1),[L,j]=r(!1),v=(({projectId:e,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a})=>t((()=>{if(e)return h({projectId:e,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:b,persistTokens:s,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a,autoRefresh:!0})}),[e,r,n]))({projectId:a,baseUrl:i,persistTokens:c,sessionTokenViaCookie:d,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p});s((()=>{if(v){const e=v.onSessionTokenChange(y),t=v.onUserChange(w);return()=>{e(),t()}}}),[v]);const S=n(!1),R=n(!1),A=o((()=>{S.current||(S.current=!0,j(!0),g(null==v?void 0:v.refresh)().then((()=>{j(!1)})))}),[v]),C=o((()=>{R.current||(R.current=!0,E(!0),g(v.me)().then((()=>{E(!1)})))}),[v]),x=t((()=>({fetchUser:C,user:U,isUserLoading:k,isUserFetched:R.current,fetchSession:A,session:I,isSessionLoading:L,isSessionFetched:S.current,projectId:a,baseUrl:i,baseStaticUrl:l,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p,setUser:w,setSession:y,sdk:v})),[C,U,k,R.current,A,I,L,S.current,a,i,l,w,y,v]);return e.createElement(u.Provider,{value:x},m)},S=a((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:b,persistTokens:!1,hooks:{get beforeRequest(){return m.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:s,baseStaticUrl:n,innerRef:o,tenant:a,theme:i,locale:l,debug:d,redirectUrl:c,client:u,form:g,styleId:f,autoFocus:b,validateOnBlur:p,storeLastAuthenticatedUser:m})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":s,"base-static-url":n,ref:o,tenant:a,theme:i,locale:l,debug:d,client:u,form:g,"style-id":f,"redirect-url":c,"auto-focus":b,"validate-on-blur":p,"store-last-authenticated-user":m})}))),R=e.forwardRef((({flowId:n,onSuccess:a,onError:d,onReady:c,logger:g,tenant:f,theme:b,locale:p,debug:m,client:h,form:U,telemetryKey:w,redirectUrl:I,autoFocus:y,validateOnBlur:k,errorTransformer:E,styleId:L},j)=>{const[v,R]=r(null);i(j,(()=>v));const{projectId:A,baseUrl:C,baseStaticUrl:x,storeLastAuthenticatedUser:T,keepLastAuthenticatedUserAfterLogout:O,sdk:F}=e.useContext(u),J=o((async e=>{await F.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),a&&a(e)}),[a]);s((()=>{const e=v;return null==e||e.addEventListener("success",J),d&&(null==e||e.addEventListener("error",d)),c&&(null==e||e.addEventListener("ready",c)),()=>{d&&(null==e||e.removeEventListener("error",d)),c&&(null==e||e.removeEventListener("ready",c)),null==e||e.removeEventListener("success",J)}}),[v,d,J]),s((()=>{const e=v;return null==e||e.addEventListener("success",J),()=>{null==e||e.removeEventListener("success",J)}}),[v,J]),s((()=>{const e=v;return d&&(null==e||e.addEventListener("error",d)),()=>{d&&(null==e||e.removeEventListener("error",d))}}),[v,d]),s((()=>{const e=v;return c&&(null==e||e.addEventListener("ready",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[v,c]),s((()=>{v&&(v.errorTransformer=E)}),[v,E]),s((()=>{v&&g&&(v.logger=g)}),[v,g]);const{form:P,client:q}=t((()=>({form:JSON.stringify(U||{}),client:JSON.stringify(h||{})})),[U,h]);return e.createElement("form",null,e.createElement(l,{fallback:null},e.createElement(S,{projectId:A,flowId:n,baseUrl:C,baseStaticUrl:x,innerRef:R,tenant:f,theme:b,locale:p,debug:m,form:P,client:q,telemetryKey:w,redirectUrl:I,autoFocus:y,styleId:L,validateOnBlur:k,storeLastAuthenticatedUser:T,keepLastAuthenticatedUserAfterLogout:O})))})),A=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up"})),x=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up-or-in"})),T=a((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),O=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(T,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),F=a((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),J=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(F,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),P=a((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),q=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(P,{projectId:b,widgetId:d,baseUrl:p,baseStaticUrl:m,innerRef:f,tenant:n,theme:o,debug:a}))})),V=a((async()=>(await import("@descope/audit-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-audit-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),B=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(V,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),N=a((async()=>(await import("@descope/user-profile-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-user-profile-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),Y=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,onLogout:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),s((()=>{if(f&&d)return f.addEventListener("logout",d),()=>f.removeEventListener("logout",d)}),[f,d]),e.createElement(l,{fallback:null},e.createElement(N,{projectId:p,widgetId:a,baseUrl:m,baseStaticUrl:h,innerRef:b,theme:n,styleId:c,debug:o}))})),z=a((async()=>(await import("@descope/applications-portal-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-applications-portal-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),G=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,styleId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(z,{projectId:b,widgetId:a,baseUrl:p,baseStaticUrl:m,innerRef:f,theme:n,debug:o,styleId:d}))}));var H=()=>{const e=d(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const K=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,M={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],M);if("function"==typeof e[t])return()=>{throw Error(K("function"))};throw Error(K("attribute"))}},$=()=>{const{sdk:e}=H();return t((()=>e||new Proxy(U(),M)),[e])},D=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:a}=H(),i=n(r);t((()=>{i.current=r}),[r]);const l=!e&&!r;return t((()=>{l&&!a&&(i.current=!0)}),[a]),s((()=>{l&&o()}),[o]),{isSessionLoading:i.current,sessionToken:e,isAuthenticated:!!e}},Q=()=>{const{user:e,fetchUser:o,isUserLoading:a,session:i,isUserFetched:l}=H(),[d,c]=r(!1),u=n(a),g=t((()=>!e&&!a&&i&&!d),[o,i,d]);return t((()=>{u.current=a}),[a]),t((()=>{g&&!l&&(u.current=!0)}),[g,l]),s((()=>{g&&(c(!0),o())}),[g]),{isUserLoading:u.current,user:e}};export{q as AccessKeyManagement,G as ApplicationsPortal,B as AuditManagement,v as AuthProvider,R as Descope,J as RoleManagement,A as SignInFlow,C as SignUpFlow,x as SignUpOrInFlow,O as UserManagement,Y as UserProfile,b as baseHeaders,E as getJwtPermissions,L as getJwtRoles,I as getRefreshToken,w as getSessionToken,k as isRefreshTokenExpired,y as isSessionTokenExpired,j as refresh,$ as useDescope,D as useSession,Q as useUser};
1
+ import e,{useMemo as t,useState as r,useEffect as s,useRef as n,useCallback as o,lazy as a,useImperativeHandle as i,Suspense as l,useContext as d}from"react";import c from"@descope/web-js-sdk";const u=e.createContext(void 0),g=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},f=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},b={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.3.0"},p="undefined"!=typeof window;let m;const h=e=>{const t=c(Object.assign({persistTokens:p,autoRefresh:p},e));return m=t,t},U=()=>h({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});m=U();const w=()=>p?null==m?void 0:m.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),I=()=>p?null==m?void 0:m.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),y=(e=w())=>null==m?void 0:m.isJwtExpired(e),k=(e=I())=>null==m?void 0:m.isJwtExpired(e),E=f(((e=w(),t)=>null==m?void 0:m.getJwtPermissions(e,t))),L=f(((e=w(),t)=>null==m?void 0:m.getJwtRoles(e,t))),j=(e=I())=>null==m?void 0:m.refresh(e);const v=({projectId:a,baseUrl:i="",baseStaticUrl:l="",sessionTokenViaCookie:d=!1,persistTokens:c=!0,storeLastAuthenticatedUser:f=!0,keepLastAuthenticatedUserAfterLogout:p=!1,children:m})=>{const[U,w]=r(),[I,y]=r(),[k,E]=r(!1),[L,j]=r(!1),v=(({projectId:e,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a})=>t((()=>{if(e)return h({projectId:e,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:b,persistTokens:s,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a,autoRefresh:!0})}),[e,r,n]))({projectId:a,baseUrl:i,persistTokens:c,sessionTokenViaCookie:d,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p});s((()=>{if(v){const e=v.onSessionTokenChange(y),t=v.onUserChange(w);return()=>{e(),t()}}}),[v]);const S=n(!1),R=n(!1),A=o((()=>{S.current||(S.current=!0,j(!0),g(null==v?void 0:v.refresh)().then((()=>{j(!1)})))}),[v]),C=o((()=>{R.current||(R.current=!0,E(!0),g(v.me)().then((()=>{E(!1)})))}),[v]),x=t((()=>({fetchUser:C,user:U,isUserLoading:k,isUserFetched:R.current,fetchSession:A,session:I,isSessionLoading:L,isSessionFetched:S.current,projectId:a,baseUrl:i,baseStaticUrl:l,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p,setUser:w,setSession:y,sdk:v})),[C,U,k,R.current,A,I,L,S.current,a,i,l,w,y,v]);return e.createElement(u.Provider,{value:x},m)},S=a((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:b,persistTokens:!1,hooks:{get beforeRequest(){return m.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:s,baseStaticUrl:n,innerRef:o,tenant:a,theme:i,locale:l,debug:d,redirectUrl:c,client:u,form:g,styleId:f,autoFocus:b,validateOnBlur:p,storeLastAuthenticatedUser:m})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":s,"base-static-url":n,ref:o,tenant:a,theme:i,locale:l,debug:d,client:u,form:g,"style-id":f,"redirect-url":c,"auto-focus":b,"validate-on-blur":p,"store-last-authenticated-user":m})}))),R=e.forwardRef((({flowId:n,onSuccess:a,onError:d,onReady:c,logger:g,tenant:f,theme:b,locale:p,debug:m,client:h,form:U,telemetryKey:w,redirectUrl:I,autoFocus:y,validateOnBlur:k,errorTransformer:E,styleId:L},j)=>{const[v,R]=r(null);i(j,(()=>v));const{projectId:A,baseUrl:C,baseStaticUrl:x,storeLastAuthenticatedUser:T,keepLastAuthenticatedUserAfterLogout:O,sdk:F}=e.useContext(u),J=o((async e=>{await F.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),a&&a(e)}),[a]);s((()=>{const e=v;return null==e||e.addEventListener("success",J),d&&(null==e||e.addEventListener("error",d)),c&&(null==e||e.addEventListener("ready",c)),()=>{d&&(null==e||e.removeEventListener("error",d)),c&&(null==e||e.removeEventListener("ready",c)),null==e||e.removeEventListener("success",J)}}),[v,d,J]),s((()=>{const e=v;return null==e||e.addEventListener("success",J),()=>{null==e||e.removeEventListener("success",J)}}),[v,J]),s((()=>{const e=v;return d&&(null==e||e.addEventListener("error",d)),()=>{d&&(null==e||e.removeEventListener("error",d))}}),[v,d]),s((()=>{const e=v;return c&&(null==e||e.addEventListener("ready",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[v,c]),s((()=>{v&&(v.errorTransformer=E)}),[v,E]),s((()=>{v&&g&&(v.logger=g)}),[v,g]);const{form:P,client:q}=t((()=>({form:JSON.stringify(U||{}),client:JSON.stringify(h||{})})),[U,h]);return e.createElement("form",null,e.createElement(l,{fallback:null},e.createElement(S,{projectId:A,flowId:n,baseUrl:C,baseStaticUrl:x,innerRef:R,tenant:f,theme:b,locale:p,debug:m,form:P,client:q,telemetryKey:w,redirectUrl:I,autoFocus:y,styleId:L,validateOnBlur:k,storeLastAuthenticatedUser:T,keepLastAuthenticatedUserAfterLogout:O})))})),A=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up"})),x=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up-or-in"})),T=a((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),O=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(T,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),F=a((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),J=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(F,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),P=a((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),q=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(P,{projectId:b,widgetId:d,baseUrl:p,baseStaticUrl:m,innerRef:f,tenant:n,theme:o,debug:a}))})),V=a((async()=>(await import("@descope/audit-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-audit-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),B=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(V,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),N=a((async()=>(await import("@descope/user-profile-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-user-profile-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),Y=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,onLogout:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),s((()=>{if(f&&d)return f.addEventListener("logout",d),()=>f.removeEventListener("logout",d)}),[f,d]),e.createElement(l,{fallback:null},e.createElement(N,{projectId:p,widgetId:a,baseUrl:m,baseStaticUrl:h,innerRef:b,theme:n,styleId:c,debug:o}))})),z=a((async()=>(await import("@descope/applications-portal-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-applications-portal-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),G=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,styleId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(z,{projectId:b,widgetId:a,baseUrl:p,baseStaticUrl:m,innerRef:f,theme:n,debug:o,styleId:d}))}));var H=()=>{const e=d(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const K=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,M={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],M);if("function"==typeof e[t])return()=>{throw Error(K("function"))};throw Error(K("attribute"))}},$=()=>{const{sdk:e}=H();return t((()=>e||new Proxy(U(),M)),[e])},D=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:a}=H(),i=n(r);t((()=>{i.current=r}),[r]);const l=!e&&!r;return t((()=>{l&&!a&&(i.current=!0)}),[a]),s((()=>{l&&o()}),[o]),{isSessionLoading:i.current,sessionToken:e,isAuthenticated:!!e}},Q=()=>{const{user:e,fetchUser:o,isUserLoading:a,session:i,isUserFetched:l}=H(),[d,c]=r(!1),u=n(a),g=t((()=>!e&&!a&&i&&!d),[o,i,d]);return t((()=>{u.current=a}),[a]),t((()=>{g&&!l&&(u.current=!0)}),[g,l]),s((()=>{g&&(c(!0),o())}),[g]),{isUserLoading:u.current,user:e}};export{q as AccessKeyManagement,G as ApplicationsPortal,B as AuditManagement,v as AuthProvider,R as Descope,J as RoleManagement,A as SignInFlow,C as SignUpFlow,x as SignUpOrInFlow,O as UserManagement,Y as UserProfile,b as baseHeaders,E as getJwtPermissions,L as getJwtRoles,I as getRefreshToken,w as getSessionToken,k as isRefreshTokenExpired,y as isSessionTokenExpired,j as refresh,$ as useDescope,D as useSession,Q as useUser};
2
2
  //# sourceMappingURL=index.esm.js.map