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