@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.
@@ -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),l=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)},u=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.2.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=u(((e=p(),t)=>null==c?void 0:c.getJwtPermissions(e,t))),h=u(((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:l,locale:u,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:l,locale:u,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:l,tenant:u,theme:i,locale:d,debug:c,client:f,form:g,telemetryKey:p,redirectUrl:b,autoFocus:m,validateOnBlur:h,errorTransformer:U,styleId:I},y)=>{const[E,S]=e.useState(null);e.useImperativeHandle(y,(()=>E));const{projectId:v,baseUrl:k,baseStaticUrl:j,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=E;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)}}),[E,s,A]),e.useEffect((()=>{const e=E;return null==e||e.addEventListener("success",A),()=>{null==e||e.removeEventListener("success",A)}}),[E,A]),e.useEffect((()=>{const e=E;return s&&(null==e||e.addEventListener("error",s)),()=>{s&&(null==e||e.removeEventListener("error",s))}}),[E,s]),e.useEffect((()=>{const e=E;return a&&(null==e||e.addEventListener("ready",a)),()=>{a&&(null==e||e.removeEventListener("error",a))}}),[E,a]),e.useEffect((()=>{E&&(E.errorTransformer=U)}),[E,U]),e.useEffect((()=>{E&&l&&(E.logger=l)}),[E,l]);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:v,flowId:t,baseUrl:k,baseStaticUrl:j,innerRef:S,tenant:u,theme:i,locale:d,debug:c,form:C,client:P,telemetryKey:p,redirectUrl:b,autoFocus:m,styleId:I,validateOnBlur:h,storeLastAuthenticatedUser:L,keepLastAuthenticatedUserAfterLogout:R})))})),I=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:l,debug:u,styleId:i})=>n.default.createElement("descope-user-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),y=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(I,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),E=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:l,debug:u,styleId:i})=>n.default.createElement("descope-role-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),S=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(E,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),v=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:l,debug:u,styleId:i})=>n.default.createElement("descope-access-key-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),k=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>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(v,{projectId:c,widgetId:l,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:a}))})),j=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:l,debug:u,styleId:i})=>n.default.createElement("descope-audit-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),L=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(j,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,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:l,styleId:u})=>n.default.createElement("descope-user-profile-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),x=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,onLogout:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),e.useEffect((()=>{if(d&&l)return d.addEventListener("logout",l),()=>d.removeEventListener("logout",l)}),[d,l]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(R,{projectId:f,widgetId:a,baseUrl:g,baseStaticUrl:p,innerRef:c,theme:r,styleId:u,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:l,styleId:u})=>n.default.createElement("descope-applications-portal-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),C=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,styleId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>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(A,{projectId:c,widgetId:a,baseUrl:f,baseStaticUrl:g,innerRef:d,theme:r,debug:s,styleId:l}))}));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=k,exports.ApplicationsPortal=C,exports.AuditManagement=L,exports.AuthProvider=({projectId:t,baseUrl:r="",baseStaticUrl:s="",sessionTokenViaCookie:a=!1,persistTokens:u=!0,storeLastAuthenticatedUser:d=!0,keepLastAuthenticatedUserAfterLogout:c=!1,children:g})=>{const[p,b]=e.useState(),[m,h]=e.useState(),[w,U]=e.useState(!1),[I,y]=e.useState(!1),E=(({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:u,sessionTokenViaCookie:a,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c});e.useEffect((()=>{if(E){const e=E.onSessionTokenChange(h),t=E.onUserChange(b);return()=>{e(),t()}}}),[E]);const S=e.useRef(!1),v=e.useRef(!1),k=e.useCallback((()=>{S.current||(S.current=!0,y(!0),l(null==E?void 0:E.refresh)().then((()=>{y(!1)})))}),[E]),j=e.useCallback((()=>{v.current||(v.current=!0,U(!0),l(E.me)().then((()=>{U(!1)})))}),[E]),L=e.useMemo((()=>({fetchUser:j,user:p,isUserLoading:w,isUserFetched:v.current,fetchSession:k,session:m,isSessionLoading:I,isSessionFetched:S.current,projectId:t,baseUrl:r,baseStaticUrl:s,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c,setUser:b,setSession:h,sdk:E})),[j,p,w,v.current,k,m,I,S.current,t,r,s,b,h,E]);return n.default.createElement(o.Provider,{value:L},g)},exports.Descope=U,exports.RoleManagement=S,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=y,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,l]=e.useState(!1),u=e.useRef(s),i=e.useMemo((()=>!t&&!s&&n&&!o),[r,n,o]);return e.useMemo((()=>{u.current=s}),[s]),e.useMemo((()=>{i&&!a&&(u.current=!0)}),[i,a]),e.useEffect((()=>{i&&(l(!0),r())}),[i]),{isUserLoading:u.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),l=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)},u=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.3.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=u(((e=p(),t)=>null==c?void 0:c.getJwtPermissions(e,t))),h=u(((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:l,locale:u,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:l,locale:u,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:l,tenant:u,theme:i,locale:d,debug:c,client:f,form:g,telemetryKey:p,redirectUrl:b,autoFocus:m,validateOnBlur:h,errorTransformer:U,styleId:I},y)=>{const[E,S]=e.useState(null);e.useImperativeHandle(y,(()=>E));const{projectId:v,baseUrl:k,baseStaticUrl:j,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=E;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)}}),[E,s,A]),e.useEffect((()=>{const e=E;return null==e||e.addEventListener("success",A),()=>{null==e||e.removeEventListener("success",A)}}),[E,A]),e.useEffect((()=>{const e=E;return s&&(null==e||e.addEventListener("error",s)),()=>{s&&(null==e||e.removeEventListener("error",s))}}),[E,s]),e.useEffect((()=>{const e=E;return a&&(null==e||e.addEventListener("ready",a)),()=>{a&&(null==e||e.removeEventListener("error",a))}}),[E,a]),e.useEffect((()=>{E&&(E.errorTransformer=U)}),[E,U]),e.useEffect((()=>{E&&l&&(E.logger=l)}),[E,l]);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:v,flowId:t,baseUrl:k,baseStaticUrl:j,innerRef:S,tenant:u,theme:i,locale:d,debug:c,form:C,client:P,telemetryKey:p,redirectUrl:b,autoFocus:m,styleId:I,validateOnBlur:h,storeLastAuthenticatedUser:L,keepLastAuthenticatedUserAfterLogout:R})))})),I=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:l,debug:u,styleId:i})=>n.default.createElement("descope-user-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),y=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(I,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),E=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:l,debug:u,styleId:i})=>n.default.createElement("descope-role-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),S=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(E,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),v=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:l,debug:u,styleId:i})=>n.default.createElement("descope-access-key-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),k=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>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(v,{projectId:c,widgetId:l,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:a}))})),j=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:l,debug:u,styleId:i})=>n.default.createElement("descope-audit-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),L=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(j,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,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:l,styleId:u})=>n.default.createElement("descope-user-profile-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),x=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,onLogout:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),e.useEffect((()=>{if(d&&l)return d.addEventListener("logout",l),()=>d.removeEventListener("logout",l)}),[d,l]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(R,{projectId:f,widgetId:a,baseUrl:g,baseStaticUrl:p,innerRef:c,theme:r,styleId:u,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:l,styleId:u})=>n.default.createElement("descope-applications-portal-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),C=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,styleId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>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(A,{projectId:c,widgetId:a,baseUrl:f,baseStaticUrl:g,innerRef:d,theme:r,debug:s,styleId:l}))}));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=k,exports.ApplicationsPortal=C,exports.AuditManagement=L,exports.AuthProvider=({projectId:t,baseUrl:r="",baseStaticUrl:s="",sessionTokenViaCookie:a=!1,persistTokens:u=!0,storeLastAuthenticatedUser:d=!0,keepLastAuthenticatedUserAfterLogout:c=!1,children:g})=>{const[p,b]=e.useState(),[m,h]=e.useState(),[w,U]=e.useState(!1),[I,y]=e.useState(!1),E=(({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:u,sessionTokenViaCookie:a,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c});e.useEffect((()=>{if(E){const e=E.onSessionTokenChange(h),t=E.onUserChange(b);return()=>{e(),t()}}}),[E]);const S=e.useRef(!1),v=e.useRef(!1),k=e.useCallback((()=>{S.current||(S.current=!0,y(!0),l(null==E?void 0:E.refresh)().then((()=>{y(!1)})))}),[E]),j=e.useCallback((()=>{v.current||(v.current=!0,U(!0),l(E.me)().then((()=>{U(!1)})))}),[E]),L=e.useMemo((()=>({fetchUser:j,user:p,isUserLoading:w,isUserFetched:v.current,fetchSession:k,session:m,isSessionLoading:I,isSessionFetched:S.current,projectId:t,baseUrl:r,baseStaticUrl:s,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c,setUser:b,setSession:h,sdk:E})),[j,p,w,v.current,k,m,I,S.current,t,r,s,b,h,E]);return n.default.createElement(o.Provider,{value:L},g)},exports.Descope=U,exports.RoleManagement=S,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=y,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,l]=e.useState(!1),u=e.useRef(s),i=e.useMemo((()=>!t&&!s&&n&&!o),[r,n,o]);return e.useMemo((()=>{u.current=s}),[s]),e.useMemo((()=>{i&&!a&&(u.current=!0)}),[i,a]),e.useEffect((()=>{i&&(l(!0),r())}),[i]),{isUserLoading:u.current,user:t}};
2
2
  //# sourceMappingURL=index.cjs.js.map