@descope/react-sdk 2.0.69 → 2.0.70

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