@descope/react-sdk 2.1.6 → 2.2.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),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.6"},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),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}};
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/hooks/Context.ts","../../src/utils.ts","../../src/constants.ts","../../src/sdk.ts","../../src/components/AuthProvider/AuthProvider.tsx","../../src/components/Descope.tsx","../../src/components/UserManagement.tsx","../../src/components/RoleManagement.tsx","../../src/components/AccessKeyManagement.tsx","../../src/components/AuditManagement.tsx","../../src/components/UserProfile.tsx","../../src/components/ApplicationsPortal.tsx","../../src/hooks/useContext.ts","../../src/hooks/useDescope.ts","../../src/components/AuthProvider/useSdk.ts","../../src/components/DefaultFlows.tsx","../../src/hooks/useSession.ts","../../src/hooks/useUser.ts"],"sourcesContent":["import React from 'react';\nimport { IContext } from '../types';\n\nconst Context = React.createContext<IContext>(undefined);\n\nexport default Context;\n","/**\n * Wrap a function with a validation that it exists\n * @param fn The function to wrap with the validation\n * @throws if function does not exist, an error with the relevant message will be thrown\n */\nexport const withValidation =\n <T extends Array<any>, U>(fn: (...args: T) => U) =>\n (...args: T): U => {\n if (!fn) {\n throw Error(\n `You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,\n );\n }\n return fn(...args);\n };\n\nexport const wrapInTry =\n <T extends Array<any>, U>(fn: (...args: T) => U) =>\n (...args: T): U => {\n let res: U;\n try {\n res = fn(...args);\n } catch (err) {\n console.error(err); // eslint-disable-line no-console\n }\n return res;\n };\n","declare const BUILD_VERSION: string;\n\nexport const baseHeaders = {\n 'x-descope-sdk-name': 'react',\n 'x-descope-sdk-version': BUILD_VERSION,\n};\n\n// This sdk can be used in SSR apps\nexport const IS_BROWSER = typeof window !== 'undefined';\n","// workaround for TS issue https://github.com/microsoft/TypeScript/issues/42873\n// eslint-disable-next-line\nimport type * as _1 from '@descope/core-js-sdk';\nimport createSdk from '@descope/web-js-sdk';\nimport { IS_BROWSER } from './constants';\nimport { wrapInTry } from './utils';\n\ntype Sdk = ReturnType<typeof createSdkWrapper>;\nlet globalSdk: Sdk;\n\nconst createSdkWrapper = <P extends Parameters<typeof createSdk>[0]>(\n config: P,\n) => {\n const sdk = createSdk({\n persistTokens: IS_BROWSER as true,\n autoRefresh: IS_BROWSER as true,\n ...config,\n });\n globalSdk = sdk;\n\n return sdk;\n};\n\n// eslint-disable-next-line import/exports-last\nexport const createTempSdk = () =>\n createSdkWrapper({\n projectId: 'temp pid',\n persistTokens: false,\n autoRefresh: false,\n storeLastAuthenticatedUser: false,\n });\n\n/**\n * We want to make sure the getSessionToken fn is used only when persistTokens is on\n *\n * So we are keeping the SDK init in a single place,\n * and we are creating a temp instance in order to export the getSessionToken\n * even before the SDK was init\n */\nglobalSdk = createTempSdk();\n\nexport const getSessionToken = () => {\n if (IS_BROWSER) {\n return globalSdk?.getSessionToken();\n }\n\n // eslint-disable-next-line no-console\n console.warn('Get session token is not supported in SSR');\n return '';\n};\n\nexport const getRefreshToken = () => {\n if (IS_BROWSER) {\n return globalSdk?.getRefreshToken();\n }\n // eslint-disable-next-line no-console\n console.warn('Get refresh token is not supported in SSR');\n return '';\n};\n\nexport const isSessionTokenExpired = (token = getSessionToken()) =>\n globalSdk?.isJwtExpired(token);\n\nexport const isRefreshTokenExpired = (token = getRefreshToken()) =>\n globalSdk?.isJwtExpired(token);\n\nexport const getJwtPermissions = wrapInTry(\n (token = getSessionToken(), tenant?: string) =>\n globalSdk?.getJwtPermissions(token, tenant),\n);\n\nexport const getJwtRoles = wrapInTry(\n (token = getSessionToken(), tenant?: string) =>\n globalSdk?.getJwtRoles(token, tenant),\n);\n\nexport const refresh = (token = getRefreshToken()) => globalSdk?.refresh(token);\n\nexport const getGlobalSdk = () => globalSdk;\n\nexport default createSdkWrapper;\n","import React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport Context from '../../hooks/Context';\nimport { IContext, User } from '../../types';\nimport { withValidation } from '../../utils';\nimport useSdk from './useSdk';\n\ninterface IAuthProviderProps {\n projectId: string;\n baseUrl?: string;\n // allows to override the base URL that is used to fetch static files\n baseStaticUrl?: string;\n // If true, tokens will be stored on local storage and can accessed with getToken function\n persistTokens?: boolean;\n // If true, session token (jwt) will be stored on cookie. Otherwise, the session token will be\n // stored on local storage and can accessed with getSessionToken function\n // Use this option if session token will stay small (less than 1k)\n // NOTE: Session token can grow, especially in cases of using authorization, or adding custom claims\n sessionTokenViaCookie?: boolean;\n // If true, last authenticated user will be stored on local storage and can accessed with getUser function\n storeLastAuthenticatedUser?: boolean;\n // If true, last authenticated user will not be removed after logout\n keepLastAuthenticatedUserAfterLogout?: boolean;\n children?: JSX.Element;\n}\n\nconst AuthProvider: FC<IAuthProviderProps> = ({\n projectId,\n baseUrl = '',\n baseStaticUrl = '',\n sessionTokenViaCookie = false,\n persistTokens = true,\n storeLastAuthenticatedUser = true,\n keepLastAuthenticatedUserAfterLogout = false,\n children = undefined,\n}) => {\n const [user, setUser] = useState<User>();\n const [session, setSession] = useState<string>();\n\n const [isUserLoading, setIsUserLoading] = useState(false);\n const [isSessionLoading, setIsSessionLoading] = useState(false);\n\n const sdk = useSdk({\n projectId,\n baseUrl,\n persistTokens,\n sessionTokenViaCookie,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n });\n\n useEffect(() => {\n if (sdk) {\n const unsubscribeSessionToken = sdk.onSessionTokenChange(setSession);\n const unsubscribeUser = sdk.onUserChange(setUser);\n\n return () => {\n unsubscribeSessionToken();\n unsubscribeUser();\n };\n }\n return undefined;\n }, [sdk]);\n\n const isSessionFetched = useRef(false);\n const isUserFetched = useRef(false);\n\n const fetchSession = useCallback(() => {\n // We want that the session will fetched only once\n if (isSessionFetched.current) return;\n isSessionFetched.current = true;\n\n setIsSessionLoading(true);\n withValidation(sdk?.refresh)().then(() => {\n setIsSessionLoading(false);\n });\n }, [sdk]);\n\n const fetchUser = useCallback(() => {\n // We want that the user will fetched only once\n if (isUserFetched.current) return;\n isUserFetched.current = true;\n\n setIsUserLoading(true);\n withValidation(sdk.me)().then(() => {\n setIsUserLoading(false);\n });\n }, [sdk]);\n\n const value = useMemo<IContext>(\n () => ({\n fetchUser,\n user,\n isUserLoading,\n isUserFetched: isUserFetched.current,\n fetchSession,\n session,\n isSessionLoading,\n isSessionFetched: isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n setUser,\n setSession,\n sdk,\n }),\n [\n fetchUser,\n user,\n isUserLoading,\n isUserFetched.current,\n fetchSession,\n session,\n isSessionLoading,\n isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n setUser,\n setSession,\n sdk,\n ],\n );\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nexport default AuthProvider;\n","import React, {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react';\nimport { baseHeaders } from '../constants';\nimport Context from '../hooks/Context';\nimport { DescopeProps } from '../types';\nimport { getGlobalSdk } from '../sdk';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst DescopeWC = lazy(async () => {\n const module = await import('@descope/web-component');\n module.default.sdkConfigOverrides = {\n // Overrides the web-component's base headers to indicate usage via the React SDK\n baseHeaders,\n // Disables token persistence within the web-component to delegate token management\n // to the global SDK hooks. This ensures token handling aligns with the SDK's configuration,\n // and web-component requests leverage the global SDK's beforeRequest hooks for consistency\n persistTokens: false,\n hooks: {\n get beforeRequest() {\n // Retrieves the beforeRequest hook from the global SDK, which is initialized\n // within the AuthProvider using the desired configuration. This approach ensures\n // the web-component utilizes the same beforeRequest hooks as the global SDK\n return getGlobalSdk().httpClient.hooks.beforeRequest;\n },\n set beforeRequest(_) {\n // The empty setter prevents runtime errors when attempts are made to assign a value to 'beforeRequest'.\n // JavaScript objects default to having both getters and setters\n },\n },\n };\n\n return {\n default: ({\n projectId,\n flowId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n tenant,\n theme,\n locale,\n debug,\n redirectUrl,\n client,\n form,\n styleId,\n autoFocus,\n validateOnBlur,\n storeLastAuthenticatedUser,\n }) => (\n\t<descope-wc\n project-id={projectId}\n flow-id={flowId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n ref={innerRef}\n tenant={tenant}\n theme={theme}\n locale={locale}\n debug={debug}\n client={client}\n form={form}\n style-id={styleId}\n redirect-url={redirectUrl}\n auto-focus={autoFocus}\n validate-on-blur={validateOnBlur}\n store-last-authenticated-user={storeLastAuthenticatedUser}\n />\n ),\n };\n});\n\nconst Descope = React.forwardRef<HTMLElement, DescopeProps>(\n (\n {\n flowId,\n onSuccess,\n onError,\n onReady,\n logger,\n tenant,\n theme,\n locale,\n debug,\n client,\n form,\n telemetryKey,\n redirectUrl,\n autoFocus,\n validateOnBlur,\n errorTransformer,\n styleId,\n },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const {\n projectId,\n baseUrl,\n baseStaticUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n sdk,\n } = React.useContext(Context);\n\n const handleSuccess = useCallback(\n async (e: CustomEvent) => {\n // In order to make sure all the after-hooks are running with the success response\n // we are generating a fake response with the success data and calling the http client after hook fn with it\n await sdk.httpClient.hooks.afterRequest(\n {} as any,\n new Response(JSON.stringify(e.detail)),\n );\n if (onSuccess) {\n onSuccess(e);\n }\n },\n [onSuccess],\n );\n\n useEffect(() => {\n const ele = innerRef;\n ele?.addEventListener('success', handleSuccess);\n if (onError) ele?.addEventListener('error', onError);\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onError) ele?.removeEventListener('error', onError);\n if (onReady) ele?.removeEventListener('ready', onReady);\n\n ele?.removeEventListener('success', handleSuccess);\n };\n }, [innerRef, onError, handleSuccess]);\n\n // Success event\n useEffect(() => {\n const ele = innerRef;\n ele?.addEventListener('success', handleSuccess);\n return () => {\n ele?.removeEventListener('success', handleSuccess);\n };\n }, [innerRef, handleSuccess]);\n\n // Error event\n useEffect(() => {\n const ele = innerRef;\n if (onError) ele?.addEventListener('error', onError);\n\n return () => {\n if (onError) ele?.removeEventListener('error', onError);\n };\n }, [innerRef, onError]);\n\n // Ready event\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('error', onReady);\n };\n }, [innerRef, onReady]);\n\n useEffect(() => {\n if (innerRef) {\n innerRef.errorTransformer = errorTransformer;\n }\n }, [innerRef, errorTransformer]);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n const { form: stringifiedForm, client: stringifiedClient } = useMemo(\n () => ({\n form: JSON.stringify(form || {}),\n client: JSON.stringify(client || {}),\n }),\n [form, client],\n );\n\n return (\n /**\n * in order to avoid redundant remounting of the WC, we are wrapping it with a form element\n * this workaround is done in order to support webauthn passkeys\n * it can be removed once this issue will be solved\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1404106#c2\n */\n\t<form>\n\t\t<Suspense fallback={null}>\n\t\t\t<DescopeWC\n projectId={projectId}\n flowId={flowId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n tenant={tenant}\n theme={theme}\n locale={locale}\n debug={debug}\n form={stringifiedForm}\n client={stringifiedClient}\n telemetryKey={telemetryKey}\n redirectUrl={redirectUrl}\n autoFocus={autoFocus}\n styleId={styleId}\n validateOnBlur={validateOnBlur}\n storeLastAuthenticatedUser={storeLastAuthenticatedUser}\n keepLastAuthenticatedUserAfterLogout={\n keepLastAuthenticatedUserAfterLogout\n }\n />\n\t\t</Suspense>\n\t</form>\n );\n },\n);\n\nexport default Descope;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserManagementProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserManagementWC = lazy(async () => {\n await import('@descope/user-management-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n tenant,\n widgetId,\n theme,\n debug,\n }) => (\n\t<descope-user-management-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n tenant={tenant}\n debug={debug}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst UserManagement = React.forwardRef<HTMLElement, UserManagementProps>(\n ({ logger, tenant, theme, debug, widgetId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserManagementWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n tenant={tenant}\n theme={theme}\n debug={debug}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserManagement;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { RoleManagementProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst RoleManagementWC = lazy(async () => {\n await import('@descope/role-management-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n tenant,\n widgetId,\n theme,\n debug,\n }) => (\n\t<descope-role-management-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n tenant={tenant}\n debug={debug}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst RoleManagement = React.forwardRef<HTMLElement, RoleManagementProps>(\n ({ logger, tenant, theme, debug, widgetId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<RoleManagementWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n tenant={tenant}\n theme={theme}\n debug={debug}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default RoleManagement;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { AccessKeyManagementProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst AccessKeyManagementWC = lazy(async () => {\n await import('@descope/access-key-management-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n tenant,\n widgetId,\n theme,\n debug,\n }) => (\n\t<descope-access-key-management-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n tenant={tenant}\n debug={debug}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst AccessKeyManagement = React.forwardRef<\n HTMLElement,\n AccessKeyManagementProps\n>(({ logger, tenant, theme, debug, widgetId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<AccessKeyManagementWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n tenant={tenant}\n theme={theme}\n debug={debug}\n />\n\t</Suspense>\n );\n});\n\nexport default AccessKeyManagement;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { AuditManagementProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst AuditManagementWC = lazy(async () => {\n await import('@descope/audit-management-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n tenant,\n widgetId,\n theme,\n debug,\n }) => (\n\t<descope-audit-management-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n tenant={tenant}\n debug={debug}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst AuditManagement = React.forwardRef<HTMLElement, AuditManagementProps>(\n ({ logger, tenant, theme, debug, widgetId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<AuditManagementWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n tenant={tenant}\n theme={theme}\n debug={debug}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default AuditManagement;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserProfileProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserProfileWC = lazy(async () => {\n await import('@descope/user-profile-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n widgetId,\n theme,\n debug,\n }) => (\n\t<descope-user-profile-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n debug={debug}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst UserProfile = React.forwardRef<HTMLElement, UserProfileProps>(\n ({ logger, theme, debug, widgetId, onLogout }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n useEffect(() => {\n if (innerRef && onLogout) {\n innerRef.addEventListener('logout', onLogout);\n return () => innerRef.removeEventListener('logout', onLogout);\n }\n return undefined;\n }, [innerRef, onLogout]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n theme={theme}\n debug={debug}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserProfile;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { ApplicationsPortalProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst ApplicationsPortalWC = lazy(async () => {\n await import('@descope/applications-portal-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n widgetId,\n theme,\n debug,\n }) => (\n\t<descope-applications-portal-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n debug={debug}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst ApplicationsPortal = React.forwardRef<\n HTMLElement,\n ApplicationsPortalProps\n>(({ logger, theme, debug, widgetId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n return (\n\t<Suspense fallback={null}>\n\t\t<ApplicationsPortalWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n theme={theme}\n debug={debug}\n />\n\t</Suspense>\n );\n});\n\nexport default ApplicationsPortal;\n","import { useContext } from 'react';\nimport Context from './Context';\n\nexport default () => {\n const ctx = useContext(Context);\n if (!ctx) {\n throw Error(\n `You can only use this hook in the context of <AuthProvider />`,\n );\n }\n\n return ctx;\n};\n","import { useMemo } from 'react';\nimport { Sdk } from '../types';\nimport useContext from './useContext';\nimport { createTempSdk } from '../sdk';\n\nconst generateErrorMsg = (entryType: string) =>\n `You can only use this ${entryType} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`;\n\n// handler which throw an error for every SDK function\nconst proxyThrowHandler = {\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n get(target: Record<string, any>, key: string) {\n if (typeof target[key] === 'object' && target[key] !== null) {\n return new Proxy(target[key], proxyThrowHandler);\n }\n\n if (typeof target[key] === 'function') {\n return () => {\n throw Error(generateErrorMsg('function'));\n };\n }\n\n throw Error(generateErrorMsg('attribute'));\n },\n};\n\nconst useDescope = (): Sdk => {\n const { sdk } = useContext();\n\n return useMemo(() => {\n if (!sdk) {\n // In case the SDK is not initialized, we want to throw an error when the SDK functions are called\n return new Proxy(createTempSdk(), proxyThrowHandler) as Sdk;\n }\n\n return sdk;\n }, [sdk]);\n};\n\nexport default useDescope;\n","import { useMemo } from 'react';\nimport { baseHeaders } from '../../constants';\nimport createSdk from '../../sdk';\n\ntype Config = Pick<\n Parameters<typeof createSdk>[0],\n | 'projectId'\n | 'baseUrl'\n | 'persistTokens'\n | 'sessionTokenViaCookie'\n | 'storeLastAuthenticatedUser'\n | 'keepLastAuthenticatedUserAfterLogout'\n>;\n\nexport default ({\n projectId,\n baseUrl,\n persistTokens,\n sessionTokenViaCookie,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n}: Config): ReturnType<typeof createSdk> =>\n useMemo(() => {\n if (!projectId) {\n return undefined;\n }\n return createSdk({\n projectId,\n baseUrl,\n sessionTokenViaCookie,\n baseHeaders,\n persistTokens,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n autoRefresh: true,\n });\n }, [projectId, baseUrl, sessionTokenViaCookie]);\n","import React from 'react';\nimport { DefaultFlowProps } from '../types';\nimport Descope from './Descope';\n\nexport const SignInFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-in\" />\n);\n\nexport const SignUpFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-up\" />\n);\n\nexport const SignUpOrInFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-up-or-in\" />\n);\n","import { useEffect, useMemo, useRef } from 'react';\nimport useContext from './useContext';\n\nconst useSession = () => {\n const { session, isSessionLoading, fetchSession, isSessionFetched } =\n useContext();\n\n // when session should be received, we want the return value of \"isSessionLoading\" to be true starting from the first call\n // (and not only when receiving an update from the context)\n const isLoading = useRef(isSessionLoading);\n\n // we want this to happen before returning a value so we are using \"useMemo\" and not \"useEffect\"\n useMemo(() => {\n isLoading.current = isSessionLoading;\n }, [isSessionLoading]);\n\n const shouldFetchSession = !session && !isSessionLoading;\n\n // we want this to happen before returning a value so we are using \"useMemo\" and not \"useEffect\"\n useMemo(() => {\n if (shouldFetchSession && !isSessionFetched) {\n isLoading.current = true;\n }\n }, [isSessionFetched]);\n\n // Fetch session if it's not already fetched\n // We want this to happen only once, so the dependency array should not contain shouldFetchSession\n useEffect(() => {\n if (shouldFetchSession) {\n fetchSession();\n }\n }, [fetchSession]);\n return {\n isSessionLoading: isLoading.current,\n sessionToken: session,\n isAuthenticated: !!session,\n };\n};\n\nexport default useSession;\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport useContext from './useContext';\n\nconst useUser = () => {\n const { user, fetchUser, isUserLoading, session, isUserFetched } =\n useContext();\n const [isInit, setIsInit] = useState(false); // we want to get the user only in the first time we got a session\n\n // when session should be received, we want the return value of \"isUserLoading\" to be true starting from the first call\n // (and not only when receiving an update from the context)\n const isLoading = useRef(isUserLoading);\n\n const shouldFetchUser = useMemo(\n () => !user && !isUserLoading && session && !isInit,\n [fetchUser, session, isInit],\n );\n\n // we want this to happen before returning a value so we are using \"useMemo\" and not \"useEffect\"\n useMemo(() => {\n isLoading.current = isUserLoading;\n }, [isUserLoading]);\n\n // we want this to happen before returning a value so we are using \"useMemo\" and not \"useEffect\"\n useMemo(() => {\n if (shouldFetchUser && !isUserFetched) {\n isLoading.current = true;\n }\n }, [shouldFetchUser, isUserFetched]);\n\n useEffect(() => {\n if (shouldFetchUser) {\n setIsInit(true);\n fetchUser();\n }\n }, [shouldFetchUser]);\n\n return { isUserLoading: isLoading.current, user };\n};\n\nexport default useUser;\n"],"names":["Context","React","createContext","undefined","withValidation","fn","args","Error","wrapInTry","res","err","console","error","baseHeaders","IS_BROWSER","window","globalSdk","createSdkWrapper","config","sdk","createSdk","Object","assign","persistTokens","autoRefresh","createTempSdk","projectId","storeLastAuthenticatedUser","getSessionToken","warn","getRefreshToken","getJwtPermissions","token","tenant","getJwtRoles","DescopeWC","lazy","async","Promise","resolve","then","_interopNamespace","require","default","sdkConfigOverrides","hooks","beforeRequest","httpClient","_","flowId","baseUrl","baseStaticUrl","innerRef","theme","locale","debug","redirectUrl","client","form","styleId","autoFocus","validateOnBlur","createElement","ref","Descope","forwardRef","onSuccess","onError","onReady","logger","telemetryKey","errorTransformer","setInnerRef","useState","useImperativeHandle","keepLastAuthenticatedUserAfterLogout","useContext","handleSuccess","useCallback","e","afterRequest","Response","JSON","stringify","detail","useEffect","ele","addEventListener","removeEventListener","stringifiedForm","stringifiedClient","useMemo","Suspense","fallback","UserManagementWC","widgetId","UserManagement","RoleManagementWC","RoleManagement","AccessKeyManagementWC","AccessKeyManagement","AuditManagementWC","AuditManagement","UserProfileWC","UserProfile","onLogout","ApplicationsPortalWC","ApplicationsPortal","ctx","generateErrorMsg","entryType","proxyThrowHandler","get","target","key","Proxy","sessionTokenViaCookie","children","user","setUser","session","setSession","isUserLoading","setIsUserLoading","isSessionLoading","setIsSessionLoading","useSdk","unsubscribeSessionToken","onSessionTokenChange","unsubscribeUser","onUserChange","isSessionFetched","useRef","isUserFetched","fetchSession","current","refresh","fetchUser","me","value","Provider","props","isJwtExpired","isLoading","shouldFetchSession","sessionToken","isAuthenticated","isInit","setIsInit","shouldFetchUser"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/hooks/Context.ts","../../src/utils.ts","../../src/constants.ts","../../src/sdk.ts","../../src/components/AuthProvider/AuthProvider.tsx","../../src/components/Descope.tsx","../../src/components/UserManagement.tsx","../../src/components/RoleManagement.tsx","../../src/components/AccessKeyManagement.tsx","../../src/components/AuditManagement.tsx","../../src/components/UserProfile.tsx","../../src/components/ApplicationsPortal.tsx","../../src/hooks/useContext.ts","../../src/hooks/useDescope.ts","../../src/components/AuthProvider/useSdk.ts","../../src/components/DefaultFlows.tsx","../../src/hooks/useSession.ts","../../src/hooks/useUser.ts"],"sourcesContent":["import React from 'react';\nimport { IContext } from '../types';\n\nconst Context = React.createContext<IContext>(undefined);\n\nexport default Context;\n","/**\n * Wrap a function with a validation that it exists\n * @param fn The function to wrap with the validation\n * @throws if function does not exist, an error with the relevant message will be thrown\n */\nexport const withValidation =\n <T extends Array<any>, U>(fn: (...args: T) => U) =>\n (...args: T): U => {\n if (!fn) {\n throw Error(\n `You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,\n );\n }\n return fn(...args);\n };\n\nexport const wrapInTry =\n <T extends Array<any>, U>(fn: (...args: T) => U) =>\n (...args: T): U => {\n let res: U;\n try {\n res = fn(...args);\n } catch (err) {\n console.error(err); // eslint-disable-line no-console\n }\n return res;\n };\n","declare const BUILD_VERSION: string;\n\nexport const baseHeaders = {\n 'x-descope-sdk-name': 'react',\n 'x-descope-sdk-version': BUILD_VERSION,\n};\n\n// This sdk can be used in SSR apps\nexport const IS_BROWSER = typeof window !== 'undefined';\n","// workaround for TS issue https://github.com/microsoft/TypeScript/issues/42873\n// eslint-disable-next-line\nimport type * as _1 from '@descope/core-js-sdk';\nimport createSdk from '@descope/web-js-sdk';\nimport { IS_BROWSER } from './constants';\nimport { wrapInTry } from './utils';\n\ntype Sdk = ReturnType<typeof createSdkWrapper>;\nlet globalSdk: Sdk;\n\nconst createSdkWrapper = <P extends Parameters<typeof createSdk>[0]>(\n config: P,\n) => {\n const sdk = createSdk({\n persistTokens: IS_BROWSER as true,\n autoRefresh: IS_BROWSER as true,\n ...config,\n });\n globalSdk = sdk;\n\n return sdk;\n};\n\n// eslint-disable-next-line import/exports-last\nexport const createTempSdk = () =>\n createSdkWrapper({\n projectId: 'temp pid',\n persistTokens: false,\n autoRefresh: false,\n storeLastAuthenticatedUser: false,\n });\n\n/**\n * We want to make sure the getSessionToken fn is used only when persistTokens is on\n *\n * So we are keeping the SDK init in a single place,\n * and we are creating a temp instance in order to export the getSessionToken\n * even before the SDK was init\n */\nglobalSdk = createTempSdk();\n\nexport const getSessionToken = () => {\n if (IS_BROWSER) {\n return globalSdk?.getSessionToken();\n }\n\n // eslint-disable-next-line no-console\n console.warn('Get session token is not supported in SSR');\n return '';\n};\n\nexport const getRefreshToken = () => {\n if (IS_BROWSER) {\n return globalSdk?.getRefreshToken();\n }\n // eslint-disable-next-line no-console\n console.warn('Get refresh token is not supported in SSR');\n return '';\n};\n\nexport const isSessionTokenExpired = (token = getSessionToken()) =>\n globalSdk?.isJwtExpired(token);\n\nexport const isRefreshTokenExpired = (token = getRefreshToken()) =>\n globalSdk?.isJwtExpired(token);\n\nexport const getJwtPermissions = wrapInTry(\n (token = getSessionToken(), tenant?: string) =>\n globalSdk?.getJwtPermissions(token, tenant),\n);\n\nexport const getJwtRoles = wrapInTry(\n (token = getSessionToken(), tenant?: string) =>\n globalSdk?.getJwtRoles(token, tenant),\n);\n\nexport const refresh = (token = getRefreshToken()) => globalSdk?.refresh(token);\n\nexport const getGlobalSdk = () => globalSdk;\n\nexport default createSdkWrapper;\n","import React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport Context from '../../hooks/Context';\nimport { IContext, User } from '../../types';\nimport { withValidation } from '../../utils';\nimport useSdk from './useSdk';\n\ninterface IAuthProviderProps {\n projectId: string;\n baseUrl?: string;\n // allows to override the base URL that is used to fetch static files\n baseStaticUrl?: string;\n // If true, tokens will be stored on local storage and can accessed with getToken function\n persistTokens?: boolean;\n // If true, session token (jwt) will be stored on cookie. Otherwise, the session token will be\n // stored on local storage and can accessed with getSessionToken function\n // Use this option if session token will stay small (less than 1k)\n // NOTE: Session token can grow, especially in cases of using authorization, or adding custom claims\n sessionTokenViaCookie?: boolean;\n // If true, last authenticated user will be stored on local storage and can accessed with getUser function\n storeLastAuthenticatedUser?: boolean;\n // If true, last authenticated user will not be removed after logout\n keepLastAuthenticatedUserAfterLogout?: boolean;\n children?: JSX.Element;\n}\n\nconst AuthProvider: FC<IAuthProviderProps> = ({\n projectId,\n baseUrl = '',\n baseStaticUrl = '',\n sessionTokenViaCookie = false,\n persistTokens = true,\n storeLastAuthenticatedUser = true,\n keepLastAuthenticatedUserAfterLogout = false,\n children = undefined,\n}) => {\n const [user, setUser] = useState<User>();\n const [session, setSession] = useState<string>();\n\n const [isUserLoading, setIsUserLoading] = useState(false);\n const [isSessionLoading, setIsSessionLoading] = useState(false);\n\n const sdk = useSdk({\n projectId,\n baseUrl,\n persistTokens,\n sessionTokenViaCookie,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n });\n\n useEffect(() => {\n if (sdk) {\n const unsubscribeSessionToken = sdk.onSessionTokenChange(setSession);\n const unsubscribeUser = sdk.onUserChange(setUser);\n\n return () => {\n unsubscribeSessionToken();\n unsubscribeUser();\n };\n }\n return undefined;\n }, [sdk]);\n\n const isSessionFetched = useRef(false);\n const isUserFetched = useRef(false);\n\n const fetchSession = useCallback(() => {\n // We want that the session will fetched only once\n if (isSessionFetched.current) return;\n isSessionFetched.current = true;\n\n setIsSessionLoading(true);\n withValidation(sdk?.refresh)().then(() => {\n setIsSessionLoading(false);\n });\n }, [sdk]);\n\n const fetchUser = useCallback(() => {\n // We want that the user will fetched only once\n if (isUserFetched.current) return;\n isUserFetched.current = true;\n\n setIsUserLoading(true);\n withValidation(sdk.me)().then(() => {\n setIsUserLoading(false);\n });\n }, [sdk]);\n\n const value = useMemo<IContext>(\n () => ({\n fetchUser,\n user,\n isUserLoading,\n isUserFetched: isUserFetched.current,\n fetchSession,\n session,\n isSessionLoading,\n isSessionFetched: isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n setUser,\n setSession,\n sdk,\n }),\n [\n fetchUser,\n user,\n isUserLoading,\n isUserFetched.current,\n fetchSession,\n session,\n isSessionLoading,\n isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n setUser,\n setSession,\n sdk,\n ],\n );\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nexport default AuthProvider;\n","import React, {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react';\nimport { baseHeaders } from '../constants';\nimport Context from '../hooks/Context';\nimport { DescopeProps } from '../types';\nimport { getGlobalSdk } from '../sdk';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst DescopeWC = lazy(async () => {\n const module = await import('@descope/web-component');\n module.default.sdkConfigOverrides = {\n // Overrides the web-component's base headers to indicate usage via the React SDK\n baseHeaders,\n // Disables token persistence within the web-component to delegate token management\n // to the global SDK hooks. This ensures token handling aligns with the SDK's configuration,\n // and web-component requests leverage the global SDK's beforeRequest hooks for consistency\n persistTokens: false,\n hooks: {\n get beforeRequest() {\n // Retrieves the beforeRequest hook from the global SDK, which is initialized\n // within the AuthProvider using the desired configuration. This approach ensures\n // the web-component utilizes the same beforeRequest hooks as the global SDK\n return getGlobalSdk().httpClient.hooks.beforeRequest;\n },\n set beforeRequest(_) {\n // The empty setter prevents runtime errors when attempts are made to assign a value to 'beforeRequest'.\n // JavaScript objects default to having both getters and setters\n },\n },\n };\n\n return {\n default: ({\n projectId,\n flowId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n tenant,\n theme,\n locale,\n debug,\n redirectUrl,\n client,\n form,\n styleId,\n autoFocus,\n validateOnBlur,\n storeLastAuthenticatedUser,\n }) => (\n\t<descope-wc\n project-id={projectId}\n flow-id={flowId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n ref={innerRef}\n tenant={tenant}\n theme={theme}\n locale={locale}\n debug={debug}\n client={client}\n form={form}\n style-id={styleId}\n redirect-url={redirectUrl}\n auto-focus={autoFocus}\n validate-on-blur={validateOnBlur}\n store-last-authenticated-user={storeLastAuthenticatedUser}\n />\n ),\n };\n});\n\nconst Descope = React.forwardRef<HTMLElement, DescopeProps>(\n (\n {\n flowId,\n onSuccess,\n onError,\n onReady,\n logger,\n tenant,\n theme,\n locale,\n debug,\n client,\n form,\n telemetryKey,\n redirectUrl,\n autoFocus,\n validateOnBlur,\n errorTransformer,\n styleId,\n },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const {\n projectId,\n baseUrl,\n baseStaticUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n sdk,\n } = React.useContext(Context);\n\n const handleSuccess = useCallback(\n async (e: CustomEvent) => {\n // In order to make sure all the after-hooks are running with the success response\n // we are generating a fake response with the success data and calling the http client after hook fn with it\n await sdk.httpClient.hooks.afterRequest(\n {} as any,\n new Response(JSON.stringify(e.detail)),\n );\n if (onSuccess) {\n onSuccess(e);\n }\n },\n [onSuccess],\n );\n\n useEffect(() => {\n const ele = innerRef;\n ele?.addEventListener('success', handleSuccess);\n if (onError) ele?.addEventListener('error', onError);\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onError) ele?.removeEventListener('error', onError);\n if (onReady) ele?.removeEventListener('ready', onReady);\n\n ele?.removeEventListener('success', handleSuccess);\n };\n }, [innerRef, onError, handleSuccess]);\n\n // Success event\n useEffect(() => {\n const ele = innerRef;\n ele?.addEventListener('success', handleSuccess);\n return () => {\n ele?.removeEventListener('success', handleSuccess);\n };\n }, [innerRef, handleSuccess]);\n\n // Error event\n useEffect(() => {\n const ele = innerRef;\n if (onError) ele?.addEventListener('error', onError);\n\n return () => {\n if (onError) ele?.removeEventListener('error', onError);\n };\n }, [innerRef, onError]);\n\n // Ready event\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('error', onReady);\n };\n }, [innerRef, onReady]);\n\n useEffect(() => {\n if (innerRef) {\n innerRef.errorTransformer = errorTransformer;\n }\n }, [innerRef, errorTransformer]);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n const { form: stringifiedForm, client: stringifiedClient } = useMemo(\n () => ({\n form: JSON.stringify(form || {}),\n client: JSON.stringify(client || {}),\n }),\n [form, client],\n );\n\n return (\n /**\n * in order to avoid redundant remounting of the WC, we are wrapping it with a form element\n * this workaround is done in order to support webauthn passkeys\n * it can be removed once this issue will be solved\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1404106#c2\n */\n\t<form>\n\t\t<Suspense fallback={null}>\n\t\t\t<DescopeWC\n projectId={projectId}\n flowId={flowId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n tenant={tenant}\n theme={theme}\n locale={locale}\n debug={debug}\n form={stringifiedForm}\n client={stringifiedClient}\n telemetryKey={telemetryKey}\n redirectUrl={redirectUrl}\n autoFocus={autoFocus}\n styleId={styleId}\n validateOnBlur={validateOnBlur}\n storeLastAuthenticatedUser={storeLastAuthenticatedUser}\n keepLastAuthenticatedUserAfterLogout={\n keepLastAuthenticatedUserAfterLogout\n }\n />\n\t\t</Suspense>\n\t</form>\n );\n },\n);\n\nexport default Descope;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserManagementProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserManagementWC = lazy(async () => {\n await import('@descope/user-management-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n tenant,\n widgetId,\n theme,\n debug,\n styleId,\n }) => (\n\t<descope-user-management-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n tenant={tenant}\n debug={debug}\n style-id={styleId}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst UserManagement = React.forwardRef<HTMLElement, UserManagementProps>(\n ({ logger, tenant, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserManagementWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n tenant={tenant}\n theme={theme}\n styleId={styleId}\n debug={debug}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserManagement;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { RoleManagementProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst RoleManagementWC = lazy(async () => {\n await import('@descope/role-management-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n tenant,\n widgetId,\n theme,\n debug,\n styleId,\n }) => (\n\t<descope-role-management-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n tenant={tenant}\n debug={debug}\n style-id={styleId}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst RoleManagement = React.forwardRef<HTMLElement, RoleManagementProps>(\n ({ logger, tenant, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<RoleManagementWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n tenant={tenant}\n theme={theme}\n styleId={styleId}\n debug={debug}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default RoleManagement;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { AccessKeyManagementProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst AccessKeyManagementWC = lazy(async () => {\n await import('@descope/access-key-management-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n tenant,\n widgetId,\n theme,\n debug,\n styleId,\n }) => (\n\t<descope-access-key-management-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n tenant={tenant}\n debug={debug}\n style-id={styleId}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst AccessKeyManagement = React.forwardRef<\n HTMLElement,\n AccessKeyManagementProps\n>(({ logger, tenant, theme, debug, widgetId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<AccessKeyManagementWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n tenant={tenant}\n theme={theme}\n debug={debug}\n />\n\t</Suspense>\n );\n});\n\nexport default AccessKeyManagement;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { AuditManagementProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst AuditManagementWC = lazy(async () => {\n await import('@descope/audit-management-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n tenant,\n widgetId,\n theme,\n debug,\n styleId,\n }) => (\n\t<descope-audit-management-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n tenant={tenant}\n debug={debug}\n style-id={styleId}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst AuditManagement = React.forwardRef<HTMLElement, AuditManagementProps>(\n ({ logger, tenant, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<AuditManagementWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n tenant={tenant}\n theme={theme}\n styleId={styleId}\n debug={debug}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default AuditManagement;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserProfileProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserProfileWC = lazy(async () => {\n await import('@descope/user-profile-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n widgetId,\n theme,\n debug,\n styleId,\n }) => (\n\t<descope-user-profile-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n debug={debug}\n style-id={styleId}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst UserProfile = React.forwardRef<HTMLElement, UserProfileProps>(\n ({ logger, theme, debug, widgetId, onLogout, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n\n useEffect(() => {\n if (innerRef && onLogout) {\n innerRef.addEventListener('logout', onLogout);\n return () => innerRef.removeEventListener('logout', onLogout);\n }\n return undefined;\n }, [innerRef, onLogout]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n theme={theme}\n styleId={styleId}\n debug={debug}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserProfile;\n","import React, {\n lazy,\n Suspense,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { ApplicationsPortalProps } from '../types';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst ApplicationsPortalWC = lazy(async () => {\n await import('@descope/applications-portal-widget');\n\n return {\n default: ({\n projectId,\n baseUrl,\n baseStaticUrl,\n innerRef,\n widgetId,\n theme,\n debug,\n styleId,\n }) => (\n\t<descope-applications-portal-widget\n project-id={projectId}\n widget-id={widgetId}\n base-url={baseUrl}\n base-static-url={baseStaticUrl}\n theme={theme}\n debug={debug}\n style-id={styleId}\n ref={innerRef}\n />\n ),\n };\n});\n\nconst ApplicationsPortal = React.forwardRef<\n HTMLElement,\n ApplicationsPortalProps\n>(({ logger, theme, debug, widgetId, styleId }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl } = React.useContext(Context);\n\n useEffect(() => {\n if (innerRef && logger) {\n innerRef.logger = logger;\n }\n }, [innerRef, logger]);\n return (\n\t<Suspense fallback={null}>\n\t\t<ApplicationsPortalWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n innerRef={setInnerRef}\n theme={theme}\n debug={debug}\n styleId={styleId}\n />\n\t</Suspense>\n );\n});\n\nexport default ApplicationsPortal;\n","import { useContext } from 'react';\nimport Context from './Context';\n\nexport default () => {\n const ctx = useContext(Context);\n if (!ctx) {\n throw Error(\n `You can only use this hook in the context of <AuthProvider />`,\n );\n }\n\n return ctx;\n};\n","import { useMemo } from 'react';\nimport { Sdk } from '../types';\nimport useContext from './useContext';\nimport { createTempSdk } from '../sdk';\n\nconst generateErrorMsg = (entryType: string) =>\n `You can only use this ${entryType} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`;\n\n// handler which throw an error for every SDK function\nconst proxyThrowHandler = {\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n get(target: Record<string, any>, key: string) {\n if (typeof target[key] === 'object' && target[key] !== null) {\n return new Proxy(target[key], proxyThrowHandler);\n }\n\n if (typeof target[key] === 'function') {\n return () => {\n throw Error(generateErrorMsg('function'));\n };\n }\n\n throw Error(generateErrorMsg('attribute'));\n },\n};\n\nconst useDescope = (): Sdk => {\n const { sdk } = useContext();\n\n return useMemo(() => {\n if (!sdk) {\n // In case the SDK is not initialized, we want to throw an error when the SDK functions are called\n return new Proxy(createTempSdk(), proxyThrowHandler) as Sdk;\n }\n\n return sdk;\n }, [sdk]);\n};\n\nexport default useDescope;\n","import { useMemo } from 'react';\nimport { baseHeaders } from '../../constants';\nimport createSdk from '../../sdk';\n\ntype Config = Pick<\n Parameters<typeof createSdk>[0],\n | 'projectId'\n | 'baseUrl'\n | 'persistTokens'\n | 'sessionTokenViaCookie'\n | 'storeLastAuthenticatedUser'\n | 'keepLastAuthenticatedUserAfterLogout'\n>;\n\nexport default ({\n projectId,\n baseUrl,\n persistTokens,\n sessionTokenViaCookie,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n}: Config): ReturnType<typeof createSdk> =>\n useMemo(() => {\n if (!projectId) {\n return undefined;\n }\n return createSdk({\n projectId,\n baseUrl,\n sessionTokenViaCookie,\n baseHeaders,\n persistTokens,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n autoRefresh: true,\n });\n }, [projectId, baseUrl, sessionTokenViaCookie]);\n","import React from 'react';\nimport { DefaultFlowProps } from '../types';\nimport Descope from './Descope';\n\nexport const SignInFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-in\" />\n);\n\nexport const SignUpFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-up\" />\n);\n\nexport const SignUpOrInFlow = (props: DefaultFlowProps) => (\n\t<Descope {...props} flowId=\"sign-up-or-in\" />\n);\n","import { useEffect, useMemo, useRef } from 'react';\nimport useContext from './useContext';\n\nconst useSession = () => {\n const { session, isSessionLoading, fetchSession, isSessionFetched } =\n useContext();\n\n // when session should be received, we want the return value of \"isSessionLoading\" to be true starting from the first call\n // (and not only when receiving an update from the context)\n const isLoading = useRef(isSessionLoading);\n\n // we want this to happen before returning a value so we are using \"useMemo\" and not \"useEffect\"\n useMemo(() => {\n isLoading.current = isSessionLoading;\n }, [isSessionLoading]);\n\n const shouldFetchSession = !session && !isSessionLoading;\n\n // we want this to happen before returning a value so we are using \"useMemo\" and not \"useEffect\"\n useMemo(() => {\n if (shouldFetchSession && !isSessionFetched) {\n isLoading.current = true;\n }\n }, [isSessionFetched]);\n\n // Fetch session if it's not already fetched\n // We want this to happen only once, so the dependency array should not contain shouldFetchSession\n useEffect(() => {\n if (shouldFetchSession) {\n fetchSession();\n }\n }, [fetchSession]);\n return {\n isSessionLoading: isLoading.current,\n sessionToken: session,\n isAuthenticated: !!session,\n };\n};\n\nexport default useSession;\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport useContext from './useContext';\n\nconst useUser = () => {\n const { user, fetchUser, isUserLoading, session, isUserFetched } =\n useContext();\n const [isInit, setIsInit] = useState(false); // we want to get the user only in the first time we got a session\n\n // when session should be received, we want the return value of \"isUserLoading\" to be true starting from the first call\n // (and not only when receiving an update from the context)\n const isLoading = useRef(isUserLoading);\n\n const shouldFetchUser = useMemo(\n () => !user && !isUserLoading && session && !isInit,\n [fetchUser, session, isInit],\n );\n\n // we want this to happen before returning a value so we are using \"useMemo\" and not \"useEffect\"\n useMemo(() => {\n isLoading.current = isUserLoading;\n }, [isUserLoading]);\n\n // we want this to happen before returning a value so we are using \"useMemo\" and not \"useEffect\"\n useMemo(() => {\n if (shouldFetchUser && !isUserFetched) {\n isLoading.current = true;\n }\n }, [shouldFetchUser, isUserFetched]);\n\n useEffect(() => {\n if (shouldFetchUser) {\n setIsInit(true);\n fetchUser();\n }\n }, [shouldFetchUser]);\n\n return { isUserLoading: isLoading.current, user };\n};\n\nexport default useUser;\n"],"names":["Context","React","createContext","undefined","withValidation","fn","args","Error","wrapInTry","res","err","console","error","baseHeaders","IS_BROWSER","window","globalSdk","createSdkWrapper","config","sdk","createSdk","Object","assign","persistTokens","autoRefresh","createTempSdk","projectId","storeLastAuthenticatedUser","getSessionToken","warn","getRefreshToken","getJwtPermissions","token","tenant","getJwtRoles","DescopeWC","lazy","async","Promise","resolve","then","_interopNamespace","require","default","sdkConfigOverrides","hooks","beforeRequest","httpClient","_","flowId","baseUrl","baseStaticUrl","innerRef","theme","locale","debug","redirectUrl","client","form","styleId","autoFocus","validateOnBlur","createElement","ref","Descope","forwardRef","onSuccess","onError","onReady","logger","telemetryKey","errorTransformer","setInnerRef","useState","useImperativeHandle","keepLastAuthenticatedUserAfterLogout","useContext","handleSuccess","useCallback","e","afterRequest","Response","JSON","stringify","detail","useEffect","ele","addEventListener","removeEventListener","stringifiedForm","stringifiedClient","useMemo","Suspense","fallback","UserManagementWC","widgetId","UserManagement","RoleManagementWC","RoleManagement","AccessKeyManagementWC","AccessKeyManagement","AuditManagementWC","AuditManagement","UserProfileWC","UserProfile","onLogout","ApplicationsPortalWC","ApplicationsPortal","ctx","generateErrorMsg","entryType","proxyThrowHandler","get","target","key","Proxy","sessionTokenViaCookie","children","user","setUser","session","setSession","isUserLoading","setIsUserLoading","isSessionLoading","setIsSessionLoading","useSdk","unsubscribeSessionToken","onSessionTokenChange","unsubscribeUser","onUserChange","isSessionFetched","useRef","isUserFetched","fetchSession","current","refresh","fetchUser","me","value","Provider","props","isJwtExpired","isLoading","shouldFetchSession","sessionToken","isAuthenticated","isInit","setIsInit","shouldFetchUser"],"mappings":"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"}
@@ -10,5 +10,6 @@ declare const AccessKeyManagement: React.ForwardRefExoticComponent<{
10
10
  widgetId: string;
11
11
  theme?: import("@descope/web-component").ThemeOptions;
12
12
  debug?: boolean;
13
+ styleId?: string;
13
14
  } & React.RefAttributes<HTMLElement>>;
14
15
  export default AccessKeyManagement;
@@ -10,6 +10,7 @@ declare const ApplicationsPortal: React.ForwardRefExoticComponent<Omit<{
10
10
  widgetId: string;
11
11
  theme?: import("@descope/web-component").ThemeOptions;
12
12
  debug?: boolean;
13
+ styleId?: string;
13
14
  }, "tenant"> & {
14
15
  onLogout?: (e: CustomEvent<any>) => void;
15
16
  } & React.RefAttributes<HTMLElement>>;
@@ -10,5 +10,6 @@ declare const AuditManagement: React.ForwardRefExoticComponent<{
10
10
  widgetId: string;
11
11
  theme?: import("@descope/web-component").ThemeOptions;
12
12
  debug?: boolean;
13
+ styleId?: string;
13
14
  } & React.RefAttributes<HTMLElement>>;
14
15
  export default AuditManagement;
@@ -10,5 +10,6 @@ declare const RoleManagement: React.ForwardRefExoticComponent<{
10
10
  widgetId: string;
11
11
  theme?: import("@descope/web-component").ThemeOptions;
12
12
  debug?: boolean;
13
+ styleId?: string;
13
14
  } & React.RefAttributes<HTMLElement>>;
14
15
  export default RoleManagement;
@@ -10,5 +10,6 @@ declare const UserManagement: React.ForwardRefExoticComponent<{
10
10
  widgetId: string;
11
11
  theme?: import("@descope/web-component").ThemeOptions;
12
12
  debug?: boolean;
13
+ styleId?: string;
13
14
  } & React.RefAttributes<HTMLElement>>;
14
15
  export default UserManagement;
@@ -10,6 +10,7 @@ declare const UserProfile: React.ForwardRefExoticComponent<Omit<{
10
10
  widgetId: string;
11
11
  theme?: import("@descope/web-component").ThemeOptions;
12
12
  debug?: boolean;
13
+ styleId?: string;
13
14
  }, "tenant"> & {
14
15
  onLogout?: (e: CustomEvent<any>) => void;
15
16
  } & React.RefAttributes<HTMLElement>>;
@@ -28,6 +28,7 @@ type WidgetProps = {
28
28
  widgetId: string;
29
29
  theme?: ThemeOptions;
30
30
  debug?: boolean;
31
+ styleId?: string;
31
32
  };
32
33
  type FlowResponse = Awaited<ReturnType<Sdk['flow']['next']>>;
33
34
  type ErrorResponse = Required<FlowResponse>['error'];
package/dist/index.d.ts CHANGED
@@ -1312,6 +1312,7 @@ type WidgetProps = {
1312
1312
  widgetId: string;
1313
1313
  theme?: ThemeOptions;
1314
1314
  debug?: boolean;
1315
+ styleId?: string;
1315
1316
  };
1316
1317
  type FlowResponse = Awaited<ReturnType<Sdk['flow']['next']>>;
1317
1318
  type ErrorResponse = Required<FlowResponse>['error'];
@@ -1381,6 +1382,7 @@ declare const UserManagement: React.ForwardRefExoticComponent<{
1381
1382
  widgetId: string;
1382
1383
  theme?: _descope_web_component.ThemeOptions;
1383
1384
  debug?: boolean;
1385
+ styleId?: string;
1384
1386
  } & React.RefAttributes<HTMLElement>>;
1385
1387
 
1386
1388
  declare const RoleManagement: React.ForwardRefExoticComponent<{
@@ -1394,6 +1396,7 @@ declare const RoleManagement: React.ForwardRefExoticComponent<{
1394
1396
  widgetId: string;
1395
1397
  theme?: _descope_web_component.ThemeOptions;
1396
1398
  debug?: boolean;
1399
+ styleId?: string;
1397
1400
  } & React.RefAttributes<HTMLElement>>;
1398
1401
 
1399
1402
  declare const AccessKeyManagement: React.ForwardRefExoticComponent<{
@@ -1407,6 +1410,7 @@ declare const AccessKeyManagement: React.ForwardRefExoticComponent<{
1407
1410
  widgetId: string;
1408
1411
  theme?: _descope_web_component.ThemeOptions;
1409
1412
  debug?: boolean;
1413
+ styleId?: string;
1410
1414
  } & React.RefAttributes<HTMLElement>>;
1411
1415
 
1412
1416
  declare const AuditManagement: React.ForwardRefExoticComponent<{
@@ -1420,6 +1424,7 @@ declare const AuditManagement: React.ForwardRefExoticComponent<{
1420
1424
  widgetId: string;
1421
1425
  theme?: _descope_web_component.ThemeOptions;
1422
1426
  debug?: boolean;
1427
+ styleId?: string;
1423
1428
  } & React.RefAttributes<HTMLElement>>;
1424
1429
 
1425
1430
  declare const UserProfile: React.ForwardRefExoticComponent<Omit<{
@@ -1433,6 +1438,7 @@ declare const UserProfile: React.ForwardRefExoticComponent<Omit<{
1433
1438
  widgetId: string;
1434
1439
  theme?: _descope_web_component.ThemeOptions;
1435
1440
  debug?: boolean;
1441
+ styleId?: string;
1436
1442
  }, "tenant"> & {
1437
1443
  onLogout?: (e: CustomEvent<any>) => void;
1438
1444
  } & React.RefAttributes<HTMLElement>>;
@@ -1448,6 +1454,7 @@ declare const ApplicationsPortal: React.ForwardRefExoticComponent<Omit<{
1448
1454
  widgetId: string;
1449
1455
  theme?: _descope_web_component.ThemeOptions;
1450
1456
  debug?: boolean;
1457
+ styleId?: string;
1451
1458
  }, "tenant"> & {
1452
1459
  onLogout?: (e: CustomEvent<any>) => void;
1453
1460
  } & React.RefAttributes<HTMLElement>>;
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 d}from"react";import c from"@descope/web-js-sdk";const u=e.createContext(void 0),g=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},f=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},b={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.1.6"},p="undefined"!=typeof window;let m;const h=e=>{const t=c(Object.assign({persistTokens:p,autoRefresh:p},e));return m=t,t},U=()=>h({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});m=U();const w=()=>p?null==m?void 0:m.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),I=()=>p?null==m?void 0:m.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),k=(e=w())=>null==m?void 0:m.isJwtExpired(e),E=(e=I())=>null==m?void 0:m.isJwtExpired(e),L=f(((e=w(),t)=>null==m?void 0:m.getJwtPermissions(e,t))),j=f(((e=w(),t)=>null==m?void 0:m.getJwtRoles(e,t))),v=(e=I())=>null==m?void 0:m.refresh(e);const S=({projectId:a,baseUrl:i="",baseStaticUrl:l="",sessionTokenViaCookie:d=!1,persistTokens:c=!0,storeLastAuthenticatedUser:f=!0,keepLastAuthenticatedUserAfterLogout:p=!1,children:m})=>{const[U,w]=r(),[I,k]=r(),[E,L]=r(!1),[j,v]=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:c,sessionTokenViaCookie:d,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p});n((()=>{if(S){const e=S.onSessionTokenChange(k),t=S.onUserChange(w);return()=>{e(),t()}}}),[S]);const y=s(!1),R=s(!1),A=o((()=>{y.current||(y.current=!0,v(!0),g(null==S?void 0:S.refresh)().then((()=>{v(!1)})))}),[S]),C=o((()=>{R.current||(R.current=!0,L(!0),g(S.me)().then((()=>{L(!1)})))}),[S]),x=t((()=>({fetchUser:C,user:U,isUserLoading:E,isUserFetched:R.current,fetchSession:A,session:I,isSessionLoading:j,isSessionFetched:y.current,projectId:a,baseUrl:i,baseStaticUrl:l,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p,setUser:w,setSession:k,sdk:S})),[C,U,E,R.current,A,I,j,y.current,a,i,l,w,k,S]);return e.createElement(u.Provider,{value:x},m)},y=a((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:b,persistTokens:!1,hooks:{get beforeRequest(){return m.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:n,baseStaticUrl:s,innerRef:o,tenant:a,theme:i,locale:l,debug:d,redirectUrl:c,client:u,form:g,styleId:f,autoFocus:b,validateOnBlur:p,storeLastAuthenticatedUser:m})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":n,"base-static-url":s,ref:o,tenant:a,theme:i,locale:l,debug:d,client:u,form:g,"style-id":f,"redirect-url":c,"auto-focus":b,"validate-on-blur":p,"store-last-authenticated-user":m})}))),R=e.forwardRef((({flowId:s,onSuccess:a,onError:d,onReady:c,logger:g,tenant:f,theme:b,locale:p,debug:m,client:h,form:U,telemetryKey:w,redirectUrl:I,autoFocus:k,validateOnBlur:E,errorTransformer:L,styleId:j},v)=>{const[S,R]=r(null);i(v,(()=>S));const{projectId:A,baseUrl:C,baseStaticUrl:x,storeLastAuthenticatedUser:T,keepLastAuthenticatedUserAfterLogout:O,sdk:F}=e.useContext(u),J=o((async e=>{await F.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),a&&a(e)}),[a]);n((()=>{const e=S;return null==e||e.addEventListener("success",J),d&&(null==e||e.addEventListener("error",d)),c&&(null==e||e.addEventListener("ready",c)),()=>{d&&(null==e||e.removeEventListener("error",d)),c&&(null==e||e.removeEventListener("ready",c)),null==e||e.removeEventListener("success",J)}}),[S,d,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 d&&(null==e||e.addEventListener("error",d)),()=>{d&&(null==e||e.removeEventListener("error",d))}}),[S,d]),n((()=>{const e=S;return c&&(null==e||e.addEventListener("ready",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[S,c]),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:x,innerRef:R,tenant:f,theme:b,locale:p,debug:m,form:P,client:q,telemetryKey:w,redirectUrl:I,autoFocus:k,styleId:j,validateOnBlur:E,storeLastAuthenticatedUser:T,keepLastAuthenticatedUserAfterLogout:O})))})),A=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up"})),x=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up-or-in"})),T=a((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl: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:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(T,{projectId:b,widgetId:d,baseUrl:p,baseStaticUrl:m,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:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(F,{projectId:b,widgetId:d,baseUrl:p,baseStaticUrl:m,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:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(P,{projectId:b,widgetId:d,baseUrl:p,baseStaticUrl:m,innerRef:f,tenant: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:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(V,{projectId:b,widgetId:d,baseUrl:p,baseStaticUrl:m,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:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),n((()=>{if(g&&d)return g.addEventListener("logout",d),()=>g.removeEventListener("logout",d)}),[g,d]),e.createElement(l,{fallback:null},e.createElement(N,{projectId:b,widgetId:a,baseUrl:p,baseStaticUrl:m,innerRef:f,theme:s,debug:o}))})),z=a((async()=>(await import("@descope/applications-portal-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:n,innerRef:s,widgetId:o,theme:a,debug:i})=>e.createElement("descope-applications-portal-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":n,theme:a,debug:i,ref:s})}))),G=e.forwardRef((({logger:t,theme:s,debug:o,widgetId:a},d)=>{const[c,g]=r(null);i(d,(()=>c));const{projectId:f,baseUrl:b,baseStaticUrl:p}=e.useContext(u);return n((()=>{c&&t&&(c.logger=t)}),[c,t]),e.createElement(l,{fallback:null},e.createElement(z,{projectId:f,widgetId:a,baseUrl:b,baseStaticUrl:p,innerRef:g,theme:s,debug:o}))}));var H=()=>{const e=d(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const K=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,M={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],M);if("function"==typeof e[t])return()=>{throw Error(K("function"))};throw Error(K("attribute"))}},$=()=>{const{sdk:e}=H();return t((()=>e||new Proxy(U(),M)),[e])},D=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:a}=H(),i=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}},Q=()=>{const{user:e,fetchUser:o,isUserLoading:a,session:i,isUserFetched:l}=H(),[d,c]=r(!1),u=s(a),g=t((()=>!e&&!a&&i&&!d),[o,i,d]);return t((()=>{u.current=a}),[a]),t((()=>{g&&!l&&(u.current=!0)}),[g,l]),n((()=>{g&&(c(!0),o())}),[g]),{isUserLoading:u.current,user:e}};export{q as AccessKeyManagement,G as ApplicationsPortal,B as AuditManagement,S as AuthProvider,R as Descope,J as RoleManagement,A as SignInFlow,C as SignUpFlow,x as SignUpOrInFlow,O as UserManagement,Y as UserProfile,b as baseHeaders,L as getJwtPermissions,j as getJwtRoles,I as getRefreshToken,w as getSessionToken,E as isRefreshTokenExpired,k as isSessionTokenExpired,v as refresh,$ as useDescope,D as useSession,Q as useUser};
1
+ import e,{useMemo as t,useState as r,useEffect as s,useRef as n,useCallback as o,lazy as a,useImperativeHandle as i,Suspense as l,useContext as d}from"react";import c from"@descope/web-js-sdk";const u=e.createContext(void 0),g=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},f=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},b={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.2.0"},p="undefined"!=typeof window;let m;const h=e=>{const t=c(Object.assign({persistTokens:p,autoRefresh:p},e));return m=t,t},U=()=>h({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});m=U();const w=()=>p?null==m?void 0:m.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),I=()=>p?null==m?void 0:m.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),y=(e=w())=>null==m?void 0:m.isJwtExpired(e),k=(e=I())=>null==m?void 0:m.isJwtExpired(e),E=f(((e=w(),t)=>null==m?void 0:m.getJwtPermissions(e,t))),L=f(((e=w(),t)=>null==m?void 0:m.getJwtRoles(e,t))),j=(e=I())=>null==m?void 0:m.refresh(e);const v=({projectId:a,baseUrl:i="",baseStaticUrl:l="",sessionTokenViaCookie:d=!1,persistTokens:c=!0,storeLastAuthenticatedUser:f=!0,keepLastAuthenticatedUserAfterLogout:p=!1,children:m})=>{const[U,w]=r(),[I,y]=r(),[k,E]=r(!1),[L,j]=r(!1),v=(({projectId:e,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a})=>t((()=>{if(e)return h({projectId:e,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:b,persistTokens:s,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a,autoRefresh:!0})}),[e,r,n]))({projectId:a,baseUrl:i,persistTokens:c,sessionTokenViaCookie:d,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p});s((()=>{if(v){const e=v.onSessionTokenChange(y),t=v.onUserChange(w);return()=>{e(),t()}}}),[v]);const S=n(!1),R=n(!1),A=o((()=>{S.current||(S.current=!0,j(!0),g(null==v?void 0:v.refresh)().then((()=>{j(!1)})))}),[v]),C=o((()=>{R.current||(R.current=!0,E(!0),g(v.me)().then((()=>{E(!1)})))}),[v]),x=t((()=>({fetchUser:C,user:U,isUserLoading:k,isUserFetched:R.current,fetchSession:A,session:I,isSessionLoading:L,isSessionFetched:S.current,projectId:a,baseUrl:i,baseStaticUrl:l,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p,setUser:w,setSession:y,sdk:v})),[C,U,k,R.current,A,I,L,S.current,a,i,l,w,y,v]);return e.createElement(u.Provider,{value:x},m)},S=a((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:b,persistTokens:!1,hooks:{get beforeRequest(){return m.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:s,baseStaticUrl:n,innerRef:o,tenant:a,theme:i,locale:l,debug:d,redirectUrl:c,client:u,form:g,styleId:f,autoFocus:b,validateOnBlur:p,storeLastAuthenticatedUser:m})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":s,"base-static-url":n,ref:o,tenant:a,theme:i,locale:l,debug:d,client:u,form:g,"style-id":f,"redirect-url":c,"auto-focus":b,"validate-on-blur":p,"store-last-authenticated-user":m})}))),R=e.forwardRef((({flowId:n,onSuccess:a,onError:d,onReady:c,logger:g,tenant:f,theme:b,locale:p,debug:m,client:h,form:U,telemetryKey:w,redirectUrl:I,autoFocus:y,validateOnBlur:k,errorTransformer:E,styleId:L},j)=>{const[v,R]=r(null);i(j,(()=>v));const{projectId:A,baseUrl:C,baseStaticUrl:x,storeLastAuthenticatedUser:T,keepLastAuthenticatedUserAfterLogout:O,sdk:F}=e.useContext(u),J=o((async e=>{await F.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),a&&a(e)}),[a]);s((()=>{const e=v;return null==e||e.addEventListener("success",J),d&&(null==e||e.addEventListener("error",d)),c&&(null==e||e.addEventListener("ready",c)),()=>{d&&(null==e||e.removeEventListener("error",d)),c&&(null==e||e.removeEventListener("ready",c)),null==e||e.removeEventListener("success",J)}}),[v,d,J]),s((()=>{const e=v;return null==e||e.addEventListener("success",J),()=>{null==e||e.removeEventListener("success",J)}}),[v,J]),s((()=>{const e=v;return d&&(null==e||e.addEventListener("error",d)),()=>{d&&(null==e||e.removeEventListener("error",d))}}),[v,d]),s((()=>{const e=v;return c&&(null==e||e.addEventListener("ready",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[v,c]),s((()=>{v&&(v.errorTransformer=E)}),[v,E]),s((()=>{v&&g&&(v.logger=g)}),[v,g]);const{form:P,client:q}=t((()=>({form:JSON.stringify(U||{}),client:JSON.stringify(h||{})})),[U,h]);return e.createElement("form",null,e.createElement(l,{fallback:null},e.createElement(S,{projectId:A,flowId:n,baseUrl:C,baseStaticUrl:x,innerRef:R,tenant:f,theme:b,locale:p,debug:m,form:P,client:q,telemetryKey:w,redirectUrl:I,autoFocus:y,styleId:L,validateOnBlur:k,storeLastAuthenticatedUser:T,keepLastAuthenticatedUserAfterLogout:O})))})),A=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up"})),x=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up-or-in"})),T=a((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),O=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(T,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),F=a((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),J=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(F,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),P=a((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),q=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(P,{projectId:b,widgetId:d,baseUrl:p,baseStaticUrl:m,innerRef:f,tenant:n,theme:o,debug:a}))})),V=a((async()=>(await import("@descope/audit-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-audit-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),B=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(V,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),N=a((async()=>(await import("@descope/user-profile-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-user-profile-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),Y=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,onLogout:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),s((()=>{if(f&&d)return f.addEventListener("logout",d),()=>f.removeEventListener("logout",d)}),[f,d]),e.createElement(l,{fallback:null},e.createElement(N,{projectId:p,widgetId:a,baseUrl:m,baseStaticUrl:h,innerRef:b,theme:n,styleId:c,debug:o}))})),z=a((async()=>(await import("@descope/applications-portal-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-applications-portal-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),G=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,styleId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(z,{projectId:b,widgetId:a,baseUrl:p,baseStaticUrl:m,innerRef:f,theme:n,debug:o,styleId:d}))}));var H=()=>{const e=d(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const K=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,M={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],M);if("function"==typeof e[t])return()=>{throw Error(K("function"))};throw Error(K("attribute"))}},$=()=>{const{sdk:e}=H();return t((()=>e||new Proxy(U(),M)),[e])},D=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:a}=H(),i=n(r);t((()=>{i.current=r}),[r]);const l=!e&&!r;return t((()=>{l&&!a&&(i.current=!0)}),[a]),s((()=>{l&&o()}),[o]),{isSessionLoading:i.current,sessionToken:e,isAuthenticated:!!e}},Q=()=>{const{user:e,fetchUser:o,isUserLoading:a,session:i,isUserFetched:l}=H(),[d,c]=r(!1),u=n(a),g=t((()=>!e&&!a&&i&&!d),[o,i,d]);return t((()=>{u.current=a}),[a]),t((()=>{g&&!l&&(u.current=!0)}),[g,l]),s((()=>{g&&(c(!0),o())}),[g]),{isUserLoading:u.current,user:e}};export{q as AccessKeyManagement,G as ApplicationsPortal,B as AuditManagement,v as AuthProvider,R as Descope,J as RoleManagement,A as SignInFlow,C as SignUpFlow,x as SignUpOrInFlow,O as UserManagement,Y as UserProfile,b as baseHeaders,E as getJwtPermissions,L as getJwtRoles,I as getRefreshToken,w as getSessionToken,k as isRefreshTokenExpired,y as isSessionTokenExpired,j as refresh,$ as useDescope,D as useSession,Q as useUser};
2
2
  //# sourceMappingURL=index.esm.js.map